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://cloud.google.com/compute/
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 data and see the
87	// email address for your Google Account.
88	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
89
90	// View and manage your Google Compute Engine resources
91	ComputeScope = "https://www.googleapis.com/auth/compute"
92
93	// View your Google Compute Engine resources
94	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
95
96	// Manage your data and permissions in Cloud Storage and see the email
97	// address for your Google Account
98	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
99
100	// View your data in Google Cloud Storage
101	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
102
103	// Manage your data in Cloud Storage and see the email address of your
104	// Google Account
105	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
106)
107
108// NewService creates a new Service.
109func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
110	scopesOption := option.WithScopes(
111		"https://www.googleapis.com/auth/cloud-platform",
112		"https://www.googleapis.com/auth/compute",
113		"https://www.googleapis.com/auth/compute.readonly",
114		"https://www.googleapis.com/auth/devstorage.full_control",
115		"https://www.googleapis.com/auth/devstorage.read_only",
116		"https://www.googleapis.com/auth/devstorage.read_write",
117	)
118	// NOTE: prepend, so we don't override user-specified scopes.
119	opts = append([]option.ClientOption{scopesOption}, opts...)
120	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
121	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
122	client, endpoint, err := htransport.NewClient(ctx, opts...)
123	if err != nil {
124		return nil, err
125	}
126	s, err := New(client)
127	if err != nil {
128		return nil, err
129	}
130	if endpoint != "" {
131		s.BasePath = endpoint
132	}
133	return s, nil
134}
135
136// New creates a new Service. It uses the provided http.Client for requests.
137//
138// Deprecated: please use NewService instead.
139// To provide a custom HTTP client, use option.WithHTTPClient.
140// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
141func New(client *http.Client) (*Service, error) {
142	if client == nil {
143		return nil, errors.New("client is nil")
144	}
145	s := &Service{client: client, BasePath: basePath}
146	s.AcceleratorTypes = NewAcceleratorTypesService(s)
147	s.Addresses = NewAddressesService(s)
148	s.Autoscalers = NewAutoscalersService(s)
149	s.BackendBuckets = NewBackendBucketsService(s)
150	s.BackendServices = NewBackendServicesService(s)
151	s.DiskTypes = NewDiskTypesService(s)
152	s.Disks = NewDisksService(s)
153	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
154	s.FirewallPolicies = NewFirewallPoliciesService(s)
155	s.Firewalls = NewFirewallsService(s)
156	s.ForwardingRules = NewForwardingRulesService(s)
157	s.GlobalAddresses = NewGlobalAddressesService(s)
158	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
159	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
160	s.GlobalOperations = NewGlobalOperationsService(s)
161	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
162	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
163	s.HealthChecks = NewHealthChecksService(s)
164	s.HttpHealthChecks = NewHttpHealthChecksService(s)
165	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
166	s.ImageFamilyViews = NewImageFamilyViewsService(s)
167	s.Images = NewImagesService(s)
168	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
169	s.InstanceGroups = NewInstanceGroupsService(s)
170	s.InstanceTemplates = NewInstanceTemplatesService(s)
171	s.Instances = NewInstancesService(s)
172	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
173	s.InterconnectLocations = NewInterconnectLocationsService(s)
174	s.Interconnects = NewInterconnectsService(s)
175	s.LicenseCodes = NewLicenseCodesService(s)
176	s.Licenses = NewLicensesService(s)
177	s.MachineTypes = NewMachineTypesService(s)
178	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
179	s.Networks = NewNetworksService(s)
180	s.NodeGroups = NewNodeGroupsService(s)
181	s.NodeTemplates = NewNodeTemplatesService(s)
182	s.NodeTypes = NewNodeTypesService(s)
183	s.PacketMirrorings = NewPacketMirroringsService(s)
184	s.Projects = NewProjectsService(s)
185	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
186	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
187	s.RegionAutoscalers = NewRegionAutoscalersService(s)
188	s.RegionBackendServices = NewRegionBackendServicesService(s)
189	s.RegionCommitments = NewRegionCommitmentsService(s)
190	s.RegionDiskTypes = NewRegionDiskTypesService(s)
191	s.RegionDisks = NewRegionDisksService(s)
192	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
193	s.RegionHealthChecks = NewRegionHealthChecksService(s)
194	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
195	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
196	s.RegionInstances = NewRegionInstancesService(s)
197	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
198	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
199	s.RegionOperations = NewRegionOperationsService(s)
200	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
201	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
202	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
203	s.RegionUrlMaps = NewRegionUrlMapsService(s)
204	s.Regions = NewRegionsService(s)
205	s.Reservations = NewReservationsService(s)
206	s.ResourcePolicies = NewResourcePoliciesService(s)
207	s.Routers = NewRoutersService(s)
208	s.Routes = NewRoutesService(s)
209	s.SecurityPolicies = NewSecurityPoliciesService(s)
210	s.ServiceAttachments = NewServiceAttachmentsService(s)
211	s.Snapshots = NewSnapshotsService(s)
212	s.SslCertificates = NewSslCertificatesService(s)
213	s.SslPolicies = NewSslPoliciesService(s)
214	s.Subnetworks = NewSubnetworksService(s)
215	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
216	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
217	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
218	s.TargetInstances = NewTargetInstancesService(s)
219	s.TargetPools = NewTargetPoolsService(s)
220	s.TargetSslProxies = NewTargetSslProxiesService(s)
221	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
222	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
223	s.UrlMaps = NewUrlMapsService(s)
224	s.VpnGateways = NewVpnGatewaysService(s)
225	s.VpnTunnels = NewVpnTunnelsService(s)
226	s.ZoneOperations = NewZoneOperationsService(s)
227	s.Zones = NewZonesService(s)
228	return s, nil
229}
230
231type Service struct {
232	client    *http.Client
233	BasePath  string // API endpoint base URL
234	UserAgent string // optional additional User-Agent fragment
235
236	AcceleratorTypes *AcceleratorTypesService
237
238	Addresses *AddressesService
239
240	Autoscalers *AutoscalersService
241
242	BackendBuckets *BackendBucketsService
243
244	BackendServices *BackendServicesService
245
246	DiskTypes *DiskTypesService
247
248	Disks *DisksService
249
250	ExternalVpnGateways *ExternalVpnGatewaysService
251
252	FirewallPolicies *FirewallPoliciesService
253
254	Firewalls *FirewallsService
255
256	ForwardingRules *ForwardingRulesService
257
258	GlobalAddresses *GlobalAddressesService
259
260	GlobalForwardingRules *GlobalForwardingRulesService
261
262	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
263
264	GlobalOperations *GlobalOperationsService
265
266	GlobalOrganizationOperations *GlobalOrganizationOperationsService
267
268	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
269
270	HealthChecks *HealthChecksService
271
272	HttpHealthChecks *HttpHealthChecksService
273
274	HttpsHealthChecks *HttpsHealthChecksService
275
276	ImageFamilyViews *ImageFamilyViewsService
277
278	Images *ImagesService
279
280	InstanceGroupManagers *InstanceGroupManagersService
281
282	InstanceGroups *InstanceGroupsService
283
284	InstanceTemplates *InstanceTemplatesService
285
286	Instances *InstancesService
287
288	InterconnectAttachments *InterconnectAttachmentsService
289
290	InterconnectLocations *InterconnectLocationsService
291
292	Interconnects *InterconnectsService
293
294	LicenseCodes *LicenseCodesService
295
296	Licenses *LicensesService
297
298	MachineTypes *MachineTypesService
299
300	NetworkEndpointGroups *NetworkEndpointGroupsService
301
302	Networks *NetworksService
303
304	NodeGroups *NodeGroupsService
305
306	NodeTemplates *NodeTemplatesService
307
308	NodeTypes *NodeTypesService
309
310	PacketMirrorings *PacketMirroringsService
311
312	Projects *ProjectsService
313
314	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
315
316	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
317
318	RegionAutoscalers *RegionAutoscalersService
319
320	RegionBackendServices *RegionBackendServicesService
321
322	RegionCommitments *RegionCommitmentsService
323
324	RegionDiskTypes *RegionDiskTypesService
325
326	RegionDisks *RegionDisksService
327
328	RegionHealthCheckServices *RegionHealthCheckServicesService
329
330	RegionHealthChecks *RegionHealthChecksService
331
332	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
333
334	RegionInstanceGroups *RegionInstanceGroupsService
335
336	RegionInstances *RegionInstancesService
337
338	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
339
340	RegionNotificationEndpoints *RegionNotificationEndpointsService
341
342	RegionOperations *RegionOperationsService
343
344	RegionSslCertificates *RegionSslCertificatesService
345
346	RegionTargetHttpProxies *RegionTargetHttpProxiesService
347
348	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
349
350	RegionUrlMaps *RegionUrlMapsService
351
352	Regions *RegionsService
353
354	Reservations *ReservationsService
355
356	ResourcePolicies *ResourcePoliciesService
357
358	Routers *RoutersService
359
360	Routes *RoutesService
361
362	SecurityPolicies *SecurityPoliciesService
363
364	ServiceAttachments *ServiceAttachmentsService
365
366	Snapshots *SnapshotsService
367
368	SslCertificates *SslCertificatesService
369
370	SslPolicies *SslPoliciesService
371
372	Subnetworks *SubnetworksService
373
374	TargetGrpcProxies *TargetGrpcProxiesService
375
376	TargetHttpProxies *TargetHttpProxiesService
377
378	TargetHttpsProxies *TargetHttpsProxiesService
379
380	TargetInstances *TargetInstancesService
381
382	TargetPools *TargetPoolsService
383
384	TargetSslProxies *TargetSslProxiesService
385
386	TargetTcpProxies *TargetTcpProxiesService
387
388	TargetVpnGateways *TargetVpnGatewaysService
389
390	UrlMaps *UrlMapsService
391
392	VpnGateways *VpnGatewaysService
393
394	VpnTunnels *VpnTunnelsService
395
396	ZoneOperations *ZoneOperationsService
397
398	Zones *ZonesService
399}
400
401func (s *Service) userAgent() string {
402	if s.UserAgent == "" {
403		return googleapi.UserAgent
404	}
405	return googleapi.UserAgent + " " + s.UserAgent
406}
407
408func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
409	rs := &AcceleratorTypesService{s: s}
410	return rs
411}
412
413type AcceleratorTypesService struct {
414	s *Service
415}
416
417func NewAddressesService(s *Service) *AddressesService {
418	rs := &AddressesService{s: s}
419	return rs
420}
421
422type AddressesService struct {
423	s *Service
424}
425
426func NewAutoscalersService(s *Service) *AutoscalersService {
427	rs := &AutoscalersService{s: s}
428	return rs
429}
430
431type AutoscalersService struct {
432	s *Service
433}
434
435func NewBackendBucketsService(s *Service) *BackendBucketsService {
436	rs := &BackendBucketsService{s: s}
437	return rs
438}
439
440type BackendBucketsService struct {
441	s *Service
442}
443
444func NewBackendServicesService(s *Service) *BackendServicesService {
445	rs := &BackendServicesService{s: s}
446	return rs
447}
448
449type BackendServicesService struct {
450	s *Service
451}
452
453func NewDiskTypesService(s *Service) *DiskTypesService {
454	rs := &DiskTypesService{s: s}
455	return rs
456}
457
458type DiskTypesService struct {
459	s *Service
460}
461
462func NewDisksService(s *Service) *DisksService {
463	rs := &DisksService{s: s}
464	return rs
465}
466
467type DisksService struct {
468	s *Service
469}
470
471func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
472	rs := &ExternalVpnGatewaysService{s: s}
473	return rs
474}
475
476type ExternalVpnGatewaysService struct {
477	s *Service
478}
479
480func NewFirewallPoliciesService(s *Service) *FirewallPoliciesService {
481	rs := &FirewallPoliciesService{s: s}
482	return rs
483}
484
485type FirewallPoliciesService struct {
486	s *Service
487}
488
489func NewFirewallsService(s *Service) *FirewallsService {
490	rs := &FirewallsService{s: s}
491	return rs
492}
493
494type FirewallsService struct {
495	s *Service
496}
497
498func NewForwardingRulesService(s *Service) *ForwardingRulesService {
499	rs := &ForwardingRulesService{s: s}
500	return rs
501}
502
503type ForwardingRulesService struct {
504	s *Service
505}
506
507func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
508	rs := &GlobalAddressesService{s: s}
509	return rs
510}
511
512type GlobalAddressesService struct {
513	s *Service
514}
515
516func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
517	rs := &GlobalForwardingRulesService{s: s}
518	return rs
519}
520
521type GlobalForwardingRulesService struct {
522	s *Service
523}
524
525func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
526	rs := &GlobalNetworkEndpointGroupsService{s: s}
527	return rs
528}
529
530type GlobalNetworkEndpointGroupsService struct {
531	s *Service
532}
533
534func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
535	rs := &GlobalOperationsService{s: s}
536	return rs
537}
538
539type GlobalOperationsService struct {
540	s *Service
541}
542
543func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
544	rs := &GlobalOrganizationOperationsService{s: s}
545	return rs
546}
547
548type GlobalOrganizationOperationsService struct {
549	s *Service
550}
551
552func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
553	rs := &GlobalPublicDelegatedPrefixesService{s: s}
554	return rs
555}
556
557type GlobalPublicDelegatedPrefixesService struct {
558	s *Service
559}
560
561func NewHealthChecksService(s *Service) *HealthChecksService {
562	rs := &HealthChecksService{s: s}
563	return rs
564}
565
566type HealthChecksService struct {
567	s *Service
568}
569
570func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
571	rs := &HttpHealthChecksService{s: s}
572	return rs
573}
574
575type HttpHealthChecksService struct {
576	s *Service
577}
578
579func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
580	rs := &HttpsHealthChecksService{s: s}
581	return rs
582}
583
584type HttpsHealthChecksService struct {
585	s *Service
586}
587
588func NewImageFamilyViewsService(s *Service) *ImageFamilyViewsService {
589	rs := &ImageFamilyViewsService{s: s}
590	return rs
591}
592
593type ImageFamilyViewsService struct {
594	s *Service
595}
596
597func NewImagesService(s *Service) *ImagesService {
598	rs := &ImagesService{s: s}
599	return rs
600}
601
602type ImagesService struct {
603	s *Service
604}
605
606func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
607	rs := &InstanceGroupManagersService{s: s}
608	return rs
609}
610
611type InstanceGroupManagersService struct {
612	s *Service
613}
614
615func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
616	rs := &InstanceGroupsService{s: s}
617	return rs
618}
619
620type InstanceGroupsService struct {
621	s *Service
622}
623
624func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
625	rs := &InstanceTemplatesService{s: s}
626	return rs
627}
628
629type InstanceTemplatesService struct {
630	s *Service
631}
632
633func NewInstancesService(s *Service) *InstancesService {
634	rs := &InstancesService{s: s}
635	return rs
636}
637
638type InstancesService struct {
639	s *Service
640}
641
642func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
643	rs := &InterconnectAttachmentsService{s: s}
644	return rs
645}
646
647type InterconnectAttachmentsService struct {
648	s *Service
649}
650
651func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
652	rs := &InterconnectLocationsService{s: s}
653	return rs
654}
655
656type InterconnectLocationsService struct {
657	s *Service
658}
659
660func NewInterconnectsService(s *Service) *InterconnectsService {
661	rs := &InterconnectsService{s: s}
662	return rs
663}
664
665type InterconnectsService struct {
666	s *Service
667}
668
669func NewLicenseCodesService(s *Service) *LicenseCodesService {
670	rs := &LicenseCodesService{s: s}
671	return rs
672}
673
674type LicenseCodesService struct {
675	s *Service
676}
677
678func NewLicensesService(s *Service) *LicensesService {
679	rs := &LicensesService{s: s}
680	return rs
681}
682
683type LicensesService struct {
684	s *Service
685}
686
687func NewMachineTypesService(s *Service) *MachineTypesService {
688	rs := &MachineTypesService{s: s}
689	return rs
690}
691
692type MachineTypesService struct {
693	s *Service
694}
695
696func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
697	rs := &NetworkEndpointGroupsService{s: s}
698	return rs
699}
700
701type NetworkEndpointGroupsService struct {
702	s *Service
703}
704
705func NewNetworksService(s *Service) *NetworksService {
706	rs := &NetworksService{s: s}
707	return rs
708}
709
710type NetworksService struct {
711	s *Service
712}
713
714func NewNodeGroupsService(s *Service) *NodeGroupsService {
715	rs := &NodeGroupsService{s: s}
716	return rs
717}
718
719type NodeGroupsService struct {
720	s *Service
721}
722
723func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
724	rs := &NodeTemplatesService{s: s}
725	return rs
726}
727
728type NodeTemplatesService struct {
729	s *Service
730}
731
732func NewNodeTypesService(s *Service) *NodeTypesService {
733	rs := &NodeTypesService{s: s}
734	return rs
735}
736
737type NodeTypesService struct {
738	s *Service
739}
740
741func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
742	rs := &PacketMirroringsService{s: s}
743	return rs
744}
745
746type PacketMirroringsService struct {
747	s *Service
748}
749
750func NewProjectsService(s *Service) *ProjectsService {
751	rs := &ProjectsService{s: s}
752	return rs
753}
754
755type ProjectsService struct {
756	s *Service
757}
758
759func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
760	rs := &PublicAdvertisedPrefixesService{s: s}
761	return rs
762}
763
764type PublicAdvertisedPrefixesService struct {
765	s *Service
766}
767
768func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
769	rs := &PublicDelegatedPrefixesService{s: s}
770	return rs
771}
772
773type PublicDelegatedPrefixesService struct {
774	s *Service
775}
776
777func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
778	rs := &RegionAutoscalersService{s: s}
779	return rs
780}
781
782type RegionAutoscalersService struct {
783	s *Service
784}
785
786func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
787	rs := &RegionBackendServicesService{s: s}
788	return rs
789}
790
791type RegionBackendServicesService struct {
792	s *Service
793}
794
795func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
796	rs := &RegionCommitmentsService{s: s}
797	return rs
798}
799
800type RegionCommitmentsService struct {
801	s *Service
802}
803
804func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
805	rs := &RegionDiskTypesService{s: s}
806	return rs
807}
808
809type RegionDiskTypesService struct {
810	s *Service
811}
812
813func NewRegionDisksService(s *Service) *RegionDisksService {
814	rs := &RegionDisksService{s: s}
815	return rs
816}
817
818type RegionDisksService struct {
819	s *Service
820}
821
822func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
823	rs := &RegionHealthCheckServicesService{s: s}
824	return rs
825}
826
827type RegionHealthCheckServicesService struct {
828	s *Service
829}
830
831func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
832	rs := &RegionHealthChecksService{s: s}
833	return rs
834}
835
836type RegionHealthChecksService struct {
837	s *Service
838}
839
840func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
841	rs := &RegionInstanceGroupManagersService{s: s}
842	return rs
843}
844
845type RegionInstanceGroupManagersService struct {
846	s *Service
847}
848
849func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
850	rs := &RegionInstanceGroupsService{s: s}
851	return rs
852}
853
854type RegionInstanceGroupsService struct {
855	s *Service
856}
857
858func NewRegionInstancesService(s *Service) *RegionInstancesService {
859	rs := &RegionInstancesService{s: s}
860	return rs
861}
862
863type RegionInstancesService struct {
864	s *Service
865}
866
867func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
868	rs := &RegionNetworkEndpointGroupsService{s: s}
869	return rs
870}
871
872type RegionNetworkEndpointGroupsService struct {
873	s *Service
874}
875
876func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
877	rs := &RegionNotificationEndpointsService{s: s}
878	return rs
879}
880
881type RegionNotificationEndpointsService struct {
882	s *Service
883}
884
885func NewRegionOperationsService(s *Service) *RegionOperationsService {
886	rs := &RegionOperationsService{s: s}
887	return rs
888}
889
890type RegionOperationsService struct {
891	s *Service
892}
893
894func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
895	rs := &RegionSslCertificatesService{s: s}
896	return rs
897}
898
899type RegionSslCertificatesService struct {
900	s *Service
901}
902
903func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
904	rs := &RegionTargetHttpProxiesService{s: s}
905	return rs
906}
907
908type RegionTargetHttpProxiesService struct {
909	s *Service
910}
911
912func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
913	rs := &RegionTargetHttpsProxiesService{s: s}
914	return rs
915}
916
917type RegionTargetHttpsProxiesService struct {
918	s *Service
919}
920
921func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
922	rs := &RegionUrlMapsService{s: s}
923	return rs
924}
925
926type RegionUrlMapsService struct {
927	s *Service
928}
929
930func NewRegionsService(s *Service) *RegionsService {
931	rs := &RegionsService{s: s}
932	return rs
933}
934
935type RegionsService struct {
936	s *Service
937}
938
939func NewReservationsService(s *Service) *ReservationsService {
940	rs := &ReservationsService{s: s}
941	return rs
942}
943
944type ReservationsService struct {
945	s *Service
946}
947
948func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
949	rs := &ResourcePoliciesService{s: s}
950	return rs
951}
952
953type ResourcePoliciesService struct {
954	s *Service
955}
956
957func NewRoutersService(s *Service) *RoutersService {
958	rs := &RoutersService{s: s}
959	return rs
960}
961
962type RoutersService struct {
963	s *Service
964}
965
966func NewRoutesService(s *Service) *RoutesService {
967	rs := &RoutesService{s: s}
968	return rs
969}
970
971type RoutesService struct {
972	s *Service
973}
974
975func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
976	rs := &SecurityPoliciesService{s: s}
977	return rs
978}
979
980type SecurityPoliciesService struct {
981	s *Service
982}
983
984func NewServiceAttachmentsService(s *Service) *ServiceAttachmentsService {
985	rs := &ServiceAttachmentsService{s: s}
986	return rs
987}
988
989type ServiceAttachmentsService struct {
990	s *Service
991}
992
993func NewSnapshotsService(s *Service) *SnapshotsService {
994	rs := &SnapshotsService{s: s}
995	return rs
996}
997
998type SnapshotsService struct {
999	s *Service
1000}
1001
1002func NewSslCertificatesService(s *Service) *SslCertificatesService {
1003	rs := &SslCertificatesService{s: s}
1004	return rs
1005}
1006
1007type SslCertificatesService struct {
1008	s *Service
1009}
1010
1011func NewSslPoliciesService(s *Service) *SslPoliciesService {
1012	rs := &SslPoliciesService{s: s}
1013	return rs
1014}
1015
1016type SslPoliciesService struct {
1017	s *Service
1018}
1019
1020func NewSubnetworksService(s *Service) *SubnetworksService {
1021	rs := &SubnetworksService{s: s}
1022	return rs
1023}
1024
1025type SubnetworksService struct {
1026	s *Service
1027}
1028
1029func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
1030	rs := &TargetGrpcProxiesService{s: s}
1031	return rs
1032}
1033
1034type TargetGrpcProxiesService struct {
1035	s *Service
1036}
1037
1038func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
1039	rs := &TargetHttpProxiesService{s: s}
1040	return rs
1041}
1042
1043type TargetHttpProxiesService struct {
1044	s *Service
1045}
1046
1047func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1048	rs := &TargetHttpsProxiesService{s: s}
1049	return rs
1050}
1051
1052type TargetHttpsProxiesService struct {
1053	s *Service
1054}
1055
1056func NewTargetInstancesService(s *Service) *TargetInstancesService {
1057	rs := &TargetInstancesService{s: s}
1058	return rs
1059}
1060
1061type TargetInstancesService struct {
1062	s *Service
1063}
1064
1065func NewTargetPoolsService(s *Service) *TargetPoolsService {
1066	rs := &TargetPoolsService{s: s}
1067	return rs
1068}
1069
1070type TargetPoolsService struct {
1071	s *Service
1072}
1073
1074func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1075	rs := &TargetSslProxiesService{s: s}
1076	return rs
1077}
1078
1079type TargetSslProxiesService struct {
1080	s *Service
1081}
1082
1083func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1084	rs := &TargetTcpProxiesService{s: s}
1085	return rs
1086}
1087
1088type TargetTcpProxiesService struct {
1089	s *Service
1090}
1091
1092func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1093	rs := &TargetVpnGatewaysService{s: s}
1094	return rs
1095}
1096
1097type TargetVpnGatewaysService struct {
1098	s *Service
1099}
1100
1101func NewUrlMapsService(s *Service) *UrlMapsService {
1102	rs := &UrlMapsService{s: s}
1103	return rs
1104}
1105
1106type UrlMapsService struct {
1107	s *Service
1108}
1109
1110func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1111	rs := &VpnGatewaysService{s: s}
1112	return rs
1113}
1114
1115type VpnGatewaysService struct {
1116	s *Service
1117}
1118
1119func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1120	rs := &VpnTunnelsService{s: s}
1121	return rs
1122}
1123
1124type VpnTunnelsService struct {
1125	s *Service
1126}
1127
1128func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1129	rs := &ZoneOperationsService{s: s}
1130	return rs
1131}
1132
1133type ZoneOperationsService struct {
1134	s *Service
1135}
1136
1137func NewZonesService(s *Service) *ZonesService {
1138	rs := &ZonesService{s: s}
1139	return rs
1140}
1141
1142type ZonesService struct {
1143	s *Service
1144}
1145
1146// AcceleratorConfig: A specification of the type and number of
1147// accelerator cards attached to the instance.
1148type AcceleratorConfig struct {
1149	// AcceleratorCount: The number of the guest accelerator cards exposed
1150	// to this instance.
1151	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1152
1153	// AcceleratorType: Full or partial URL of the accelerator type resource
1154	// to attach to this instance. For example:
1155	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1156	// p100 If you are creating an instance template, specify only the
1157	// accelerator name. See GPUs on Compute Engine for a full list of
1158	// accelerator types.
1159	AcceleratorType string `json:"acceleratorType,omitempty"`
1160
1161	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1162	// unconditionally include in API requests. By default, fields with
1163	// empty or default values are omitted from API requests. However, any
1164	// non-pointer, non-interface field appearing in ForceSendFields will be
1165	// sent to the server regardless of whether the field is empty or not.
1166	// This may be used to include empty fields in Patch requests.
1167	ForceSendFields []string `json:"-"`
1168
1169	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1170	// include in API requests with the JSON null value. By default, fields
1171	// with empty values are omitted from API requests. However, any field
1172	// with an empty value appearing in NullFields will be sent to the
1173	// server as null. It is an error if a field in this list has a
1174	// non-empty value. This may be used to include null fields in Patch
1175	// requests.
1176	NullFields []string `json:"-"`
1177}
1178
1179func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1180	type NoMethod AcceleratorConfig
1181	raw := NoMethod(*s)
1182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1183}
1184
1185// AcceleratorType: Represents an Accelerator Type resource. Google
1186// Cloud Platform provides graphics processing units (accelerators) that
1187// you can add to VM instances to improve or accelerate performance when
1188// working with intensive workloads. For more information, read GPUs on
1189// Compute Engine.
1190type AcceleratorType struct {
1191	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1192	// format.
1193	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1194
1195	// Deprecated -- [Output Only] The deprecation status associated with
1196	// this accelerator type.
1197	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1198
1199	// Description: [Output Only] An optional textual description of the
1200	// resource.
1201	Description string `json:"description,omitempty"`
1202
1203	// Id: [Output Only] The unique identifier for the resource. This
1204	// identifier is defined by the server.
1205	Id uint64 `json:"id,omitempty,string"`
1206
1207	// Kind: [Output Only] The type of the resource. Always
1208	// compute#acceleratorType for accelerator types.
1209	Kind string `json:"kind,omitempty"`
1210
1211	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1212	// cards allowed per instance.
1213	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1214
1215	// Name: [Output Only] Name of the resource.
1216	Name string `json:"name,omitempty"`
1217
1218	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1219	// resource.
1220	SelfLink string `json:"selfLink,omitempty"`
1221
1222	// Zone: [Output Only] The name of the zone where the accelerator type
1223	// resides, such as us-central1-a. You must specify this field as part
1224	// of the HTTP request URL. It is not settable as a field in the request
1225	// body.
1226	Zone string `json:"zone,omitempty"`
1227
1228	// ServerResponse contains the HTTP response code and headers from the
1229	// server.
1230	googleapi.ServerResponse `json:"-"`
1231
1232	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1233	// to unconditionally include in API requests. By default, fields with
1234	// empty or default values are omitted from API requests. However, any
1235	// non-pointer, non-interface field appearing in ForceSendFields will be
1236	// sent to the server regardless of whether the field is empty or not.
1237	// This may be used to include empty fields in Patch requests.
1238	ForceSendFields []string `json:"-"`
1239
1240	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1241	// include in API requests with the JSON null value. By default, fields
1242	// with empty values are omitted from API requests. However, any field
1243	// with an empty value appearing in NullFields will be sent to the
1244	// server as null. It is an error if a field in this list has a
1245	// non-empty value. This may be used to include null fields in Patch
1246	// requests.
1247	NullFields []string `json:"-"`
1248}
1249
1250func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1251	type NoMethod AcceleratorType
1252	raw := NoMethod(*s)
1253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1254}
1255
1256type AcceleratorTypeAggregatedList struct {
1257	// Id: [Output Only] Unique identifier for the resource; defined by the
1258	// server.
1259	Id string `json:"id,omitempty"`
1260
1261	// Items: A list of AcceleratorTypesScopedList resources.
1262	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1263
1264	// Kind: [Output Only] Type of resource. Always
1265	// compute#acceleratorTypeAggregatedList for aggregated lists of
1266	// accelerator types.
1267	Kind string `json:"kind,omitempty"`
1268
1269	// NextPageToken: [Output Only] This token allows you to get the next
1270	// page of results for list requests. If the number of results is larger
1271	// than maxResults, use the nextPageToken as a value for the query
1272	// parameter pageToken in the next list request. Subsequent list
1273	// requests will have their own nextPageToken to continue paging through
1274	// the results.
1275	NextPageToken string `json:"nextPageToken,omitempty"`
1276
1277	// SelfLink: [Output Only] Server-defined URL for this resource.
1278	SelfLink string `json:"selfLink,omitempty"`
1279
1280	// Unreachables: [Output Only] Unreachable resources.
1281	Unreachables []string `json:"unreachables,omitempty"`
1282
1283	// Warning: [Output Only] Informational warning message.
1284	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1285
1286	// ServerResponse contains the HTTP response code and headers from the
1287	// server.
1288	googleapi.ServerResponse `json:"-"`
1289
1290	// ForceSendFields is a list of field names (e.g. "Id") to
1291	// unconditionally include in API requests. By default, fields with
1292	// empty or default values are omitted from API requests. However, any
1293	// non-pointer, non-interface field appearing in ForceSendFields will be
1294	// sent to the server regardless of whether the field is empty or not.
1295	// This may be used to include empty fields in Patch requests.
1296	ForceSendFields []string `json:"-"`
1297
1298	// NullFields is a list of field names (e.g. "Id") to include in API
1299	// requests with the JSON null value. By default, fields with empty
1300	// values are omitted from API requests. However, any field with an
1301	// empty value appearing in NullFields will be sent to the server as
1302	// null. It is an error if a field in this list has a non-empty value.
1303	// This may be used to include null fields in Patch requests.
1304	NullFields []string `json:"-"`
1305}
1306
1307func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1308	type NoMethod AcceleratorTypeAggregatedList
1309	raw := NoMethod(*s)
1310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1311}
1312
1313// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1314// warning message.
1315type AcceleratorTypeAggregatedListWarning struct {
1316	// Code: [Output Only] A warning code, if applicable. For example,
1317	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1318	// the response.
1319	//
1320	// Possible values:
1321	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
1322	// changes made by a failed operation.
1323	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
1324	// created.
1325	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
1326	// resources has a type marked as deprecated
1327	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
1328	// that is larger than image size.
1329	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
1330	// resources has a type marked as experimental
1331	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
1332	// call
1333	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
1334	// overridden. Deprecated unused field.
1335	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
1336	// injected kernel, which is deprecated.
1337	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
1338	// exceedingly large number of resources
1339	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
1340	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
1341	// not assigned to an instance on the network.
1342	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
1343	// ip forward.
1344	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
1345	// refers to an instance that does not exist.
1346	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
1347	// URL refers to an instance that is not on the same network as the
1348	// route.
1349	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
1350	// have a status of RUNNING.
1351	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
1352	// continue the process despite the mentioned error.
1353	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
1354	// page.
1355	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
1356	// missing due to errors
1357	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
1358	// that requires a TOS they have not accepted.
1359	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
1360	// resource is in use.
1361	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
1362	// auto-delete could not be deleted because they were in use.
1363	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
1364	// ignored.
1365	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
1366	// instance group manager is valid as such, but its application does not
1367	// make a lot of sense, because it allows only single instance in
1368	// instance group.
1369	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
1370	// are present
1371	//   "UNREACHABLE" - A given scope cannot be reached.
1372	Code string `json:"code,omitempty"`
1373
1374	// Data: [Output Only] Metadata about this warning in key: value format.
1375	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
1376	// }
1377	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1378
1379	// Message: [Output Only] A human-readable description of the warning
1380	// code.
1381	Message string `json:"message,omitempty"`
1382
1383	// ForceSendFields is a list of field names (e.g. "Code") to
1384	// unconditionally include in API requests. By default, fields with
1385	// empty or default values are omitted from API requests. However, any
1386	// non-pointer, non-interface field appearing in ForceSendFields will be
1387	// sent to the server regardless of whether the field is empty or not.
1388	// This may be used to include empty fields in Patch requests.
1389	ForceSendFields []string `json:"-"`
1390
1391	// NullFields is a list of field names (e.g. "Code") to include in API
1392	// requests with the JSON null value. By default, fields with empty
1393	// values are omitted from API requests. However, any field with an
1394	// empty value appearing in NullFields will be sent to the server as
1395	// null. It is an error if a field in this list has a non-empty value.
1396	// This may be used to include null fields in Patch requests.
1397	NullFields []string `json:"-"`
1398}
1399
1400func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1401	type NoMethod AcceleratorTypeAggregatedListWarning
1402	raw := NoMethod(*s)
1403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1404}
1405
1406type AcceleratorTypeAggregatedListWarningData struct {
1407	// Key: [Output Only] A key that provides more detail on the warning
1408	// being returned. For example, for warnings where there are no results
1409	// in a list request for a particular zone, this key might be scope and
1410	// the key value might be the zone name. Other examples might be a key
1411	// indicating a deprecated resource and a suggested replacement, or a
1412	// warning about invalid network settings (for example, if an instance
1413	// attempts to perform IP forwarding but is not enabled for IP
1414	// forwarding).
1415	Key string `json:"key,omitempty"`
1416
1417	// Value: [Output Only] A warning data value corresponding to the key.
1418	Value string `json:"value,omitempty"`
1419
1420	// ForceSendFields is a list of field names (e.g. "Key") to
1421	// unconditionally include in API requests. By default, fields with
1422	// empty or default values are omitted from API requests. However, any
1423	// non-pointer, non-interface field appearing in ForceSendFields will be
1424	// sent to the server regardless of whether the field is empty or not.
1425	// This may be used to include empty fields in Patch requests.
1426	ForceSendFields []string `json:"-"`
1427
1428	// NullFields is a list of field names (e.g. "Key") to include in API
1429	// requests with the JSON null value. By default, fields with empty
1430	// values are omitted from API requests. However, any field with an
1431	// empty value appearing in NullFields will be sent to the server as
1432	// null. It is an error if a field in this list has a non-empty value.
1433	// This may be used to include null fields in Patch requests.
1434	NullFields []string `json:"-"`
1435}
1436
1437func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1438	type NoMethod AcceleratorTypeAggregatedListWarningData
1439	raw := NoMethod(*s)
1440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1441}
1442
1443// AcceleratorTypeList: Contains a list of accelerator types.
1444type AcceleratorTypeList struct {
1445	// Id: [Output Only] Unique identifier for the resource; defined by the
1446	// server.
1447	Id string `json:"id,omitempty"`
1448
1449	// Items: A list of AcceleratorType resources.
1450	Items []*AcceleratorType `json:"items,omitempty"`
1451
1452	// Kind: [Output Only] Type of resource. Always
1453	// compute#acceleratorTypeList for lists of accelerator types.
1454	Kind string `json:"kind,omitempty"`
1455
1456	// NextPageToken: [Output Only] This token allows you to get the next
1457	// page of results for list requests. If the number of results is larger
1458	// than maxResults, use the nextPageToken as a value for the query
1459	// parameter pageToken in the next list request. Subsequent list
1460	// requests will have their own nextPageToken to continue paging through
1461	// the results.
1462	NextPageToken string `json:"nextPageToken,omitempty"`
1463
1464	// SelfLink: [Output Only] Server-defined URL for this resource.
1465	SelfLink string `json:"selfLink,omitempty"`
1466
1467	// Warning: [Output Only] Informational warning message.
1468	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1469
1470	// ServerResponse contains the HTTP response code and headers from the
1471	// server.
1472	googleapi.ServerResponse `json:"-"`
1473
1474	// ForceSendFields is a list of field names (e.g. "Id") to
1475	// unconditionally include in API requests. By default, fields with
1476	// empty or default values are omitted from API requests. However, any
1477	// non-pointer, non-interface field appearing in ForceSendFields will be
1478	// sent to the server regardless of whether the field is empty or not.
1479	// This may be used to include empty fields in Patch requests.
1480	ForceSendFields []string `json:"-"`
1481
1482	// NullFields is a list of field names (e.g. "Id") to include in API
1483	// requests with the JSON null value. By default, fields with empty
1484	// values are omitted from API requests. However, any field with an
1485	// empty value appearing in NullFields will be sent to the server as
1486	// null. It is an error if a field in this list has a non-empty value.
1487	// This may be used to include null fields in Patch requests.
1488	NullFields []string `json:"-"`
1489}
1490
1491func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1492	type NoMethod AcceleratorTypeList
1493	raw := NoMethod(*s)
1494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1495}
1496
1497// AcceleratorTypeListWarning: [Output Only] Informational warning
1498// message.
1499type AcceleratorTypeListWarning struct {
1500	// Code: [Output Only] A warning code, if applicable. For example,
1501	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1502	// the response.
1503	//
1504	// Possible values:
1505	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
1506	// changes made by a failed operation.
1507	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
1508	// created.
1509	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
1510	// resources has a type marked as deprecated
1511	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
1512	// that is larger than image size.
1513	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
1514	// resources has a type marked as experimental
1515	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
1516	// call
1517	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
1518	// overridden. Deprecated unused field.
1519	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
1520	// injected kernel, which is deprecated.
1521	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
1522	// exceedingly large number of resources
1523	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
1524	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
1525	// not assigned to an instance on the network.
1526	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
1527	// ip forward.
1528	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
1529	// refers to an instance that does not exist.
1530	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
1531	// URL refers to an instance that is not on the same network as the
1532	// route.
1533	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
1534	// have a status of RUNNING.
1535	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
1536	// continue the process despite the mentioned error.
1537	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
1538	// page.
1539	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
1540	// missing due to errors
1541	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
1542	// that requires a TOS they have not accepted.
1543	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
1544	// resource is in use.
1545	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
1546	// auto-delete could not be deleted because they were in use.
1547	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
1548	// ignored.
1549	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
1550	// instance group manager is valid as such, but its application does not
1551	// make a lot of sense, because it allows only single instance in
1552	// instance group.
1553	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
1554	// are present
1555	//   "UNREACHABLE" - A given scope cannot be reached.
1556	Code string `json:"code,omitempty"`
1557
1558	// Data: [Output Only] Metadata about this warning in key: value format.
1559	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
1560	// }
1561	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1562
1563	// Message: [Output Only] A human-readable description of the warning
1564	// code.
1565	Message string `json:"message,omitempty"`
1566
1567	// ForceSendFields is a list of field names (e.g. "Code") to
1568	// unconditionally include in API requests. By default, fields with
1569	// empty or default values are omitted from API requests. However, any
1570	// non-pointer, non-interface field appearing in ForceSendFields will be
1571	// sent to the server regardless of whether the field is empty or not.
1572	// This may be used to include empty fields in Patch requests.
1573	ForceSendFields []string `json:"-"`
1574
1575	// NullFields is a list of field names (e.g. "Code") to include in API
1576	// requests with the JSON null value. By default, fields with empty
1577	// values are omitted from API requests. However, any field with an
1578	// empty value appearing in NullFields will be sent to the server as
1579	// null. It is an error if a field in this list has a non-empty value.
1580	// This may be used to include null fields in Patch requests.
1581	NullFields []string `json:"-"`
1582}
1583
1584func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1585	type NoMethod AcceleratorTypeListWarning
1586	raw := NoMethod(*s)
1587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1588}
1589
1590type AcceleratorTypeListWarningData struct {
1591	// Key: [Output Only] A key that provides more detail on the warning
1592	// being returned. For example, for warnings where there are no results
1593	// in a list request for a particular zone, this key might be scope and
1594	// the key value might be the zone name. Other examples might be a key
1595	// indicating a deprecated resource and a suggested replacement, or a
1596	// warning about invalid network settings (for example, if an instance
1597	// attempts to perform IP forwarding but is not enabled for IP
1598	// forwarding).
1599	Key string `json:"key,omitempty"`
1600
1601	// Value: [Output Only] A warning data value corresponding to the key.
1602	Value string `json:"value,omitempty"`
1603
1604	// ForceSendFields is a list of field names (e.g. "Key") to
1605	// unconditionally include in API requests. By default, fields with
1606	// empty or default values are omitted from API requests. However, any
1607	// non-pointer, non-interface field appearing in ForceSendFields will be
1608	// sent to the server regardless of whether the field is empty or not.
1609	// This may be used to include empty fields in Patch requests.
1610	ForceSendFields []string `json:"-"`
1611
1612	// NullFields is a list of field names (e.g. "Key") to include in API
1613	// requests with the JSON null value. By default, fields with empty
1614	// values are omitted from API requests. However, any field with an
1615	// empty value appearing in NullFields will be sent to the server as
1616	// null. It is an error if a field in this list has a non-empty value.
1617	// This may be used to include null fields in Patch requests.
1618	NullFields []string `json:"-"`
1619}
1620
1621func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1622	type NoMethod AcceleratorTypeListWarningData
1623	raw := NoMethod(*s)
1624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1625}
1626
1627type AcceleratorTypesScopedList struct {
1628	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1629	// in this scope.
1630	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1631
1632	// Warning: [Output Only] An informational warning that appears when the
1633	// accelerator types list is empty.
1634	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1635
1636	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1637	// unconditionally include in API requests. By default, fields with
1638	// empty or default values are omitted from API requests. However, any
1639	// non-pointer, non-interface field appearing in ForceSendFields will be
1640	// sent to the server regardless of whether the field is empty or not.
1641	// This may be used to include empty fields in Patch requests.
1642	ForceSendFields []string `json:"-"`
1643
1644	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1645	// include in API requests with the JSON null value. By default, fields
1646	// with empty values are omitted from API requests. However, any field
1647	// with an empty value appearing in NullFields will be sent to the
1648	// server as null. It is an error if a field in this list has a
1649	// non-empty value. This may be used to include null fields in Patch
1650	// requests.
1651	NullFields []string `json:"-"`
1652}
1653
1654func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1655	type NoMethod AcceleratorTypesScopedList
1656	raw := NoMethod(*s)
1657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1658}
1659
1660// AcceleratorTypesScopedListWarning: [Output Only] An informational
1661// warning that appears when the accelerator types list is empty.
1662type AcceleratorTypesScopedListWarning struct {
1663	// Code: [Output Only] A warning code, if applicable. For example,
1664	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1665	// the response.
1666	//
1667	// Possible values:
1668	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
1669	// changes made by a failed operation.
1670	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
1671	// created.
1672	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
1673	// resources has a type marked as deprecated
1674	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
1675	// that is larger than image size.
1676	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
1677	// resources has a type marked as experimental
1678	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
1679	// call
1680	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
1681	// overridden. Deprecated unused field.
1682	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
1683	// injected kernel, which is deprecated.
1684	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
1685	// exceedingly large number of resources
1686	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
1687	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
1688	// not assigned to an instance on the network.
1689	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
1690	// ip forward.
1691	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
1692	// refers to an instance that does not exist.
1693	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
1694	// URL refers to an instance that is not on the same network as the
1695	// route.
1696	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
1697	// have a status of RUNNING.
1698	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
1699	// continue the process despite the mentioned error.
1700	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
1701	// page.
1702	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
1703	// missing due to errors
1704	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
1705	// that requires a TOS they have not accepted.
1706	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
1707	// resource is in use.
1708	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
1709	// auto-delete could not be deleted because they were in use.
1710	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
1711	// ignored.
1712	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
1713	// instance group manager is valid as such, but its application does not
1714	// make a lot of sense, because it allows only single instance in
1715	// instance group.
1716	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
1717	// are present
1718	//   "UNREACHABLE" - A given scope cannot be reached.
1719	Code string `json:"code,omitempty"`
1720
1721	// Data: [Output Only] Metadata about this warning in key: value format.
1722	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
1723	// }
1724	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1725
1726	// Message: [Output Only] A human-readable description of the warning
1727	// code.
1728	Message string `json:"message,omitempty"`
1729
1730	// ForceSendFields is a list of field names (e.g. "Code") to
1731	// unconditionally include in API requests. By default, fields with
1732	// empty or default values are omitted from API requests. However, any
1733	// non-pointer, non-interface field appearing in ForceSendFields will be
1734	// sent to the server regardless of whether the field is empty or not.
1735	// This may be used to include empty fields in Patch requests.
1736	ForceSendFields []string `json:"-"`
1737
1738	// NullFields is a list of field names (e.g. "Code") to include in API
1739	// requests with the JSON null value. By default, fields with empty
1740	// values are omitted from API requests. However, any field with an
1741	// empty value appearing in NullFields will be sent to the server as
1742	// null. It is an error if a field in this list has a non-empty value.
1743	// This may be used to include null fields in Patch requests.
1744	NullFields []string `json:"-"`
1745}
1746
1747func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1748	type NoMethod AcceleratorTypesScopedListWarning
1749	raw := NoMethod(*s)
1750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1751}
1752
1753type AcceleratorTypesScopedListWarningData struct {
1754	// Key: [Output Only] A key that provides more detail on the warning
1755	// being returned. For example, for warnings where there are no results
1756	// in a list request for a particular zone, this key might be scope and
1757	// the key value might be the zone name. Other examples might be a key
1758	// indicating a deprecated resource and a suggested replacement, or a
1759	// warning about invalid network settings (for example, if an instance
1760	// attempts to perform IP forwarding but is not enabled for IP
1761	// forwarding).
1762	Key string `json:"key,omitempty"`
1763
1764	// Value: [Output Only] A warning data value corresponding to the key.
1765	Value string `json:"value,omitempty"`
1766
1767	// ForceSendFields is a list of field names (e.g. "Key") to
1768	// unconditionally include in API requests. By default, fields with
1769	// empty or default values are omitted from API requests. However, any
1770	// non-pointer, non-interface field appearing in ForceSendFields will be
1771	// sent to the server regardless of whether the field is empty or not.
1772	// This may be used to include empty fields in Patch requests.
1773	ForceSendFields []string `json:"-"`
1774
1775	// NullFields is a list of field names (e.g. "Key") to include in API
1776	// requests with the JSON null value. By default, fields with empty
1777	// values are omitted from API requests. However, any field with an
1778	// empty value appearing in NullFields will be sent to the server as
1779	// null. It is an error if a field in this list has a non-empty value.
1780	// This may be used to include null fields in Patch requests.
1781	NullFields []string `json:"-"`
1782}
1783
1784func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1785	type NoMethod AcceleratorTypesScopedListWarningData
1786	raw := NoMethod(*s)
1787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1788}
1789
1790// AccessConfig: An access configuration attached to an instance's
1791// network interface. Only one access config per instance is supported.
1792type AccessConfig struct {
1793	// ExternalIpv6: [Output Only] The first IPv6 address of the external
1794	// IPv6 range associated with this instance, prefix length is stored in
1795	// externalIpv6PrefixLength in ipv6AccessConfig. The field is output
1796	// only, an IPv6 address from a subnetwork associated with the instance
1797	// will be allocated dynamically.
1798	ExternalIpv6 string `json:"externalIpv6,omitempty"`
1799
1800	// ExternalIpv6PrefixLength: [Output Only] The prefix length of the
1801	// external IPv6 range.
1802	ExternalIpv6PrefixLength int64 `json:"externalIpv6PrefixLength,omitempty"`
1803
1804	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1805	// for access configs.
1806	Kind string `json:"kind,omitempty"`
1807
1808	// Name: The name of this access configuration. The default and
1809	// recommended name is External NAT, but you can use any arbitrary
1810	// string, such as My external IP or Network Access.
1811	Name string `json:"name,omitempty"`
1812
1813	// NatIP: An external IP address associated with this instance. Specify
1814	// an unused static external IP address available to the project or
1815	// leave this field undefined to use an IP from a shared ephemeral IP
1816	// address pool. If you specify a static external IP address, it must
1817	// live in the same region as the zone of the instance.
1818	NatIP string `json:"natIP,omitempty"`
1819
1820	// NetworkTier: This signifies the networking tier used for configuring
1821	// this access configuration and can only take the following values:
1822	// PREMIUM, STANDARD. If an AccessConfig is specified without a valid
1823	// external IP address, an ephemeral IP will be created with this
1824	// networkTier. If an AccessConfig with a valid external IP address is
1825	// specified, it must match that of the networkTier associated with the
1826	// Address resource owning that IP.
1827	//
1828	// Possible values:
1829	//   "PREMIUM" - High quality, Google-grade network tier, support for
1830	// all networking products.
1831	//   "STANDARD" - Public internet quality, only limited support for
1832	// other networking products.
1833	NetworkTier string `json:"networkTier,omitempty"`
1834
1835	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1836	// You can set this field only if the `setPublicPtr` field is enabled.
1837	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1838
1839	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1840	// created to map the external IP address of the instance to a DNS
1841	// domain name.
1842	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1843
1844	// Type: The type of configuration. The default and only option is
1845	// ONE_TO_ONE_NAT.
1846	//
1847	// Possible values:
1848	//   "DIRECT_IPV6"
1849	//   "ONE_TO_ONE_NAT" (default)
1850	Type string `json:"type,omitempty"`
1851
1852	// ForceSendFields is a list of field names (e.g. "ExternalIpv6") to
1853	// unconditionally include in API requests. By default, fields with
1854	// empty or default values are omitted from API requests. However, any
1855	// non-pointer, non-interface field appearing in ForceSendFields will be
1856	// sent to the server regardless of whether the field is empty or not.
1857	// This may be used to include empty fields in Patch requests.
1858	ForceSendFields []string `json:"-"`
1859
1860	// NullFields is a list of field names (e.g. "ExternalIpv6") to include
1861	// in API requests with the JSON null value. By default, fields with
1862	// empty values are omitted from API requests. However, any field with
1863	// an empty value appearing in NullFields will be sent to the server as
1864	// null. It is an error if a field in this list has a non-empty value.
1865	// This may be used to include null fields in Patch requests.
1866	NullFields []string `json:"-"`
1867}
1868
1869func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1870	type NoMethod AccessConfig
1871	raw := NoMethod(*s)
1872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1873}
1874
1875// Address: Represents an IP Address resource. Google Compute Engine has
1876// two IP Address resources: * Global (external and internal)
1877// (https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses)
1878// * Regional (external and internal)
1879// (https://cloud.google.com/compute/docs/reference/rest/v1/addresses)
1880// For more information, see Reserving a static external IP address.
1881type Address struct {
1882	// Address: The static IP address represented by this resource.
1883	Address string `json:"address,omitempty"`
1884
1885	// AddressType: The type of address to reserve, either INTERNAL or
1886	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1887	//
1888	// Possible values:
1889	//   "EXTERNAL" - A publicly visible external IP address.
1890	//   "INTERNAL" - A private network IP address, for use with an Instance
1891	// or Internal Load Balancer forwarding rule.
1892	//   "UNSPECIFIED_TYPE"
1893	AddressType string `json:"addressType,omitempty"`
1894
1895	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1896	// format.
1897	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1898
1899	// Description: An optional description of this resource. Provide this
1900	// field when you create the resource.
1901	Description string `json:"description,omitempty"`
1902
1903	// Id: [Output Only] The unique identifier for the resource. This
1904	// identifier is defined by the server.
1905	Id uint64 `json:"id,omitempty,string"`
1906
1907	// IpVersion: The IP version that will be used by this address. Valid
1908	// options are IPV4 or IPV6. This can only be specified for a global
1909	// address.
1910	//
1911	// Possible values:
1912	//   "IPV4"
1913	//   "IPV6"
1914	//   "UNSPECIFIED_VERSION"
1915	IpVersion string `json:"ipVersion,omitempty"`
1916
1917	// Kind: [Output Only] Type of the resource. Always compute#address for
1918	// addresses.
1919	Kind string `json:"kind,omitempty"`
1920
1921	// Name: Name of the resource. Provided by the client when the resource
1922	// is created. The name must be 1-63 characters long, and comply with
1923	// RFC1035. Specifically, the name must be 1-63 characters long and
1924	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1925	// character must be a lowercase letter, and all following characters
1926	// (except for the last character) must be a dash, lowercase letter, or
1927	// digit. The last character must be a lowercase letter or digit.
1928	Name string `json:"name,omitempty"`
1929
1930	// Network: The URL of the network in which to reserve the address. This
1931	// field can only be used with INTERNAL type with the VPC_PEERING
1932	// purpose.
1933	Network string `json:"network,omitempty"`
1934
1935	// NetworkTier: This signifies the networking tier used for configuring
1936	// this address and can only take the following values: PREMIUM or
1937	// STANDARD. Internal IP addresses are always Premium Tier; global
1938	// external IP addresses are always Premium Tier; regional external IP
1939	// addresses can be either Standard or Premium Tier. If this field is
1940	// not specified, it is assumed to be PREMIUM.
1941	//
1942	// Possible values:
1943	//   "PREMIUM" - High quality, Google-grade network tier, support for
1944	// all networking products.
1945	//   "STANDARD" - Public internet quality, only limited support for
1946	// other networking products.
1947	NetworkTier string `json:"networkTier,omitempty"`
1948
1949	// PrefixLength: The prefix length if the resource represents an IP
1950	// range.
1951	PrefixLength int64 `json:"prefixLength,omitempty"`
1952
1953	// Purpose: The purpose of this resource, which can be one of the
1954	// following values: - GCE_ENDPOINT for addresses that are used by VM
1955	// instances, alias IP ranges, load balancers, and similar resources. -
1956	// DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud
1957	// DNS inbound forwarder IP addresses (regional internal IP address in a
1958	// subnet of a VPC network) - VPC_PEERING for global internal IP
1959	// addresses used for private services access allocated ranges. -
1960	// NAT_AUTO for the regional external IP addresses used by Cloud NAT
1961	// when allocating addresses using . - IPSEC_INTERCONNECT for addresses
1962	// created from a private IP range that are reserved for a VLAN
1963	// attachment in an *IPsec-encrypted Cloud Interconnect* configuration.
1964	// These addresses are regional resources. Not currently available
1965	// publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that
1966	// is assigned to multiple internal forwarding rules. -
1967	// `PRIVATE_SERVICE_CONNECT` for a private network address that is used
1968	// to configure Private Service Connect. Only global internal addresses
1969	// can use this purpose.
1970	//
1971	// Possible values:
1972	//   "DNS_RESOLVER" - DNS resolver address in the subnetwork.
1973	//   "GCE_ENDPOINT" - VM internal/alias IP, Internal LB service IP, etc.
1974	//   "IPSEC_INTERCONNECT" - A regional internal IP address range
1975	// reserved for the VLAN attachment that is used in IPsec-encrypted
1976	// Cloud Interconnect. This regional internal IP address range must not
1977	// overlap with any IP address range of subnet/route in the VPC network
1978	// and its peering networks. After the VLAN attachment is created with
1979	// the reserved IP address range, when creating a new VPN gateway, its
1980	// interface IP address is allocated from the associated VLAN
1981	// attachment’s IP address range.
1982	//   "NAT_AUTO" - External IP automatically reserved for Cloud NAT.
1983	//   "PRIVATE_SERVICE_CONNECT" - A private network IP address that can
1984	// be used to configure Private Service Connect. This purpose can be
1985	// specified only for GLOBAL addresses of Type INTERNAL
1986	//   "SHARED_LOADBALANCER_VIP" - A private network IP address that can
1987	// be shared by multiple Internal Load Balancer forwarding rules.
1988	//   "VPC_PEERING" - IP range for peer networks.
1989	Purpose string `json:"purpose,omitempty"`
1990
1991	// Region: [Output Only] The URL of the region where a regional address
1992	// resides. For regional addresses, you must specify the region as a
1993	// path parameter in the HTTP request URL. *This field is not applicable
1994	// to global addresses.*
1995	Region string `json:"region,omitempty"`
1996
1997	// SelfLink: [Output Only] Server-defined URL for the resource.
1998	SelfLink string `json:"selfLink,omitempty"`
1999
2000	// Status: [Output Only] The status of the address, which can be one of
2001	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
2002	// currently in the process of being reserved. A RESERVED address is
2003	// currently reserved and available to use. An IN_USE address is
2004	// currently being used by another resource and is not available.
2005	//
2006	// Possible values:
2007	//   "IN_USE" - Address is being used by another resource and is not
2008	// available.
2009	//   "RESERVED" - Address is reserved and available to use.
2010	//   "RESERVING" - Address is being reserved.
2011	Status string `json:"status,omitempty"`
2012
2013	// Subnetwork: The URL of the subnetwork in which to reserve the
2014	// address. If an IP address is specified, it must be within the
2015	// subnetwork's IP range. This field can only be used with INTERNAL type
2016	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
2017	Subnetwork string `json:"subnetwork,omitempty"`
2018
2019	// Users: [Output Only] The URLs of the resources that are using this
2020	// address.
2021	Users []string `json:"users,omitempty"`
2022
2023	// ServerResponse contains the HTTP response code and headers from the
2024	// server.
2025	googleapi.ServerResponse `json:"-"`
2026
2027	// ForceSendFields is a list of field names (e.g. "Address") to
2028	// unconditionally include in API requests. By default, fields with
2029	// empty or default values are omitted from API requests. However, any
2030	// non-pointer, non-interface field appearing in ForceSendFields will be
2031	// sent to the server regardless of whether the field is empty or not.
2032	// This may be used to include empty fields in Patch requests.
2033	ForceSendFields []string `json:"-"`
2034
2035	// NullFields is a list of field names (e.g. "Address") to include in
2036	// API requests with the JSON null value. By default, fields with empty
2037	// values are omitted from API requests. However, any field with an
2038	// empty value appearing in NullFields will be sent to the server as
2039	// null. It is an error if a field in this list has a non-empty value.
2040	// This may be used to include null fields in Patch requests.
2041	NullFields []string `json:"-"`
2042}
2043
2044func (s *Address) MarshalJSON() ([]byte, error) {
2045	type NoMethod Address
2046	raw := NoMethod(*s)
2047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2048}
2049
2050type AddressAggregatedList struct {
2051	// Id: [Output Only] Unique identifier for the resource; defined by the
2052	// server.
2053	Id string `json:"id,omitempty"`
2054
2055	// Items: A list of AddressesScopedList resources.
2056	Items map[string]AddressesScopedList `json:"items,omitempty"`
2057
2058	// Kind: [Output Only] Type of resource. Always
2059	// compute#addressAggregatedList for aggregated lists of addresses.
2060	Kind string `json:"kind,omitempty"`
2061
2062	// NextPageToken: [Output Only] This token allows you to get the next
2063	// page of results for list requests. If the number of results is larger
2064	// than maxResults, use the nextPageToken as a value for the query
2065	// parameter pageToken in the next list request. Subsequent list
2066	// requests will have their own nextPageToken to continue paging through
2067	// the results.
2068	NextPageToken string `json:"nextPageToken,omitempty"`
2069
2070	// SelfLink: [Output Only] Server-defined URL for this resource.
2071	SelfLink string `json:"selfLink,omitempty"`
2072
2073	// Unreachables: [Output Only] Unreachable resources.
2074	Unreachables []string `json:"unreachables,omitempty"`
2075
2076	// Warning: [Output Only] Informational warning message.
2077	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
2078
2079	// ServerResponse contains the HTTP response code and headers from the
2080	// server.
2081	googleapi.ServerResponse `json:"-"`
2082
2083	// ForceSendFields is a list of field names (e.g. "Id") to
2084	// unconditionally include in API requests. By default, fields with
2085	// empty or default values are omitted from API requests. However, any
2086	// non-pointer, non-interface field appearing in ForceSendFields will be
2087	// sent to the server regardless of whether the field is empty or not.
2088	// This may be used to include empty fields in Patch requests.
2089	ForceSendFields []string `json:"-"`
2090
2091	// NullFields is a list of field names (e.g. "Id") to include in API
2092	// requests with the JSON null value. By default, fields with empty
2093	// values are omitted from API requests. However, any field with an
2094	// empty value appearing in NullFields will be sent to the server as
2095	// null. It is an error if a field in this list has a non-empty value.
2096	// This may be used to include null fields in Patch requests.
2097	NullFields []string `json:"-"`
2098}
2099
2100func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
2101	type NoMethod AddressAggregatedList
2102	raw := NoMethod(*s)
2103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2104}
2105
2106// AddressAggregatedListWarning: [Output Only] Informational warning
2107// message.
2108type AddressAggregatedListWarning struct {
2109	// Code: [Output Only] A warning code, if applicable. For example,
2110	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2111	// the response.
2112	//
2113	// Possible values:
2114	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
2115	// changes made by a failed operation.
2116	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
2117	// created.
2118	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
2119	// resources has a type marked as deprecated
2120	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
2121	// that is larger than image size.
2122	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
2123	// resources has a type marked as experimental
2124	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
2125	// call
2126	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
2127	// overridden. Deprecated unused field.
2128	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
2129	// injected kernel, which is deprecated.
2130	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
2131	// exceedingly large number of resources
2132	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
2133	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
2134	// not assigned to an instance on the network.
2135	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
2136	// ip forward.
2137	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
2138	// refers to an instance that does not exist.
2139	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
2140	// URL refers to an instance that is not on the same network as the
2141	// route.
2142	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
2143	// have a status of RUNNING.
2144	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
2145	// continue the process despite the mentioned error.
2146	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
2147	// page.
2148	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
2149	// missing due to errors
2150	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
2151	// that requires a TOS they have not accepted.
2152	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
2153	// resource is in use.
2154	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
2155	// auto-delete could not be deleted because they were in use.
2156	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
2157	// ignored.
2158	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
2159	// instance group manager is valid as such, but its application does not
2160	// make a lot of sense, because it allows only single instance in
2161	// instance group.
2162	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
2163	// are present
2164	//   "UNREACHABLE" - A given scope cannot be reached.
2165	Code string `json:"code,omitempty"`
2166
2167	// Data: [Output Only] Metadata about this warning in key: value format.
2168	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
2169	// }
2170	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2171
2172	// Message: [Output Only] A human-readable description of the warning
2173	// code.
2174	Message string `json:"message,omitempty"`
2175
2176	// ForceSendFields is a list of field names (e.g. "Code") to
2177	// unconditionally include in API requests. By default, fields with
2178	// empty or default values are omitted from API requests. However, any
2179	// non-pointer, non-interface field appearing in ForceSendFields will be
2180	// sent to the server regardless of whether the field is empty or not.
2181	// This may be used to include empty fields in Patch requests.
2182	ForceSendFields []string `json:"-"`
2183
2184	// NullFields is a list of field names (e.g. "Code") to include in API
2185	// requests with the JSON null value. By default, fields with empty
2186	// values are omitted from API requests. However, any field with an
2187	// empty value appearing in NullFields will be sent to the server as
2188	// null. It is an error if a field in this list has a non-empty value.
2189	// This may be used to include null fields in Patch requests.
2190	NullFields []string `json:"-"`
2191}
2192
2193func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2194	type NoMethod AddressAggregatedListWarning
2195	raw := NoMethod(*s)
2196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2197}
2198
2199type AddressAggregatedListWarningData struct {
2200	// Key: [Output Only] A key that provides more detail on the warning
2201	// being returned. For example, for warnings where there are no results
2202	// in a list request for a particular zone, this key might be scope and
2203	// the key value might be the zone name. Other examples might be a key
2204	// indicating a deprecated resource and a suggested replacement, or a
2205	// warning about invalid network settings (for example, if an instance
2206	// attempts to perform IP forwarding but is not enabled for IP
2207	// forwarding).
2208	Key string `json:"key,omitempty"`
2209
2210	// Value: [Output Only] A warning data value corresponding to the key.
2211	Value string `json:"value,omitempty"`
2212
2213	// ForceSendFields is a list of field names (e.g. "Key") to
2214	// unconditionally include in API requests. By default, fields with
2215	// empty or default values are omitted from API requests. However, any
2216	// non-pointer, non-interface field appearing in ForceSendFields will be
2217	// sent to the server regardless of whether the field is empty or not.
2218	// This may be used to include empty fields in Patch requests.
2219	ForceSendFields []string `json:"-"`
2220
2221	// NullFields is a list of field names (e.g. "Key") to include in API
2222	// requests with the JSON null value. By default, fields with empty
2223	// values are omitted from API requests. However, any field with an
2224	// empty value appearing in NullFields will be sent to the server as
2225	// null. It is an error if a field in this list has a non-empty value.
2226	// This may be used to include null fields in Patch requests.
2227	NullFields []string `json:"-"`
2228}
2229
2230func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2231	type NoMethod AddressAggregatedListWarningData
2232	raw := NoMethod(*s)
2233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2234}
2235
2236// AddressList: Contains a list of addresses.
2237type AddressList struct {
2238	// Id: [Output Only] Unique identifier for the resource; defined by the
2239	// server.
2240	Id string `json:"id,omitempty"`
2241
2242	// Items: A list of Address resources.
2243	Items []*Address `json:"items,omitempty"`
2244
2245	// Kind: [Output Only] Type of resource. Always compute#addressList for
2246	// lists of addresses.
2247	Kind string `json:"kind,omitempty"`
2248
2249	// NextPageToken: [Output Only] This token allows you to get the next
2250	// page of results for list requests. If the number of results is larger
2251	// than maxResults, use the nextPageToken as a value for the query
2252	// parameter pageToken in the next list request. Subsequent list
2253	// requests will have their own nextPageToken to continue paging through
2254	// the results.
2255	NextPageToken string `json:"nextPageToken,omitempty"`
2256
2257	// SelfLink: [Output Only] Server-defined URL for this resource.
2258	SelfLink string `json:"selfLink,omitempty"`
2259
2260	// Warning: [Output Only] Informational warning message.
2261	Warning *AddressListWarning `json:"warning,omitempty"`
2262
2263	// ServerResponse contains the HTTP response code and headers from the
2264	// server.
2265	googleapi.ServerResponse `json:"-"`
2266
2267	// ForceSendFields is a list of field names (e.g. "Id") to
2268	// unconditionally include in API requests. By default, fields with
2269	// empty or default values are omitted from API requests. However, any
2270	// non-pointer, non-interface field appearing in ForceSendFields will be
2271	// sent to the server regardless of whether the field is empty or not.
2272	// This may be used to include empty fields in Patch requests.
2273	ForceSendFields []string `json:"-"`
2274
2275	// NullFields is a list of field names (e.g. "Id") to include in API
2276	// requests with the JSON null value. By default, fields with empty
2277	// values are omitted from API requests. However, any field with an
2278	// empty value appearing in NullFields will be sent to the server as
2279	// null. It is an error if a field in this list has a non-empty value.
2280	// This may be used to include null fields in Patch requests.
2281	NullFields []string `json:"-"`
2282}
2283
2284func (s *AddressList) MarshalJSON() ([]byte, error) {
2285	type NoMethod AddressList
2286	raw := NoMethod(*s)
2287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2288}
2289
2290// AddressListWarning: [Output Only] Informational warning message.
2291type AddressListWarning struct {
2292	// Code: [Output Only] A warning code, if applicable. For example,
2293	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2294	// the response.
2295	//
2296	// Possible values:
2297	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
2298	// changes made by a failed operation.
2299	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
2300	// created.
2301	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
2302	// resources has a type marked as deprecated
2303	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
2304	// that is larger than image size.
2305	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
2306	// resources has a type marked as experimental
2307	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
2308	// call
2309	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
2310	// overridden. Deprecated unused field.
2311	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
2312	// injected kernel, which is deprecated.
2313	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
2314	// exceedingly large number of resources
2315	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
2316	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
2317	// not assigned to an instance on the network.
2318	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
2319	// ip forward.
2320	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
2321	// refers to an instance that does not exist.
2322	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
2323	// URL refers to an instance that is not on the same network as the
2324	// route.
2325	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
2326	// have a status of RUNNING.
2327	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
2328	// continue the process despite the mentioned error.
2329	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
2330	// page.
2331	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
2332	// missing due to errors
2333	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
2334	// that requires a TOS they have not accepted.
2335	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
2336	// resource is in use.
2337	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
2338	// auto-delete could not be deleted because they were in use.
2339	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
2340	// ignored.
2341	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
2342	// instance group manager is valid as such, but its application does not
2343	// make a lot of sense, because it allows only single instance in
2344	// instance group.
2345	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
2346	// are present
2347	//   "UNREACHABLE" - A given scope cannot be reached.
2348	Code string `json:"code,omitempty"`
2349
2350	// Data: [Output Only] Metadata about this warning in key: value format.
2351	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
2352	// }
2353	Data []*AddressListWarningData `json:"data,omitempty"`
2354
2355	// Message: [Output Only] A human-readable description of the warning
2356	// code.
2357	Message string `json:"message,omitempty"`
2358
2359	// ForceSendFields is a list of field names (e.g. "Code") to
2360	// unconditionally include in API requests. By default, fields with
2361	// empty or default values are omitted from API requests. However, any
2362	// non-pointer, non-interface field appearing in ForceSendFields will be
2363	// sent to the server regardless of whether the field is empty or not.
2364	// This may be used to include empty fields in Patch requests.
2365	ForceSendFields []string `json:"-"`
2366
2367	// NullFields is a list of field names (e.g. "Code") to include in API
2368	// requests with the JSON null value. By default, fields with empty
2369	// values are omitted from API requests. However, any field with an
2370	// empty value appearing in NullFields will be sent to the server as
2371	// null. It is an error if a field in this list has a non-empty value.
2372	// This may be used to include null fields in Patch requests.
2373	NullFields []string `json:"-"`
2374}
2375
2376func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2377	type NoMethod AddressListWarning
2378	raw := NoMethod(*s)
2379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2380}
2381
2382type AddressListWarningData struct {
2383	// Key: [Output Only] A key that provides more detail on the warning
2384	// being returned. For example, for warnings where there are no results
2385	// in a list request for a particular zone, this key might be scope and
2386	// the key value might be the zone name. Other examples might be a key
2387	// indicating a deprecated resource and a suggested replacement, or a
2388	// warning about invalid network settings (for example, if an instance
2389	// attempts to perform IP forwarding but is not enabled for IP
2390	// forwarding).
2391	Key string `json:"key,omitempty"`
2392
2393	// Value: [Output Only] A warning data value corresponding to the key.
2394	Value string `json:"value,omitempty"`
2395
2396	// ForceSendFields is a list of field names (e.g. "Key") to
2397	// unconditionally include in API requests. By default, fields with
2398	// empty or default values are omitted from API requests. However, any
2399	// non-pointer, non-interface field appearing in ForceSendFields will be
2400	// sent to the server regardless of whether the field is empty or not.
2401	// This may be used to include empty fields in Patch requests.
2402	ForceSendFields []string `json:"-"`
2403
2404	// NullFields is a list of field names (e.g. "Key") to include in API
2405	// requests with the JSON null value. By default, fields with empty
2406	// values are omitted from API requests. However, any field with an
2407	// empty value appearing in NullFields will be sent to the server as
2408	// null. It is an error if a field in this list has a non-empty value.
2409	// This may be used to include null fields in Patch requests.
2410	NullFields []string `json:"-"`
2411}
2412
2413func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2414	type NoMethod AddressListWarningData
2415	raw := NoMethod(*s)
2416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2417}
2418
2419type AddressesScopedList struct {
2420	// Addresses: [Output Only] A list of addresses contained in this scope.
2421	Addresses []*Address `json:"addresses,omitempty"`
2422
2423	// Warning: [Output Only] Informational warning which replaces the list
2424	// of addresses when the list is empty.
2425	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2426
2427	// ForceSendFields is a list of field names (e.g. "Addresses") to
2428	// unconditionally include in API requests. By default, fields with
2429	// empty or default values are omitted from API requests. However, any
2430	// non-pointer, non-interface field appearing in ForceSendFields will be
2431	// sent to the server regardless of whether the field is empty or not.
2432	// This may be used to include empty fields in Patch requests.
2433	ForceSendFields []string `json:"-"`
2434
2435	// NullFields is a list of field names (e.g. "Addresses") to include in
2436	// API requests with the JSON null value. By default, fields with empty
2437	// values are omitted from API requests. However, any field with an
2438	// empty value appearing in NullFields will be sent to the server as
2439	// null. It is an error if a field in this list has a non-empty value.
2440	// This may be used to include null fields in Patch requests.
2441	NullFields []string `json:"-"`
2442}
2443
2444func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2445	type NoMethod AddressesScopedList
2446	raw := NoMethod(*s)
2447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2448}
2449
2450// AddressesScopedListWarning: [Output Only] Informational warning which
2451// replaces the list of addresses when the list is empty.
2452type AddressesScopedListWarning struct {
2453	// Code: [Output Only] A warning code, if applicable. For example,
2454	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2455	// the response.
2456	//
2457	// Possible values:
2458	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
2459	// changes made by a failed operation.
2460	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
2461	// created.
2462	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
2463	// resources has a type marked as deprecated
2464	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
2465	// that is larger than image size.
2466	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
2467	// resources has a type marked as experimental
2468	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
2469	// call
2470	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
2471	// overridden. Deprecated unused field.
2472	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
2473	// injected kernel, which is deprecated.
2474	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
2475	// exceedingly large number of resources
2476	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
2477	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
2478	// not assigned to an instance on the network.
2479	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
2480	// ip forward.
2481	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
2482	// refers to an instance that does not exist.
2483	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
2484	// URL refers to an instance that is not on the same network as the
2485	// route.
2486	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
2487	// have a status of RUNNING.
2488	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
2489	// continue the process despite the mentioned error.
2490	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
2491	// page.
2492	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
2493	// missing due to errors
2494	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
2495	// that requires a TOS they have not accepted.
2496	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
2497	// resource is in use.
2498	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
2499	// auto-delete could not be deleted because they were in use.
2500	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
2501	// ignored.
2502	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
2503	// instance group manager is valid as such, but its application does not
2504	// make a lot of sense, because it allows only single instance in
2505	// instance group.
2506	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
2507	// are present
2508	//   "UNREACHABLE" - A given scope cannot be reached.
2509	Code string `json:"code,omitempty"`
2510
2511	// Data: [Output Only] Metadata about this warning in key: value format.
2512	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
2513	// }
2514	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2515
2516	// Message: [Output Only] A human-readable description of the warning
2517	// code.
2518	Message string `json:"message,omitempty"`
2519
2520	// ForceSendFields is a list of field names (e.g. "Code") to
2521	// unconditionally include in API requests. By default, fields with
2522	// empty or default values are omitted from API requests. However, any
2523	// non-pointer, non-interface field appearing in ForceSendFields will be
2524	// sent to the server regardless of whether the field is empty or not.
2525	// This may be used to include empty fields in Patch requests.
2526	ForceSendFields []string `json:"-"`
2527
2528	// NullFields is a list of field names (e.g. "Code") to include in API
2529	// requests with the JSON null value. By default, fields with empty
2530	// values are omitted from API requests. However, any field with an
2531	// empty value appearing in NullFields will be sent to the server as
2532	// null. It is an error if a field in this list has a non-empty value.
2533	// This may be used to include null fields in Patch requests.
2534	NullFields []string `json:"-"`
2535}
2536
2537func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2538	type NoMethod AddressesScopedListWarning
2539	raw := NoMethod(*s)
2540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2541}
2542
2543type AddressesScopedListWarningData struct {
2544	// Key: [Output Only] A key that provides more detail on the warning
2545	// being returned. For example, for warnings where there are no results
2546	// in a list request for a particular zone, this key might be scope and
2547	// the key value might be the zone name. Other examples might be a key
2548	// indicating a deprecated resource and a suggested replacement, or a
2549	// warning about invalid network settings (for example, if an instance
2550	// attempts to perform IP forwarding but is not enabled for IP
2551	// forwarding).
2552	Key string `json:"key,omitempty"`
2553
2554	// Value: [Output Only] A warning data value corresponding to the key.
2555	Value string `json:"value,omitempty"`
2556
2557	// ForceSendFields is a list of field names (e.g. "Key") to
2558	// unconditionally include in API requests. By default, fields with
2559	// empty or default values are omitted from API requests. However, any
2560	// non-pointer, non-interface field appearing in ForceSendFields will be
2561	// sent to the server regardless of whether the field is empty or not.
2562	// This may be used to include empty fields in Patch requests.
2563	ForceSendFields []string `json:"-"`
2564
2565	// NullFields is a list of field names (e.g. "Key") to include in API
2566	// requests with the JSON null value. By default, fields with empty
2567	// values are omitted from API requests. However, any field with an
2568	// empty value appearing in NullFields will be sent to the server as
2569	// null. It is an error if a field in this list has a non-empty value.
2570	// This may be used to include null fields in Patch requests.
2571	NullFields []string `json:"-"`
2572}
2573
2574func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2575	type NoMethod AddressesScopedListWarningData
2576	raw := NoMethod(*s)
2577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2578}
2579
2580// AdvancedMachineFeatures: Specifies options for controlling advanced
2581// machine features. Options that would traditionally be configured in a
2582// BIOS belong here. Features that require operating system support may
2583// have corresponding entries in the GuestOsFeatures of an Image (e.g.,
2584// whether or not the OS in the Image supports nested virtualization
2585// being enabled or disabled).
2586type AdvancedMachineFeatures struct {
2587	// EnableNestedVirtualization: Whether to enable nested virtualization
2588	// or not (default is false).
2589	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
2590
2591	// ThreadsPerCore: The number of threads per physical core. To disable
2592	// simultaneous multithreading (SMT) set this to 1. If unset, the
2593	// maximum number of threads supported per core by the underlying
2594	// processor is assumed.
2595	ThreadsPerCore int64 `json:"threadsPerCore,omitempty"`
2596
2597	// ForceSendFields is a list of field names (e.g.
2598	// "EnableNestedVirtualization") to unconditionally include in API
2599	// requests. By default, fields with empty or default values are omitted
2600	// from API requests. However, any non-pointer, non-interface field
2601	// appearing in ForceSendFields will be sent to the server regardless of
2602	// whether the field is empty or not. This may be used to include empty
2603	// fields in Patch requests.
2604	ForceSendFields []string `json:"-"`
2605
2606	// NullFields is a list of field names (e.g.
2607	// "EnableNestedVirtualization") to include in API requests with the
2608	// JSON null value. By default, fields with empty values are omitted
2609	// from API requests. However, any field with an empty value appearing
2610	// in NullFields will be sent to the server as null. It is an error if a
2611	// field in this list has a non-empty value. This may be used to include
2612	// null fields in Patch requests.
2613	NullFields []string `json:"-"`
2614}
2615
2616func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
2617	type NoMethod AdvancedMachineFeatures
2618	raw := NoMethod(*s)
2619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2620}
2621
2622// AliasIpRange: An alias IP range attached to an instance's network
2623// interface.
2624type AliasIpRange struct {
2625	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2626	// IP CIDR range must belong to the specified subnetwork and cannot
2627	// contain IP addresses reserved by system or used by other network
2628	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2629	// a netmask (such as /24) or a CIDR-formatted string (such as
2630	// 10.1.2.0/24).
2631	IpCidrRange string `json:"ipCidrRange,omitempty"`
2632
2633	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2634	// which to allocate an IP alias range. If not specified, the primary
2635	// range of the subnetwork is used.
2636	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2637
2638	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2639	// unconditionally include in API requests. By default, fields with
2640	// empty or default values are omitted from API requests. However, any
2641	// non-pointer, non-interface field appearing in ForceSendFields will be
2642	// sent to the server regardless of whether the field is empty or not.
2643	// This may be used to include empty fields in Patch requests.
2644	ForceSendFields []string `json:"-"`
2645
2646	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2647	// in API requests with the JSON null value. By default, fields with
2648	// empty values are omitted from API requests. However, any field with
2649	// an empty value appearing in NullFields will be sent to the server as
2650	// null. It is an error if a field in this list has a non-empty value.
2651	// This may be used to include null fields in Patch requests.
2652	NullFields []string `json:"-"`
2653}
2654
2655func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2656	type NoMethod AliasIpRange
2657	raw := NoMethod(*s)
2658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2659}
2660
2661type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2662	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2663	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2664
2665	// Interface: Specifies the disk interface to use for attaching this
2666	// disk, which is either SCSI or NVME. The default is SCSI. For
2667	// performance characteristics of SCSI over NVMe, see Local SSD
2668	// performance.
2669	//
2670	// Possible values:
2671	//   "NVME"
2672	//   "SCSI"
2673	Interface string `json:"interface,omitempty"`
2674
2675	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2676	// unconditionally include in API requests. By default, fields with
2677	// empty or default values are omitted from API requests. However, any
2678	// non-pointer, non-interface field appearing in ForceSendFields will be
2679	// sent to the server regardless of whether the field is empty or not.
2680	// This may be used to include empty fields in Patch requests.
2681	ForceSendFields []string `json:"-"`
2682
2683	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2684	// API requests with the JSON null value. By default, fields with empty
2685	// values are omitted from API requests. However, any field with an
2686	// empty value appearing in NullFields will be sent to the server as
2687	// null. It is an error if a field in this list has a non-empty value.
2688	// This may be used to include null fields in Patch requests.
2689	NullFields []string `json:"-"`
2690}
2691
2692func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2693	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2694	raw := NoMethod(*s)
2695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2696}
2697
2698// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2699// of the SKU instances being reserved. Next ID: 9
2700type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2701	// GuestAccelerators: Specifies accelerator type and count.
2702	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2703
2704	// LocalSsds: Specifies amount of local ssd to reserve with each
2705	// instance. The type of disk is local-ssd.
2706	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2707
2708	// LocationHint: An opaque location hint used to place the allocation
2709	// close to other resources. This field is for use by internal tools
2710	// that use the public API.
2711	LocationHint string `json:"locationHint,omitempty"`
2712
2713	// MachineType: Specifies type of machine (name only) which has fixed
2714	// number of vCPUs and fixed amount of memory. This also includes
2715	// specifying custom machine type following
2716	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2717	MachineType string `json:"machineType,omitempty"`
2718
2719	// MinCpuPlatform: Minimum cpu platform the reservation.
2720	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2721
2722	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2723	// to unconditionally include in API requests. By default, fields with
2724	// empty or default values are omitted from API requests. However, any
2725	// non-pointer, non-interface field appearing in ForceSendFields will be
2726	// sent to the server regardless of whether the field is empty or not.
2727	// This may be used to include empty fields in Patch requests.
2728	ForceSendFields []string `json:"-"`
2729
2730	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2731	// include in API requests with the JSON null value. By default, fields
2732	// with empty values are omitted from API requests. However, any field
2733	// with an empty value appearing in NullFields will be sent to the
2734	// server as null. It is an error if a field in this list has a
2735	// non-empty value. This may be used to include null fields in Patch
2736	// requests.
2737	NullFields []string `json:"-"`
2738}
2739
2740func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2741	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2742	raw := NoMethod(*s)
2743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2744}
2745
2746// AllocationSpecificSKUReservation: This reservation type allows to pre
2747// allocate specific instance configuration. Next ID: 5
2748type AllocationSpecificSKUReservation struct {
2749	// Count: Specifies the number of resources that are allocated.
2750	Count int64 `json:"count,omitempty,string"`
2751
2752	// InUseCount: [Output Only] Indicates how many instances are in use.
2753	InUseCount int64 `json:"inUseCount,omitempty,string"`
2754
2755	// InstanceProperties: The instance properties for the reservation.
2756	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2757
2758	// ForceSendFields is a list of field names (e.g. "Count") to
2759	// unconditionally include in API requests. By default, fields with
2760	// empty or default values are omitted from API requests. However, any
2761	// non-pointer, non-interface field appearing in ForceSendFields will be
2762	// sent to the server regardless of whether the field is empty or not.
2763	// This may be used to include empty fields in Patch requests.
2764	ForceSendFields []string `json:"-"`
2765
2766	// NullFields is a list of field names (e.g. "Count") to include in API
2767	// requests with the JSON null value. By default, fields with empty
2768	// values are omitted from API requests. However, any field with an
2769	// empty value appearing in NullFields will be sent to the server as
2770	// null. It is an error if a field in this list has a non-empty value.
2771	// This may be used to include null fields in Patch requests.
2772	NullFields []string `json:"-"`
2773}
2774
2775func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2776	type NoMethod AllocationSpecificSKUReservation
2777	raw := NoMethod(*s)
2778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2779}
2780
2781// AttachedDisk: An instance-attached disk resource.
2782type AttachedDisk struct {
2783	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2784	// instance is deleted (but not when the disk is detached from the
2785	// instance).
2786	AutoDelete bool `json:"autoDelete,omitempty"`
2787
2788	// Boot: Indicates that this is a boot disk. The virtual machine will
2789	// use the first partition of the disk for its root filesystem.
2790	Boot bool `json:"boot,omitempty"`
2791
2792	// DeviceName: Specifies a unique device name of your choice that is
2793	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2794	// system running within the instance. This name can be used to
2795	// reference the device for mounting, resizing, and so on, from within
2796	// the instance. If not specified, the server chooses a default device
2797	// name to apply to this disk, in the form persistent-disk-x, where x is
2798	// a number assigned by Google Compute Engine. This field is only
2799	// applicable for persistent disks.
2800	DeviceName string `json:"deviceName,omitempty"`
2801
2802	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2803	// customer-supplied encryption key. If you are creating a new disk,
2804	// this field encrypts the new disk using an encryption key that you
2805	// provide. If you are attaching an existing disk that is already
2806	// encrypted, this field decrypts the disk using the customer-supplied
2807	// encryption key. If you encrypt a disk using a customer-supplied key,
2808	// you must provide the same key again when you attempt to use this
2809	// resource at a later time. For example, you must provide the key when
2810	// you create a snapshot or an image from the disk or when you attach
2811	// the disk to a virtual machine instance. If you do not provide an
2812	// encryption key, then the disk will be encrypted using an
2813	// automatically generated key and you do not need to provide a key to
2814	// use the disk later. Instance templates do not store customer-supplied
2815	// encryption keys, so you cannot use your own keys to encrypt disks in
2816	// a managed instance group.
2817	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2818
2819	// DiskSizeGb: The size of the disk in GB.
2820	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2821
2822	// GuestOsFeatures: A list of features to enable on the guest operating
2823	// system. Applicable only for bootable images. Read Enabling guest
2824	// operating system features to see a list of available options.
2825	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2826
2827	// Index: [Output Only] A zero-based index to this disk, where 0 is
2828	// reserved for the boot disk. If you have many disks attached to an
2829	// instance, each disk would have a unique index number.
2830	Index int64 `json:"index,omitempty"`
2831
2832	// InitializeParams: [Input Only] Specifies the parameters for a new
2833	// disk that will be created alongside the new instance. Use
2834	// initialization parameters to create boot disks or local SSDs attached
2835	// to the new instance. This property is mutually exclusive with the
2836	// source property; you can only define one or the other, but not both.
2837	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2838
2839	// Interface: Specifies the disk interface to use for attaching this
2840	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2841	// disks must always use SCSI and the request will fail if you attempt
2842	// to attach a persistent disk in any other format than SCSI. Local SSDs
2843	// can use either NVME or SCSI. For performance characteristics of SCSI
2844	// over NVMe, see Local SSD performance.
2845	//
2846	// Possible values:
2847	//   "NVME"
2848	//   "SCSI"
2849	Interface string `json:"interface,omitempty"`
2850
2851	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2852	// for attached disks.
2853	Kind string `json:"kind,omitempty"`
2854
2855	// Licenses: [Output Only] Any valid publicly visible licenses.
2856	Licenses []string `json:"licenses,omitempty"`
2857
2858	// Mode: The mode in which to attach this disk, either READ_WRITE or
2859	// READ_ONLY. If not specified, the default is to attach the disk in
2860	// READ_WRITE mode.
2861	//
2862	// Possible values:
2863	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple
2864	// virtual machines can use a disk in read-only mode at a time.
2865	//   "READ_WRITE" - *[Default]* Attaches this disk in read-write mode.
2866	// Only one virtual machine at a time can be attached to a disk in
2867	// read-write mode.
2868	Mode string `json:"mode,omitempty"`
2869
2870	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2871	// stored on disk
2872	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2873
2874	// Source: Specifies a valid partial or full URL to an existing
2875	// Persistent Disk resource. When creating a new instance, one of
2876	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2877	// disks.source is required except for local SSD. If desired, you can
2878	// also attach existing non-root persistent disks using this property.
2879	// This field is only applicable for persistent disks. Note that for
2880	// InstanceTemplate, specify the disk name, not the URL for the disk.
2881	Source string `json:"source,omitempty"`
2882
2883	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2884	// If not specified, the default is PERSISTENT.
2885	//
2886	// Possible values:
2887	//   "PERSISTENT"
2888	//   "SCRATCH"
2889	Type string `json:"type,omitempty"`
2890
2891	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2892	// unconditionally include in API requests. By default, fields with
2893	// empty or default values are omitted from API requests. However, any
2894	// non-pointer, non-interface field appearing in ForceSendFields will be
2895	// sent to the server regardless of whether the field is empty or not.
2896	// This may be used to include empty fields in Patch requests.
2897	ForceSendFields []string `json:"-"`
2898
2899	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2900	// API requests with the JSON null value. By default, fields with empty
2901	// values are omitted from API requests. However, any field with an
2902	// empty value appearing in NullFields will be sent to the server as
2903	// null. It is an error if a field in this list has a non-empty value.
2904	// This may be used to include null fields in Patch requests.
2905	NullFields []string `json:"-"`
2906}
2907
2908func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2909	type NoMethod AttachedDisk
2910	raw := NoMethod(*s)
2911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2912}
2913
2914// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2915// for a new disk that will be created alongside the new instance. Use
2916// initialization parameters to create boot disks or local SSDs attached
2917// to the new instance. This property is mutually exclusive with the
2918// source property; you can only define one or the other, but not both.
2919type AttachedDiskInitializeParams struct {
2920	// Description: An optional description. Provide this property when
2921	// creating the disk.
2922	Description string `json:"description,omitempty"`
2923
2924	// DiskName: Specifies the disk name. If not specified, the default is
2925	// to use the name of the instance. If a disk with the same name already
2926	// exists in the given region, the existing disk is attached to the new
2927	// instance and the new disk is not created.
2928	DiskName string `json:"diskName,omitempty"`
2929
2930	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2931	// must be at least 10 GB. If you specify a sourceImage, which is
2932	// required for boot disks, the default size is the size of the
2933	// sourceImage. If you do not specify a sourceImage, the default disk
2934	// size is 500 GB.
2935	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2936
2937	// DiskType: Specifies the disk type to use to create the instance. If
2938	// not specified, the default is pd-standard, specified using the full
2939	// URL. For example:
2940	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
2941	// /diskTypes/pd-standard For a full list of acceptable values, see
2942	// Persistent disk types. If you define this field, you can provide
2943	// either the full or partial URL. For example, the following are valid
2944	// values: -
2945	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
2946	// /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType
2947	// - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this
2948	// is the name of the disk type, not URL.
2949	DiskType string `json:"diskType,omitempty"`
2950
2951	// Labels: Labels to apply to this disk. These can be later modified by
2952	// the disks.setLabels method. This field is only applicable for
2953	// persistent disks.
2954	Labels map[string]string `json:"labels,omitempty"`
2955
2956	// OnUpdateAction: Specifies which action to take on instance update
2957	// with this disk. Default is to use the existing disk.
2958	//
2959	// Possible values:
2960	//   "RECREATE_DISK" - Always recreate the disk.
2961	//   "RECREATE_DISK_IF_SOURCE_CHANGED" - Recreate the disk if source
2962	// (image, snapshot) of this disk is different from source of existing
2963	// disk.
2964	//   "USE_EXISTING_DISK" - Use the existing disk, this is the default
2965	// behaviour.
2966	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2967
2968	// ProvisionedIops: Indicates how many IOPS to provision for the disk.
2969	// This sets the number of I/O operations per second that the disk can
2970	// handle. Values must be between 10,000 and 120,000. For more details,
2971	// see the Extreme persistent disk documentation.
2972	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
2973
2974	// ResourcePolicies: Resource policies applied to this disk for
2975	// automatic snapshot creations. Specified using the full or partial
2976	// URL. For instance template, specify only the resource policy name.
2977	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2978
2979	// SourceImage: The source image to create this disk. When creating a
2980	// new instance, one of initializeParams.sourceImage or
2981	// initializeParams.sourceSnapshot or disks.source is required except
2982	// for local SSD. To create a disk with one of the public operating
2983	// system images, specify the image by its family name. For example,
2984	// specify family/debian-9 to use the latest Debian 9 image:
2985	// projects/debian-cloud/global/images/family/debian-9 Alternatively,
2986	// use a specific version of a public operating system image:
2987	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To
2988	// create a disk with a custom image that you created, specify the image
2989	// name in the following format: global/images/my-custom-image You can
2990	// also specify a custom image by its image family, which returns the
2991	// latest version of the image in that family. Replace the image name
2992	// with family/family-name: global/images/family/my-image-family If the
2993	// source image is deleted later, this field will not be set.
2994	SourceImage string `json:"sourceImage,omitempty"`
2995
2996	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2997	// source image. Required if the source image is protected by a
2998	// customer-supplied encryption key. Instance templates do not store
2999	// customer-supplied encryption keys, so you cannot create disks for
3000	// instances in a managed instance group if the source images are
3001	// encrypted with your own keys.
3002	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
3003
3004	// SourceSnapshot: The source snapshot to create this disk. When
3005	// creating a new instance, one of initializeParams.sourceSnapshot or
3006	// initializeParams.sourceImage or disks.source is required except for
3007	// local SSD. To create a disk with a snapshot that you created, specify
3008	// the snapshot name in the following format: global/snapshots/my-backup
3009	// If the source snapshot is deleted later, this field will not be set.
3010	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
3011
3012	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
3013	// the source snapshot.
3014	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
3015
3016	// ForceSendFields is a list of field names (e.g. "Description") to
3017	// unconditionally include in API requests. By default, fields with
3018	// empty or default values are omitted from API requests. However, any
3019	// non-pointer, non-interface field appearing in ForceSendFields will be
3020	// sent to the server regardless of whether the field is empty or not.
3021	// This may be used to include empty fields in Patch requests.
3022	ForceSendFields []string `json:"-"`
3023
3024	// NullFields is a list of field names (e.g. "Description") to include
3025	// in API requests with the JSON null value. By default, fields with
3026	// empty values are omitted from API requests. However, any field with
3027	// an empty value appearing in NullFields will be sent to the server as
3028	// null. It is an error if a field in this list has a non-empty value.
3029	// This may be used to include null fields in Patch requests.
3030	NullFields []string `json:"-"`
3031}
3032
3033func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
3034	type NoMethod AttachedDiskInitializeParams
3035	raw := NoMethod(*s)
3036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3037}
3038
3039// AuditConfig: Specifies the audit configuration for a service. The
3040// configuration determines which permission types are logged, and what
3041// identities, if any, are exempted from logging. An AuditConfig must
3042// have one or more AuditLogConfigs. If there are AuditConfigs for both
3043// `allServices` and a specific service, the union of the two
3044// AuditConfigs is used for that service: the log_types specified in
3045// each AuditConfig are enabled, and the exempted_members in each
3046// AuditLogConfig are exempted. Example Policy with multiple
3047// AuditConfigs: { "audit_configs": [ { "service": "allServices",
3048// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
3049// [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
3050// "log_type": "ADMIN_READ" } ] }, { "service":
3051// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
3052// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
3053// "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
3054// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
3055// jose@example.com from DATA_READ logging, and aliya@example.com from
3056// DATA_WRITE logging.
3057type AuditConfig struct {
3058	// AuditLogConfigs: The configuration for logging of each type of
3059	// permission.
3060	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
3061
3062	// ExemptedMembers: This is deprecated and has no effect. Do not use.
3063	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3064
3065	// Service: Specifies a service that will be enabled for audit logging.
3066	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
3067	// `allServices` is a special value that covers all services.
3068	Service string `json:"service,omitempty"`
3069
3070	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
3071	// unconditionally include in API requests. By default, fields with
3072	// empty or default values are omitted from API requests. However, any
3073	// non-pointer, non-interface field appearing in ForceSendFields will be
3074	// sent to the server regardless of whether the field is empty or not.
3075	// This may be used to include empty fields in Patch requests.
3076	ForceSendFields []string `json:"-"`
3077
3078	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
3079	// include in API requests with the JSON null value. By default, fields
3080	// with empty values are omitted from API requests. However, any field
3081	// with an empty value appearing in NullFields will be sent to the
3082	// server as null. It is an error if a field in this list has a
3083	// non-empty value. This may be used to include null fields in Patch
3084	// requests.
3085	NullFields []string `json:"-"`
3086}
3087
3088func (s *AuditConfig) MarshalJSON() ([]byte, error) {
3089	type NoMethod AuditConfig
3090	raw := NoMethod(*s)
3091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3092}
3093
3094// AuditLogConfig: Provides the configuration for logging a type of
3095// permissions. Example: { "audit_log_configs": [ { "log_type":
3096// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
3097// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
3098// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
3099// logging.
3100type AuditLogConfig struct {
3101	// ExemptedMembers: Specifies the identities that do not cause logging
3102	// for this type of permission. Follows the same format of
3103	// Binding.members.
3104	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3105
3106	// IgnoreChildExemptions: This is deprecated and has no effect. Do not
3107	// use.
3108	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
3109
3110	// LogType: The log type that this config enables.
3111	//
3112	// Possible values:
3113	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
3114	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
3115	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
3116	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
3117	LogType string `json:"logType,omitempty"`
3118
3119	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
3120	// unconditionally include in API requests. By default, fields with
3121	// empty or default values are omitted from API requests. However, any
3122	// non-pointer, non-interface field appearing in ForceSendFields will be
3123	// sent to the server regardless of whether the field is empty or not.
3124	// This may be used to include empty fields in Patch requests.
3125	ForceSendFields []string `json:"-"`
3126
3127	// NullFields is a list of field names (e.g. "ExemptedMembers") to
3128	// include in API requests with the JSON null value. By default, fields
3129	// with empty values are omitted from API requests. However, any field
3130	// with an empty value appearing in NullFields will be sent to the
3131	// server as null. It is an error if a field in this list has a
3132	// non-empty value. This may be used to include null fields in Patch
3133	// requests.
3134	NullFields []string `json:"-"`
3135}
3136
3137func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
3138	type NoMethod AuditLogConfig
3139	raw := NoMethod(*s)
3140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3141}
3142
3143// AuthorizationLoggingOptions: This is deprecated and has no effect. Do
3144// not use.
3145type AuthorizationLoggingOptions struct {
3146	// PermissionType: This is deprecated and has no effect. Do not use.
3147	//
3148	// Possible values:
3149	//   "ADMIN_READ" - This is deprecated and has no effect. Do not use.
3150	//   "ADMIN_WRITE" - This is deprecated and has no effect. Do not use.
3151	//   "DATA_READ" - This is deprecated and has no effect. Do not use.
3152	//   "DATA_WRITE" - This is deprecated and has no effect. Do not use.
3153	//   "PERMISSION_TYPE_UNSPECIFIED" - This is deprecated and has no
3154	// effect. Do not use.
3155	PermissionType string `json:"permissionType,omitempty"`
3156
3157	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3158	// unconditionally include in API requests. By default, fields with
3159	// empty or default values are omitted from API requests. However, any
3160	// non-pointer, non-interface field appearing in ForceSendFields will be
3161	// sent to the server regardless of whether the field is empty or not.
3162	// This may be used to include empty fields in Patch requests.
3163	ForceSendFields []string `json:"-"`
3164
3165	// NullFields is a list of field names (e.g. "PermissionType") to
3166	// include in API requests with the JSON null value. By default, fields
3167	// with empty values are omitted from API requests. However, any field
3168	// with an empty value appearing in NullFields will be sent to the
3169	// server as null. It is an error if a field in this list has a
3170	// non-empty value. This may be used to include null fields in Patch
3171	// requests.
3172	NullFields []string `json:"-"`
3173}
3174
3175func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3176	type NoMethod AuthorizationLoggingOptions
3177	raw := NoMethod(*s)
3178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3179}
3180
3181// Autoscaler: Represents an Autoscaler resource. Google Compute Engine
3182// has two Autoscaler resources: * Zonal
3183// (/compute/docs/reference/rest/v1/autoscalers) * Regional
3184// (/compute/docs/reference/rest/v1/regionAutoscalers) Use autoscalers
3185// to automatically add or delete instances from a managed instance
3186// group according to your defined autoscaling policy. For more
3187// information, read Autoscaling Groups of Instances. For zonal managed
3188// instance groups resource, use the autoscaler resource. For regional
3189// managed instance groups, use the regionAutoscalers resource.
3190type Autoscaler struct {
3191	// AutoscalingPolicy: The configuration parameters for the autoscaling
3192	// algorithm. You can define one or more signals for an autoscaler:
3193	// cpuUtilization, customMetricUtilizations, and
3194	// loadBalancingUtilization. If none of these are specified, the default
3195	// will be to autoscale based on cpuUtilization to 0.6 or 60%.
3196	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3197
3198	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3199	// format.
3200	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3201
3202	// Description: An optional description of this resource. Provide this
3203	// property when you create the resource.
3204	Description string `json:"description,omitempty"`
3205
3206	// Id: [Output Only] The unique identifier for the resource. This
3207	// identifier is defined by the server.
3208	Id uint64 `json:"id,omitempty,string"`
3209
3210	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3211	// for autoscalers.
3212	Kind string `json:"kind,omitempty"`
3213
3214	// Name: Name of the resource. Provided by the client when the resource
3215	// is created. The name must be 1-63 characters long, and comply with
3216	// RFC1035. Specifically, the name must be 1-63 characters long and
3217	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3218	// the first character must be a lowercase letter, and all following
3219	// characters must be a dash, lowercase letter, or digit, except the
3220	// last character, which cannot be a dash.
3221	Name string `json:"name,omitempty"`
3222
3223	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3224	// instances) computed by autoscaler. Autoscaler calculates the
3225	// recommended MIG size even when the autoscaling policy mode is
3226	// different from ON. This field is empty when autoscaler is not
3227	// connected to an existing managed instance group or autoscaler did not
3228	// generate its prediction.
3229	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3230
3231	// Region: [Output Only] URL of the region where the instance group
3232	// resides (for autoscalers living in regional scope).
3233	Region string `json:"region,omitempty"`
3234
3235	// ScalingScheduleStatus: [Output Only] Status information of existing
3236	// scaling schedules.
3237	ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"`
3238
3239	// SelfLink: [Output Only] Server-defined URL for the resource.
3240	SelfLink string `json:"selfLink,omitempty"`
3241
3242	// Status: [Output Only] The status of the autoscaler configuration.
3243	// Current set of possible values: - PENDING: Autoscaler backend hasn't
3244	// read new/updated configuration. - DELETING: Configuration is being
3245	// deleted. - ACTIVE: Configuration is acknowledged to be effective.
3246	// Some warnings might be present in the statusDetails field. - ERROR:
3247	// Configuration has errors. Actionable for users. Details are present
3248	// in the statusDetails field. New values might be added in the future.
3249	//
3250	// Possible values:
3251	//   "ACTIVE" - Configuration is acknowledged to be effective
3252	//   "DELETING" - Configuration is being deleted
3253	//   "ERROR" - Configuration has errors. Actionable for users.
3254	//   "PENDING" - Autoscaler backend hasn't read new/updated
3255	// configuration
3256	Status string `json:"status,omitempty"`
3257
3258	// StatusDetails: [Output Only] Human-readable details about the current
3259	// state of the autoscaler. Read the documentation for Commonly returned
3260	// status messages for examples of status messages you might encounter.
3261	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3262
3263	// Target: URL of the managed instance group that this autoscaler will
3264	// scale. This field is required when creating an autoscaler.
3265	Target string `json:"target,omitempty"`
3266
3267	// Zone: [Output Only] URL of the zone where the instance group resides
3268	// (for autoscalers living in zonal scope).
3269	Zone string `json:"zone,omitempty"`
3270
3271	// ServerResponse contains the HTTP response code and headers from the
3272	// server.
3273	googleapi.ServerResponse `json:"-"`
3274
3275	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3276	// to unconditionally include in API requests. By default, fields with
3277	// empty or default values are omitted from API requests. However, any
3278	// non-pointer, non-interface field appearing in ForceSendFields will be
3279	// sent to the server regardless of whether the field is empty or not.
3280	// This may be used to include empty fields in Patch requests.
3281	ForceSendFields []string `json:"-"`
3282
3283	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3284	// include in API requests with the JSON null value. By default, fields
3285	// with empty values are omitted from API requests. However, any field
3286	// with an empty value appearing in NullFields will be sent to the
3287	// server as null. It is an error if a field in this list has a
3288	// non-empty value. This may be used to include null fields in Patch
3289	// requests.
3290	NullFields []string `json:"-"`
3291}
3292
3293func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3294	type NoMethod Autoscaler
3295	raw := NoMethod(*s)
3296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3297}
3298
3299type AutoscalerAggregatedList struct {
3300	// Id: [Output Only] Unique identifier for the resource; defined by the
3301	// server.
3302	Id string `json:"id,omitempty"`
3303
3304	// Items: A list of AutoscalersScopedList resources.
3305	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3306
3307	// Kind: [Output Only] Type of resource. Always
3308	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3309	Kind string `json:"kind,omitempty"`
3310
3311	// NextPageToken: [Output Only] This token allows you to get the next
3312	// page of results for list requests. If the number of results is larger
3313	// than maxResults, use the nextPageToken as a value for the query
3314	// parameter pageToken in the next list request. Subsequent list
3315	// requests will have their own nextPageToken to continue paging through
3316	// the results.
3317	NextPageToken string `json:"nextPageToken,omitempty"`
3318
3319	// SelfLink: [Output Only] Server-defined URL for this resource.
3320	SelfLink string `json:"selfLink,omitempty"`
3321
3322	// Unreachables: [Output Only] Unreachable resources. end_interface:
3323	// MixerListResponseWithEtagBuilder
3324	Unreachables []string `json:"unreachables,omitempty"`
3325
3326	// Warning: [Output Only] Informational warning message.
3327	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3328
3329	// ServerResponse contains the HTTP response code and headers from the
3330	// server.
3331	googleapi.ServerResponse `json:"-"`
3332
3333	// ForceSendFields is a list of field names (e.g. "Id") to
3334	// unconditionally include in API requests. By default, fields with
3335	// empty or default values are omitted from API requests. However, any
3336	// non-pointer, non-interface field appearing in ForceSendFields will be
3337	// sent to the server regardless of whether the field is empty or not.
3338	// This may be used to include empty fields in Patch requests.
3339	ForceSendFields []string `json:"-"`
3340
3341	// NullFields is a list of field names (e.g. "Id") to include in API
3342	// requests with the JSON null value. By default, fields with empty
3343	// values are omitted from API requests. However, any field with an
3344	// empty value appearing in NullFields will be sent to the server as
3345	// null. It is an error if a field in this list has a non-empty value.
3346	// This may be used to include null fields in Patch requests.
3347	NullFields []string `json:"-"`
3348}
3349
3350func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3351	type NoMethod AutoscalerAggregatedList
3352	raw := NoMethod(*s)
3353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3354}
3355
3356// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3357// message.
3358type AutoscalerAggregatedListWarning struct {
3359	// Code: [Output Only] A warning code, if applicable. For example,
3360	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3361	// the response.
3362	//
3363	// Possible values:
3364	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
3365	// changes made by a failed operation.
3366	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
3367	// created.
3368	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
3369	// resources has a type marked as deprecated
3370	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
3371	// that is larger than image size.
3372	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
3373	// resources has a type marked as experimental
3374	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
3375	// call
3376	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
3377	// overridden. Deprecated unused field.
3378	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
3379	// injected kernel, which is deprecated.
3380	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
3381	// exceedingly large number of resources
3382	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
3383	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
3384	// not assigned to an instance on the network.
3385	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
3386	// ip forward.
3387	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
3388	// refers to an instance that does not exist.
3389	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
3390	// URL refers to an instance that is not on the same network as the
3391	// route.
3392	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
3393	// have a status of RUNNING.
3394	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
3395	// continue the process despite the mentioned error.
3396	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
3397	// page.
3398	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
3399	// missing due to errors
3400	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
3401	// that requires a TOS they have not accepted.
3402	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
3403	// resource is in use.
3404	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
3405	// auto-delete could not be deleted because they were in use.
3406	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
3407	// ignored.
3408	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
3409	// instance group manager is valid as such, but its application does not
3410	// make a lot of sense, because it allows only single instance in
3411	// instance group.
3412	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
3413	// are present
3414	//   "UNREACHABLE" - A given scope cannot be reached.
3415	Code string `json:"code,omitempty"`
3416
3417	// Data: [Output Only] Metadata about this warning in key: value format.
3418	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
3419	// }
3420	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3421
3422	// Message: [Output Only] A human-readable description of the warning
3423	// code.
3424	Message string `json:"message,omitempty"`
3425
3426	// ForceSendFields is a list of field names (e.g. "Code") to
3427	// unconditionally include in API requests. By default, fields with
3428	// empty or default values are omitted from API requests. However, any
3429	// non-pointer, non-interface field appearing in ForceSendFields will be
3430	// sent to the server regardless of whether the field is empty or not.
3431	// This may be used to include empty fields in Patch requests.
3432	ForceSendFields []string `json:"-"`
3433
3434	// NullFields is a list of field names (e.g. "Code") to include in API
3435	// requests with the JSON null value. By default, fields with empty
3436	// values are omitted from API requests. However, any field with an
3437	// empty value appearing in NullFields will be sent to the server as
3438	// null. It is an error if a field in this list has a non-empty value.
3439	// This may be used to include null fields in Patch requests.
3440	NullFields []string `json:"-"`
3441}
3442
3443func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3444	type NoMethod AutoscalerAggregatedListWarning
3445	raw := NoMethod(*s)
3446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3447}
3448
3449type AutoscalerAggregatedListWarningData struct {
3450	// Key: [Output Only] A key that provides more detail on the warning
3451	// being returned. For example, for warnings where there are no results
3452	// in a list request for a particular zone, this key might be scope and
3453	// the key value might be the zone name. Other examples might be a key
3454	// indicating a deprecated resource and a suggested replacement, or a
3455	// warning about invalid network settings (for example, if an instance
3456	// attempts to perform IP forwarding but is not enabled for IP
3457	// forwarding).
3458	Key string `json:"key,omitempty"`
3459
3460	// Value: [Output Only] A warning data value corresponding to the key.
3461	Value string `json:"value,omitempty"`
3462
3463	// ForceSendFields is a list of field names (e.g. "Key") to
3464	// unconditionally include in API requests. By default, fields with
3465	// empty or default values are omitted from API requests. However, any
3466	// non-pointer, non-interface field appearing in ForceSendFields will be
3467	// sent to the server regardless of whether the field is empty or not.
3468	// This may be used to include empty fields in Patch requests.
3469	ForceSendFields []string `json:"-"`
3470
3471	// NullFields is a list of field names (e.g. "Key") to include in API
3472	// requests with the JSON null value. By default, fields with empty
3473	// values are omitted from API requests. However, any field with an
3474	// empty value appearing in NullFields will be sent to the server as
3475	// null. It is an error if a field in this list has a non-empty value.
3476	// This may be used to include null fields in Patch requests.
3477	NullFields []string `json:"-"`
3478}
3479
3480func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3481	type NoMethod AutoscalerAggregatedListWarningData
3482	raw := NoMethod(*s)
3483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3484}
3485
3486// AutoscalerList: Contains a list of Autoscaler resources.
3487type AutoscalerList struct {
3488	// Id: [Output Only] Unique identifier for the resource; defined by the
3489	// server.
3490	Id string `json:"id,omitempty"`
3491
3492	// Items: A list of Autoscaler resources.
3493	Items []*Autoscaler `json:"items,omitempty"`
3494
3495	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3496	// for lists of autoscalers.
3497	Kind string `json:"kind,omitempty"`
3498
3499	// NextPageToken: [Output Only] This token allows you to get the next
3500	// page of results for list requests. If the number of results is larger
3501	// than maxResults, use the nextPageToken as a value for the query
3502	// parameter pageToken in the next list request. Subsequent list
3503	// requests will have their own nextPageToken to continue paging through
3504	// the results.
3505	NextPageToken string `json:"nextPageToken,omitempty"`
3506
3507	// SelfLink: [Output Only] Server-defined URL for this resource.
3508	SelfLink string `json:"selfLink,omitempty"`
3509
3510	// Warning: [Output Only] Informational warning message.
3511	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3512
3513	// ServerResponse contains the HTTP response code and headers from the
3514	// server.
3515	googleapi.ServerResponse `json:"-"`
3516
3517	// ForceSendFields is a list of field names (e.g. "Id") to
3518	// unconditionally include in API requests. By default, fields with
3519	// empty or default values are omitted from API requests. However, any
3520	// non-pointer, non-interface field appearing in ForceSendFields will be
3521	// sent to the server regardless of whether the field is empty or not.
3522	// This may be used to include empty fields in Patch requests.
3523	ForceSendFields []string `json:"-"`
3524
3525	// NullFields is a list of field names (e.g. "Id") to include in API
3526	// requests with the JSON null value. By default, fields with empty
3527	// values are omitted from API requests. However, any field with an
3528	// empty value appearing in NullFields will be sent to the server as
3529	// null. It is an error if a field in this list has a non-empty value.
3530	// This may be used to include null fields in Patch requests.
3531	NullFields []string `json:"-"`
3532}
3533
3534func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3535	type NoMethod AutoscalerList
3536	raw := NoMethod(*s)
3537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3538}
3539
3540// AutoscalerListWarning: [Output Only] Informational warning message.
3541type AutoscalerListWarning struct {
3542	// Code: [Output Only] A warning code, if applicable. For example,
3543	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3544	// the response.
3545	//
3546	// Possible values:
3547	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
3548	// changes made by a failed operation.
3549	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
3550	// created.
3551	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
3552	// resources has a type marked as deprecated
3553	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
3554	// that is larger than image size.
3555	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
3556	// resources has a type marked as experimental
3557	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
3558	// call
3559	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
3560	// overridden. Deprecated unused field.
3561	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
3562	// injected kernel, which is deprecated.
3563	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
3564	// exceedingly large number of resources
3565	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
3566	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
3567	// not assigned to an instance on the network.
3568	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
3569	// ip forward.
3570	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
3571	// refers to an instance that does not exist.
3572	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
3573	// URL refers to an instance that is not on the same network as the
3574	// route.
3575	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
3576	// have a status of RUNNING.
3577	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
3578	// continue the process despite the mentioned error.
3579	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
3580	// page.
3581	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
3582	// missing due to errors
3583	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
3584	// that requires a TOS they have not accepted.
3585	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
3586	// resource is in use.
3587	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
3588	// auto-delete could not be deleted because they were in use.
3589	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
3590	// ignored.
3591	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
3592	// instance group manager is valid as such, but its application does not
3593	// make a lot of sense, because it allows only single instance in
3594	// instance group.
3595	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
3596	// are present
3597	//   "UNREACHABLE" - A given scope cannot be reached.
3598	Code string `json:"code,omitempty"`
3599
3600	// Data: [Output Only] Metadata about this warning in key: value format.
3601	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
3602	// }
3603	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3604
3605	// Message: [Output Only] A human-readable description of the warning
3606	// code.
3607	Message string `json:"message,omitempty"`
3608
3609	// ForceSendFields is a list of field names (e.g. "Code") to
3610	// unconditionally include in API requests. By default, fields with
3611	// empty or default values are omitted from API requests. However, any
3612	// non-pointer, non-interface field appearing in ForceSendFields will be
3613	// sent to the server regardless of whether the field is empty or not.
3614	// This may be used to include empty fields in Patch requests.
3615	ForceSendFields []string `json:"-"`
3616
3617	// NullFields is a list of field names (e.g. "Code") to include in API
3618	// requests with the JSON null value. By default, fields with empty
3619	// values are omitted from API requests. However, any field with an
3620	// empty value appearing in NullFields will be sent to the server as
3621	// null. It is an error if a field in this list has a non-empty value.
3622	// This may be used to include null fields in Patch requests.
3623	NullFields []string `json:"-"`
3624}
3625
3626func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3627	type NoMethod AutoscalerListWarning
3628	raw := NoMethod(*s)
3629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3630}
3631
3632type AutoscalerListWarningData struct {
3633	// Key: [Output Only] A key that provides more detail on the warning
3634	// being returned. For example, for warnings where there are no results
3635	// in a list request for a particular zone, this key might be scope and
3636	// the key value might be the zone name. Other examples might be a key
3637	// indicating a deprecated resource and a suggested replacement, or a
3638	// warning about invalid network settings (for example, if an instance
3639	// attempts to perform IP forwarding but is not enabled for IP
3640	// forwarding).
3641	Key string `json:"key,omitempty"`
3642
3643	// Value: [Output Only] A warning data value corresponding to the key.
3644	Value string `json:"value,omitempty"`
3645
3646	// ForceSendFields is a list of field names (e.g. "Key") to
3647	// unconditionally include in API requests. By default, fields with
3648	// empty or default values are omitted from API requests. However, any
3649	// non-pointer, non-interface field appearing in ForceSendFields will be
3650	// sent to the server regardless of whether the field is empty or not.
3651	// This may be used to include empty fields in Patch requests.
3652	ForceSendFields []string `json:"-"`
3653
3654	// NullFields is a list of field names (e.g. "Key") to include in API
3655	// requests with the JSON null value. By default, fields with empty
3656	// values are omitted from API requests. However, any field with an
3657	// empty value appearing in NullFields will be sent to the server as
3658	// null. It is an error if a field in this list has a non-empty value.
3659	// This may be used to include null fields in Patch requests.
3660	NullFields []string `json:"-"`
3661}
3662
3663func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3664	type NoMethod AutoscalerListWarningData
3665	raw := NoMethod(*s)
3666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3667}
3668
3669type AutoscalerStatusDetails struct {
3670	// Message: The status message.
3671	Message string `json:"message,omitempty"`
3672
3673	// Type: The type of error, warning, or notice returned. Current set of
3674	// possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances
3675	// in the instance group are unhealthy (not in RUNNING state). -
3676	// BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3677	// attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS
3678	// (WARNING): Autoscaler recommends a size greater than maxNumReplicas.
3679	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3680	// samples are not exported often enough to be a credible base for
3681	// autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that
3682	// was specified does not exist or does not have the necessary labels. -
3683	// MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3684	// maxNumReplicas. This means the autoscaler cannot add or remove
3685	// instances from the instance group. -
3686	// MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3687	// receive any data from the custom metric configured for autoscaling. -
3688	// MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3689	// configured to scale based on a load balancing signal but the instance
3690	// group has not received any requests from the load balancer. -
3691	// MODE_OFF (WARNING): Autoscaling is turned off. The number of
3692	// instances in the group won't change automatically. The autoscaling
3693	// configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is
3694	// in the "Autoscale only out" mode. The autoscaler can add instances
3695	// but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The
3696	// instance group cannot be autoscaled because it has more than one
3697	// backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR):
3698	// There is insufficient quota for the necessary resources, such as CPU
3699	// or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown
3700	// only for regional autoscalers: there is a resource stockout in the
3701	// chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to
3702	// be scaled does not exist. -
3703	// UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3704	// Autoscaling does not work with an HTTP/S load balancer that has been
3705	// configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal
3706	// autoscalers: there is a resource stockout in the chosen zone. For
3707	// regional autoscalers: in at least one of the zones you're using there
3708	// is a resource stockout. New values might be added in the future. Some
3709	// of the values might not be available in all API versions.
3710	//
3711	// Possible values:
3712	//   "ALL_INSTANCES_UNHEALTHY" - All instances in the instance group are
3713	// unhealthy (not in RUNNING state).
3714	//   "BACKEND_SERVICE_DOES_NOT_EXIST" - There is no backend service
3715	// attached to the instance group.
3716	//   "CAPPED_AT_MAX_NUM_REPLICAS" - Autoscaler recommends a size greater
3717	// than maxNumReplicas.
3718	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE" - The custom metric samples
3719	// are not exported often enough to be a credible base for autoscaling.
3720	//   "CUSTOM_METRIC_INVALID" - The custom metric that was specified does
3721	// not exist or does not have the necessary labels.
3722	//   "MIN_EQUALS_MAX" - The minNumReplicas is equal to maxNumReplicas.
3723	// This means the autoscaler cannot add or remove instances from the
3724	// instance group.
3725	//   "MISSING_CUSTOM_METRIC_DATA_POINTS" - The autoscaler did not
3726	// receive any data from the custom metric configured for autoscaling.
3727	//   "MISSING_LOAD_BALANCING_DATA_POINTS" - The autoscaler is configured
3728	// to scale based on a load balancing signal but the instance group has
3729	// not received any requests from the load balancer.
3730	//   "MODE_OFF" - Autoscaling is turned off. The number of instances in
3731	// the group won't change automatically. The autoscaling configuration
3732	// is preserved.
3733	//   "MODE_ONLY_SCALE_OUT" - Autoscaling is in the "Autoscale only scale
3734	// out" mode. Instances in the group will be only added.
3735	//   "MODE_ONLY_UP" - Autoscaling is in the "Autoscale only out" mode.
3736	// Instances in the group will be only added.
3737	//   "MORE_THAN_ONE_BACKEND_SERVICE" - The instance group cannot be
3738	// autoscaled because it has more than one backend service attached to
3739	// it.
3740	//   "NOT_ENOUGH_QUOTA_AVAILABLE" - There is insufficient quota for the
3741	// necessary resources, such as CPU or number of instances.
3742	//   "REGION_RESOURCE_STOCKOUT" - Showed only for regional autoscalers:
3743	// there is a resource stockout in the chosen region.
3744	//   "SCALING_TARGET_DOES_NOT_EXIST" - The target to be scaled does not
3745	// exist.
3746	//   "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX" - For some
3747	// scaling schedules minRequiredReplicas is greater than maxNumReplicas.
3748	// Autoscaler always recommends at most maxNumReplicas instances.
3749	//   "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN" - For some scaling
3750	// schedules minRequiredReplicas is less than minNumReplicas. Autoscaler
3751	// always recommends at least minNumReplicas instances.
3752	//   "UNKNOWN"
3753	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION" - Autoscaling
3754	// does not work with an HTTP/S load balancer that has been configured
3755	// for maxRate.
3756	//   "ZONE_RESOURCE_STOCKOUT" - For zonal autoscalers: there is a
3757	// resource stockout in the chosen zone. For regional autoscalers: in at
3758	// least one of the zones you're using there is a resource stockout.
3759	Type string `json:"type,omitempty"`
3760
3761	// ForceSendFields is a list of field names (e.g. "Message") to
3762	// unconditionally include in API requests. By default, fields with
3763	// empty or default values are omitted from API requests. However, any
3764	// non-pointer, non-interface field appearing in ForceSendFields will be
3765	// sent to the server regardless of whether the field is empty or not.
3766	// This may be used to include empty fields in Patch requests.
3767	ForceSendFields []string `json:"-"`
3768
3769	// NullFields is a list of field names (e.g. "Message") to include in
3770	// API requests with the JSON null value. By default, fields with empty
3771	// values are omitted from API requests. However, any field with an
3772	// empty value appearing in NullFields will be sent to the server as
3773	// null. It is an error if a field in this list has a non-empty value.
3774	// This may be used to include null fields in Patch requests.
3775	NullFields []string `json:"-"`
3776}
3777
3778func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3779	type NoMethod AutoscalerStatusDetails
3780	raw := NoMethod(*s)
3781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3782}
3783
3784type AutoscalersScopedList struct {
3785	// Autoscalers: [Output Only] A list of autoscalers contained in this
3786	// scope.
3787	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3788
3789	// Warning: [Output Only] Informational warning which replaces the list
3790	// of autoscalers when the list is empty.
3791	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3792
3793	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3794	// unconditionally include in API requests. By default, fields with
3795	// empty or default values are omitted from API requests. However, any
3796	// non-pointer, non-interface field appearing in ForceSendFields will be
3797	// sent to the server regardless of whether the field is empty or not.
3798	// This may be used to include empty fields in Patch requests.
3799	ForceSendFields []string `json:"-"`
3800
3801	// NullFields is a list of field names (e.g. "Autoscalers") to include
3802	// in API requests with the JSON null value. By default, fields with
3803	// empty values are omitted from API requests. However, any field with
3804	// an empty value appearing in NullFields will be sent to the server as
3805	// null. It is an error if a field in this list has a non-empty value.
3806	// This may be used to include null fields in Patch requests.
3807	NullFields []string `json:"-"`
3808}
3809
3810func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3811	type NoMethod AutoscalersScopedList
3812	raw := NoMethod(*s)
3813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3814}
3815
3816// AutoscalersScopedListWarning: [Output Only] Informational warning
3817// which replaces the list of autoscalers when the list is empty.
3818type AutoscalersScopedListWarning struct {
3819	// Code: [Output Only] A warning code, if applicable. For example,
3820	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3821	// the response.
3822	//
3823	// Possible values:
3824	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
3825	// changes made by a failed operation.
3826	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
3827	// created.
3828	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
3829	// resources has a type marked as deprecated
3830	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
3831	// that is larger than image size.
3832	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
3833	// resources has a type marked as experimental
3834	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
3835	// call
3836	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
3837	// overridden. Deprecated unused field.
3838	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
3839	// injected kernel, which is deprecated.
3840	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
3841	// exceedingly large number of resources
3842	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
3843	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
3844	// not assigned to an instance on the network.
3845	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
3846	// ip forward.
3847	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
3848	// refers to an instance that does not exist.
3849	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
3850	// URL refers to an instance that is not on the same network as the
3851	// route.
3852	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
3853	// have a status of RUNNING.
3854	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
3855	// continue the process despite the mentioned error.
3856	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
3857	// page.
3858	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
3859	// missing due to errors
3860	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
3861	// that requires a TOS they have not accepted.
3862	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
3863	// resource is in use.
3864	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
3865	// auto-delete could not be deleted because they were in use.
3866	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
3867	// ignored.
3868	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
3869	// instance group manager is valid as such, but its application does not
3870	// make a lot of sense, because it allows only single instance in
3871	// instance group.
3872	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
3873	// are present
3874	//   "UNREACHABLE" - A given scope cannot be reached.
3875	Code string `json:"code,omitempty"`
3876
3877	// Data: [Output Only] Metadata about this warning in key: value format.
3878	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
3879	// }
3880	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3881
3882	// Message: [Output Only] A human-readable description of the warning
3883	// code.
3884	Message string `json:"message,omitempty"`
3885
3886	// ForceSendFields is a list of field names (e.g. "Code") to
3887	// unconditionally include in API requests. By default, fields with
3888	// empty or default values are omitted from API requests. However, any
3889	// non-pointer, non-interface field appearing in ForceSendFields will be
3890	// sent to the server regardless of whether the field is empty or not.
3891	// This may be used to include empty fields in Patch requests.
3892	ForceSendFields []string `json:"-"`
3893
3894	// NullFields is a list of field names (e.g. "Code") to include in API
3895	// requests with the JSON null value. By default, fields with empty
3896	// values are omitted from API requests. However, any field with an
3897	// empty value appearing in NullFields will be sent to the server as
3898	// null. It is an error if a field in this list has a non-empty value.
3899	// This may be used to include null fields in Patch requests.
3900	NullFields []string `json:"-"`
3901}
3902
3903func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3904	type NoMethod AutoscalersScopedListWarning
3905	raw := NoMethod(*s)
3906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3907}
3908
3909type AutoscalersScopedListWarningData struct {
3910	// Key: [Output Only] A key that provides more detail on the warning
3911	// being returned. For example, for warnings where there are no results
3912	// in a list request for a particular zone, this key might be scope and
3913	// the key value might be the zone name. Other examples might be a key
3914	// indicating a deprecated resource and a suggested replacement, or a
3915	// warning about invalid network settings (for example, if an instance
3916	// attempts to perform IP forwarding but is not enabled for IP
3917	// forwarding).
3918	Key string `json:"key,omitempty"`
3919
3920	// Value: [Output Only] A warning data value corresponding to the key.
3921	Value string `json:"value,omitempty"`
3922
3923	// ForceSendFields is a list of field names (e.g. "Key") to
3924	// unconditionally include in API requests. By default, fields with
3925	// empty or default values are omitted from API requests. However, any
3926	// non-pointer, non-interface field appearing in ForceSendFields will be
3927	// sent to the server regardless of whether the field is empty or not.
3928	// This may be used to include empty fields in Patch requests.
3929	ForceSendFields []string `json:"-"`
3930
3931	// NullFields is a list of field names (e.g. "Key") to include in API
3932	// requests with the JSON null value. By default, fields with empty
3933	// values are omitted from API requests. However, any field with an
3934	// empty value appearing in NullFields will be sent to the server as
3935	// null. It is an error if a field in this list has a non-empty value.
3936	// This may be used to include null fields in Patch requests.
3937	NullFields []string `json:"-"`
3938}
3939
3940func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3941	type NoMethod AutoscalersScopedListWarningData
3942	raw := NoMethod(*s)
3943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3944}
3945
3946// AutoscalingPolicy: Cloud Autoscaler policy.
3947type AutoscalingPolicy struct {
3948	// CoolDownPeriodSec: The number of seconds that the autoscaler waits
3949	// before it starts collecting information from a new instance. This
3950	// prevents the autoscaler from collecting information when the instance
3951	// is initializing, during which the collected usage would not be
3952	// reliable. The default time autoscaler waits is 60 seconds. Virtual
3953	// machine initialization times might vary because of numerous factors.
3954	// We recommend that you test how long an instance may take to
3955	// initialize. To do this, create an instance and time the startup
3956	// process.
3957	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3958
3959	// CpuUtilization: Defines the CPU utilization policy that allows the
3960	// autoscaler to scale based on the average CPU utilization of a managed
3961	// instance group.
3962	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3963
3964	// CustomMetricUtilizations: Configuration parameters of autoscaling
3965	// based on a custom metric.
3966	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3967
3968	// LoadBalancingUtilization: Configuration parameters of autoscaling
3969	// based on load balancer.
3970	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3971
3972	// MaxNumReplicas: The maximum number of instances that the autoscaler
3973	// can scale out to. This is required when creating or updating an
3974	// autoscaler. The maximum number of replicas must not be lower than
3975	// minimal number of replicas.
3976	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3977
3978	// MinNumReplicas: The minimum number of replicas that the autoscaler
3979	// can scale in to. This cannot be less than 0. If not provided,
3980	// autoscaler chooses a default value depending on maximum number of
3981	// instances allowed.
3982	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3983
3984	// Mode: Defines operating mode for this policy.
3985	//
3986	// Possible values:
3987	//   "OFF" - Do not automatically scale the MIG in or out. The
3988	// recommended_size field contains the size of MIG that would be set if
3989	// the actuation mode was enabled.
3990	//   "ON" - Automatically scale the MIG in and out according to the
3991	// policy.
3992	//   "ONLY_SCALE_OUT" - Automatically create VMs according to the
3993	// policy, but do not scale the MIG in.
3994	//   "ONLY_UP" - Automatically create VMs according to the policy, but
3995	// do not scale the MIG in.
3996	Mode string `json:"mode,omitempty"`
3997
3998	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3999
4000	// ScalingSchedules: Scaling schedules defined for an autoscaler.
4001	// Multiple schedules can be set on an autoscaler, and they can overlap.
4002	// During overlapping periods the greatest min_required_replicas of all
4003	// scaling schedules is applied. Up to 128 scaling schedules are
4004	// allowed.
4005	ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"`
4006
4007	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
4008	// to unconditionally include in API requests. By default, fields with
4009	// empty or default values are omitted from API requests. However, any
4010	// non-pointer, non-interface field appearing in ForceSendFields will be
4011	// sent to the server regardless of whether the field is empty or not.
4012	// This may be used to include empty fields in Patch requests.
4013	ForceSendFields []string `json:"-"`
4014
4015	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
4016	// include in API requests with the JSON null value. By default, fields
4017	// with empty values are omitted from API requests. However, any field
4018	// with an empty value appearing in NullFields will be sent to the
4019	// server as null. It is an error if a field in this list has a
4020	// non-empty value. This may be used to include null fields in Patch
4021	// requests.
4022	NullFields []string `json:"-"`
4023}
4024
4025func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
4026	type NoMethod AutoscalingPolicy
4027	raw := NoMethod(*s)
4028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4029}
4030
4031// AutoscalingPolicyCpuUtilization: CPU utilization policy.
4032type AutoscalingPolicyCpuUtilization struct {
4033	// PredictiveMethod: Indicates whether predictive autoscaling based on
4034	// CPU metric is enabled. Valid values are: * NONE (default). No
4035	// predictive method is used. The autoscaler scales the group to meet
4036	// current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY.
4037	// Predictive autoscaling improves availability by monitoring daily and
4038	// weekly load patterns and scaling out ahead of anticipated demand.
4039	//
4040	// Possible values:
4041	//   "NONE" - No predictive method is used. The autoscaler scales the
4042	// group to meet current demand based on real-time metrics
4043	//   "OPTIMIZE_AVAILABILITY" - Predictive autoscaling improves
4044	// availability by monitoring daily and weekly load patterns and scaling
4045	// out ahead of anticipated demand.
4046	PredictiveMethod string `json:"predictiveMethod,omitempty"`
4047
4048	// UtilizationTarget: The target CPU utilization that the autoscaler
4049	// maintains. Must be a float value in the range (0, 1]. If not
4050	// specified, the default is 0.6. If the CPU level is below the target
4051	// utilization, the autoscaler scales in the number of instances until
4052	// it reaches the minimum number of instances you specified or until the
4053	// average CPU of your instances reaches the target utilization. If the
4054	// average CPU is above the target utilization, the autoscaler scales
4055	// out until it reaches the maximum number of instances you specified or
4056	// until the average utilization reaches the target utilization.
4057	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4058
4059	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
4060	// unconditionally include in API requests. By default, fields with
4061	// empty or default values are omitted from API requests. However, any
4062	// non-pointer, non-interface field appearing in ForceSendFields will be
4063	// sent to the server regardless of whether the field is empty or not.
4064	// This may be used to include empty fields in Patch requests.
4065	ForceSendFields []string `json:"-"`
4066
4067	// NullFields is a list of field names (e.g. "PredictiveMethod") to
4068	// include in API requests with the JSON null value. By default, fields
4069	// with empty values are omitted from API requests. However, any field
4070	// with an empty value appearing in NullFields will be sent to the
4071	// server as null. It is an error if a field in this list has a
4072	// non-empty value. This may be used to include null fields in Patch
4073	// requests.
4074	NullFields []string `json:"-"`
4075}
4076
4077func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
4078	type NoMethod AutoscalingPolicyCpuUtilization
4079	raw := NoMethod(*s)
4080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4081}
4082
4083func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
4084	type NoMethod AutoscalingPolicyCpuUtilization
4085	var s1 struct {
4086		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4087		*NoMethod
4088	}
4089	s1.NoMethod = (*NoMethod)(s)
4090	if err := json.Unmarshal(data, &s1); err != nil {
4091		return err
4092	}
4093	s.UtilizationTarget = float64(s1.UtilizationTarget)
4094	return nil
4095}
4096
4097// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
4098// policy.
4099type AutoscalingPolicyCustomMetricUtilization struct {
4100	// Filter: A filter string, compatible with a Stackdriver Monitoring
4101	// filter string for TimeSeries.list API call. This filter is used to
4102	// select a specific TimeSeries for the purpose of autoscaling and to
4103	// determine whether the metric is exporting per-instance or per-group
4104	// data. For the filter to be valid for autoscaling purposes, the
4105	// following rules apply: - You can only use the AND operator for
4106	// joining selectors. - You can only use direct equality comparison
4107	// operator (=) without any functions for each selector. - You can
4108	// specify the metric in both the filter string and in the metric field.
4109	// However, if specified in both places, the metric must be identical. -
4110	// The monitored resource type determines what kind of values are
4111	// expected for the metric. If it is a gce_instance, the autoscaler
4112	// expects the metric to include a separate TimeSeries for each instance
4113	// in a group. In such a case, you cannot filter on resource labels. If
4114	// the resource type is any other value, the autoscaler expects this
4115	// metric to contain values that apply to the entire autoscaled instance
4116	// group and resource label filtering can be performed to point
4117	// autoscaler at the correct TimeSeries to scale upon. This is called a
4118	// *per-group metric* for the purpose of autoscaling. If not specified,
4119	// the type defaults to gce_instance. Try to provide a filter that is
4120	// selective enough to pick just one TimeSeries for the autoscaled group
4121	// or for each of the instances (if you are using gce_instance resource
4122	// type). If multiple TimeSeries are returned upon the query execution,
4123	// the autoscaler will sum their respective values to obtain its scaling
4124	// value.
4125	Filter string `json:"filter,omitempty"`
4126
4127	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
4128	// The metric cannot have negative values. The metric must have a value
4129	// type of INT64 or DOUBLE.
4130	Metric string `json:"metric,omitempty"`
4131
4132	// SingleInstanceAssignment: If scaling is based on a per-group metric
4133	// value that represents the total amount of work to be done or resource
4134	// usage, set this value to an amount assigned for a single instance of
4135	// the scaled group. Autoscaler keeps the number of instances
4136	// proportional to the value of this metric. The metric itself does not
4137	// change value due to group resizing. A good metric to use with the
4138	// target is for example
4139	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
4140	// custom metric exporting the total number of requests coming to your
4141	// instances. A bad example would be a metric exporting an average or
4142	// median latency, since this value can't include a chunk assignable to
4143	// a single instance, it could be better used with utilization_target
4144	// instead.
4145	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
4146
4147	// UtilizationTarget: The target value of the metric that autoscaler
4148	// maintains. This must be a positive value. A utilization metric scales
4149	// number of virtual machines handling requests to increase or decrease
4150	// proportionally to the metric. For example, a good metric to use as a
4151	// utilization_target is
4152	// https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
4153	// The autoscaler works to keep this value constant for each of the
4154	// instances.
4155	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4156
4157	// UtilizationTargetType: Defines how target utilization value is
4158	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
4159	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
4160	//
4161	// Possible values:
4162	//   "DELTA_PER_MINUTE" - Sets the utilization target value for a
4163	// cumulative or delta metric, expressed as the rate of growth per
4164	// minute.
4165	//   "DELTA_PER_SECOND" - Sets the utilization target value for a
4166	// cumulative or delta metric, expressed as the rate of growth per
4167	// second.
4168	//   "GAUGE" - Sets the utilization target value for a gauge metric. The
4169	// autoscaler will collect the average utilization of the virtual
4170	// machines from the last couple of minutes, and compare the value to
4171	// the utilization target value to perform autoscaling.
4172	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
4173
4174	// ForceSendFields is a list of field names (e.g. "Filter") to
4175	// unconditionally include in API requests. By default, fields with
4176	// empty or default values are omitted from API requests. However, any
4177	// non-pointer, non-interface field appearing in ForceSendFields will be
4178	// sent to the server regardless of whether the field is empty or not.
4179	// This may be used to include empty fields in Patch requests.
4180	ForceSendFields []string `json:"-"`
4181
4182	// NullFields is a list of field names (e.g. "Filter") to include in API
4183	// requests with the JSON null value. By default, fields with empty
4184	// values are omitted from API requests. However, any field with an
4185	// empty value appearing in NullFields will be sent to the server as
4186	// null. It is an error if a field in this list has a non-empty value.
4187	// This may be used to include null fields in Patch requests.
4188	NullFields []string `json:"-"`
4189}
4190
4191func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
4192	type NoMethod AutoscalingPolicyCustomMetricUtilization
4193	raw := NoMethod(*s)
4194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4195}
4196
4197func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
4198	type NoMethod AutoscalingPolicyCustomMetricUtilization
4199	var s1 struct {
4200		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
4201		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
4202		*NoMethod
4203	}
4204	s1.NoMethod = (*NoMethod)(s)
4205	if err := json.Unmarshal(data, &s1); err != nil {
4206		return err
4207	}
4208	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
4209	s.UtilizationTarget = float64(s1.UtilizationTarget)
4210	return nil
4211}
4212
4213// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
4214// of autoscaling based on load balancing.
4215type AutoscalingPolicyLoadBalancingUtilization struct {
4216	// UtilizationTarget: Fraction of backend capacity utilization (set in
4217	// HTTP(S) load balancing configuration) that the autoscaler maintains.
4218	// Must be a positive float value. If not defined, the default is 0.8.
4219	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4220
4221	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4222	// to unconditionally include in API requests. By default, fields with
4223	// empty or default values are omitted from API requests. However, any
4224	// non-pointer, non-interface field appearing in ForceSendFields will be
4225	// sent to the server regardless of whether the field is empty or not.
4226	// This may be used to include empty fields in Patch requests.
4227	ForceSendFields []string `json:"-"`
4228
4229	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4230	// include in API requests with the JSON null value. By default, fields
4231	// with empty values are omitted from API requests. However, any field
4232	// with an empty value appearing in NullFields will be sent to the
4233	// server as null. It is an error if a field in this list has a
4234	// non-empty value. This may be used to include null fields in Patch
4235	// requests.
4236	NullFields []string `json:"-"`
4237}
4238
4239func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4240	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4241	raw := NoMethod(*s)
4242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4243}
4244
4245func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4246	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4247	var s1 struct {
4248		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4249		*NoMethod
4250	}
4251	s1.NoMethod = (*NoMethod)(s)
4252	if err := json.Unmarshal(data, &s1); err != nil {
4253		return err
4254	}
4255	s.UtilizationTarget = float64(s1.UtilizationTarget)
4256	return nil
4257}
4258
4259// AutoscalingPolicyScaleInControl: Configuration that allows for slower
4260// scale in so that even if Autoscaler recommends an abrupt scale in of
4261// a MIG, it will be throttled as specified by the parameters below.
4262type AutoscalingPolicyScaleInControl struct {
4263	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
4264	// deducted from the peak recommendation during the window autoscaler
4265	// looks at when computing recommendations. Possibly all these VMs can
4266	// be deleted at once so user service needs to be prepared to lose that
4267	// many VMs in one step.
4268	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
4269
4270	// TimeWindowSec: How far back autoscaling looks when computing
4271	// recommendations to include directives regarding slower scale in, as
4272	// described above.
4273	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4274
4275	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
4276	// to unconditionally include in API requests. By default, fields with
4277	// empty or default values are omitted from API requests. However, any
4278	// non-pointer, non-interface field appearing in ForceSendFields will be
4279	// sent to the server regardless of whether the field is empty or not.
4280	// This may be used to include empty fields in Patch requests.
4281	ForceSendFields []string `json:"-"`
4282
4283	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
4284	// include in API requests with the JSON null value. By default, fields
4285	// with empty values are omitted from API requests. However, any field
4286	// with an empty value appearing in NullFields will be sent to the
4287	// server as null. It is an error if a field in this list has a
4288	// non-empty value. This may be used to include null fields in Patch
4289	// requests.
4290	NullFields []string `json:"-"`
4291}
4292
4293func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
4294	type NoMethod AutoscalingPolicyScaleInControl
4295	raw := NoMethod(*s)
4296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4297}
4298
4299// AutoscalingPolicyScalingSchedule: Scaling based on user-defined
4300// schedule. The message describes a single scaling schedule. A scaling
4301// schedule changes the minimum number of VM instances an autoscaler can
4302// recommend, which can trigger scaling out.
4303type AutoscalingPolicyScalingSchedule struct {
4304	// Description: A description of a scaling schedule.
4305	Description string `json:"description,omitempty"`
4306
4307	// Disabled: A boolean value that specifies whether a scaling schedule
4308	// can influence autoscaler recommendations. If set to true, then a
4309	// scaling schedule has no effect. This field is optional, and its value
4310	// is false by default.
4311	Disabled bool `json:"disabled,omitempty"`
4312
4313	// DurationSec: The duration of time intervals, in seconds, for which
4314	// this scaling schedule is to run. The minimum allowed value is 300.
4315	// This field is required.
4316	DurationSec int64 `json:"durationSec,omitempty"`
4317
4318	// MinRequiredReplicas: The minimum number of VM instances that the
4319	// autoscaler will recommend in time intervals starting according to
4320	// schedule. This field is required.
4321	MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"`
4322
4323	// Schedule: The start timestamps of time intervals when this scaling
4324	// schedule is to provide a scaling signal. This field uses the extended
4325	// cron format (with an optional year field). The expression can
4326	// describe a single timestamp if the optional year is set, in which
4327	// case the scaling schedule runs once. The schedule is interpreted with
4328	// respect to time_zone. This field is required. Note: These timestamps
4329	// only describe when autoscaler starts providing the scaling signal.
4330	// The VMs need additional time to become serving.
4331	Schedule string `json:"schedule,omitempty"`
4332
4333	// TimeZone: The time zone to use when interpreting the schedule. The
4334	// value of this field must be a time zone name from the tz database:
4335	// http://en.wikipedia.org/wiki/Tz_database. This field is assigned a
4336	// default value of “UTC” if left empty.
4337	TimeZone string `json:"timeZone,omitempty"`
4338
4339	// ForceSendFields is a list of field names (e.g. "Description") to
4340	// unconditionally include in API requests. By default, fields with
4341	// empty or default values are omitted from API requests. However, any
4342	// non-pointer, non-interface field appearing in ForceSendFields will be
4343	// sent to the server regardless of whether the field is empty or not.
4344	// This may be used to include empty fields in Patch requests.
4345	ForceSendFields []string `json:"-"`
4346
4347	// NullFields is a list of field names (e.g. "Description") to include
4348	// in API requests with the JSON null value. By default, fields with
4349	// empty values are omitted from API requests. However, any field with
4350	// an empty value appearing in NullFields will be sent to the server as
4351	// null. It is an error if a field in this list has a non-empty value.
4352	// This may be used to include null fields in Patch requests.
4353	NullFields []string `json:"-"`
4354}
4355
4356func (s *AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) {
4357	type NoMethod AutoscalingPolicyScalingSchedule
4358	raw := NoMethod(*s)
4359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4360}
4361
4362// Backend: Message containing information of one individual backend.
4363type Backend struct {
4364	// BalancingMode: Specifies how to determine whether the backend of a
4365	// load balancer can handle additional traffic or is fully loaded. For
4366	// usage guidelines, see Connection balancing mode. Backends must use
4367	// compatible balancing modes. For more information, see Supported
4368	// balancing modes and target capacity settings and Restrictions and
4369	// guidance for instance groups. Note: Currently, if you use the API to
4370	// configure incompatible balancing modes, the configuration might be
4371	// accepted even though it has no impact and is ignored. Specifically,
4372	// Backend.maxUtilization is ignored when Backend.balancingMode is RATE.
4373	// In the future, this incompatible combination will be rejected.
4374	//
4375	// Possible values:
4376	//   "CONNECTION" - Balance based on the number of simultaneous
4377	// connections.
4378	//   "RATE" - Balance based on requests per second (RPS).
4379	//   "UTILIZATION" - Balance based on the backend utilization.
4380	BalancingMode string `json:"balancingMode,omitempty"`
4381
4382	// CapacityScaler: A multiplier applied to the backend's target capacity
4383	// of its balancing mode. The default value is 1, which means the group
4384	// serves up to 100% of its configured capacity (depending on
4385	// balancingMode). A setting of 0 means the group is completely drained,
4386	// offering 0% of its available capacity. The valid ranges are 0.0 and
4387	// [0.1,1.0]. You cannot configure a setting larger than 0 and smaller
4388	// than 0.1. You cannot configure a setting of 0 when there is only one
4389	// backend attached to the backend service.
4390	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4391
4392	// Description: An optional description of this resource. Provide this
4393	// property when you create the resource.
4394	Description string `json:"description,omitempty"`
4395
4396	// Failover: This field designates whether this is a failover backend.
4397	// More than one failover backend can be configured for a given
4398	// BackendService.
4399	Failover bool `json:"failover,omitempty"`
4400
4401	// Group: The fully-qualified URL of an instance group or network
4402	// endpoint group (NEG) resource. To determine what types of backends a
4403	// load balancer supports, see the Backend services overview
4404	// (https://cloud.google.com/load-balancing/docs/backend-service#backends).
4405	// You must use the *fully-qualified* URL (starting with
4406	// https://www.googleapis.com/) to specify the instance group or NEG.
4407	// Partial URLs are not supported.
4408	Group string `json:"group,omitempty"`
4409
4410	// MaxConnections: Defines a target maximum number of simultaneous
4411	// connections. For usage guidelines, see Connection balancing mode and
4412	// Utilization balancing mode. Not available if the backend's
4413	// balancingMode is RATE.
4414	MaxConnections int64 `json:"maxConnections,omitempty"`
4415
4416	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4417	// simultaneous connections. For usage guidelines, see Connection
4418	// balancing mode and Utilization balancing mode. Not available if the
4419	// backend's balancingMode is RATE.
4420	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4421
4422	// MaxConnectionsPerInstance: Defines a target maximum number of
4423	// simultaneous connections. For usage guidelines, see Connection
4424	// balancing mode and Utilization balancing mode. Not available if the
4425	// backend's balancingMode is RATE.
4426	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4427
4428	// MaxRate: Defines a maximum number of HTTP requests per second (RPS).
4429	// For usage guidelines, see Rate balancing mode and Utilization
4430	// balancing mode. Not available if the backend's balancingMode is
4431	// CONNECTION.
4432	MaxRate int64 `json:"maxRate,omitempty"`
4433
4434	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4435	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4436	// balancing mode. Not available if the backend's balancingMode is
4437	// CONNECTION.
4438	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4439
4440	// MaxRatePerInstance: Defines a maximum target for requests per second
4441	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4442	// balancing mode. Not available if the backend's balancingMode is
4443	// CONNECTION.
4444	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4445
4446	// MaxUtilization: Optional parameter to define a target capacity for
4447	// the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For
4448	// usage guidelines, see Utilization balancing mode.
4449	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4450
4451	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4452	// unconditionally include in API requests. By default, fields with
4453	// empty or default values are omitted from API requests. However, any
4454	// non-pointer, non-interface field appearing in ForceSendFields will be
4455	// sent to the server regardless of whether the field is empty or not.
4456	// This may be used to include empty fields in Patch requests.
4457	ForceSendFields []string `json:"-"`
4458
4459	// NullFields is a list of field names (e.g. "BalancingMode") to include
4460	// in API requests with the JSON null value. By default, fields with
4461	// empty values are omitted from API requests. However, any field with
4462	// an empty value appearing in NullFields will be sent to the server as
4463	// null. It is an error if a field in this list has a non-empty value.
4464	// This may be used to include null fields in Patch requests.
4465	NullFields []string `json:"-"`
4466}
4467
4468func (s *Backend) MarshalJSON() ([]byte, error) {
4469	type NoMethod Backend
4470	raw := NoMethod(*s)
4471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4472}
4473
4474func (s *Backend) UnmarshalJSON(data []byte) error {
4475	type NoMethod Backend
4476	var s1 struct {
4477		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4478		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4479		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4480		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4481		*NoMethod
4482	}
4483	s1.NoMethod = (*NoMethod)(s)
4484	if err := json.Unmarshal(data, &s1); err != nil {
4485		return err
4486	}
4487	s.CapacityScaler = float64(s1.CapacityScaler)
4488	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4489	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4490	s.MaxUtilization = float64(s1.MaxUtilization)
4491	return nil
4492}
4493
4494// BackendBucket: Represents a Cloud Storage Bucket resource. This Cloud
4495// Storage bucket resource is referenced by a URL map of a load
4496// balancer. For more information, read Backend Buckets.
4497type BackendBucket struct {
4498	// BucketName: Cloud Storage bucket name.
4499	BucketName string `json:"bucketName,omitempty"`
4500
4501	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4502	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4503
4504	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4505	// format.
4506	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4507
4508	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4509	// add to proxied responses.
4510	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4511
4512	// Description: An optional textual description of the resource;
4513	// provided by the client when the resource is created.
4514	Description string `json:"description,omitempty"`
4515
4516	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4517	EnableCdn bool `json:"enableCdn,omitempty"`
4518
4519	// Id: [Output Only] Unique identifier for the resource; defined by the
4520	// server.
4521	Id uint64 `json:"id,omitempty,string"`
4522
4523	// Kind: Type of the resource.
4524	Kind string `json:"kind,omitempty"`
4525
4526	// Name: Name of the resource. Provided by the client when the resource
4527	// is created. The name must be 1-63 characters long, and comply with
4528	// RFC1035. Specifically, the name must be 1-63 characters long and
4529	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4530	// the first character must be a lowercase letter, and all following
4531	// characters must be a dash, lowercase letter, or digit, except the
4532	// last character, which cannot be a dash.
4533	Name string `json:"name,omitempty"`
4534
4535	// SelfLink: [Output Only] Server-defined URL for the resource.
4536	SelfLink string `json:"selfLink,omitempty"`
4537
4538	// ServerResponse contains the HTTP response code and headers from the
4539	// server.
4540	googleapi.ServerResponse `json:"-"`
4541
4542	// ForceSendFields is a list of field names (e.g. "BucketName") to
4543	// unconditionally include in API requests. By default, fields with
4544	// empty or default values are omitted from API requests. However, any
4545	// non-pointer, non-interface field appearing in ForceSendFields will be
4546	// sent to the server regardless of whether the field is empty or not.
4547	// This may be used to include empty fields in Patch requests.
4548	ForceSendFields []string `json:"-"`
4549
4550	// NullFields is a list of field names (e.g. "BucketName") to include in
4551	// API requests with the JSON null value. By default, fields with empty
4552	// values are omitted from API requests. However, any field with an
4553	// empty value appearing in NullFields will be sent to the server as
4554	// null. It is an error if a field in this list has a non-empty value.
4555	// This may be used to include null fields in Patch requests.
4556	NullFields []string `json:"-"`
4557}
4558
4559func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4560	type NoMethod BackendBucket
4561	raw := NoMethod(*s)
4562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4563}
4564
4565// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4566// for a backend bucket.
4567type BackendBucketCdnPolicy struct {
4568	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
4569	// request headers are matched - e.g. Pragma or Authorization headers.
4570	// Up to 5 headers can be specified. The cache is bypassed for all
4571	// cdnPolicy.cacheMode settings.
4572	BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
4573
4574	// CacheMode: Specifies the cache setting for all responses from this
4575	// backend. The possible values are: USE_ORIGIN_HEADERS Requires the
4576	// origin to set valid caching headers to cache content. Responses
4577	// without these headers will not be cached at Google's edge, and will
4578	// require a full trip to the origin on every request, potentially
4579	// impacting performance and increasing load on the origin server.
4580	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
4581	// or "no-cache" directives in Cache-Control response headers. Warning:
4582	// this may result in Cloud CDN caching private, per-user (user
4583	// identifiable) content. CACHE_ALL_STATIC Automatically cache static
4584	// content, including common image formats, media (video and audio), and
4585	// web assets (JavaScript and CSS). Requests and responses that are
4586	// marked as uncacheable, as well as dynamic content (including HTML),
4587	// will not be cached.
4588	//
4589	// Possible values:
4590	//   "CACHE_ALL_STATIC" - Automatically cache static content, including
4591	// common image formats, media (video and audio), and web assets
4592	// (JavaScript and CSS). Requests and responses that are marked as
4593	// uncacheable, as well as dynamic content (including HTML), will not be
4594	// cached.
4595	//   "FORCE_CACHE_ALL" - Cache all content, ignoring any "private",
4596	// "no-store" or "no-cache" directives in Cache-Control response
4597	// headers. Warning: this may result in Cloud CDN caching private,
4598	// per-user (user identifiable) content.
4599	//   "INVALID_CACHE_MODE"
4600	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching
4601	// headers to cache content. Responses without these headers will not be
4602	// cached at Google's edge, and will require a full trip to the origin
4603	// on every request, potentially impacting performance and increasing
4604	// load on the origin server.
4605	CacheMode string `json:"cacheMode,omitempty"`
4606
4607	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
4608	// TTL. This is used to clamp the max-age (or Expires) value sent to the
4609	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
4610	// default_ttl is used for the response max-age directive, along with a
4611	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
4612	// client_ttl clamps the max-age from the origin (if specified), or else
4613	// sets the response max-age directive to the lesser of the client_ttl
4614	// and default_ttl, and also ensures a "public" cache-control directive
4615	// is present. If a client TTL is not specified, a default value (1
4616	// hour) will be used. The maximum allowed value is 86400s (1 day).
4617	ClientTtl int64 `json:"clientTtl,omitempty"`
4618
4619	// DefaultTtl: Specifies the default TTL for cached content served by
4620	// this origin for responses that do not have an existing valid TTL
4621	// (max-age or s-max-age). Setting a TTL of "0" means "always
4622	// revalidate". The value of defaultTTL cannot be set to a value greater
4623	// than that of maxTTL, but can be equal. When the cacheMode is set to
4624	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
4625	// responses. The maximum allowed value is 31,622,400s (1 year), noting
4626	// that infrequently accessed objects may be evicted from the cache
4627	// before the defined TTL.
4628	DefaultTtl int64 `json:"defaultTtl,omitempty"`
4629
4630	// MaxTtl: Specifies the maximum allowed TTL for cached content served
4631	// by this origin. Cache directives that attempt to set a max-age or
4632	// s-maxage higher than this, or an Expires header more than maxTTL
4633	// seconds in the future will be capped at the value of maxTTL, as if it
4634	// were the value of an s-maxage Cache-Control directive. Headers sent
4635	// to the client will not be modified. Setting a TTL of "0" means
4636	// "always revalidate". The maximum allowed value is 31,622,400s (1
4637	// year), noting that infrequently accessed objects may be evicted from
4638	// the cache before the defined TTL.
4639	MaxTtl int64 `json:"maxTtl,omitempty"`
4640
4641	// NegativeCaching: Negative caching allows per-status code TTLs to be
4642	// set, in order to apply fine-grained caching for common errors or
4643	// redirects. This can reduce the load on your origin and improve
4644	// end-user experience by reducing response latency. When the cache mode
4645	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
4646	// applies to responses with the specified response code that lack any
4647	// Cache-Control, Expires, or Pragma: no-cache directives. When the
4648	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
4649	// responses with the specified response code, and override any caching
4650	// headers. By default, Cloud CDN will apply the following default TTLs
4651	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
4652	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
4653	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
4654	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
4655	// can be overridden in negative_caching_policy.
4656	NegativeCaching bool `json:"negativeCaching,omitempty"`
4657
4658	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
4659	// code. negative_caching must be enabled to configure
4660	// negative_caching_policy. Omitting the policy and leaving
4661	// negative_caching enabled will use Cloud CDN's default cache TTLs.
4662	// Note that when specifying an explicit negative_caching_policy, you
4663	// should take care to specify a cache TTL for all response codes that
4664	// you wish to cache. Cloud CDN will not apply any default negative
4665	// caching when a policy exists.
4666	NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
4667
4668	// RequestCoalescing: If true then Cloud CDN will combine multiple
4669	// concurrent cache fill requests into a small number of requests to the
4670	// origin.
4671	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
4672
4673	// ServeWhileStale: Serve existing content from the cache (if available)
4674	// when revalidating content with the origin, or when an error is
4675	// encountered when refreshing the cache. This setting defines the
4676	// default "max-stale" duration for any cached responses that do not
4677	// specify a max-stale directive. Stale responses that exceed the TTL
4678	// configured here will not be served. The default limit (max-stale) is
4679	// 86400s (1 day), which will allow stale content to be served up to
4680	// this limit beyond the max-age (or s-max-age) of a cached response.
4681	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
4682	// disable serve-while-stale.
4683	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
4684
4685	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4686	// signed URL request will be considered fresh. After this time period,
4687	// the response will be revalidated before being served. Defaults to 1hr
4688	// (3600s). When serving responses to signed URL requests, Cloud CDN
4689	// will internally behave as though all responses from this backend had
4690	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4691	// existing Cache-Control header. The actual headers served in responses
4692	// will not be altered.
4693	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4694
4695	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4696	// request URLs.
4697	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4698
4699	// ForceSendFields is a list of field names (e.g.
4700	// "BypassCacheOnRequestHeaders") to unconditionally include in API
4701	// requests. By default, fields with empty or default values are omitted
4702	// from API requests. However, any non-pointer, non-interface field
4703	// appearing in ForceSendFields will be sent to the server regardless of
4704	// whether the field is empty or not. This may be used to include empty
4705	// fields in Patch requests.
4706	ForceSendFields []string `json:"-"`
4707
4708	// NullFields is a list of field names (e.g.
4709	// "BypassCacheOnRequestHeaders") to include in API requests with the
4710	// JSON null value. By default, fields with empty values are omitted
4711	// from API requests. However, any field with an empty value appearing
4712	// in NullFields will be sent to the server as null. It is an error if a
4713	// field in this list has a non-empty value. This may be used to include
4714	// null fields in Patch requests.
4715	NullFields []string `json:"-"`
4716}
4717
4718func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4719	type NoMethod BackendBucketCdnPolicy
4720	raw := NoMethod(*s)
4721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4722}
4723
4724// BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
4725// when the specified request headers are present, e.g. Pragma or
4726// Authorization headers. Values are case insensitive. The presence of
4727// such a header overrides the cache_mode setting.
4728type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct {
4729	// HeaderName: The header field name to match on when bypassing cache.
4730	// Values are case-insensitive.
4731	HeaderName string `json:"headerName,omitempty"`
4732
4733	// ForceSendFields is a list of field names (e.g. "HeaderName") to
4734	// unconditionally include in API requests. By default, fields with
4735	// empty or default values are omitted from API requests. However, any
4736	// non-pointer, non-interface field appearing in ForceSendFields will be
4737	// sent to the server regardless of whether the field is empty or not.
4738	// This may be used to include empty fields in Patch requests.
4739	ForceSendFields []string `json:"-"`
4740
4741	// NullFields is a list of field names (e.g. "HeaderName") to include in
4742	// API requests with the JSON null value. By default, fields with empty
4743	// values are omitted from API requests. However, any field with an
4744	// empty value appearing in NullFields will be sent to the server as
4745	// null. It is an error if a field in this list has a non-empty value.
4746	// This may be used to include null fields in Patch requests.
4747	NullFields []string `json:"-"`
4748}
4749
4750func (s *BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
4751	type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader
4752	raw := NoMethod(*s)
4753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4754}
4755
4756// BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
4757// response error codes.
4758type BackendBucketCdnPolicyNegativeCachingPolicy struct {
4759	// Code: The HTTP status code to define a TTL against. Only HTTP status
4760	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
4761	// can be specified as values, and you cannot specify a status code more
4762	// than once.
4763	Code int64 `json:"code,omitempty"`
4764
4765	// Ttl: The TTL (in seconds) for which to cache responses with the
4766	// corresponding status code. The maximum allowed value is 1800s (30
4767	// minutes), noting that infrequently accessed objects may be evicted
4768	// from the cache before the defined TTL.
4769	Ttl int64 `json:"ttl,omitempty"`
4770
4771	// ForceSendFields is a list of field names (e.g. "Code") to
4772	// unconditionally include in API requests. By default, fields with
4773	// empty or default values are omitted from API requests. However, any
4774	// non-pointer, non-interface field appearing in ForceSendFields will be
4775	// sent to the server regardless of whether the field is empty or not.
4776	// This may be used to include empty fields in Patch requests.
4777	ForceSendFields []string `json:"-"`
4778
4779	// NullFields is a list of field names (e.g. "Code") to include in API
4780	// requests with the JSON null value. By default, fields with empty
4781	// values are omitted from API requests. However, any field with an
4782	// empty value appearing in NullFields will be sent to the server as
4783	// null. It is an error if a field in this list has a non-empty value.
4784	// This may be used to include null fields in Patch requests.
4785	NullFields []string `json:"-"`
4786}
4787
4788func (s *BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
4789	type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy
4790	raw := NoMethod(*s)
4791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4792}
4793
4794// BackendBucketList: Contains a list of BackendBucket resources.
4795type BackendBucketList struct {
4796	// Id: [Output Only] Unique identifier for the resource; defined by the
4797	// server.
4798	Id string `json:"id,omitempty"`
4799
4800	// Items: A list of BackendBucket resources.
4801	Items []*BackendBucket `json:"items,omitempty"`
4802
4803	// Kind: Type of resource.
4804	Kind string `json:"kind,omitempty"`
4805
4806	// NextPageToken: [Output Only] This token allows you to get the next
4807	// page of results for list requests. If the number of results is larger
4808	// than maxResults, use the nextPageToken as a value for the query
4809	// parameter pageToken in the next list request. Subsequent list
4810	// requests will have their own nextPageToken to continue paging through
4811	// the results.
4812	NextPageToken string `json:"nextPageToken,omitempty"`
4813
4814	// SelfLink: [Output Only] Server-defined URL for this resource.
4815	SelfLink string `json:"selfLink,omitempty"`
4816
4817	// Warning: [Output Only] Informational warning message.
4818	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4819
4820	// ServerResponse contains the HTTP response code and headers from the
4821	// server.
4822	googleapi.ServerResponse `json:"-"`
4823
4824	// ForceSendFields is a list of field names (e.g. "Id") to
4825	// unconditionally include in API requests. By default, fields with
4826	// empty or default values are omitted from API requests. However, any
4827	// non-pointer, non-interface field appearing in ForceSendFields will be
4828	// sent to the server regardless of whether the field is empty or not.
4829	// This may be used to include empty fields in Patch requests.
4830	ForceSendFields []string `json:"-"`
4831
4832	// NullFields is a list of field names (e.g. "Id") to include in API
4833	// requests with the JSON null value. By default, fields with empty
4834	// values are omitted from API requests. However, any field with an
4835	// empty value appearing in NullFields will be sent to the server as
4836	// null. It is an error if a field in this list has a non-empty value.
4837	// This may be used to include null fields in Patch requests.
4838	NullFields []string `json:"-"`
4839}
4840
4841func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4842	type NoMethod BackendBucketList
4843	raw := NoMethod(*s)
4844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4845}
4846
4847// BackendBucketListWarning: [Output Only] Informational warning
4848// message.
4849type BackendBucketListWarning struct {
4850	// Code: [Output Only] A warning code, if applicable. For example,
4851	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4852	// the response.
4853	//
4854	// Possible values:
4855	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
4856	// changes made by a failed operation.
4857	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
4858	// created.
4859	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
4860	// resources has a type marked as deprecated
4861	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
4862	// that is larger than image size.
4863	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
4864	// resources has a type marked as experimental
4865	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
4866	// call
4867	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
4868	// overridden. Deprecated unused field.
4869	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
4870	// injected kernel, which is deprecated.
4871	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
4872	// exceedingly large number of resources
4873	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
4874	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
4875	// not assigned to an instance on the network.
4876	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
4877	// ip forward.
4878	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
4879	// refers to an instance that does not exist.
4880	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
4881	// URL refers to an instance that is not on the same network as the
4882	// route.
4883	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
4884	// have a status of RUNNING.
4885	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
4886	// continue the process despite the mentioned error.
4887	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
4888	// page.
4889	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
4890	// missing due to errors
4891	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
4892	// that requires a TOS they have not accepted.
4893	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
4894	// resource is in use.
4895	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
4896	// auto-delete could not be deleted because they were in use.
4897	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
4898	// ignored.
4899	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
4900	// instance group manager is valid as such, but its application does not
4901	// make a lot of sense, because it allows only single instance in
4902	// instance group.
4903	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
4904	// are present
4905	//   "UNREACHABLE" - A given scope cannot be reached.
4906	Code string `json:"code,omitempty"`
4907
4908	// Data: [Output Only] Metadata about this warning in key: value format.
4909	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
4910	// }
4911	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4912
4913	// Message: [Output Only] A human-readable description of the warning
4914	// code.
4915	Message string `json:"message,omitempty"`
4916
4917	// ForceSendFields is a list of field names (e.g. "Code") to
4918	// unconditionally include in API requests. By default, fields with
4919	// empty or default values are omitted from API requests. However, any
4920	// non-pointer, non-interface field appearing in ForceSendFields will be
4921	// sent to the server regardless of whether the field is empty or not.
4922	// This may be used to include empty fields in Patch requests.
4923	ForceSendFields []string `json:"-"`
4924
4925	// NullFields is a list of field names (e.g. "Code") to include in API
4926	// requests with the JSON null value. By default, fields with empty
4927	// values are omitted from API requests. However, any field with an
4928	// empty value appearing in NullFields will be sent to the server as
4929	// null. It is an error if a field in this list has a non-empty value.
4930	// This may be used to include null fields in Patch requests.
4931	NullFields []string `json:"-"`
4932}
4933
4934func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4935	type NoMethod BackendBucketListWarning
4936	raw := NoMethod(*s)
4937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4938}
4939
4940type BackendBucketListWarningData struct {
4941	// Key: [Output Only] A key that provides more detail on the warning
4942	// being returned. For example, for warnings where there are no results
4943	// in a list request for a particular zone, this key might be scope and
4944	// the key value might be the zone name. Other examples might be a key
4945	// indicating a deprecated resource and a suggested replacement, or a
4946	// warning about invalid network settings (for example, if an instance
4947	// attempts to perform IP forwarding but is not enabled for IP
4948	// forwarding).
4949	Key string `json:"key,omitempty"`
4950
4951	// Value: [Output Only] A warning data value corresponding to the key.
4952	Value string `json:"value,omitempty"`
4953
4954	// ForceSendFields is a list of field names (e.g. "Key") to
4955	// unconditionally include in API requests. By default, fields with
4956	// empty or default values are omitted from API requests. However, any
4957	// non-pointer, non-interface field appearing in ForceSendFields will be
4958	// sent to the server regardless of whether the field is empty or not.
4959	// This may be used to include empty fields in Patch requests.
4960	ForceSendFields []string `json:"-"`
4961
4962	// NullFields is a list of field names (e.g. "Key") to include in API
4963	// requests with the JSON null value. By default, fields with empty
4964	// values are omitted from API requests. However, any field with an
4965	// empty value appearing in NullFields will be sent to the server as
4966	// null. It is an error if a field in this list has a non-empty value.
4967	// This may be used to include null fields in Patch requests.
4968	NullFields []string `json:"-"`
4969}
4970
4971func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4972	type NoMethod BackendBucketListWarningData
4973	raw := NoMethod(*s)
4974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4975}
4976
4977// BackendService: Represents a Backend Service resource. A backend
4978// service defines how Google Cloud load balancers distribute traffic.
4979// The backend service configuration contains a set of values, such as
4980// the protocol used to connect to backends, various distribution and
4981// session settings, health checks, and timeouts. These settings provide
4982// fine-grained control over how your load balancer behaves. Most of the
4983// settings have default values that allow for easy configuration if you
4984// need to get started quickly. Backend services in Google Compute
4985// Engine can be either regionally or globally scoped. * Global
4986// (https://cloud.google.com/compute/docs/reference/rest/v1/backendServices)
4987// * Regional
4988// (https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices)
4989// For more information, see Backend Services.
4990type BackendService struct {
4991	// AffinityCookieTtlSec: Lifetime of cookies in seconds. This setting is
4992	// applicable to external and internal HTTP(S) load balancers and
4993	// Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session
4994	// affinity. If set to 0, the cookie is non-persistent and lasts only
4995	// until the end of the browser session (or equivalent). The maximum
4996	// allowed value is one day (86,400). Not supported when the backend
4997	// service is referenced by a URL map that is bound to target gRPC proxy
4998	// that has validateForProxyless field set to true.
4999	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
5000
5001	// Backends: The list of backends that serve this BackendService.
5002	Backends []*Backend `json:"backends,omitempty"`
5003
5004	// CdnPolicy: Cloud CDN configuration for this BackendService. Only
5005	// available for specified load balancer types.
5006	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
5007
5008	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
5009
5010	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
5011
5012	// ConsistentHash: Consistent Hash-based load balancing can be used to
5013	// provide soft session affinity based on HTTP headers, cookies or other
5014	// properties. This load balancing policy is applicable only for HTTP
5015	// connections. The affinity to a particular destination host will be
5016	// lost when one or more hosts are added/removed from the destination
5017	// service. This field specifies parameters that control consistent
5018	// hashing. This field is only applicable when localityLbPolicy is set
5019	// to MAGLEV or RING_HASH. This field is applicable to either: - A
5020	// regional backend service with the service_protocol set to HTTP,
5021	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. -
5022	// A global backend service with the load_balancing_scheme set to
5023	// INTERNAL_SELF_MANAGED. Not supported when the backend service is
5024	// referenced by a URL map that is bound to target gRPC proxy that has
5025	// validateForProxyless field set to true.
5026	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
5027
5028	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5029	// format.
5030	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5031
5032	// CustomRequestHeaders: Headers that the load balancer adds to proxied
5033	// requests. See Creating custom headers
5034	// (https://cloud.google.com/load-balancing/docs/custom-headers).
5035	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
5036
5037	// CustomResponseHeaders: Headers that the load balancer adds to proxied
5038	// responses. See Creating custom headers
5039	// (https://cloud.google.com/load-balancing/docs/custom-headers).
5040	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
5041
5042	// Description: An optional description of this resource. Provide this
5043	// property when you create the resource.
5044	Description string `json:"description,omitempty"`
5045
5046	// EnableCDN: If true, enables Cloud CDN for the backend service of an
5047	// external HTTP(S) load balancer.
5048	EnableCDN bool `json:"enableCDN,omitempty"`
5049
5050	// FailoverPolicy: Requires at least one backend instance group to be
5051	// defined as a backup (failover) backend. For load balancers that have
5052	// configurable failover: Internal TCP/UDP Load Balancing
5053	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5054	// and external TCP/UDP Load Balancing
5055	// (/network/networklb-failover-overview).
5056	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
5057
5058	// Fingerprint: Fingerprint of this resource. A hash of the contents
5059	// stored in this object. This field is used in optimistic locking. This
5060	// field will be ignored when inserting a BackendService. An up-to-date
5061	// fingerprint must be provided in order to update the BackendService,
5062	// otherwise the request will fail with error 412 conditionNotMet. To
5063	// see the latest fingerprint, make a get() request to retrieve a
5064	// BackendService.
5065	Fingerprint string `json:"fingerprint,omitempty"`
5066
5067	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
5068	// (legacy), or httpsHealthChecks (legacy) resource for health checking
5069	// this backend service. Not all backend services support legacy health
5070	// checks. See Load balancer guide. Currently, at most one health check
5071	// can be specified for each backend service. Backend services with
5072	// instance group or zonal NEG backends must have a health check.
5073	// Backend services with internet or serverless NEG backends must not
5074	// have a health check.
5075	HealthChecks []string `json:"healthChecks,omitempty"`
5076
5077	// Iap: The configurations for Identity-Aware Proxy on this resource.
5078	// Not available for Internal TCP/UDP Load Balancing and Network Load
5079	// Balancing.
5080	Iap *BackendServiceIAP `json:"iap,omitempty"`
5081
5082	// Id: [Output Only] The unique identifier for the resource. This
5083	// identifier is defined by the server.
5084	Id uint64 `json:"id,omitempty,string"`
5085
5086	// Kind: [Output Only] Type of resource. Always compute#backendService
5087	// for backend services.
5088	Kind string `json:"kind,omitempty"`
5089
5090	// LoadBalancingScheme: Specifies the load balancer type. A backend
5091	// service created for one type of load balancer cannot be used with
5092	// another. For more information, refer to Choosing a load balancer.
5093	//
5094	// Possible values:
5095	//   "EXTERNAL" - Signifies that this will be used for external HTTP(S),
5096	// SSL Proxy, TCP Proxy, or Network Load Balancing
5097	//   "INTERNAL" - Signifies that this will be used for Internal TCP/UDP
5098	// Load Balancing.
5099	//   "INTERNAL_MANAGED" - Signifies that this will be used for Internal
5100	// HTTP(S) Load Balancing.
5101	//   "INTERNAL_SELF_MANAGED" - Signifies that this will be used by
5102	// Traffic Director.
5103	//   "INVALID_LOAD_BALANCING_SCHEME"
5104	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
5105
5106	// LocalityLbPolicy: The load balancing algorithm used within the scope
5107	// of the locality. The possible values are: - ROUND_ROBIN: This is a
5108	// simple policy in which each healthy backend is selected in round
5109	// robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm
5110	// which selects two random healthy hosts and picks the host which has
5111	// fewer active requests. - RING_HASH: The ring/modulo hash load
5112	// balancer implements consistent hashing to backends. The algorithm has
5113	// the property that the addition/removal of a host from a set of N
5114	// hosts only affects 1/N of the requests. - RANDOM: The load balancer
5115	// selects a random healthy host. - ORIGINAL_DESTINATION: Backend host
5116	// is selected based on the client connection metadata, i.e.,
5117	// connections are opened to the same address as the destination address
5118	// of the incoming connection before the connection was redirected to
5119	// the load balancer. - MAGLEV: used as a drop in replacement for the
5120	// ring hash load balancer. Maglev is not as stable as ring hash but has
5121	// faster table lookup build times and host selection times. For more
5122	// information about Maglev, see
5123	// https://ai.google/research/pubs/pub44824 This field is applicable to
5124	// either: - A regional backend service with the service_protocol set to
5125	// HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
5126	// INTERNAL_MANAGED. - A global backend service with the
5127	// load_balancing_scheme set to INTERNAL_SELF_MANAGED. If
5128	// sessionAffinity is not NONE, and this field is not set to MAGLEV or
5129	// RING_HASH, session affinity settings will not take effect. Only the
5130	// default ROUND_ROBIN policy is supported when the backend service is
5131	// referenced by a URL map that is bound to target gRPC proxy that has
5132	// validateForProxyless field set to true.
5133	//
5134	// Possible values:
5135	//   "INVALID_LB_POLICY"
5136	//   "LEAST_REQUEST" - An O(1) algorithm which selects two random
5137	// healthy hosts and picks the host which has fewer active requests.
5138	//   "MAGLEV" - This algorithm implements consistent hashing to
5139	// backends. Maglev can be used as a drop in replacement for the ring
5140	// hash load balancer. Maglev is not as stable as ring hash but has
5141	// faster table lookup build times and host selection times. For more
5142	// information about Maglev, see
5143	// https://ai.google/research/pubs/pub44824
5144	//   "ORIGINAL_DESTINATION" - Backend host is selected based on the
5145	// client connection metadata, i.e., connections are opened to the same
5146	// address as the destination address of the incoming connection before
5147	// the connection was redirected to the load balancer.
5148	//   "RANDOM" - The load balancer selects a random healthy host.
5149	//   "RING_HASH" - The ring/modulo hash load balancer implements
5150	// consistent hashing to backends. The algorithm has the property that
5151	// the addition/removal of a host from a set of N hosts only affects 1/N
5152	// of the requests.
5153	//   "ROUND_ROBIN" - This is a simple policy in which each healthy
5154	// backend is selected in round robin order. This is the default.
5155	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
5156
5157	// LogConfig: This field denotes the logging options for the load
5158	// balancer traffic served by this backend service. If logging is
5159	// enabled, logs will be exported to Stackdriver.
5160	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
5161
5162	// MaxStreamDuration: Specifies the default maximum duration (timeout)
5163	// for streams to this service. Duration is computed from the beginning
5164	// of the stream until the response has been completely processed,
5165	// including all retries. A stream that does not complete in this
5166	// duration is closed. If not specified, there will be no timeout limit,
5167	// i.e. the maximum duration is infinite. This value can be overridden
5168	// in the PathMatcher configuration of the UrlMap that references this
5169	// backend service. This field is only allowed when the
5170	// loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED.
5171	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
5172
5173	// Name: Name of the resource. Provided by the client when the resource
5174	// is created. The name must be 1-63 characters long, and comply with
5175	// RFC1035. Specifically, the name must be 1-63 characters long and
5176	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5177	// the first character must be a lowercase letter, and all following
5178	// characters must be a dash, lowercase letter, or digit, except the
5179	// last character, which cannot be a dash.
5180	Name string `json:"name,omitempty"`
5181
5182	// Network: The URL of the network to which this backend service
5183	// belongs. This field can only be specified when the load balancing
5184	// scheme is set to INTERNAL.
5185	Network string `json:"network,omitempty"`
5186
5187	// OutlierDetection: Settings controlling the eviction of unhealthy
5188	// hosts from the load balancing pool for the backend service. If not
5189	// set, this feature is considered disabled. This field is applicable to
5190	// either: - A regional backend service with the service_protocol set to
5191	// HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
5192	// INTERNAL_MANAGED. - A global backend service with the
5193	// load_balancing_scheme set to INTERNAL_SELF_MANAGED. Not supported
5194	// when the backend service is referenced by a URL map that is bound to
5195	// target gRPC proxy that has validateForProxyless field set to true.
5196	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
5197
5198	// Port: Deprecated in favor of portName. The TCP port to connect on the
5199	// backend. The default value is 80. For Internal TCP/UDP Load Balancing
5200	// and Network Load Balancing, omit port.
5201	Port int64 `json:"port,omitempty"`
5202
5203	// PortName: A named port on a backend instance group representing the
5204	// port for communication to the backend VMs in that group. The named
5205	// port must be defined on each backend instance group
5206	// (https://cloud.google.com/load-balancing/docs/backend-service#named_ports).
5207	// This parameter has no meaning if the backends are NEGs. For Internal
5208	// TCP/UDP Load Balancing and Network Load Balancing, omit port_name.
5209	PortName string `json:"portName,omitempty"`
5210
5211	// Protocol: The protocol this BackendService uses to communicate with
5212	// backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or
5213	// GRPC. depending on the chosen load balancer or Traffic Director
5214	// configuration. Refer to the documentation for the load balancers or
5215	// for Traffic Director for more information. Must be set to GRPC when
5216	// the backend service is referenced by a URL map that is bound to
5217	// target gRPC proxy.
5218	//
5219	// Possible values:
5220	//   "GRPC" - gRPC (available for Traffic Director).
5221	//   "HTTP"
5222	//   "HTTP2" - HTTP/2 with SSL.
5223	//   "HTTPS"
5224	//   "SSL" - TCP proxying with SSL.
5225	//   "TCP" - TCP proxying or TCP pass-through.
5226	//   "UDP" - UDP.
5227	Protocol string `json:"protocol,omitempty"`
5228
5229	// Region: [Output Only] URL of the region where the regional backend
5230	// service resides. This field is not applicable to global backend
5231	// services. You must specify this field as part of the HTTP request
5232	// URL. It is not settable as a field in the request body.
5233	Region string `json:"region,omitempty"`
5234
5235	// SecurityPolicy: [Output Only] The resource URL for the security
5236	// policy associated with this backend service.
5237	SecurityPolicy string `json:"securityPolicy,omitempty"`
5238
5239	// SecuritySettings: This field specifies the security policy that
5240	// applies to this backend service. This field is applicable to either:
5241	// - A regional backend service with the service_protocol set to HTTP,
5242	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. -
5243	// A global backend service with the load_balancing_scheme set to
5244	// INTERNAL_SELF_MANAGED.
5245	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
5246
5247	// SelfLink: [Output Only] Server-defined URL for the resource.
5248	SelfLink string `json:"selfLink,omitempty"`
5249
5250	// SessionAffinity: Type of session affinity to use. The default is
5251	// NONE. For a detailed description of session affinity options, see:
5252	// Session affinity
5253	// (https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).
5254	// Not supported when the backend service is referenced by a URL map
5255	// that is bound to target gRPC proxy that has validateForProxyless
5256	// field set to true.
5257	//
5258	// Possible values:
5259	//   "CLIENT_IP" - 2-tuple hash on packet's source and destination IP
5260	// addresses. Connections from the same source IP address to the same
5261	// destination IP address will be served by the same backend VM while
5262	// that VM remains healthy.
5263	//   "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source
5264	// IP address. Connections from the same source IP address will be
5265	// served by the same backend VM while that VM remains healthy. This
5266	// option can only be used for Internal TCP/UDP Load Balancing.
5267	//   "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and
5268	// destination IP addresses, IP protocol, and source and destination
5269	// ports. Connections for the same IP protocol from the same source IP
5270	// address and port to the same destination IP address and port will be
5271	// served by the same backend VM while that VM remains healthy. This
5272	// option cannot be used for HTTP(S) load balancing.
5273	//   "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination
5274	// IP addresses, and IP protocol. Connections for the same IP protocol
5275	// from the same source IP address to the same destination IP address
5276	// will be served by the same backend VM while that VM remains healthy.
5277	// This option cannot be used for HTTP(S) load balancing.
5278	//   "GENERATED_COOKIE" - Hash based on a cookie generated by the L7
5279	// loadbalancer. Only valid for HTTP(S) load balancing.
5280	//   "HEADER_FIELD" - The hash is based on a user specified header
5281	// field.
5282	//   "HTTP_COOKIE" - The hash is based on a user provided cookie.
5283	//   "NONE" - No session affinity. Connections from the same client IP
5284	// may go to any instance in the pool.
5285	SessionAffinity string `json:"sessionAffinity,omitempty"`
5286
5287	// TimeoutSec: Not supported when the backend service is referenced by a
5288	// URL map that is bound to target gRPC proxy that has
5289	// validateForProxyless field set to true. Instead, use
5290	// maxStreamDuration.
5291	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5292
5293	// ServerResponse contains the HTTP response code and headers from the
5294	// server.
5295	googleapi.ServerResponse `json:"-"`
5296
5297	// ForceSendFields is a list of field names (e.g.
5298	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5299	// By default, fields with empty or default values are omitted from API
5300	// requests. However, any non-pointer, non-interface field appearing in
5301	// ForceSendFields will be sent to the server regardless of whether the
5302	// field is empty or not. This may be used to include empty fields in
5303	// Patch requests.
5304	ForceSendFields []string `json:"-"`
5305
5306	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5307	// include in API requests with the JSON null value. By default, fields
5308	// with empty values are omitted from API requests. However, any field
5309	// with an empty value appearing in NullFields will be sent to the
5310	// server as null. It is an error if a field in this list has a
5311	// non-empty value. This may be used to include null fields in Patch
5312	// requests.
5313	NullFields []string `json:"-"`
5314}
5315
5316func (s *BackendService) MarshalJSON() ([]byte, error) {
5317	type NoMethod BackendService
5318	raw := NoMethod(*s)
5319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5320}
5321
5322// BackendServiceAggregatedList: Contains a list of
5323// BackendServicesScopedList.
5324type BackendServiceAggregatedList struct {
5325	// Id: [Output Only] Unique identifier for the resource; defined by the
5326	// server.
5327	Id string `json:"id,omitempty"`
5328
5329	// Items: A list of BackendServicesScopedList resources.
5330	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5331
5332	// Kind: Type of resource.
5333	Kind string `json:"kind,omitempty"`
5334
5335	// NextPageToken: [Output Only] This token allows you to get the next
5336	// page of results for list requests. If the number of results is larger
5337	// than maxResults, use the nextPageToken as a value for the query
5338	// parameter pageToken in the next list request. Subsequent list
5339	// requests will have their own nextPageToken to continue paging through
5340	// the results.
5341	NextPageToken string `json:"nextPageToken,omitempty"`
5342
5343	// SelfLink: [Output Only] Server-defined URL for this resource.
5344	SelfLink string `json:"selfLink,omitempty"`
5345
5346	// Unreachables: [Output Only] Unreachable resources.
5347	Unreachables []string `json:"unreachables,omitempty"`
5348
5349	// Warning: [Output Only] Informational warning message.
5350	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5351
5352	// ServerResponse contains the HTTP response code and headers from the
5353	// server.
5354	googleapi.ServerResponse `json:"-"`
5355
5356	// ForceSendFields is a list of field names (e.g. "Id") to
5357	// unconditionally include in API requests. By default, fields with
5358	// empty or default values are omitted from API requests. However, any
5359	// non-pointer, non-interface field appearing in ForceSendFields will be
5360	// sent to the server regardless of whether the field is empty or not.
5361	// This may be used to include empty fields in Patch requests.
5362	ForceSendFields []string `json:"-"`
5363
5364	// NullFields is a list of field names (e.g. "Id") to include in API
5365	// requests with the JSON null value. By default, fields with empty
5366	// values are omitted from API requests. However, any field with an
5367	// empty value appearing in NullFields will be sent to the server as
5368	// null. It is an error if a field in this list has a non-empty value.
5369	// This may be used to include null fields in Patch requests.
5370	NullFields []string `json:"-"`
5371}
5372
5373func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5374	type NoMethod BackendServiceAggregatedList
5375	raw := NoMethod(*s)
5376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5377}
5378
5379// BackendServiceAggregatedListWarning: [Output Only] Informational
5380// warning message.
5381type BackendServiceAggregatedListWarning struct {
5382	// Code: [Output Only] A warning code, if applicable. For example,
5383	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5384	// the response.
5385	//
5386	// Possible values:
5387	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
5388	// changes made by a failed operation.
5389	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
5390	// created.
5391	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
5392	// resources has a type marked as deprecated
5393	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
5394	// that is larger than image size.
5395	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
5396	// resources has a type marked as experimental
5397	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
5398	// call
5399	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
5400	// overridden. Deprecated unused field.
5401	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
5402	// injected kernel, which is deprecated.
5403	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
5404	// exceedingly large number of resources
5405	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
5406	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
5407	// not assigned to an instance on the network.
5408	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
5409	// ip forward.
5410	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
5411	// refers to an instance that does not exist.
5412	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
5413	// URL refers to an instance that is not on the same network as the
5414	// route.
5415	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
5416	// have a status of RUNNING.
5417	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
5418	// continue the process despite the mentioned error.
5419	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
5420	// page.
5421	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
5422	// missing due to errors
5423	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
5424	// that requires a TOS they have not accepted.
5425	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
5426	// resource is in use.
5427	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
5428	// auto-delete could not be deleted because they were in use.
5429	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
5430	// ignored.
5431	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
5432	// instance group manager is valid as such, but its application does not
5433	// make a lot of sense, because it allows only single instance in
5434	// instance group.
5435	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
5436	// are present
5437	//   "UNREACHABLE" - A given scope cannot be reached.
5438	Code string `json:"code,omitempty"`
5439
5440	// Data: [Output Only] Metadata about this warning in key: value format.
5441	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
5442	// }
5443	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5444
5445	// Message: [Output Only] A human-readable description of the warning
5446	// code.
5447	Message string `json:"message,omitempty"`
5448
5449	// ForceSendFields is a list of field names (e.g. "Code") to
5450	// unconditionally include in API requests. By default, fields with
5451	// empty or default values are omitted from API requests. However, any
5452	// non-pointer, non-interface field appearing in ForceSendFields will be
5453	// sent to the server regardless of whether the field is empty or not.
5454	// This may be used to include empty fields in Patch requests.
5455	ForceSendFields []string `json:"-"`
5456
5457	// NullFields is a list of field names (e.g. "Code") to include in API
5458	// requests with the JSON null value. By default, fields with empty
5459	// values are omitted from API requests. However, any field with an
5460	// empty value appearing in NullFields will be sent to the server as
5461	// null. It is an error if a field in this list has a non-empty value.
5462	// This may be used to include null fields in Patch requests.
5463	NullFields []string `json:"-"`
5464}
5465
5466func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5467	type NoMethod BackendServiceAggregatedListWarning
5468	raw := NoMethod(*s)
5469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5470}
5471
5472type BackendServiceAggregatedListWarningData struct {
5473	// Key: [Output Only] A key that provides more detail on the warning
5474	// being returned. For example, for warnings where there are no results
5475	// in a list request for a particular zone, this key might be scope and
5476	// the key value might be the zone name. Other examples might be a key
5477	// indicating a deprecated resource and a suggested replacement, or a
5478	// warning about invalid network settings (for example, if an instance
5479	// attempts to perform IP forwarding but is not enabled for IP
5480	// forwarding).
5481	Key string `json:"key,omitempty"`
5482
5483	// Value: [Output Only] A warning data value corresponding to the key.
5484	Value string `json:"value,omitempty"`
5485
5486	// ForceSendFields is a list of field names (e.g. "Key") to
5487	// unconditionally include in API requests. By default, fields with
5488	// empty or default values are omitted from API requests. However, any
5489	// non-pointer, non-interface field appearing in ForceSendFields will be
5490	// sent to the server regardless of whether the field is empty or not.
5491	// This may be used to include empty fields in Patch requests.
5492	ForceSendFields []string `json:"-"`
5493
5494	// NullFields is a list of field names (e.g. "Key") to include in API
5495	// requests with the JSON null value. By default, fields with empty
5496	// values are omitted from API requests. However, any field with an
5497	// empty value appearing in NullFields will be sent to the server as
5498	// null. It is an error if a field in this list has a non-empty value.
5499	// This may be used to include null fields in Patch requests.
5500	NullFields []string `json:"-"`
5501}
5502
5503func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5504	type NoMethod BackendServiceAggregatedListWarningData
5505	raw := NoMethod(*s)
5506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5507}
5508
5509// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5510// for a backend service.
5511type BackendServiceCdnPolicy struct {
5512	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
5513	// request headers are matched - e.g. Pragma or Authorization headers.
5514	// Up to 5 headers can be specified. The cache is bypassed for all
5515	// cdnPolicy.cacheMode settings.
5516	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
5517
5518	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5519	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5520
5521	// CacheMode: Specifies the cache setting for all responses from this
5522	// backend. The possible values are: USE_ORIGIN_HEADERS Requires the
5523	// origin to set valid caching headers to cache content. Responses
5524	// without these headers will not be cached at Google's edge, and will
5525	// require a full trip to the origin on every request, potentially
5526	// impacting performance and increasing load on the origin server.
5527	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
5528	// or "no-cache" directives in Cache-Control response headers. Warning:
5529	// this may result in Cloud CDN caching private, per-user (user
5530	// identifiable) content. CACHE_ALL_STATIC Automatically cache static
5531	// content, including common image formats, media (video and audio), and
5532	// web assets (JavaScript and CSS). Requests and responses that are
5533	// marked as uncacheable, as well as dynamic content (including HTML),
5534	// will not be cached.
5535	//
5536	// Possible values:
5537	//   "CACHE_ALL_STATIC" - Automatically cache static content, including
5538	// common image formats, media (video and audio), and web assets
5539	// (JavaScript and CSS). Requests and responses that are marked as
5540	// uncacheable, as well as dynamic content (including HTML), will not be
5541	// cached.
5542	//   "FORCE_CACHE_ALL" - Cache all content, ignoring any "private",
5543	// "no-store" or "no-cache" directives in Cache-Control response
5544	// headers. Warning: this may result in Cloud CDN caching private,
5545	// per-user (user identifiable) content.
5546	//   "INVALID_CACHE_MODE"
5547	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching
5548	// headers to cache content. Responses without these headers will not be
5549	// cached at Google's edge, and will require a full trip to the origin
5550	// on every request, potentially impacting performance and increasing
5551	// load on the origin server.
5552	CacheMode string `json:"cacheMode,omitempty"`
5553
5554	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
5555	// TTL. This is used to clamp the max-age (or Expires) value sent to the
5556	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
5557	// default_ttl is used for the response max-age directive, along with a
5558	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
5559	// client_ttl clamps the max-age from the origin (if specified), or else
5560	// sets the response max-age directive to the lesser of the client_ttl
5561	// and default_ttl, and also ensures a "public" cache-control directive
5562	// is present. If a client TTL is not specified, a default value (1
5563	// hour) will be used. The maximum allowed value is 86400s (1 day).
5564	ClientTtl int64 `json:"clientTtl,omitempty"`
5565
5566	// DefaultTtl: Specifies the default TTL for cached content served by
5567	// this origin for responses that do not have an existing valid TTL
5568	// (max-age or s-max-age). Setting a TTL of "0" means "always
5569	// revalidate". The value of defaultTTL cannot be set to a value greater
5570	// than that of maxTTL, but can be equal. When the cacheMode is set to
5571	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
5572	// responses. The maximum allowed value is 31,622,400s (1 year), noting
5573	// that infrequently accessed objects may be evicted from the cache
5574	// before the defined TTL.
5575	DefaultTtl int64 `json:"defaultTtl,omitempty"`
5576
5577	// MaxTtl: Specifies the maximum allowed TTL for cached content served
5578	// by this origin. Cache directives that attempt to set a max-age or
5579	// s-maxage higher than this, or an Expires header more than maxTTL
5580	// seconds in the future will be capped at the value of maxTTL, as if it
5581	// were the value of an s-maxage Cache-Control directive. Headers sent
5582	// to the client will not be modified. Setting a TTL of "0" means
5583	// "always revalidate". The maximum allowed value is 31,622,400s (1
5584	// year), noting that infrequently accessed objects may be evicted from
5585	// the cache before the defined TTL.
5586	MaxTtl int64 `json:"maxTtl,omitempty"`
5587
5588	// NegativeCaching: Negative caching allows per-status code TTLs to be
5589	// set, in order to apply fine-grained caching for common errors or
5590	// redirects. This can reduce the load on your origin and improve
5591	// end-user experience by reducing response latency. When the cache mode
5592	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
5593	// applies to responses with the specified response code that lack any
5594	// Cache-Control, Expires, or Pragma: no-cache directives. When the
5595	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
5596	// responses with the specified response code, and override any caching
5597	// headers. By default, Cloud CDN will apply the following default TTLs
5598	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
5599	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
5600	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
5601	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
5602	// can be overridden in negative_caching_policy.
5603	NegativeCaching bool `json:"negativeCaching,omitempty"`
5604
5605	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
5606	// code. negative_caching must be enabled to configure
5607	// negative_caching_policy. Omitting the policy and leaving
5608	// negative_caching enabled will use Cloud CDN's default cache TTLs.
5609	// Note that when specifying an explicit negative_caching_policy, you
5610	// should take care to specify a cache TTL for all response codes that
5611	// you wish to cache. Cloud CDN will not apply any default negative
5612	// caching when a policy exists.
5613	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
5614
5615	// RequestCoalescing: If true then Cloud CDN will combine multiple
5616	// concurrent cache fill requests into a small number of requests to the
5617	// origin.
5618	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
5619
5620	// ServeWhileStale: Serve existing content from the cache (if available)
5621	// when revalidating content with the origin, or when an error is
5622	// encountered when refreshing the cache. This setting defines the
5623	// default "max-stale" duration for any cached responses that do not
5624	// specify a max-stale directive. Stale responses that exceed the TTL
5625	// configured here will not be served. The default limit (max-stale) is
5626	// 86400s (1 day), which will allow stale content to be served up to
5627	// this limit beyond the max-age (or s-max-age) of a cached response.
5628	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
5629	// disable serve-while-stale.
5630	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
5631
5632	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5633	// signed URL request will be considered fresh. After this time period,
5634	// the response will be revalidated before being served. Defaults to 1hr
5635	// (3600s). When serving responses to signed URL requests, Cloud CDN
5636	// will internally behave as though all responses from this backend had
5637	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5638	// existing Cache-Control header. The actual headers served in responses
5639	// will not be altered.
5640	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5641
5642	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5643	// request URLs.
5644	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5645
5646	// ForceSendFields is a list of field names (e.g.
5647	// "BypassCacheOnRequestHeaders") to unconditionally include in API
5648	// requests. By default, fields with empty or default values are omitted
5649	// from API requests. However, any non-pointer, non-interface field
5650	// appearing in ForceSendFields will be sent to the server regardless of
5651	// whether the field is empty or not. This may be used to include empty
5652	// fields in Patch requests.
5653	ForceSendFields []string `json:"-"`
5654
5655	// NullFields is a list of field names (e.g.
5656	// "BypassCacheOnRequestHeaders") to include in API requests with the
5657	// JSON null value. By default, fields with empty values are omitted
5658	// from API requests. However, any field with an empty value appearing
5659	// in NullFields will be sent to the server as null. It is an error if a
5660	// field in this list has a non-empty value. This may be used to include
5661	// null fields in Patch requests.
5662	NullFields []string `json:"-"`
5663}
5664
5665func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5666	type NoMethod BackendServiceCdnPolicy
5667	raw := NoMethod(*s)
5668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5669}
5670
5671// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
5672// when the specified request headers are present, e.g. Pragma or
5673// Authorization headers. Values are case insensitive. The presence of
5674// such a header overrides the cache_mode setting.
5675type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
5676	// HeaderName: The header field name to match on when bypassing cache.
5677	// Values are case-insensitive.
5678	HeaderName string `json:"headerName,omitempty"`
5679
5680	// ForceSendFields is a list of field names (e.g. "HeaderName") to
5681	// unconditionally include in API requests. By default, fields with
5682	// empty or default values are omitted from API requests. However, any
5683	// non-pointer, non-interface field appearing in ForceSendFields will be
5684	// sent to the server regardless of whether the field is empty or not.
5685	// This may be used to include empty fields in Patch requests.
5686	ForceSendFields []string `json:"-"`
5687
5688	// NullFields is a list of field names (e.g. "HeaderName") to include in
5689	// API requests with the JSON null value. By default, fields with empty
5690	// values are omitted from API requests. However, any field with an
5691	// empty value appearing in NullFields will be sent to the server as
5692	// null. It is an error if a field in this list has a non-empty value.
5693	// This may be used to include null fields in Patch requests.
5694	NullFields []string `json:"-"`
5695}
5696
5697func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
5698	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
5699	raw := NoMethod(*s)
5700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5701}
5702
5703// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
5704// response error codes.
5705type BackendServiceCdnPolicyNegativeCachingPolicy struct {
5706	// Code: The HTTP status code to define a TTL against. Only HTTP status
5707	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
5708	// can be specified as values, and you cannot specify a status code more
5709	// than once.
5710	Code int64 `json:"code,omitempty"`
5711
5712	// Ttl: The TTL (in seconds) for which to cache responses with the
5713	// corresponding status code. The maximum allowed value is 1800s (30
5714	// minutes), noting that infrequently accessed objects may be evicted
5715	// from the cache before the defined TTL.
5716	Ttl int64 `json:"ttl,omitempty"`
5717
5718	// ForceSendFields is a list of field names (e.g. "Code") to
5719	// unconditionally include in API requests. By default, fields with
5720	// empty or default values are omitted from API requests. However, any
5721	// non-pointer, non-interface field appearing in ForceSendFields will be
5722	// sent to the server regardless of whether the field is empty or not.
5723	// This may be used to include empty fields in Patch requests.
5724	ForceSendFields []string `json:"-"`
5725
5726	// NullFields is a list of field names (e.g. "Code") to include in API
5727	// requests with the JSON null value. By default, fields with empty
5728	// values are omitted from API requests. However, any field with an
5729	// empty value appearing in NullFields will be sent to the server as
5730	// null. It is an error if a field in this list has a non-empty value.
5731	// This may be used to include null fields in Patch requests.
5732	NullFields []string `json:"-"`
5733}
5734
5735func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
5736	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
5737	raw := NoMethod(*s)
5738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5739}
5740
5741// BackendServiceFailoverPolicy: For load balancers that have
5742// configurable failover: Internal TCP/UDP Load Balancing
5743// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5744// and external TCP/UDP Load Balancing
5745// (/network/networklb-failover-overview). On failover or failback, this
5746// field indicates whether connection draining will be honored. Google
5747// Cloud has a fixed connection draining timeout of 10 minutes. A
5748// setting of true terminates existing TCP connections to the active
5749// pool during failover and failback, immediately draining traffic. A
5750// setting of false allows existing TCP connections to persist, even on
5751// VMs no longer in the active pool, for up to the duration of the
5752// connection draining timeout (10 minutes).
5753type BackendServiceFailoverPolicy struct {
5754	// DisableConnectionDrainOnFailover: This can be set to true only if the
5755	// protocol is TCP. The default is false.
5756	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5757
5758	// DropTrafficIfUnhealthy: If set to true, connections to the load
5759	// balancer are dropped when all primary and all backup backend VMs are
5760	// unhealthy.If set to false, connections are distributed among all
5761	// primary VMs when all primary and all backup backend VMs are
5762	// unhealthy. For load balancers that have configurable failover:
5763	// Internal TCP/UDP Load Balancing
5764	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5765	// and external TCP/UDP Load Balancing
5766	// (/network/networklb-failover-overview). The default is false.
5767	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5768
5769	// FailoverRatio: The value of the field must be in the range [0, 1]. If
5770	// the value is 0, the load balancer performs a failover when the number
5771	// of healthy primary VMs equals zero. For all other values, the load
5772	// balancer performs a failover when the total number of healthy primary
5773	// VMs is less than this ratio. For load balancers that have
5774	// configurable failover: Internal TCP/UDP Load Balancing
5775	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5776	// and external TCP/UDP Load Balancing
5777	// (/network/networklb-failover-overview).
5778	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5779
5780	// ForceSendFields is a list of field names (e.g.
5781	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5782	// requests. By default, fields with empty or default values are omitted
5783	// from API requests. However, any non-pointer, non-interface field
5784	// appearing in ForceSendFields will be sent to the server regardless of
5785	// whether the field is empty or not. This may be used to include empty
5786	// fields in Patch requests.
5787	ForceSendFields []string `json:"-"`
5788
5789	// NullFields is a list of field names (e.g.
5790	// "DisableConnectionDrainOnFailover") to include in API requests with
5791	// the JSON null value. By default, fields with empty values are omitted
5792	// from API requests. However, any field with an empty value appearing
5793	// in NullFields will be sent to the server as null. It is an error if a
5794	// field in this list has a non-empty value. This may be used to include
5795	// null fields in Patch requests.
5796	NullFields []string `json:"-"`
5797}
5798
5799func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5800	type NoMethod BackendServiceFailoverPolicy
5801	raw := NoMethod(*s)
5802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5803}
5804
5805func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5806	type NoMethod BackendServiceFailoverPolicy
5807	var s1 struct {
5808		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5809		*NoMethod
5810	}
5811	s1.NoMethod = (*NoMethod)(s)
5812	if err := json.Unmarshal(data, &s1); err != nil {
5813		return err
5814	}
5815	s.FailoverRatio = float64(s1.FailoverRatio)
5816	return nil
5817}
5818
5819type BackendServiceGroupHealth struct {
5820	// Annotations: Metadata defined as annotations on the network endpoint
5821	// group.
5822	Annotations map[string]string `json:"annotations,omitempty"`
5823
5824	// HealthStatus: Health state of the backend instances or endpoints in
5825	// requested instance or network endpoint group, determined based on
5826	// configured health checks.
5827	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5828
5829	// Kind: [Output Only] Type of resource. Always
5830	// compute#backendServiceGroupHealth for the health of backend services.
5831	Kind string `json:"kind,omitempty"`
5832
5833	// ServerResponse contains the HTTP response code and headers from the
5834	// server.
5835	googleapi.ServerResponse `json:"-"`
5836
5837	// ForceSendFields is a list of field names (e.g. "Annotations") to
5838	// unconditionally include in API requests. By default, fields with
5839	// empty or default values are omitted from API requests. However, any
5840	// non-pointer, non-interface field appearing in ForceSendFields will be
5841	// sent to the server regardless of whether the field is empty or not.
5842	// This may be used to include empty fields in Patch requests.
5843	ForceSendFields []string `json:"-"`
5844
5845	// NullFields is a list of field names (e.g. "Annotations") to include
5846	// in API requests with the JSON null value. By default, fields with
5847	// empty values are omitted from API requests. However, any field with
5848	// an empty value appearing in NullFields will be sent to the server as
5849	// null. It is an error if a field in this list has a non-empty value.
5850	// This may be used to include null fields in Patch requests.
5851	NullFields []string `json:"-"`
5852}
5853
5854func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5855	type NoMethod BackendServiceGroupHealth
5856	raw := NoMethod(*s)
5857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5858}
5859
5860// BackendServiceIAP: Identity-Aware Proxy
5861type BackendServiceIAP struct {
5862	// Enabled: Whether the serving infrastructure will authenticate and
5863	// authorize all incoming requests. If true, the oauth2ClientId and
5864	// oauth2ClientSecret fields must be non-empty.
5865	Enabled bool `json:"enabled,omitempty"`
5866
5867	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5868	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5869
5870	// Oauth2ClientSecret: OAuth2 client secret to use for the
5871	// authentication flow. For security reasons, this value cannot be
5872	// retrieved via the API. Instead, the SHA-256 hash of the value is
5873	// returned in the oauth2ClientSecretSha256 field. @InputOnly
5874	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5875
5876	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5877	// field oauth2_client_secret above.
5878	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5879
5880	// ForceSendFields is a list of field names (e.g. "Enabled") to
5881	// unconditionally include in API requests. By default, fields with
5882	// empty or default values are omitted from API requests. However, any
5883	// non-pointer, non-interface field appearing in ForceSendFields will be
5884	// sent to the server regardless of whether the field is empty or not.
5885	// This may be used to include empty fields in Patch requests.
5886	ForceSendFields []string `json:"-"`
5887
5888	// NullFields is a list of field names (e.g. "Enabled") to include in
5889	// API requests with the JSON null value. By default, fields with empty
5890	// values are omitted from API requests. However, any field with an
5891	// empty value appearing in NullFields will be sent to the server as
5892	// null. It is an error if a field in this list has a non-empty value.
5893	// This may be used to include null fields in Patch requests.
5894	NullFields []string `json:"-"`
5895}
5896
5897func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5898	type NoMethod BackendServiceIAP
5899	raw := NoMethod(*s)
5900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5901}
5902
5903// BackendServiceList: Contains a list of BackendService resources.
5904type BackendServiceList struct {
5905	// Id: [Output Only] Unique identifier for the resource; defined by the
5906	// server.
5907	Id string `json:"id,omitempty"`
5908
5909	// Items: A list of BackendService resources.
5910	Items []*BackendService `json:"items,omitempty"`
5911
5912	// Kind: [Output Only] Type of resource. Always
5913	// compute#backendServiceList for lists of backend services.
5914	Kind string `json:"kind,omitempty"`
5915
5916	// NextPageToken: [Output Only] This token allows you to get the next
5917	// page of results for list requests. If the number of results is larger
5918	// than maxResults, use the nextPageToken as a value for the query
5919	// parameter pageToken in the next list request. Subsequent list
5920	// requests will have their own nextPageToken to continue paging through
5921	// the results.
5922	NextPageToken string `json:"nextPageToken,omitempty"`
5923
5924	// SelfLink: [Output Only] Server-defined URL for this resource.
5925	SelfLink string `json:"selfLink,omitempty"`
5926
5927	// Warning: [Output Only] Informational warning message.
5928	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5929
5930	// ServerResponse contains the HTTP response code and headers from the
5931	// server.
5932	googleapi.ServerResponse `json:"-"`
5933
5934	// ForceSendFields is a list of field names (e.g. "Id") to
5935	// unconditionally include in API requests. By default, fields with
5936	// empty or default values are omitted from API requests. However, any
5937	// non-pointer, non-interface field appearing in ForceSendFields will be
5938	// sent to the server regardless of whether the field is empty or not.
5939	// This may be used to include empty fields in Patch requests.
5940	ForceSendFields []string `json:"-"`
5941
5942	// NullFields is a list of field names (e.g. "Id") to include in API
5943	// requests with the JSON null value. By default, fields with empty
5944	// values are omitted from API requests. However, any field with an
5945	// empty value appearing in NullFields will be sent to the server as
5946	// null. It is an error if a field in this list has a non-empty value.
5947	// This may be used to include null fields in Patch requests.
5948	NullFields []string `json:"-"`
5949}
5950
5951func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5952	type NoMethod BackendServiceList
5953	raw := NoMethod(*s)
5954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5955}
5956
5957// BackendServiceListWarning: [Output Only] Informational warning
5958// message.
5959type BackendServiceListWarning struct {
5960	// Code: [Output Only] A warning code, if applicable. For example,
5961	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5962	// the response.
5963	//
5964	// Possible values:
5965	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
5966	// changes made by a failed operation.
5967	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
5968	// created.
5969	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
5970	// resources has a type marked as deprecated
5971	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
5972	// that is larger than image size.
5973	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
5974	// resources has a type marked as experimental
5975	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
5976	// call
5977	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
5978	// overridden. Deprecated unused field.
5979	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
5980	// injected kernel, which is deprecated.
5981	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
5982	// exceedingly large number of resources
5983	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
5984	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
5985	// not assigned to an instance on the network.
5986	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
5987	// ip forward.
5988	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
5989	// refers to an instance that does not exist.
5990	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
5991	// URL refers to an instance that is not on the same network as the
5992	// route.
5993	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
5994	// have a status of RUNNING.
5995	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
5996	// continue the process despite the mentioned error.
5997	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
5998	// page.
5999	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6000	// missing due to errors
6001	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6002	// that requires a TOS they have not accepted.
6003	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6004	// resource is in use.
6005	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6006	// auto-delete could not be deleted because they were in use.
6007	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6008	// ignored.
6009	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6010	// instance group manager is valid as such, but its application does not
6011	// make a lot of sense, because it allows only single instance in
6012	// instance group.
6013	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6014	// are present
6015	//   "UNREACHABLE" - A given scope cannot be reached.
6016	Code string `json:"code,omitempty"`
6017
6018	// Data: [Output Only] Metadata about this warning in key: value format.
6019	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6020	// }
6021	Data []*BackendServiceListWarningData `json:"data,omitempty"`
6022
6023	// Message: [Output Only] A human-readable description of the warning
6024	// code.
6025	Message string `json:"message,omitempty"`
6026
6027	// ForceSendFields is a list of field names (e.g. "Code") to
6028	// unconditionally include in API requests. By default, fields with
6029	// empty or default values are omitted from API requests. However, any
6030	// non-pointer, non-interface field appearing in ForceSendFields will be
6031	// sent to the server regardless of whether the field is empty or not.
6032	// This may be used to include empty fields in Patch requests.
6033	ForceSendFields []string `json:"-"`
6034
6035	// NullFields is a list of field names (e.g. "Code") to include in API
6036	// requests with the JSON null value. By default, fields with empty
6037	// values are omitted from API requests. However, any field with an
6038	// empty value appearing in NullFields will be sent to the server as
6039	// null. It is an error if a field in this list has a non-empty value.
6040	// This may be used to include null fields in Patch requests.
6041	NullFields []string `json:"-"`
6042}
6043
6044func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
6045	type NoMethod BackendServiceListWarning
6046	raw := NoMethod(*s)
6047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6048}
6049
6050type BackendServiceListWarningData struct {
6051	// Key: [Output Only] A key that provides more detail on the warning
6052	// being returned. For example, for warnings where there are no results
6053	// in a list request for a particular zone, this key might be scope and
6054	// the key value might be the zone name. Other examples might be a key
6055	// indicating a deprecated resource and a suggested replacement, or a
6056	// warning about invalid network settings (for example, if an instance
6057	// attempts to perform IP forwarding but is not enabled for IP
6058	// forwarding).
6059	Key string `json:"key,omitempty"`
6060
6061	// Value: [Output Only] A warning data value corresponding to the key.
6062	Value string `json:"value,omitempty"`
6063
6064	// ForceSendFields is a list of field names (e.g. "Key") to
6065	// unconditionally include in API requests. By default, fields with
6066	// empty or default values are omitted from API requests. However, any
6067	// non-pointer, non-interface field appearing in ForceSendFields will be
6068	// sent to the server regardless of whether the field is empty or not.
6069	// This may be used to include empty fields in Patch requests.
6070	ForceSendFields []string `json:"-"`
6071
6072	// NullFields is a list of field names (e.g. "Key") to include in API
6073	// requests with the JSON null value. By default, fields with empty
6074	// values are omitted from API requests. However, any field with an
6075	// empty value appearing in NullFields will be sent to the server as
6076	// null. It is an error if a field in this list has a non-empty value.
6077	// This may be used to include null fields in Patch requests.
6078	NullFields []string `json:"-"`
6079}
6080
6081func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
6082	type NoMethod BackendServiceListWarningData
6083	raw := NoMethod(*s)
6084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6085}
6086
6087// BackendServiceLogConfig: The available logging options for the load
6088// balancer traffic served by this backend service.
6089type BackendServiceLogConfig struct {
6090	// Enable: This field denotes whether to enable logging for the load
6091	// balancer traffic served by this backend service.
6092	Enable bool `json:"enable,omitempty"`
6093
6094	// SampleRate: This field can only be specified if logging is enabled
6095	// for this backend service. The value of the field must be in [0, 1].
6096	// This configures the sampling rate of requests to the load balancer
6097	// where 1.0 means all logged requests are reported and 0.0 means no
6098	// logged requests are reported. The default value is 1.0.
6099	SampleRate float64 `json:"sampleRate,omitempty"`
6100
6101	// ForceSendFields is a list of field names (e.g. "Enable") to
6102	// unconditionally include in API requests. By default, fields with
6103	// empty or default values are omitted from API requests. However, any
6104	// non-pointer, non-interface field appearing in ForceSendFields will be
6105	// sent to the server regardless of whether the field is empty or not.
6106	// This may be used to include empty fields in Patch requests.
6107	ForceSendFields []string `json:"-"`
6108
6109	// NullFields is a list of field names (e.g. "Enable") to include in API
6110	// 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 *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
6119	type NoMethod BackendServiceLogConfig
6120	raw := NoMethod(*s)
6121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6122}
6123
6124func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
6125	type NoMethod BackendServiceLogConfig
6126	var s1 struct {
6127		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
6128		*NoMethod
6129	}
6130	s1.NoMethod = (*NoMethod)(s)
6131	if err := json.Unmarshal(data, &s1); err != nil {
6132		return err
6133	}
6134	s.SampleRate = float64(s1.SampleRate)
6135	return nil
6136}
6137
6138type BackendServiceReference struct {
6139	BackendService string `json:"backendService,omitempty"`
6140
6141	// ForceSendFields is a list of field names (e.g. "BackendService") to
6142	// unconditionally include in API requests. By default, fields with
6143	// empty or default values are omitted from API requests. However, any
6144	// non-pointer, non-interface field appearing in ForceSendFields will be
6145	// sent to the server regardless of whether the field is empty or not.
6146	// This may be used to include empty fields in Patch requests.
6147	ForceSendFields []string `json:"-"`
6148
6149	// NullFields is a list of field names (e.g. "BackendService") to
6150	// include in API requests with the JSON null value. By default, fields
6151	// with empty values are omitted from API requests. However, any field
6152	// with an empty value appearing in NullFields will be sent to the
6153	// server as null. It is an error if a field in this list has a
6154	// non-empty value. This may be used to include null fields in Patch
6155	// requests.
6156	NullFields []string `json:"-"`
6157}
6158
6159func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
6160	type NoMethod BackendServiceReference
6161	raw := NoMethod(*s)
6162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6163}
6164
6165type BackendServicesScopedList struct {
6166	// BackendServices: A list of BackendServices contained in this scope.
6167	BackendServices []*BackendService `json:"backendServices,omitempty"`
6168
6169	// Warning: Informational warning which replaces the list of backend
6170	// services when the list is empty.
6171	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
6172
6173	// ForceSendFields is a list of field names (e.g. "BackendServices") to
6174	// unconditionally include in API requests. By default, fields with
6175	// empty or default values are omitted from API requests. However, any
6176	// non-pointer, non-interface field appearing in ForceSendFields will be
6177	// sent to the server regardless of whether the field is empty or not.
6178	// This may be used to include empty fields in Patch requests.
6179	ForceSendFields []string `json:"-"`
6180
6181	// NullFields is a list of field names (e.g. "BackendServices") to
6182	// include in API requests with the JSON null value. By default, fields
6183	// with empty values are omitted from API requests. However, any field
6184	// with an empty value appearing in NullFields will be sent to the
6185	// server as null. It is an error if a field in this list has a
6186	// non-empty value. This may be used to include null fields in Patch
6187	// requests.
6188	NullFields []string `json:"-"`
6189}
6190
6191func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
6192	type NoMethod BackendServicesScopedList
6193	raw := NoMethod(*s)
6194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6195}
6196
6197// BackendServicesScopedListWarning: Informational warning which
6198// replaces the list of backend services when the list is empty.
6199type BackendServicesScopedListWarning struct {
6200	// Code: [Output Only] A warning code, if applicable. For example,
6201	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6202	// the response.
6203	//
6204	// Possible values:
6205	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
6206	// changes made by a failed operation.
6207	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
6208	// created.
6209	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
6210	// resources has a type marked as deprecated
6211	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
6212	// that is larger than image size.
6213	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
6214	// resources has a type marked as experimental
6215	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
6216	// call
6217	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
6218	// overridden. Deprecated unused field.
6219	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
6220	// injected kernel, which is deprecated.
6221	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
6222	// exceedingly large number of resources
6223	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
6224	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
6225	// not assigned to an instance on the network.
6226	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
6227	// ip forward.
6228	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
6229	// refers to an instance that does not exist.
6230	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
6231	// URL refers to an instance that is not on the same network as the
6232	// route.
6233	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
6234	// have a status of RUNNING.
6235	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
6236	// continue the process despite the mentioned error.
6237	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
6238	// page.
6239	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6240	// missing due to errors
6241	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6242	// that requires a TOS they have not accepted.
6243	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6244	// resource is in use.
6245	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6246	// auto-delete could not be deleted because they were in use.
6247	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6248	// ignored.
6249	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6250	// instance group manager is valid as such, but its application does not
6251	// make a lot of sense, because it allows only single instance in
6252	// instance group.
6253	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6254	// are present
6255	//   "UNREACHABLE" - A given scope cannot be reached.
6256	Code string `json:"code,omitempty"`
6257
6258	// Data: [Output Only] Metadata about this warning in key: value format.
6259	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6260	// }
6261	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
6262
6263	// Message: [Output Only] A human-readable description of the warning
6264	// code.
6265	Message string `json:"message,omitempty"`
6266
6267	// ForceSendFields is a list of field names (e.g. "Code") to
6268	// unconditionally include in API requests. By default, fields with
6269	// empty or default values are omitted from API requests. However, any
6270	// non-pointer, non-interface field appearing in ForceSendFields will be
6271	// sent to the server regardless of whether the field is empty or not.
6272	// This may be used to include empty fields in Patch requests.
6273	ForceSendFields []string `json:"-"`
6274
6275	// NullFields is a list of field names (e.g. "Code") to include in API
6276	// requests with the JSON null value. By default, fields with empty
6277	// values are omitted from API requests. However, any field with an
6278	// empty value appearing in NullFields will be sent to the server as
6279	// null. It is an error if a field in this list has a non-empty value.
6280	// This may be used to include null fields in Patch requests.
6281	NullFields []string `json:"-"`
6282}
6283
6284func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
6285	type NoMethod BackendServicesScopedListWarning
6286	raw := NoMethod(*s)
6287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6288}
6289
6290type BackendServicesScopedListWarningData struct {
6291	// Key: [Output Only] A key that provides more detail on the warning
6292	// being returned. For example, for warnings where there are no results
6293	// in a list request for a particular zone, this key might be scope and
6294	// the key value might be the zone name. Other examples might be a key
6295	// indicating a deprecated resource and a suggested replacement, or a
6296	// warning about invalid network settings (for example, if an instance
6297	// attempts to perform IP forwarding but is not enabled for IP
6298	// forwarding).
6299	Key string `json:"key,omitempty"`
6300
6301	// Value: [Output Only] A warning data value corresponding to the key.
6302	Value string `json:"value,omitempty"`
6303
6304	// ForceSendFields is a list of field names (e.g. "Key") to
6305	// unconditionally include in API requests. By default, fields with
6306	// empty or default values are omitted from API requests. However, any
6307	// non-pointer, non-interface field appearing in ForceSendFields will be
6308	// sent to the server regardless of whether the field is empty or not.
6309	// This may be used to include empty fields in Patch requests.
6310	ForceSendFields []string `json:"-"`
6311
6312	// NullFields is a list of field names (e.g. "Key") to include in API
6313	// requests with the JSON null value. By default, fields with empty
6314	// values are omitted from API requests. However, any field with an
6315	// empty value appearing in NullFields will be sent to the server as
6316	// null. It is an error if a field in this list has a non-empty value.
6317	// This may be used to include null fields in Patch requests.
6318	NullFields []string `json:"-"`
6319}
6320
6321func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
6322	type NoMethod BackendServicesScopedListWarningData
6323	raw := NoMethod(*s)
6324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6325}
6326
6327// Binding: Associates `members` with a `role`.
6328type Binding struct {
6329	// BindingId: This is deprecated and has no effect. Do not use.
6330	BindingId string `json:"bindingId,omitempty"`
6331
6332	// Condition: The condition that is associated with this binding. If the
6333	// condition evaluates to `true`, then this binding applies to the
6334	// current request. If the condition evaluates to `false`, then this
6335	// binding does not apply to the current request. However, a different
6336	// role binding might grant the same role to one or more of the members
6337	// in this binding. To learn which resources support conditions in their
6338	// IAM policies, see the IAM documentation
6339	// (https://cloud.google.com/iam/help/conditions/resource-policies).
6340	Condition *Expr `json:"condition,omitempty"`
6341
6342	// Members: Specifies the identities requesting access for a Cloud
6343	// Platform resource. `members` can have the following values: *
6344	// `allUsers`: A special identifier that represents anyone who is on the
6345	// internet; with or without a Google account. *
6346	// `allAuthenticatedUsers`: A special identifier that represents anyone
6347	// who is authenticated with a Google account or a service account. *
6348	// `user:{emailid}`: An email address that represents a specific Google
6349	// account. For example, `alice@example.com` . *
6350	// `serviceAccount:{emailid}`: An email address that represents a
6351	// service account. For example,
6352	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
6353	// email address that represents a Google group. For example,
6354	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
6355	// email address (plus unique identifier) representing a user that has
6356	// been recently deleted. For example,
6357	// `alice@example.com?uid=123456789012345678901`. If the user is
6358	// recovered, this value reverts to `user:{emailid}` and the recovered
6359	// user retains the role in the binding. *
6360	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6361	// (plus unique identifier) representing a service account that has been
6362	// recently deleted. For example,
6363	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6364	// If the service account is undeleted, this value reverts to
6365	// `serviceAccount:{emailid}` and the undeleted service account retains
6366	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
6367	// An email address (plus unique identifier) representing a Google group
6368	// that has been recently deleted. For example,
6369	// `admins@example.com?uid=123456789012345678901`. If the group is
6370	// recovered, this value reverts to `group:{emailid}` and the recovered
6371	// group retains the role in the binding. * `domain:{domain}`: The G
6372	// Suite domain (primary) that represents all the users of that domain.
6373	// For example, `google.com` or `example.com`.
6374	Members []string `json:"members,omitempty"`
6375
6376	// Role: Role that is assigned to `members`. For example,
6377	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6378	Role string `json:"role,omitempty"`
6379
6380	// ForceSendFields is a list of field names (e.g. "BindingId") to
6381	// unconditionally include in API requests. By default, fields with
6382	// empty or default values are omitted from API requests. However, any
6383	// non-pointer, non-interface field appearing in ForceSendFields will be
6384	// sent to the server regardless of whether the field is empty or not.
6385	// This may be used to include empty fields in Patch requests.
6386	ForceSendFields []string `json:"-"`
6387
6388	// NullFields is a list of field names (e.g. "BindingId") to include in
6389	// API requests with the JSON null value. By default, fields with empty
6390	// values are omitted from API requests. However, any field with an
6391	// empty value appearing in NullFields will be sent to the server as
6392	// null. It is an error if a field in this list has a non-empty value.
6393	// This may be used to include null fields in Patch requests.
6394	NullFields []string `json:"-"`
6395}
6396
6397func (s *Binding) MarshalJSON() ([]byte, error) {
6398	type NoMethod Binding
6399	raw := NoMethod(*s)
6400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6401}
6402
6403// BulkInsertInstanceResource: A transient resource used in
6404// compute.instances.bulkInsert and compute.regionInstances.bulkInsert .
6405// This resource is not persisted anywhere, it is used only for
6406// processing the requests.
6407type BulkInsertInstanceResource struct {
6408	// Count: The maximum number of instances to create.
6409	Count int64 `json:"count,omitempty,string"`
6410
6411	// InstanceProperties: The instance properties defining the VM instances
6412	// to be created. Required if sourceInstanceTemplate is not provided.
6413	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
6414
6415	// LocationPolicy: Policy for chosing target zone.
6416	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
6417
6418	// MinCount: The minimum number of instances to create. If no min_count
6419	// is specified then count is used as the default value. If min_count
6420	// instances cannot be created, then no instances will be created and
6421	// instances already created will be deleted.
6422	MinCount int64 `json:"minCount,omitempty,string"`
6423
6424	// NamePattern: The string pattern used for the names of the VMs. Either
6425	// name_pattern or per_instance_properties must be set. The pattern must
6426	// contain one continuous sequence of placeholder hash characters (#)
6427	// with each character corresponding to one digit of the generated
6428	// instance name. Example: a name_pattern of inst-#### generates
6429	// instance names such as inst-0001 and inst-0002. If existing instances
6430	// in the same project and zone have names that match the name pattern
6431	// then the generated instance numbers start after the biggest existing
6432	// number. For example, if there exists an instance with name inst-0050,
6433	// then instance names generated using the pattern inst-#### begin with
6434	// inst-0051. The name pattern placeholder #...# can contain up to 18
6435	// characters.
6436	NamePattern string `json:"namePattern,omitempty"`
6437
6438	// PerInstanceProperties: Per-instance properties to be set on
6439	// individual instances. Keys of this map specify requested instance
6440	// names. Can be empty if name_pattern is used.
6441	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
6442
6443	// SourceInstanceTemplate: Specifies the instance template from which to
6444	// create instances. You may combine sourceInstanceTemplate with
6445	// instanceProperties to override specific values from an existing
6446	// instance template. Bulk API follows the semantics of JSON Merge Patch
6447	// described by RFC 7396. It can be a full or partial URL. For example,
6448	// the following are all valid URLs to an instance template: -
6449	// https://www.googleapis.com/compute/v1/projects/project
6450	// /global/instanceTemplates/instanceTemplate -
6451	// projects/project/global/instanceTemplates/instanceTemplate -
6452	// global/instanceTemplates/instanceTemplate This field is optional.
6453	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6454
6455	// ForceSendFields is a list of field names (e.g. "Count") to
6456	// unconditionally include in API requests. By default, fields with
6457	// empty or default values are omitted from API requests. However, any
6458	// non-pointer, non-interface field appearing in ForceSendFields will be
6459	// sent to the server regardless of whether the field is empty or not.
6460	// This may be used to include empty fields in Patch requests.
6461	ForceSendFields []string `json:"-"`
6462
6463	// NullFields is a list of field names (e.g. "Count") to include in API
6464	// requests with the JSON null value. By default, fields with empty
6465	// values are omitted from API requests. However, any field with an
6466	// empty value appearing in NullFields will be sent to the server as
6467	// null. It is an error if a field in this list has a non-empty value.
6468	// This may be used to include null fields in Patch requests.
6469	NullFields []string `json:"-"`
6470}
6471
6472func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6473	type NoMethod BulkInsertInstanceResource
6474	raw := NoMethod(*s)
6475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6476}
6477
6478// BulkInsertInstanceResourcePerInstanceProperties: Per-instance
6479// properties to be set on individual instances. To be extended in the
6480// future.
6481type BulkInsertInstanceResourcePerInstanceProperties struct {
6482	// Name: This field is only temporary. It will be removed. Do not use
6483	// it.
6484	Name string `json:"name,omitempty"`
6485
6486	// ForceSendFields is a list of field names (e.g. "Name") to
6487	// unconditionally include in API requests. By default, fields with
6488	// empty or default values are omitted from API requests. However, any
6489	// non-pointer, non-interface field appearing in ForceSendFields will be
6490	// sent to the server regardless of whether the field is empty or not.
6491	// This may be used to include empty fields in Patch requests.
6492	ForceSendFields []string `json:"-"`
6493
6494	// NullFields is a list of field names (e.g. "Name") to include in API
6495	// requests with the JSON null value. By default, fields with empty
6496	// values are omitted from API requests. However, any field with an
6497	// empty value appearing in NullFields will be sent to the server as
6498	// null. It is an error if a field in this list has a non-empty value.
6499	// This may be used to include null fields in Patch requests.
6500	NullFields []string `json:"-"`
6501}
6502
6503func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
6504	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
6505	raw := NoMethod(*s)
6506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6507}
6508
6509type CacheInvalidationRule struct {
6510	// Host: If set, this invalidation rule will only apply to requests with
6511	// a Host header matching host.
6512	Host string `json:"host,omitempty"`
6513
6514	Path string `json:"path,omitempty"`
6515
6516	// ForceSendFields is a list of field names (e.g. "Host") to
6517	// unconditionally include in API requests. By default, fields with
6518	// empty or default values are omitted from API requests. However, any
6519	// non-pointer, non-interface field appearing in ForceSendFields will be
6520	// sent to the server regardless of whether the field is empty or not.
6521	// This may be used to include empty fields in Patch requests.
6522	ForceSendFields []string `json:"-"`
6523
6524	// NullFields is a list of field names (e.g. "Host") to include in API
6525	// requests with the JSON null value. By default, fields with empty
6526	// values are omitted from API requests. However, any field with an
6527	// empty value appearing in NullFields will be sent to the server as
6528	// null. It is an error if a field in this list has a non-empty value.
6529	// This may be used to include null fields in Patch requests.
6530	NullFields []string `json:"-"`
6531}
6532
6533func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6534	type NoMethod CacheInvalidationRule
6535	raw := NoMethod(*s)
6536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6537}
6538
6539// CacheKeyPolicy: Message containing what to include in the cache key
6540// for a request for Cloud CDN.
6541type CacheKeyPolicy struct {
6542	// IncludeHost: If true, requests to different hosts will be cached
6543	// separately.
6544	IncludeHost bool `json:"includeHost,omitempty"`
6545
6546	// IncludeProtocol: If true, http and https requests will be cached
6547	// separately.
6548	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6549
6550	// IncludeQueryString: If true, include query string parameters in the
6551	// cache key according to query_string_whitelist and
6552	// query_string_blacklist. If neither is set, the entire query string
6553	// will be included. If false, the query string will be excluded from
6554	// the cache key entirely.
6555	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6556
6557	// QueryStringBlacklist: Names of query string parameters to exclude in
6558	// cache keys. All other parameters will be included. Either specify
6559	// query_string_whitelist or query_string_blacklist, not both. '&' and
6560	// '=' will be percent encoded and not treated as delimiters.
6561	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6562
6563	// QueryStringWhitelist: Names of query string parameters to include in
6564	// cache keys. All other parameters will be excluded. Either specify
6565	// query_string_whitelist or query_string_blacklist, not both. '&' and
6566	// '=' will be percent encoded and not treated as delimiters.
6567	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6568
6569	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6570	// unconditionally include in API requests. By default, fields with
6571	// empty or default values are omitted from API requests. However, any
6572	// non-pointer, non-interface field appearing in ForceSendFields will be
6573	// sent to the server regardless of whether the field is empty or not.
6574	// This may be used to include empty fields in Patch requests.
6575	ForceSendFields []string `json:"-"`
6576
6577	// NullFields is a list of field names (e.g. "IncludeHost") to include
6578	// in API requests with the JSON null value. By default, fields with
6579	// empty values are omitted from API requests. However, any field with
6580	// an empty value appearing in NullFields will be sent to the server as
6581	// null. It is an error if a field in this list has a non-empty value.
6582	// This may be used to include null fields in Patch requests.
6583	NullFields []string `json:"-"`
6584}
6585
6586func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6587	type NoMethod CacheKeyPolicy
6588	raw := NoMethod(*s)
6589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6590}
6591
6592// CircuitBreakers: Settings controlling the volume of requests,
6593// connections and retries to this backend service.
6594type CircuitBreakers struct {
6595	// MaxConnections: Not supported when the backend service is referenced
6596	// by a URL map that is bound to target gRPC proxy that has
6597	// validateForProxyless field set to true.
6598	MaxConnections int64 `json:"maxConnections,omitempty"`
6599
6600	// MaxPendingRequests: Not supported when the backend service is
6601	// referenced by a URL map that is bound to target gRPC proxy that has
6602	// validateForProxyless field set to true.
6603	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6604
6605	// MaxRequests: The maximum number of parallel requests that allowed to
6606	// the backend service. If not specified, there is no limit.
6607	MaxRequests int64 `json:"maxRequests,omitempty"`
6608
6609	// MaxRequestsPerConnection: Not supported when the backend service is
6610	// referenced by a URL map that is bound to target gRPC proxy that has
6611	// validateForProxyless field set to true.
6612	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6613
6614	// MaxRetries: Not supported when the backend service is referenced by a
6615	// URL map that is bound to target gRPC proxy that has
6616	// validateForProxyless field set to true.
6617	MaxRetries int64 `json:"maxRetries,omitempty"`
6618
6619	// ForceSendFields is a list of field names (e.g. "MaxConnections") to
6620	// unconditionally include in API requests. By default, fields with
6621	// empty or default values are omitted from API requests. However, any
6622	// non-pointer, non-interface field appearing in ForceSendFields will be
6623	// sent to the server regardless of whether the field is empty or not.
6624	// This may be used to include empty fields in Patch requests.
6625	ForceSendFields []string `json:"-"`
6626
6627	// NullFields is a list of field names (e.g. "MaxConnections") to
6628	// include in API requests with the JSON null value. By default, fields
6629	// with empty values are omitted from API requests. However, any field
6630	// with an empty value appearing in NullFields will be sent to the
6631	// server as null. It is an error if a field in this list has a
6632	// non-empty value. This may be used to include null fields in Patch
6633	// requests.
6634	NullFields []string `json:"-"`
6635}
6636
6637func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6638	type NoMethod CircuitBreakers
6639	raw := NoMethod(*s)
6640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6641}
6642
6643// Commitment: Represents a regional Commitment resource. Creating a
6644// commitment resource means that you are purchasing a committed use
6645// contract with an explicit start and end time. You can create
6646// commitments based on vCPUs and memory usage and receive discounted
6647// rates. For full details, read Signing Up for Committed Use Discounts.
6648type Commitment struct {
6649	// Category: The category of the commitment. Category MACHINE specifies
6650	// commitments composed of machine resources such as VCPU or MEMORY,
6651	// listed in resources. Category LICENSE specifies commitments composed
6652	// of software licenses, listed in licenseResources. Note that only
6653	// MACHINE commitments should have a Type specified.
6654	//
6655	// Possible values:
6656	//   "CATEGORY_UNSPECIFIED"
6657	//   "LICENSE"
6658	//   "MACHINE"
6659	Category string `json:"category,omitempty"`
6660
6661	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6662	// format.
6663	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6664
6665	// Description: An optional description of this resource. Provide this
6666	// property when you create the resource.
6667	Description string `json:"description,omitempty"`
6668
6669	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6670	// format.
6671	EndTimestamp string `json:"endTimestamp,omitempty"`
6672
6673	// Id: [Output Only] The unique identifier for the resource. This
6674	// identifier is defined by the server.
6675	Id uint64 `json:"id,omitempty,string"`
6676
6677	// Kind: [Output Only] Type of the resource. Always compute#commitment
6678	// for commitments.
6679	Kind string `json:"kind,omitempty"`
6680
6681	// LicenseResource: The license specification required as part of a
6682	// license commitment.
6683	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6684
6685	// Name: Name of the resource. Provided by the client when the resource
6686	// is created. The name must be 1-63 characters long, and comply with
6687	// RFC1035. Specifically, the name must be 1-63 characters long and
6688	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6689	// the first character must be a lowercase letter, and all following
6690	// characters must be a dash, lowercase letter, or digit, except the
6691	// last character, which cannot be a dash.
6692	Name string `json:"name,omitempty"`
6693
6694	// Plan: The plan for this commitment, which determines duration and
6695	// discount rate. The currently supported plans are TWELVE_MONTH (1
6696	// year), and THIRTY_SIX_MONTH (3 years).
6697	//
6698	// Possible values:
6699	//   "INVALID"
6700	//   "THIRTY_SIX_MONTH"
6701	//   "TWELVE_MONTH"
6702	Plan string `json:"plan,omitempty"`
6703
6704	// Region: [Output Only] URL of the region where this commitment may be
6705	// used.
6706	Region string `json:"region,omitempty"`
6707
6708	// Reservations: List of reservations in this commitment.
6709	Reservations []*Reservation `json:"reservations,omitempty"`
6710
6711	// Resources: A list of commitment amounts for particular resources.
6712	// Note that VCPU and MEMORY resource commitments must occur together.
6713	Resources []*ResourceCommitment `json:"resources,omitempty"`
6714
6715	// SelfLink: [Output Only] Server-defined URL for the resource.
6716	SelfLink string `json:"selfLink,omitempty"`
6717
6718	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6719	// format.
6720	StartTimestamp string `json:"startTimestamp,omitempty"`
6721
6722	// Status: [Output Only] Status of the commitment with regards to
6723	// eventual expiration (each commitment has an end date defined). One of
6724	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6725	//
6726	// Possible values:
6727	//   "ACTIVE"
6728	//   "CREATING"
6729	//   "EXPIRED"
6730	//   "NOT_YET_ACTIVE"
6731	Status string `json:"status,omitempty"`
6732
6733	// StatusMessage: [Output Only] An optional, human-readable explanation
6734	// of the status.
6735	StatusMessage string `json:"statusMessage,omitempty"`
6736
6737	// Type: The type of commitment, which affects the discount rate and the
6738	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6739	// will only apply to memory optimized machines. Type
6740	// ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to
6741	// accelerator optimized machines.
6742	//
6743	// Possible values:
6744	//   "ACCELERATOR_OPTIMIZED"
6745	//   "COMPUTE_OPTIMIZED"
6746	//   "GENERAL_PURPOSE"
6747	//   "GENERAL_PURPOSE_E2"
6748	//   "GENERAL_PURPOSE_N2"
6749	//   "GENERAL_PURPOSE_N2D"
6750	//   "MEMORY_OPTIMIZED"
6751	//   "TYPE_UNSPECIFIED"
6752	Type string `json:"type,omitempty"`
6753
6754	// ServerResponse contains the HTTP response code and headers from the
6755	// server.
6756	googleapi.ServerResponse `json:"-"`
6757
6758	// ForceSendFields is a list of field names (e.g. "Category") to
6759	// unconditionally include in API requests. By default, fields with
6760	// empty or default values are omitted from API requests. However, any
6761	// non-pointer, non-interface field appearing in ForceSendFields will be
6762	// sent to the server regardless of whether the field is empty or not.
6763	// This may be used to include empty fields in Patch requests.
6764	ForceSendFields []string `json:"-"`
6765
6766	// NullFields is a list of field names (e.g. "Category") to include in
6767	// API requests with the JSON null value. By default, fields with empty
6768	// values are omitted from API requests. However, any field with an
6769	// empty value appearing in NullFields will be sent to the server as
6770	// null. It is an error if a field in this list has a non-empty value.
6771	// This may be used to include null fields in Patch requests.
6772	NullFields []string `json:"-"`
6773}
6774
6775func (s *Commitment) MarshalJSON() ([]byte, error) {
6776	type NoMethod Commitment
6777	raw := NoMethod(*s)
6778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6779}
6780
6781type CommitmentAggregatedList struct {
6782	// Id: [Output Only] Unique identifier for the resource; defined by the
6783	// server.
6784	Id string `json:"id,omitempty"`
6785
6786	// Items: A list of CommitmentsScopedList resources.
6787	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6788
6789	// Kind: [Output Only] Type of resource. Always
6790	// compute#commitmentAggregatedList for aggregated lists of commitments.
6791	Kind string `json:"kind,omitempty"`
6792
6793	// NextPageToken: [Output Only] This token allows you to get the next
6794	// page of results for list requests. If the number of results is larger
6795	// than maxResults, use the nextPageToken as a value for the query
6796	// parameter pageToken in the next list request. Subsequent list
6797	// requests will have their own nextPageToken to continue paging through
6798	// the results.
6799	NextPageToken string `json:"nextPageToken,omitempty"`
6800
6801	// SelfLink: [Output Only] Server-defined URL for this resource.
6802	SelfLink string `json:"selfLink,omitempty"`
6803
6804	// Unreachables: [Output Only] Unreachable resources.
6805	Unreachables []string `json:"unreachables,omitempty"`
6806
6807	// Warning: [Output Only] Informational warning message.
6808	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6809
6810	// ServerResponse contains the HTTP response code and headers from the
6811	// server.
6812	googleapi.ServerResponse `json:"-"`
6813
6814	// ForceSendFields is a list of field names (e.g. "Id") to
6815	// unconditionally include in API requests. By default, fields with
6816	// empty or default values are omitted from API requests. However, any
6817	// non-pointer, non-interface field appearing in ForceSendFields will be
6818	// sent to the server regardless of whether the field is empty or not.
6819	// This may be used to include empty fields in Patch requests.
6820	ForceSendFields []string `json:"-"`
6821
6822	// NullFields is a list of field names (e.g. "Id") to include in API
6823	// requests with the JSON null value. By default, fields with empty
6824	// values are omitted from API requests. However, any field with an
6825	// empty value appearing in NullFields will be sent to the server as
6826	// null. It is an error if a field in this list has a non-empty value.
6827	// This may be used to include null fields in Patch requests.
6828	NullFields []string `json:"-"`
6829}
6830
6831func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6832	type NoMethod CommitmentAggregatedList
6833	raw := NoMethod(*s)
6834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6835}
6836
6837// CommitmentAggregatedListWarning: [Output Only] Informational warning
6838// message.
6839type CommitmentAggregatedListWarning struct {
6840	// Code: [Output Only] A warning code, if applicable. For example,
6841	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6842	// the response.
6843	//
6844	// Possible values:
6845	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
6846	// changes made by a failed operation.
6847	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
6848	// created.
6849	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
6850	// resources has a type marked as deprecated
6851	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
6852	// that is larger than image size.
6853	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
6854	// resources has a type marked as experimental
6855	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
6856	// call
6857	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
6858	// overridden. Deprecated unused field.
6859	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
6860	// injected kernel, which is deprecated.
6861	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
6862	// exceedingly large number of resources
6863	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
6864	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
6865	// not assigned to an instance on the network.
6866	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
6867	// ip forward.
6868	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
6869	// refers to an instance that does not exist.
6870	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
6871	// URL refers to an instance that is not on the same network as the
6872	// route.
6873	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
6874	// have a status of RUNNING.
6875	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
6876	// continue the process despite the mentioned error.
6877	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
6878	// page.
6879	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6880	// missing due to errors
6881	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6882	// that requires a TOS they have not accepted.
6883	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6884	// resource is in use.
6885	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6886	// auto-delete could not be deleted because they were in use.
6887	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6888	// ignored.
6889	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6890	// instance group manager is valid as such, but its application does not
6891	// make a lot of sense, because it allows only single instance in
6892	// instance group.
6893	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6894	// are present
6895	//   "UNREACHABLE" - A given scope cannot be reached.
6896	Code string `json:"code,omitempty"`
6897
6898	// Data: [Output Only] Metadata about this warning in key: value format.
6899	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6900	// }
6901	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6902
6903	// Message: [Output Only] A human-readable description of the warning
6904	// code.
6905	Message string `json:"message,omitempty"`
6906
6907	// ForceSendFields is a list of field names (e.g. "Code") to
6908	// unconditionally include in API requests. By default, fields with
6909	// empty or default values are omitted from API requests. However, any
6910	// non-pointer, non-interface field appearing in ForceSendFields will be
6911	// sent to the server regardless of whether the field is empty or not.
6912	// This may be used to include empty fields in Patch requests.
6913	ForceSendFields []string `json:"-"`
6914
6915	// NullFields is a list of field names (e.g. "Code") to include in API
6916	// requests with the JSON null value. By default, fields with empty
6917	// values are omitted from API requests. However, any field with an
6918	// empty value appearing in NullFields will be sent to the server as
6919	// null. It is an error if a field in this list has a non-empty value.
6920	// This may be used to include null fields in Patch requests.
6921	NullFields []string `json:"-"`
6922}
6923
6924func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6925	type NoMethod CommitmentAggregatedListWarning
6926	raw := NoMethod(*s)
6927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6928}
6929
6930type CommitmentAggregatedListWarningData struct {
6931	// Key: [Output Only] A key that provides more detail on the warning
6932	// being returned. For example, for warnings where there are no results
6933	// in a list request for a particular zone, this key might be scope and
6934	// the key value might be the zone name. Other examples might be a key
6935	// indicating a deprecated resource and a suggested replacement, or a
6936	// warning about invalid network settings (for example, if an instance
6937	// attempts to perform IP forwarding but is not enabled for IP
6938	// forwarding).
6939	Key string `json:"key,omitempty"`
6940
6941	// Value: [Output Only] A warning data value corresponding to the key.
6942	Value string `json:"value,omitempty"`
6943
6944	// ForceSendFields is a list of field names (e.g. "Key") to
6945	// unconditionally include in API requests. By default, fields with
6946	// empty or default values are omitted from API requests. However, any
6947	// non-pointer, non-interface field appearing in ForceSendFields will be
6948	// sent to the server regardless of whether the field is empty or not.
6949	// This may be used to include empty fields in Patch requests.
6950	ForceSendFields []string `json:"-"`
6951
6952	// NullFields is a list of field names (e.g. "Key") to include in API
6953	// requests with the JSON null value. By default, fields with empty
6954	// values are omitted from API requests. However, any field with an
6955	// empty value appearing in NullFields will be sent to the server as
6956	// null. It is an error if a field in this list has a non-empty value.
6957	// This may be used to include null fields in Patch requests.
6958	NullFields []string `json:"-"`
6959}
6960
6961func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6962	type NoMethod CommitmentAggregatedListWarningData
6963	raw := NoMethod(*s)
6964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6965}
6966
6967// CommitmentList: Contains a list of Commitment resources.
6968type CommitmentList struct {
6969	// Id: [Output Only] Unique identifier for the resource; defined by the
6970	// server.
6971	Id string `json:"id,omitempty"`
6972
6973	// Items: A list of Commitment resources.
6974	Items []*Commitment `json:"items,omitempty"`
6975
6976	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6977	// for lists of commitments.
6978	Kind string `json:"kind,omitempty"`
6979
6980	// NextPageToken: [Output Only] This token allows you to get the next
6981	// page of results for list requests. If the number of results is larger
6982	// than maxResults, use the nextPageToken as a value for the query
6983	// parameter pageToken in the next list request. Subsequent list
6984	// requests will have their own nextPageToken to continue paging through
6985	// the results.
6986	NextPageToken string `json:"nextPageToken,omitempty"`
6987
6988	// SelfLink: [Output Only] Server-defined URL for this resource.
6989	SelfLink string `json:"selfLink,omitempty"`
6990
6991	// Warning: [Output Only] Informational warning message.
6992	Warning *CommitmentListWarning `json:"warning,omitempty"`
6993
6994	// ServerResponse contains the HTTP response code and headers from the
6995	// server.
6996	googleapi.ServerResponse `json:"-"`
6997
6998	// ForceSendFields is a list of field names (e.g. "Id") to
6999	// unconditionally include in API requests. By default, fields with
7000	// empty or default values are omitted from API requests. However, any
7001	// non-pointer, non-interface field appearing in ForceSendFields will be
7002	// sent to the server regardless of whether the field is empty or not.
7003	// This may be used to include empty fields in Patch requests.
7004	ForceSendFields []string `json:"-"`
7005
7006	// NullFields is a list of field names (e.g. "Id") to include in API
7007	// requests with the JSON null value. By default, fields with empty
7008	// values are omitted from API requests. However, any field with an
7009	// empty value appearing in NullFields will be sent to the server as
7010	// null. It is an error if a field in this list has a non-empty value.
7011	// This may be used to include null fields in Patch requests.
7012	NullFields []string `json:"-"`
7013}
7014
7015func (s *CommitmentList) MarshalJSON() ([]byte, error) {
7016	type NoMethod CommitmentList
7017	raw := NoMethod(*s)
7018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7019}
7020
7021// CommitmentListWarning: [Output Only] Informational warning message.
7022type CommitmentListWarning struct {
7023	// Code: [Output Only] A warning code, if applicable. For example,
7024	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7025	// the response.
7026	//
7027	// Possible values:
7028	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
7029	// changes made by a failed operation.
7030	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
7031	// created.
7032	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
7033	// resources has a type marked as deprecated
7034	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
7035	// that is larger than image size.
7036	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
7037	// resources has a type marked as experimental
7038	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
7039	// call
7040	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
7041	// overridden. Deprecated unused field.
7042	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
7043	// injected kernel, which is deprecated.
7044	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
7045	// exceedingly large number of resources
7046	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
7047	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
7048	// not assigned to an instance on the network.
7049	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
7050	// ip forward.
7051	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
7052	// refers to an instance that does not exist.
7053	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
7054	// URL refers to an instance that is not on the same network as the
7055	// route.
7056	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
7057	// have a status of RUNNING.
7058	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
7059	// continue the process despite the mentioned error.
7060	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
7061	// page.
7062	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
7063	// missing due to errors
7064	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
7065	// that requires a TOS they have not accepted.
7066	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
7067	// resource is in use.
7068	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
7069	// auto-delete could not be deleted because they were in use.
7070	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
7071	// ignored.
7072	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
7073	// instance group manager is valid as such, but its application does not
7074	// make a lot of sense, because it allows only single instance in
7075	// instance group.
7076	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
7077	// are present
7078	//   "UNREACHABLE" - A given scope cannot be reached.
7079	Code string `json:"code,omitempty"`
7080
7081	// Data: [Output Only] Metadata about this warning in key: value format.
7082	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
7083	// }
7084	Data []*CommitmentListWarningData `json:"data,omitempty"`
7085
7086	// Message: [Output Only] A human-readable description of the warning
7087	// code.
7088	Message string `json:"message,omitempty"`
7089
7090	// ForceSendFields is a list of field names (e.g. "Code") to
7091	// unconditionally include in API requests. By default, fields with
7092	// empty or default values are omitted from API requests. However, any
7093	// non-pointer, non-interface field appearing in ForceSendFields will be
7094	// sent to the server regardless of whether the field is empty or not.
7095	// This may be used to include empty fields in Patch requests.
7096	ForceSendFields []string `json:"-"`
7097
7098	// NullFields is a list of field names (e.g. "Code") to include in API
7099	// requests with the JSON null value. By default, fields with empty
7100	// values are omitted from API requests. However, any field with an
7101	// empty value appearing in NullFields will be sent to the server as
7102	// null. It is an error if a field in this list has a non-empty value.
7103	// This may be used to include null fields in Patch requests.
7104	NullFields []string `json:"-"`
7105}
7106
7107func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
7108	type NoMethod CommitmentListWarning
7109	raw := NoMethod(*s)
7110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7111}
7112
7113type CommitmentListWarningData struct {
7114	// Key: [Output Only] A key that provides more detail on the warning
7115	// being returned. For example, for warnings where there are no results
7116	// in a list request for a particular zone, this key might be scope and
7117	// the key value might be the zone name. Other examples might be a key
7118	// indicating a deprecated resource and a suggested replacement, or a
7119	// warning about invalid network settings (for example, if an instance
7120	// attempts to perform IP forwarding but is not enabled for IP
7121	// forwarding).
7122	Key string `json:"key,omitempty"`
7123
7124	// Value: [Output Only] A warning data value corresponding to the key.
7125	Value string `json:"value,omitempty"`
7126
7127	// ForceSendFields is a list of field names (e.g. "Key") to
7128	// unconditionally include in API requests. By default, fields with
7129	// empty or default values are omitted from API requests. However, any
7130	// non-pointer, non-interface field appearing in ForceSendFields will be
7131	// sent to the server regardless of whether the field is empty or not.
7132	// This may be used to include empty fields in Patch requests.
7133	ForceSendFields []string `json:"-"`
7134
7135	// NullFields is a list of field names (e.g. "Key") to include in API
7136	// requests with the JSON null value. By default, fields with empty
7137	// values are omitted from API requests. However, any field with an
7138	// empty value appearing in NullFields will be sent to the server as
7139	// null. It is an error if a field in this list has a non-empty value.
7140	// This may be used to include null fields in Patch requests.
7141	NullFields []string `json:"-"`
7142}
7143
7144func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
7145	type NoMethod CommitmentListWarningData
7146	raw := NoMethod(*s)
7147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7148}
7149
7150type CommitmentsScopedList struct {
7151	// Commitments: [Output Only] A list of commitments contained in this
7152	// scope.
7153	Commitments []*Commitment `json:"commitments,omitempty"`
7154
7155	// Warning: [Output Only] Informational warning which replaces the list
7156	// of commitments when the list is empty.
7157	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
7158
7159	// ForceSendFields is a list of field names (e.g. "Commitments") to
7160	// unconditionally include in API requests. By default, fields with
7161	// empty or default values are omitted from API requests. However, any
7162	// non-pointer, non-interface field appearing in ForceSendFields will be
7163	// sent to the server regardless of whether the field is empty or not.
7164	// This may be used to include empty fields in Patch requests.
7165	ForceSendFields []string `json:"-"`
7166
7167	// NullFields is a list of field names (e.g. "Commitments") to include
7168	// in API requests with the JSON null value. By default, fields with
7169	// empty values are omitted from API requests. However, any field with
7170	// an empty value appearing in NullFields will be sent to the server as
7171	// null. It is an error if a field in this list has a non-empty value.
7172	// This may be used to include null fields in Patch requests.
7173	NullFields []string `json:"-"`
7174}
7175
7176func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
7177	type NoMethod CommitmentsScopedList
7178	raw := NoMethod(*s)
7179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7180}
7181
7182// CommitmentsScopedListWarning: [Output Only] Informational warning
7183// which replaces the list of commitments when the list is empty.
7184type CommitmentsScopedListWarning struct {
7185	// Code: [Output Only] A warning code, if applicable. For example,
7186	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7187	// the response.
7188	//
7189	// Possible values:
7190	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
7191	// changes made by a failed operation.
7192	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
7193	// created.
7194	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
7195	// resources has a type marked as deprecated
7196	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
7197	// that is larger than image size.
7198	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
7199	// resources has a type marked as experimental
7200	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
7201	// call
7202	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
7203	// overridden. Deprecated unused field.
7204	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
7205	// injected kernel, which is deprecated.
7206	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
7207	// exceedingly large number of resources
7208	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
7209	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
7210	// not assigned to an instance on the network.
7211	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
7212	// ip forward.
7213	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
7214	// refers to an instance that does not exist.
7215	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
7216	// URL refers to an instance that is not on the same network as the
7217	// route.
7218	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
7219	// have a status of RUNNING.
7220	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
7221	// continue the process despite the mentioned error.
7222	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
7223	// page.
7224	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
7225	// missing due to errors
7226	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
7227	// that requires a TOS they have not accepted.
7228	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
7229	// resource is in use.
7230	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
7231	// auto-delete could not be deleted because they were in use.
7232	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
7233	// ignored.
7234	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
7235	// instance group manager is valid as such, but its application does not
7236	// make a lot of sense, because it allows only single instance in
7237	// instance group.
7238	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
7239	// are present
7240	//   "UNREACHABLE" - A given scope cannot be reached.
7241	Code string `json:"code,omitempty"`
7242
7243	// Data: [Output Only] Metadata about this warning in key: value format.
7244	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
7245	// }
7246	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
7247
7248	// Message: [Output Only] A human-readable description of the warning
7249	// code.
7250	Message string `json:"message,omitempty"`
7251
7252	// ForceSendFields is a list of field names (e.g. "Code") to
7253	// unconditionally include in API requests. By default, fields with
7254	// empty or default values are omitted from API requests. However, any
7255	// non-pointer, non-interface field appearing in ForceSendFields will be
7256	// sent to the server regardless of whether the field is empty or not.
7257	// This may be used to include empty fields in Patch requests.
7258	ForceSendFields []string `json:"-"`
7259
7260	// NullFields is a list of field names (e.g. "Code") to include in API
7261	// requests with the JSON null value. By default, fields with empty
7262	// values are omitted from API requests. However, any field with an
7263	// empty value appearing in NullFields will be sent to the server as
7264	// null. It is an error if a field in this list has a non-empty value.
7265	// This may be used to include null fields in Patch requests.
7266	NullFields []string `json:"-"`
7267}
7268
7269func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
7270	type NoMethod CommitmentsScopedListWarning
7271	raw := NoMethod(*s)
7272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7273}
7274
7275type CommitmentsScopedListWarningData struct {
7276	// Key: [Output Only] A key that provides more detail on the warning
7277	// being returned. For example, for warnings where there are no results
7278	// in a list request for a particular zone, this key might be scope and
7279	// the key value might be the zone name. Other examples might be a key
7280	// indicating a deprecated resource and a suggested replacement, or a
7281	// warning about invalid network settings (for example, if an instance
7282	// attempts to perform IP forwarding but is not enabled for IP
7283	// forwarding).
7284	Key string `json:"key,omitempty"`
7285
7286	// Value: [Output Only] A warning data value corresponding to the key.
7287	Value string `json:"value,omitempty"`
7288
7289	// ForceSendFields is a list of field names (e.g. "Key") to
7290	// unconditionally include in API requests. By default, fields with
7291	// empty or default values are omitted from API requests. However, any
7292	// non-pointer, non-interface field appearing in ForceSendFields will be
7293	// sent to the server regardless of whether the field is empty or not.
7294	// This may be used to include empty fields in Patch requests.
7295	ForceSendFields []string `json:"-"`
7296
7297	// NullFields is a list of field names (e.g. "Key") to include in API
7298	// requests with the JSON null value. By default, fields with empty
7299	// values are omitted from API requests. However, any field with an
7300	// empty value appearing in NullFields will be sent to the server as
7301	// null. It is an error if a field in this list has a non-empty value.
7302	// This may be used to include null fields in Patch requests.
7303	NullFields []string `json:"-"`
7304}
7305
7306func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
7307	type NoMethod CommitmentsScopedListWarningData
7308	raw := NoMethod(*s)
7309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7310}
7311
7312// Condition: This is deprecated and has no effect. Do not use.
7313type Condition struct {
7314	// Iam: This is deprecated and has no effect. Do not use.
7315	//
7316	// Possible values:
7317	//   "APPROVER" - This is deprecated and has no effect. Do not use.
7318	//   "ATTRIBUTION" - This is deprecated and has no effect. Do not use.
7319	//   "AUTHORITY" - This is deprecated and has no effect. Do not use.
7320	//   "CREDENTIALS_TYPE" - This is deprecated and has no effect. Do not
7321	// use.
7322	//   "CREDS_ASSERTION" - This is deprecated and has no effect. Do not
7323	// use.
7324	//   "JUSTIFICATION_TYPE" - This is deprecated and has no effect. Do not
7325	// use.
7326	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
7327	//   "SECURITY_REALM" - This is deprecated and has no effect. Do not
7328	// use.
7329	Iam string `json:"iam,omitempty"`
7330
7331	// Op: This is deprecated and has no effect. Do not use.
7332	//
7333	// Possible values:
7334	//   "DISCHARGED" - This is deprecated and has no effect. Do not use.
7335	//   "EQUALS" - This is deprecated and has no effect. Do not use.
7336	//   "IN" - This is deprecated and has no effect. Do not use.
7337	//   "NOT_EQUALS" - This is deprecated and has no effect. Do not use.
7338	//   "NOT_IN" - This is deprecated and has no effect. Do not use.
7339	//   "NO_OP" - This is deprecated and has no effect. Do not use.
7340	Op string `json:"op,omitempty"`
7341
7342	// Svc: This is deprecated and has no effect. Do not use.
7343	Svc string `json:"svc,omitempty"`
7344
7345	// Sys: This is deprecated and has no effect. Do not use.
7346	//
7347	// Possible values:
7348	//   "IP" - This is deprecated and has no effect. Do not use.
7349	//   "NAME" - This is deprecated and has no effect. Do not use.
7350	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
7351	//   "REGION" - This is deprecated and has no effect. Do not use.
7352	//   "SERVICE" - This is deprecated and has no effect. Do not use.
7353	Sys string `json:"sys,omitempty"`
7354
7355	// Values: This is deprecated and has no effect. Do not use.
7356	Values []string `json:"values,omitempty"`
7357
7358	// ForceSendFields is a list of field names (e.g. "Iam") to
7359	// unconditionally include in API requests. By default, fields with
7360	// empty or default values are omitted from API requests. However, any
7361	// non-pointer, non-interface field appearing in ForceSendFields will be
7362	// sent to the server regardless of whether the field is empty or not.
7363	// This may be used to include empty fields in Patch requests.
7364	ForceSendFields []string `json:"-"`
7365
7366	// NullFields is a list of field names (e.g. "Iam") to include in API
7367	// requests with the JSON null value. By default, fields with empty
7368	// values are omitted from API requests. However, any field with an
7369	// empty value appearing in NullFields will be sent to the server as
7370	// null. It is an error if a field in this list has a non-empty value.
7371	// This may be used to include null fields in Patch requests.
7372	NullFields []string `json:"-"`
7373}
7374
7375func (s *Condition) MarshalJSON() ([]byte, error) {
7376	type NoMethod Condition
7377	raw := NoMethod(*s)
7378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7379}
7380
7381// ConfidentialInstanceConfig: A set of Confidential Instance options.
7382type ConfidentialInstanceConfig struct {
7383	// EnableConfidentialCompute: Defines whether the instance should have
7384	// confidential compute enabled.
7385	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7386
7387	// ForceSendFields is a list of field names (e.g.
7388	// "EnableConfidentialCompute") to unconditionally include in API
7389	// requests. By default, fields with empty or default values are omitted
7390	// from API requests. However, any non-pointer, non-interface field
7391	// appearing in ForceSendFields will be sent to the server regardless of
7392	// whether the field is empty or not. This may be used to include empty
7393	// fields in Patch requests.
7394	ForceSendFields []string `json:"-"`
7395
7396	// NullFields is a list of field names (e.g.
7397	// "EnableConfidentialCompute") to include in API requests with the JSON
7398	// null value. By default, fields with empty values are omitted from API
7399	// requests. However, any field with an empty value appearing in
7400	// NullFields will be sent to the server as null. It is an error if a
7401	// field in this list has a non-empty value. This may be used to include
7402	// null fields in Patch requests.
7403	NullFields []string `json:"-"`
7404}
7405
7406func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7407	type NoMethod ConfidentialInstanceConfig
7408	raw := NoMethod(*s)
7409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7410}
7411
7412// ConnectionDraining: Message containing connection draining
7413// configuration.
7414type ConnectionDraining struct {
7415	// DrainingTimeoutSec: Configures a duration timeout for existing
7416	// requests on a removed backend instance. For supported load balancers
7417	// and protocols, as described in Enabling connection draining.
7418	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7419
7420	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7421	// to unconditionally include in API requests. By default, fields with
7422	// empty or default values are omitted from API requests. However, any
7423	// non-pointer, non-interface field appearing in ForceSendFields will be
7424	// sent to the server regardless of whether the field is empty or not.
7425	// This may be used to include empty fields in Patch requests.
7426	ForceSendFields []string `json:"-"`
7427
7428	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7429	// include in API requests with the JSON null value. By default, fields
7430	// with empty values are omitted from API requests. However, any field
7431	// with an empty value appearing in NullFields will be sent to the
7432	// server as null. It is an error if a field in this list has a
7433	// non-empty value. This may be used to include null fields in Patch
7434	// requests.
7435	NullFields []string `json:"-"`
7436}
7437
7438func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7439	type NoMethod ConnectionDraining
7440	raw := NoMethod(*s)
7441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7442}
7443
7444// ConsistentHashLoadBalancerSettings: This message defines settings for
7445// a consistent hash style load balancer.
7446type ConsistentHashLoadBalancerSettings struct {
7447	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7448	// cookie that will be used as the hash key for the consistent hash load
7449	// balancer. If the cookie is not present, it will be generated. This
7450	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7451	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7452
7453	// HttpHeaderName: The hash based on the value of the specified header
7454	// field. This field is applicable if the sessionAffinity is set to
7455	// HEADER_FIELD.
7456	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7457
7458	// MinimumRingSize: The minimum number of virtual nodes to use for the
7459	// hash ring. Defaults to 1024. Larger ring sizes result in more
7460	// granular load distributions. If the number of hosts in the load
7461	// balancing pool is larger than the ring size, each host will be
7462	// assigned a single virtual node.
7463	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7464
7465	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7466	// unconditionally include in API requests. By default, fields with
7467	// empty or default values are omitted from API requests. However, any
7468	// non-pointer, non-interface field appearing in ForceSendFields will be
7469	// sent to the server regardless of whether the field is empty or not.
7470	// This may be used to include empty fields in Patch requests.
7471	ForceSendFields []string `json:"-"`
7472
7473	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7474	// API requests with the JSON null value. By default, fields with empty
7475	// values are omitted from API requests. However, any field with an
7476	// empty value appearing in NullFields will be sent to the server as
7477	// null. It is an error if a field in this list has a non-empty value.
7478	// This may be used to include null fields in Patch requests.
7479	NullFields []string `json:"-"`
7480}
7481
7482func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7483	type NoMethod ConsistentHashLoadBalancerSettings
7484	raw := NoMethod(*s)
7485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7486}
7487
7488// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7489// the HTTP Cookie on which the hash function is based for load
7490// balancing policies that use a consistent hash.
7491type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7492	// Name: Name of the cookie.
7493	Name string `json:"name,omitempty"`
7494
7495	// Path: Path to set for the cookie.
7496	Path string `json:"path,omitempty"`
7497
7498	// Ttl: Lifetime of the cookie.
7499	Ttl *Duration `json:"ttl,omitempty"`
7500
7501	// ForceSendFields is a list of field names (e.g. "Name") to
7502	// unconditionally include in API requests. By default, fields with
7503	// empty or default values are omitted from API requests. However, any
7504	// non-pointer, non-interface field appearing in ForceSendFields will be
7505	// sent to the server regardless of whether the field is empty or not.
7506	// This may be used to include empty fields in Patch requests.
7507	ForceSendFields []string `json:"-"`
7508
7509	// NullFields is a list of field names (e.g. "Name") to include in API
7510	// requests with the JSON null value. By default, fields with empty
7511	// values are omitted from API requests. However, any field with an
7512	// empty value appearing in NullFields will be sent to the server as
7513	// null. It is an error if a field in this list has a non-empty value.
7514	// This may be used to include null fields in Patch requests.
7515	NullFields []string `json:"-"`
7516}
7517
7518func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7519	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7520	raw := NoMethod(*s)
7521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7522}
7523
7524// CorsPolicy: The specification for allowing client side cross-origin
7525// requests. Please see W3C Recommendation for Cross Origin Resource
7526// Sharing
7527type CorsPolicy struct {
7528	// AllowCredentials: In response to a preflight request, setting this to
7529	// true indicates that the actual request can include user credentials.
7530	// This translates to the Access-Control-Allow-Credentials header.
7531	// Default is false.
7532	AllowCredentials bool `json:"allowCredentials,omitempty"`
7533
7534	// AllowHeaders: Specifies the content for the
7535	// Access-Control-Allow-Headers header.
7536	AllowHeaders []string `json:"allowHeaders,omitempty"`
7537
7538	// AllowMethods: Specifies the content for the
7539	// Access-Control-Allow-Methods header.
7540	AllowMethods []string `json:"allowMethods,omitempty"`
7541
7542	// AllowOriginRegexes: Specifies the regualar expression patterns that
7543	// match allowed origins. For regular expression grammar please see
7544	// github.com/google/re2/wiki/Syntax An origin is allowed if it matches
7545	// either an item in allowOrigins or an item in allowOriginRegexes.
7546	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7547
7548	// AllowOrigins: Specifies the list of origins that will be allowed to
7549	// do CORS requests. An origin is allowed if it matches either an item
7550	// in allowOrigins or an item in allowOriginRegexes.
7551	AllowOrigins []string `json:"allowOrigins,omitempty"`
7552
7553	// Disabled: If true, specifies the CORS policy is disabled. The default
7554	// value of false, which indicates that the CORS policy is in effect.
7555	Disabled bool `json:"disabled,omitempty"`
7556
7557	// ExposeHeaders: Specifies the content for the
7558	// Access-Control-Expose-Headers header.
7559	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7560
7561	// MaxAge: Specifies how long results of a preflight request can be
7562	// cached in seconds. This translates to the Access-Control-Max-Age
7563	// header.
7564	MaxAge int64 `json:"maxAge,omitempty"`
7565
7566	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7567	// unconditionally include in API requests. By default, fields with
7568	// empty or default values are omitted from API requests. However, any
7569	// non-pointer, non-interface field appearing in ForceSendFields will be
7570	// sent to the server regardless of whether the field is empty or not.
7571	// This may be used to include empty fields in Patch requests.
7572	ForceSendFields []string `json:"-"`
7573
7574	// NullFields is a list of field names (e.g. "AllowCredentials") to
7575	// include in API requests with the JSON null value. By default, fields
7576	// with empty values are omitted from API requests. However, any field
7577	// with an empty value appearing in NullFields will be sent to the
7578	// server as null. It is an error if a field in this list has a
7579	// non-empty value. This may be used to include null fields in Patch
7580	// requests.
7581	NullFields []string `json:"-"`
7582}
7583
7584func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7585	type NoMethod CorsPolicy
7586	raw := NoMethod(*s)
7587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7588}
7589
7590type CustomerEncryptionKey struct {
7591	// KmsKeyName: The name of the encryption key that is stored in Google
7592	// Cloud KMS.
7593	KmsKeyName string `json:"kmsKeyName,omitempty"`
7594
7595	// KmsKeyServiceAccount: The service account being used for the
7596	// encryption request for the given KMS key. If absent, the Compute
7597	// Engine default service account is used.
7598	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7599
7600	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7601	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7602	RawKey string `json:"rawKey,omitempty"`
7603
7604	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7605	// 2048-bit customer-supplied encryption key to either encrypt or
7606	// decrypt this resource. The key must meet the following requirements
7607	// before you can provide it to Compute Engine: 1. The key is wrapped
7608	// using a RSA public key certificate provided by Google. 2. After being
7609	// wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets
7610	// the RSA public key certificate provided by Google at:
7611	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
7612	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7613
7614	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7615	// customer-supplied encryption key that protects this resource.
7616	Sha256 string `json:"sha256,omitempty"`
7617
7618	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7619	// unconditionally include in API requests. By default, fields with
7620	// empty or default values are omitted from API requests. However, any
7621	// non-pointer, non-interface field appearing in ForceSendFields will be
7622	// sent to the server regardless of whether the field is empty or not.
7623	// This may be used to include empty fields in Patch requests.
7624	ForceSendFields []string `json:"-"`
7625
7626	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7627	// API requests with the JSON null value. By default, fields with empty
7628	// values are omitted from API requests. However, any field with an
7629	// empty value appearing in NullFields will be sent to the server as
7630	// null. It is an error if a field in this list has a non-empty value.
7631	// This may be used to include null fields in Patch requests.
7632	NullFields []string `json:"-"`
7633}
7634
7635func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7636	type NoMethod CustomerEncryptionKey
7637	raw := NoMethod(*s)
7638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7639}
7640
7641type CustomerEncryptionKeyProtectedDisk struct {
7642	// DiskEncryptionKey: Decrypts data associated with the disk with a
7643	// customer-supplied encryption key.
7644	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7645
7646	// Source: Specifies a valid partial or full URL to an existing
7647	// Persistent Disk resource. This field is only applicable for
7648	// persistent disks.
7649	Source string `json:"source,omitempty"`
7650
7651	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7652	// to unconditionally include in API requests. By default, fields with
7653	// empty or default values are omitted from API requests. However, any
7654	// non-pointer, non-interface field appearing in ForceSendFields will be
7655	// sent to the server regardless of whether the field is empty or not.
7656	// This may be used to include empty fields in Patch requests.
7657	ForceSendFields []string `json:"-"`
7658
7659	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7660	// include in API requests with the JSON null value. By default, fields
7661	// with empty values are omitted from API requests. However, any field
7662	// with an empty value appearing in NullFields will be sent to the
7663	// server as null. It is an error if a field in this list has a
7664	// non-empty value. This may be used to include null fields in Patch
7665	// requests.
7666	NullFields []string `json:"-"`
7667}
7668
7669func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7670	type NoMethod CustomerEncryptionKeyProtectedDisk
7671	raw := NoMethod(*s)
7672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7673}
7674
7675// DeprecationStatus: Deprecation status for a public resource.
7676type DeprecationStatus struct {
7677	// Deleted: An optional RFC3339 timestamp on or after which the state of
7678	// this resource is intended to change to DELETED. This is only
7679	// informational and the status will not change unless the client
7680	// explicitly changes it.
7681	Deleted string `json:"deleted,omitempty"`
7682
7683	// Deprecated -- An optional RFC3339 timestamp on or after which the
7684	// state of this resource is intended to change to DEPRECATED. This is
7685	// only informational and the status will not change unless the client
7686	// explicitly changes it.
7687	Deprecated string `json:"deprecated,omitempty"`
7688
7689	// Obsolete: An optional RFC3339 timestamp on or after which the state
7690	// of this resource is intended to change to OBSOLETE. This is only
7691	// informational and the status will not change unless the client
7692	// explicitly changes it.
7693	Obsolete string `json:"obsolete,omitempty"`
7694
7695	// Replacement: The URL of the suggested replacement for a deprecated
7696	// resource. The suggested replacement resource must be the same kind of
7697	// resource as the deprecated resource.
7698	Replacement string `json:"replacement,omitempty"`
7699
7700	// State: The deprecation state of this resource. This can be ACTIVE,
7701	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7702	// end of life date for an image, can use ACTIVE. Operations which
7703	// create a new resource using a DEPRECATED resource will return
7704	// successfully, but with a warning indicating the deprecated resource
7705	// and recommending its replacement. Operations which use OBSOLETE or
7706	// DELETED resources will be rejected and result in an error.
7707	//
7708	// Possible values:
7709	//   "ACTIVE"
7710	//   "DELETED"
7711	//   "DEPRECATED"
7712	//   "OBSOLETE"
7713	State string `json:"state,omitempty"`
7714
7715	// ForceSendFields is a list of field names (e.g. "Deleted") to
7716	// unconditionally include in API requests. By default, fields with
7717	// empty or default values are omitted from API requests. However, any
7718	// non-pointer, non-interface field appearing in ForceSendFields will be
7719	// sent to the server regardless of whether the field is empty or not.
7720	// This may be used to include empty fields in Patch requests.
7721	ForceSendFields []string `json:"-"`
7722
7723	// NullFields is a list of field names (e.g. "Deleted") to include in
7724	// API requests with the JSON null value. By default, fields with empty
7725	// values are omitted from API requests. However, any field with an
7726	// empty value appearing in NullFields will be sent to the server as
7727	// null. It is an error if a field in this list has a non-empty value.
7728	// This may be used to include null fields in Patch requests.
7729	NullFields []string `json:"-"`
7730}
7731
7732func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7733	type NoMethod DeprecationStatus
7734	raw := NoMethod(*s)
7735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7736}
7737
7738// Disk: Represents a Persistent Disk resource. Google Compute Engine
7739// has two Disk resources: * Zonal
7740// (/compute/docs/reference/rest/v1/disks) * Regional
7741// (/compute/docs/reference/rest/v1/regionDisks) Persistent disks are
7742// required for running your VM instances. Create both boot and non-boot
7743// (data) persistent disks. For more information, read Persistent Disks.
7744// For more storage options, read Storage options. The disks resource
7745// represents a zonal persistent disk. For more information, read Zonal
7746// persistent disks. The regionDisks resource represents a regional
7747// persistent disk. For more information, read Regional resources.
7748type Disk struct {
7749	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7750	// format.
7751	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7752
7753	// Description: An optional description of this resource. Provide this
7754	// property when you create the resource.
7755	Description string `json:"description,omitempty"`
7756
7757	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7758	// encryption key. After you encrypt a disk with a customer-supplied
7759	// key, you must provide the same key if you use the disk later (e.g. to
7760	// create a disk snapshot, to create a disk image, to create a machine
7761	// image, or to attach the disk to a virtual machine). Customer-supplied
7762	// encryption keys do not protect access to metadata of the disk. If you
7763	// do not provide an encryption key when creating the disk, then the
7764	// disk will be encrypted using an automatically generated key and you
7765	// do not need to provide a key to use the disk later.
7766	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7767
7768	// GuestOsFeatures: A list of features to enable on the guest operating
7769	// system. Applicable only for bootable images. Read Enabling guest
7770	// operating system features to see a list of available options.
7771	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7772
7773	// Id: [Output Only] The unique identifier for the resource. This
7774	// identifier is defined by the server.
7775	Id uint64 `json:"id,omitempty,string"`
7776
7777	// Kind: [Output Only] Type of the resource. Always compute#disk for
7778	// disks.
7779	Kind string `json:"kind,omitempty"`
7780
7781	// LabelFingerprint: A fingerprint for the labels being applied to this
7782	// disk, which is essentially a hash of the labels set used for
7783	// optimistic locking. The fingerprint is initially generated by Compute
7784	// Engine and changes after every request to modify or update labels.
7785	// You must always provide an up-to-date fingerprint hash in order to
7786	// update or change labels, otherwise the request will fail with error
7787	// 412 conditionNotMet. To see the latest fingerprint, make a get()
7788	// request to retrieve a disk.
7789	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7790
7791	// Labels: Labels to apply to this disk. These can be later modified by
7792	// the setLabels method.
7793	Labels map[string]string `json:"labels,omitempty"`
7794
7795	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7796	// text format.
7797	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7798
7799	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7800	// text format.
7801	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7802
7803	// LicenseCodes: Integer license codes indicating which licenses are
7804	// attached to this disk.
7805	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7806
7807	// Licenses: A list of publicly visible licenses. Reserved for Google's
7808	// use.
7809	Licenses []string `json:"licenses,omitempty"`
7810
7811	// LocationHint: An opaque location hint used to place the disk close to
7812	// other resources. This field is for use by internal tools that use the
7813	// public API.
7814	LocationHint string `json:"locationHint,omitempty"`
7815
7816	// Name: Name of the resource. Provided by the client when the resource
7817	// is created. The name must be 1-63 characters long, and comply with
7818	// RFC1035. Specifically, the name must be 1-63 characters long and
7819	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7820	// the first character must be a lowercase letter, and all following
7821	// characters must be a dash, lowercase letter, or digit, except the
7822	// last character, which cannot be a dash.
7823	Name string `json:"name,omitempty"`
7824
7825	// Options: Internal use only.
7826	Options string `json:"options,omitempty"`
7827
7828	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7829	// in bytes. If not present in a request, a default value is used. The
7830	// currently supported size is 4096, other sizes may be added in the
7831	// future. If an unsupported value is requested, the error message will
7832	// list the supported values for the caller's project.
7833	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7834
7835	// ProvisionedIops: Indicates how many IOPS to provision for the disk.
7836	// This sets the number of I/O operations per second that the disk can
7837	// handle. Values must be between 10,000 and 120,000. For more details,
7838	// see the Extreme persistent disk documentation.
7839	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
7840
7841	// Region: [Output Only] URL of the region where the disk resides. Only
7842	// applicable for regional resources. You must specify this field as
7843	// part of the HTTP request URL. It is not settable as a field in the
7844	// request body.
7845	Region string `json:"region,omitempty"`
7846
7847	// ReplicaZones: URLs of the zones where the disk should be replicated
7848	// to. Only applicable for regional resources.
7849	ReplicaZones []string `json:"replicaZones,omitempty"`
7850
7851	// ResourcePolicies: Resource policies applied to this disk for
7852	// automatic snapshot creations.
7853	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7854
7855	// SatisfiesPzs: [Output Only] Reserved for future use.
7856	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
7857
7858	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7859	// resource.
7860	SelfLink string `json:"selfLink,omitempty"`
7861
7862	// SizeGb: Size, in GB, of the persistent disk. You can specify this
7863	// field when creating a persistent disk using the sourceImage,
7864	// sourceSnapshot, or sourceDisk parameter, or specify it alone to
7865	// create an empty persistent disk. If you specify this field along with
7866	// a source, the value of sizeGb must not be less than the size of the
7867	// source. Acceptable values are 1 to 65536, inclusive.
7868	SizeGb int64 `json:"sizeGb,omitempty,string"`
7869
7870	// SourceDisk: The source disk used to create this disk. You can provide
7871	// this as a partial or full URL to the resource. For example, the
7872	// following are valid values: -
7873	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
7874	// /disks/disk -
7875	// https://www.googleapis.com/compute/v1/projects/project/regions/region
7876	// /disks/disk - projects/project/zones/zone/disks/disk -
7877	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
7878	// regions/region/disks/disk
7879	SourceDisk string `json:"sourceDisk,omitempty"`
7880
7881	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7882	// this disk. This value identifies the exact disk that was used to
7883	// create this persistent disk. For example, if you created the
7884	// persistent disk from a disk that was later deleted and recreated
7885	// under the same name, the source disk ID would identify the exact
7886	// version of the disk that was used.
7887	SourceDiskId string `json:"sourceDiskId,omitempty"`
7888
7889	// SourceImage: The source image used to create this disk. If the source
7890	// image is deleted, this field will not be set. To create a disk with
7891	// one of the public operating system images, specify the image by its
7892	// family name. For example, specify family/debian-9 to use the latest
7893	// Debian 9 image: projects/debian-cloud/global/images/family/debian-9
7894	// Alternatively, use a specific version of a public operating system
7895	// image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7896	// To create a disk with a custom image that you created, specify the
7897	// image name in the following format: global/images/my-custom-image You
7898	// can also specify a custom image by its image family, which returns
7899	// the latest version of the image in that family. Replace the image
7900	// name with family/family-name: global/images/family/my-image-family
7901	SourceImage string `json:"sourceImage,omitempty"`
7902
7903	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7904	// source image. Required if the source image is protected by a
7905	// customer-supplied encryption key.
7906	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7907
7908	// SourceImageId: [Output Only] The ID value of the image used to create
7909	// this disk. This value identifies the exact image that was used to
7910	// create this persistent disk. For example, if you created the
7911	// persistent disk from an image that was later deleted and recreated
7912	// under the same name, the source image ID would identify the exact
7913	// version of the image that was used.
7914	SourceImageId string `json:"sourceImageId,omitempty"`
7915
7916	// SourceSnapshot: The source snapshot used to create this disk. You can
7917	// provide this as a partial or full URL to the resource. For example,
7918	// the following are valid values: -
7919	// https://www.googleapis.com/compute/v1/projects/project
7920	// /global/snapshots/snapshot -
7921	// projects/project/global/snapshots/snapshot -
7922	// global/snapshots/snapshot
7923	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7924
7925	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7926	// the source snapshot. Required if the source snapshot is protected by
7927	// a customer-supplied encryption key.
7928	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7929
7930	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7931	// create this disk. This value identifies the exact snapshot that was
7932	// used to create this persistent disk. For example, if you created the
7933	// persistent disk from a snapshot that was later deleted and recreated
7934	// under the same name, the source snapshot ID would identify the exact
7935	// version of the snapshot that was used.
7936	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7937
7938	// SourceStorageObject: The full Google Cloud Storage URI where the disk
7939	// image is stored. This file must be a gzip-compressed tarball whose
7940	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
7941	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
7942	// This flag is not optimized for creating multiple disks from a source
7943	// storage object. To create many disks from a source storage object,
7944	// use gcloud compute images import instead.
7945	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
7946
7947	// Status: [Output Only] The status of disk creation. - CREATING: Disk
7948	// is provisioning. - RESTORING: Source data is being copied into the
7949	// disk. - FAILED: Disk creation failed. - READY: Disk is ready for use.
7950	// - DELETING: Disk is deleting.
7951	//
7952	// Possible values:
7953	//   "CREATING" - Disk is provisioning
7954	//   "DELETING" - Disk is deleting.
7955	//   "FAILED" - Disk creation failed.
7956	//   "READY" - Disk is ready for use.
7957	//   "RESTORING" - Source data is being copied into the disk.
7958	Status string `json:"status,omitempty"`
7959
7960	// Type: URL of the disk type resource describing which disk type to use
7961	// to create the disk. Provide this when creating the disk. For example:
7962	// projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk
7963	// types.
7964	Type string `json:"type,omitempty"`
7965
7966	// Users: [Output Only] Links to the users of the disk (attached
7967	// instances) in form: projects/project/zones/zone/instances/instance
7968	Users []string `json:"users,omitempty"`
7969
7970	// Zone: [Output Only] URL of the zone where the disk resides. You must
7971	// specify this field as part of the HTTP request URL. It is not
7972	// settable as a field in the request body.
7973	Zone string `json:"zone,omitempty"`
7974
7975	// ServerResponse contains the HTTP response code and headers from the
7976	// server.
7977	googleapi.ServerResponse `json:"-"`
7978
7979	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7980	// to unconditionally include in API requests. By default, fields with
7981	// empty or default values are omitted from API requests. However, any
7982	// non-pointer, non-interface field appearing in ForceSendFields will be
7983	// sent to the server regardless of whether the field is empty or not.
7984	// This may be used to include empty fields in Patch requests.
7985	ForceSendFields []string `json:"-"`
7986
7987	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7988	// include in API requests with the JSON null value. By default, fields
7989	// with empty values are omitted from API requests. However, any field
7990	// with an empty value appearing in NullFields will be sent to the
7991	// server as null. It is an error if a field in this list has a
7992	// non-empty value. This may be used to include null fields in Patch
7993	// requests.
7994	NullFields []string `json:"-"`
7995}
7996
7997func (s *Disk) MarshalJSON() ([]byte, error) {
7998	type NoMethod Disk
7999	raw := NoMethod(*s)
8000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8001}
8002
8003type DiskAggregatedList struct {
8004	// Id: [Output Only] Unique identifier for the resource; defined by the
8005	// server.
8006	Id string `json:"id,omitempty"`
8007
8008	// Items: A list of DisksScopedList resources.
8009	Items map[string]DisksScopedList `json:"items,omitempty"`
8010
8011	// Kind: [Output Only] Type of resource. Always
8012	// compute#diskAggregatedList for aggregated lists of persistent disks.
8013	Kind string `json:"kind,omitempty"`
8014
8015	// NextPageToken: [Output Only] This token allows you to get the next
8016	// page of results for list requests. If the number of results is larger
8017	// than maxResults, use the nextPageToken as a value for the query
8018	// parameter pageToken in the next list request. Subsequent list
8019	// requests will have their own nextPageToken to continue paging through
8020	// the results.
8021	NextPageToken string `json:"nextPageToken,omitempty"`
8022
8023	// SelfLink: [Output Only] Server-defined URL for this resource.
8024	SelfLink string `json:"selfLink,omitempty"`
8025
8026	// Unreachables: [Output Only] Unreachable resources.
8027	Unreachables []string `json:"unreachables,omitempty"`
8028
8029	// Warning: [Output Only] Informational warning message.
8030	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
8031
8032	// ServerResponse contains the HTTP response code and headers from the
8033	// server.
8034	googleapi.ServerResponse `json:"-"`
8035
8036	// ForceSendFields is a list of field names (e.g. "Id") to
8037	// unconditionally include in API requests. By default, fields with
8038	// empty or default values are omitted from API requests. However, any
8039	// non-pointer, non-interface field appearing in ForceSendFields will be
8040	// sent to the server regardless of whether the field is empty or not.
8041	// This may be used to include empty fields in Patch requests.
8042	ForceSendFields []string `json:"-"`
8043
8044	// NullFields is a list of field names (e.g. "Id") to include in API
8045	// requests with the JSON null value. By default, fields with empty
8046	// values are omitted from API requests. However, any field with an
8047	// empty value appearing in NullFields will be sent to the server as
8048	// null. It is an error if a field in this list has a non-empty value.
8049	// This may be used to include null fields in Patch requests.
8050	NullFields []string `json:"-"`
8051}
8052
8053func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
8054	type NoMethod DiskAggregatedList
8055	raw := NoMethod(*s)
8056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8057}
8058
8059// DiskAggregatedListWarning: [Output Only] Informational warning
8060// message.
8061type DiskAggregatedListWarning struct {
8062	// Code: [Output Only] A warning code, if applicable. For example,
8063	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8064	// the response.
8065	//
8066	// Possible values:
8067	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8068	// changes made by a failed operation.
8069	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8070	// created.
8071	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8072	// resources has a type marked as deprecated
8073	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8074	// that is larger than image size.
8075	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8076	// resources has a type marked as experimental
8077	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8078	// call
8079	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8080	// overridden. Deprecated unused field.
8081	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8082	// injected kernel, which is deprecated.
8083	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8084	// exceedingly large number of resources
8085	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8086	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8087	// not assigned to an instance on the network.
8088	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8089	// ip forward.
8090	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8091	// refers to an instance that does not exist.
8092	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8093	// URL refers to an instance that is not on the same network as the
8094	// route.
8095	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8096	// have a status of RUNNING.
8097	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8098	// continue the process despite the mentioned error.
8099	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8100	// page.
8101	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8102	// missing due to errors
8103	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8104	// that requires a TOS they have not accepted.
8105	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8106	// resource is in use.
8107	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8108	// auto-delete could not be deleted because they were in use.
8109	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8110	// ignored.
8111	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8112	// instance group manager is valid as such, but its application does not
8113	// make a lot of sense, because it allows only single instance in
8114	// instance group.
8115	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8116	// are present
8117	//   "UNREACHABLE" - A given scope cannot be reached.
8118	Code string `json:"code,omitempty"`
8119
8120	// Data: [Output Only] Metadata about this warning in key: value format.
8121	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8122	// }
8123	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
8124
8125	// Message: [Output Only] A human-readable description of the warning
8126	// code.
8127	Message string `json:"message,omitempty"`
8128
8129	// ForceSendFields is a list of field names (e.g. "Code") to
8130	// unconditionally include in API requests. By default, fields with
8131	// empty or default values are omitted from API requests. However, any
8132	// non-pointer, non-interface field appearing in ForceSendFields will be
8133	// sent to the server regardless of whether the field is empty or not.
8134	// This may be used to include empty fields in Patch requests.
8135	ForceSendFields []string `json:"-"`
8136
8137	// NullFields is a list of field names (e.g. "Code") to include in API
8138	// requests with the JSON null value. By default, fields with empty
8139	// values are omitted from API requests. However, any field with an
8140	// empty value appearing in NullFields will be sent to the server as
8141	// null. It is an error if a field in this list has a non-empty value.
8142	// This may be used to include null fields in Patch requests.
8143	NullFields []string `json:"-"`
8144}
8145
8146func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
8147	type NoMethod DiskAggregatedListWarning
8148	raw := NoMethod(*s)
8149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8150}
8151
8152type DiskAggregatedListWarningData struct {
8153	// Key: [Output Only] A key that provides more detail on the warning
8154	// being returned. For example, for warnings where there are no results
8155	// in a list request for a particular zone, this key might be scope and
8156	// the key value might be the zone name. Other examples might be a key
8157	// indicating a deprecated resource and a suggested replacement, or a
8158	// warning about invalid network settings (for example, if an instance
8159	// attempts to perform IP forwarding but is not enabled for IP
8160	// forwarding).
8161	Key string `json:"key,omitempty"`
8162
8163	// Value: [Output Only] A warning data value corresponding to the key.
8164	Value string `json:"value,omitempty"`
8165
8166	// ForceSendFields is a list of field names (e.g. "Key") to
8167	// unconditionally include in API requests. By default, fields with
8168	// empty or default values are omitted from API requests. However, any
8169	// non-pointer, non-interface field appearing in ForceSendFields will be
8170	// sent to the server regardless of whether the field is empty or not.
8171	// This may be used to include empty fields in Patch requests.
8172	ForceSendFields []string `json:"-"`
8173
8174	// NullFields is a list of field names (e.g. "Key") to include in API
8175	// requests with the JSON null value. By default, fields with empty
8176	// values are omitted from API requests. However, any field with an
8177	// empty value appearing in NullFields will be sent to the server as
8178	// null. It is an error if a field in this list has a non-empty value.
8179	// This may be used to include null fields in Patch requests.
8180	NullFields []string `json:"-"`
8181}
8182
8183func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8184	type NoMethod DiskAggregatedListWarningData
8185	raw := NoMethod(*s)
8186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8187}
8188
8189// DiskInstantiationConfig: A specification of the desired way to
8190// instantiate a disk in the instance template when its created from a
8191// source instance.
8192type DiskInstantiationConfig struct {
8193	// AutoDelete: Specifies whether the disk will be auto-deleted when the
8194	// instance is deleted (but not when the disk is detached from the
8195	// instance).
8196	AutoDelete bool `json:"autoDelete,omitempty"`
8197
8198	// CustomImage: The custom source image to be used to restore this disk
8199	// when instantiating this instance template.
8200	CustomImage string `json:"customImage,omitempty"`
8201
8202	// DeviceName: Specifies the device name of the disk to which the
8203	// configurations apply to.
8204	DeviceName string `json:"deviceName,omitempty"`
8205
8206	// InstantiateFrom: Specifies whether to include the disk and what image
8207	// to use. Possible values are: - source-image: to use the same image
8208	// that was used to create the source instance's corresponding disk.
8209	// Applicable to the boot disk and additional read-write disks. -
8210	// source-image-family: to use the same image family that was used to
8211	// create the source instance's corresponding disk. Applicable to the
8212	// boot disk and additional read-write disks. - custom-image: to use a
8213	// user-provided image url for disk creation. Applicable to the boot
8214	// disk and additional read-write disks. - attach-read-only: to attach a
8215	// read-only disk. Applicable to read-only disks. - do-not-include: to
8216	// exclude a disk from the template. Applicable to additional read-write
8217	// disks, local SSDs, and read-only disks.
8218	//
8219	// Possible values:
8220	//   "ATTACH_READ_ONLY" - Attach the existing disk in read-only mode.
8221	// The request will fail if the disk was attached in read-write mode on
8222	// the source instance. Applicable to: read-only disks.
8223	//   "BLANK" - Create a blank disk. The disk will be created
8224	// unformatted. Applicable to: additional read-write disks, local SSDs.
8225	//   "CUSTOM_IMAGE" - Use the custom image specified in the custom_image
8226	// field. Applicable to: boot disk, additional read-write disks.
8227	//   "DEFAULT" - Use the default instantiation option for the
8228	// corresponding type of disk. For boot disk and any other R/W disks,
8229	// new custom images will be created from each disk. For read-only
8230	// disks, they will be attached in read-only mode. Local SSD disks will
8231	// be created as blank volumes.
8232	//   "DO_NOT_INCLUDE" - Do not include the disk in the instance
8233	// template. Applicable to: additional read-write disks, local SSDs,
8234	// read-only disks.
8235	//   "SOURCE_IMAGE" - Use the same source image used for creation of the
8236	// source instance's corresponding disk. The request will fail if the
8237	// source VM's disk was created from a snapshot. Applicable to: boot
8238	// disk, additional read-write disks.
8239	//   "SOURCE_IMAGE_FAMILY" - Use the same source image family used for
8240	// creation of the source instance's corresponding disk. The request
8241	// will fail if the source image of the source disk does not belong to
8242	// any image family. Applicable to: boot disk, additional read-write
8243	// disks.
8244	InstantiateFrom string `json:"instantiateFrom,omitempty"`
8245
8246	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
8247	// unconditionally include in API requests. By default, fields with
8248	// empty or default values are omitted from API requests. However, any
8249	// non-pointer, non-interface field appearing in ForceSendFields will be
8250	// sent to the server regardless of whether the field is empty or not.
8251	// This may be used to include empty fields in Patch requests.
8252	ForceSendFields []string `json:"-"`
8253
8254	// NullFields is a list of field names (e.g. "AutoDelete") to include in
8255	// API requests with the JSON null value. By default, fields with empty
8256	// values are omitted from API requests. However, any field with an
8257	// empty value appearing in NullFields will be sent to the server as
8258	// null. It is an error if a field in this list has a non-empty value.
8259	// This may be used to include null fields in Patch requests.
8260	NullFields []string `json:"-"`
8261}
8262
8263func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
8264	type NoMethod DiskInstantiationConfig
8265	raw := NoMethod(*s)
8266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8267}
8268
8269// DiskList: A list of Disk resources.
8270type DiskList struct {
8271	// Id: [Output Only] Unique identifier for the resource; defined by the
8272	// server.
8273	Id string `json:"id,omitempty"`
8274
8275	// Items: A list of Disk resources.
8276	Items []*Disk `json:"items,omitempty"`
8277
8278	// Kind: [Output Only] Type of resource. Always compute#diskList for
8279	// lists of disks.
8280	Kind string `json:"kind,omitempty"`
8281
8282	// NextPageToken: [Output Only] This token allows you to get the next
8283	// page of results for list requests. If the number of results is larger
8284	// than maxResults, use the nextPageToken as a value for the query
8285	// parameter pageToken in the next list request. Subsequent list
8286	// requests will have their own nextPageToken to continue paging through
8287	// the results.
8288	NextPageToken string `json:"nextPageToken,omitempty"`
8289
8290	// SelfLink: [Output Only] Server-defined URL for this resource.
8291	SelfLink string `json:"selfLink,omitempty"`
8292
8293	// Warning: [Output Only] Informational warning message.
8294	Warning *DiskListWarning `json:"warning,omitempty"`
8295
8296	// ServerResponse contains the HTTP response code and headers from the
8297	// server.
8298	googleapi.ServerResponse `json:"-"`
8299
8300	// ForceSendFields is a list of field names (e.g. "Id") to
8301	// unconditionally include in API requests. By default, fields with
8302	// empty or default values are omitted from API requests. However, any
8303	// non-pointer, non-interface field appearing in ForceSendFields will be
8304	// sent to the server regardless of whether the field is empty or not.
8305	// This may be used to include empty fields in Patch requests.
8306	ForceSendFields []string `json:"-"`
8307
8308	// NullFields is a list of field names (e.g. "Id") to include in API
8309	// requests with the JSON null value. By default, fields with empty
8310	// values are omitted from API requests. However, any field with an
8311	// empty value appearing in NullFields will be sent to the server as
8312	// null. It is an error if a field in this list has a non-empty value.
8313	// This may be used to include null fields in Patch requests.
8314	NullFields []string `json:"-"`
8315}
8316
8317func (s *DiskList) MarshalJSON() ([]byte, error) {
8318	type NoMethod DiskList
8319	raw := NoMethod(*s)
8320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8321}
8322
8323// DiskListWarning: [Output Only] Informational warning message.
8324type DiskListWarning struct {
8325	// Code: [Output Only] A warning code, if applicable. For example,
8326	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8327	// the response.
8328	//
8329	// Possible values:
8330	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8331	// changes made by a failed operation.
8332	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8333	// created.
8334	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8335	// resources has a type marked as deprecated
8336	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8337	// that is larger than image size.
8338	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8339	// resources has a type marked as experimental
8340	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8341	// call
8342	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8343	// overridden. Deprecated unused field.
8344	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8345	// injected kernel, which is deprecated.
8346	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8347	// exceedingly large number of resources
8348	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8349	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8350	// not assigned to an instance on the network.
8351	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8352	// ip forward.
8353	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8354	// refers to an instance that does not exist.
8355	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8356	// URL refers to an instance that is not on the same network as the
8357	// route.
8358	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8359	// have a status of RUNNING.
8360	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8361	// continue the process despite the mentioned error.
8362	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8363	// page.
8364	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8365	// missing due to errors
8366	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8367	// that requires a TOS they have not accepted.
8368	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8369	// resource is in use.
8370	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8371	// auto-delete could not be deleted because they were in use.
8372	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8373	// ignored.
8374	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8375	// instance group manager is valid as such, but its application does not
8376	// make a lot of sense, because it allows only single instance in
8377	// instance group.
8378	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8379	// are present
8380	//   "UNREACHABLE" - A given scope cannot be reached.
8381	Code string `json:"code,omitempty"`
8382
8383	// Data: [Output Only] Metadata about this warning in key: value format.
8384	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8385	// }
8386	Data []*DiskListWarningData `json:"data,omitempty"`
8387
8388	// Message: [Output Only] A human-readable description of the warning
8389	// code.
8390	Message string `json:"message,omitempty"`
8391
8392	// ForceSendFields is a list of field names (e.g. "Code") to
8393	// unconditionally include in API requests. By default, fields with
8394	// empty or default values are omitted from API requests. However, any
8395	// non-pointer, non-interface field appearing in ForceSendFields will be
8396	// sent to the server regardless of whether the field is empty or not.
8397	// This may be used to include empty fields in Patch requests.
8398	ForceSendFields []string `json:"-"`
8399
8400	// NullFields is a list of field names (e.g. "Code") to include in API
8401	// requests with the JSON null value. By default, fields with empty
8402	// values are omitted from API requests. However, any field with an
8403	// empty value appearing in NullFields will be sent to the server as
8404	// null. It is an error if a field in this list has a non-empty value.
8405	// This may be used to include null fields in Patch requests.
8406	NullFields []string `json:"-"`
8407}
8408
8409func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8410	type NoMethod DiskListWarning
8411	raw := NoMethod(*s)
8412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8413}
8414
8415type DiskListWarningData struct {
8416	// Key: [Output Only] A key that provides more detail on the warning
8417	// being returned. For example, for warnings where there are no results
8418	// in a list request for a particular zone, this key might be scope and
8419	// the key value might be the zone name. Other examples might be a key
8420	// indicating a deprecated resource and a suggested replacement, or a
8421	// warning about invalid network settings (for example, if an instance
8422	// attempts to perform IP forwarding but is not enabled for IP
8423	// forwarding).
8424	Key string `json:"key,omitempty"`
8425
8426	// Value: [Output Only] A warning data value corresponding to the key.
8427	Value string `json:"value,omitempty"`
8428
8429	// ForceSendFields is a list of field names (e.g. "Key") to
8430	// unconditionally include in API requests. By default, fields with
8431	// empty or default values are omitted from API requests. However, any
8432	// non-pointer, non-interface field appearing in ForceSendFields will be
8433	// sent to the server regardless of whether the field is empty or not.
8434	// This may be used to include empty fields in Patch requests.
8435	ForceSendFields []string `json:"-"`
8436
8437	// NullFields is a list of field names (e.g. "Key") to include in API
8438	// requests with the JSON null value. By default, fields with empty
8439	// values are omitted from API requests. However, any field with an
8440	// empty value appearing in NullFields will be sent to the server as
8441	// null. It is an error if a field in this list has a non-empty value.
8442	// This may be used to include null fields in Patch requests.
8443	NullFields []string `json:"-"`
8444}
8445
8446func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8447	type NoMethod DiskListWarningData
8448	raw := NoMethod(*s)
8449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8450}
8451
8452type DiskMoveRequest struct {
8453	// DestinationZone: The URL of the destination zone to move the disk.
8454	// This can be a full or partial URL. For example, the following are all
8455	// valid URLs to a zone: -
8456	// https://www.googleapis.com/compute/v1/projects/project/zones/zone -
8457	// projects/project/zones/zone - zones/zone
8458	DestinationZone string `json:"destinationZone,omitempty"`
8459
8460	// TargetDisk: The URL of the target disk to move. This can be a full or
8461	// partial URL. For example, the following are all valid URLs to a disk:
8462	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8463	// /disks/disk - projects/project/zones/zone/disks/disk -
8464	// zones/zone/disks/disk
8465	TargetDisk string `json:"targetDisk,omitempty"`
8466
8467	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8468	// unconditionally include in API requests. By default, fields with
8469	// empty or default values are omitted from API requests. However, any
8470	// non-pointer, non-interface field appearing in ForceSendFields will be
8471	// sent to the server regardless of whether the field is empty or not.
8472	// This may be used to include empty fields in Patch requests.
8473	ForceSendFields []string `json:"-"`
8474
8475	// NullFields is a list of field names (e.g. "DestinationZone") to
8476	// include in API requests with the JSON null value. By default, fields
8477	// with empty values are omitted from API requests. However, any field
8478	// with an empty value appearing in NullFields will be sent to the
8479	// server as null. It is an error if a field in this list has a
8480	// non-empty value. This may be used to include null fields in Patch
8481	// requests.
8482	NullFields []string `json:"-"`
8483}
8484
8485func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8486	type NoMethod DiskMoveRequest
8487	raw := NoMethod(*s)
8488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8489}
8490
8491// DiskType: Represents a Disk Type resource. Google Compute Engine has
8492// two Disk Type resources: * Regional
8493// (/compute/docs/reference/rest/v1/regionDiskTypes) * Zonal
8494// (/compute/docs/reference/rest/v1/diskTypes) You can choose from a
8495// variety of disk types based on your needs. For more information, read
8496// Storage options. The diskTypes resource represents disk types for a
8497// zonal persistent disk. For more information, read Zonal persistent
8498// disks. The regionDiskTypes resource represents disk types for a
8499// regional persistent disk. For more information, read Regional
8500// persistent disks.
8501type DiskType struct {
8502	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8503	// format.
8504	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8505
8506	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8507	// GB.
8508	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8509
8510	// Deprecated -- [Output Only] The deprecation status associated with
8511	// this disk type.
8512	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8513
8514	// Description: [Output Only] An optional description of this resource.
8515	Description string `json:"description,omitempty"`
8516
8517	// Id: [Output Only] The unique identifier for the resource. This
8518	// identifier is defined by the server.
8519	Id uint64 `json:"id,omitempty,string"`
8520
8521	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8522	// disk types.
8523	Kind string `json:"kind,omitempty"`
8524
8525	// Name: [Output Only] Name of the resource.
8526	Name string `json:"name,omitempty"`
8527
8528	// Region: [Output Only] URL of the region where the disk type resides.
8529	// Only applicable for regional resources. You must specify this field
8530	// as part of the HTTP request URL. It is not settable as a field in the
8531	// request body.
8532	Region string `json:"region,omitempty"`
8533
8534	// SelfLink: [Output Only] Server-defined URL for the resource.
8535	SelfLink string `json:"selfLink,omitempty"`
8536
8537	// ValidDiskSize: [Output Only] An optional textual description of the
8538	// valid disk size, such as "10GB-10TB".
8539	ValidDiskSize string `json:"validDiskSize,omitempty"`
8540
8541	// Zone: [Output Only] URL of the zone where the disk type resides. You
8542	// must specify this field as part of the HTTP request URL. It is not
8543	// settable as a field in the request body.
8544	Zone string `json:"zone,omitempty"`
8545
8546	// ServerResponse contains the HTTP response code and headers from the
8547	// server.
8548	googleapi.ServerResponse `json:"-"`
8549
8550	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8551	// to unconditionally include in API requests. By default, fields with
8552	// empty or default values are omitted from API requests. However, any
8553	// non-pointer, non-interface field appearing in ForceSendFields will be
8554	// sent to the server regardless of whether the field is empty or not.
8555	// This may be used to include empty fields in Patch requests.
8556	ForceSendFields []string `json:"-"`
8557
8558	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8559	// include in API requests with the JSON null value. By default, fields
8560	// with empty values are omitted from API requests. However, any field
8561	// with an empty value appearing in NullFields will be sent to the
8562	// server as null. It is an error if a field in this list has a
8563	// non-empty value. This may be used to include null fields in Patch
8564	// requests.
8565	NullFields []string `json:"-"`
8566}
8567
8568func (s *DiskType) MarshalJSON() ([]byte, error) {
8569	type NoMethod DiskType
8570	raw := NoMethod(*s)
8571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8572}
8573
8574type DiskTypeAggregatedList struct {
8575	// Id: [Output Only] Unique identifier for the resource; defined by the
8576	// server.
8577	Id string `json:"id,omitempty"`
8578
8579	// Items: A list of DiskTypesScopedList resources.
8580	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8581
8582	// Kind: [Output Only] Type of resource. Always
8583	// compute#diskTypeAggregatedList.
8584	Kind string `json:"kind,omitempty"`
8585
8586	// NextPageToken: [Output Only] This token allows you to get the next
8587	// page of results for list requests. If the number of results is larger
8588	// than maxResults, use the nextPageToken as a value for the query
8589	// parameter pageToken in the next list request. Subsequent list
8590	// requests will have their own nextPageToken to continue paging through
8591	// the results.
8592	NextPageToken string `json:"nextPageToken,omitempty"`
8593
8594	// SelfLink: [Output Only] Server-defined URL for this resource.
8595	SelfLink string `json:"selfLink,omitempty"`
8596
8597	// Unreachables: [Output Only] Unreachable resources.
8598	Unreachables []string `json:"unreachables,omitempty"`
8599
8600	// Warning: [Output Only] Informational warning message.
8601	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8602
8603	// ServerResponse contains the HTTP response code and headers from the
8604	// server.
8605	googleapi.ServerResponse `json:"-"`
8606
8607	// ForceSendFields is a list of field names (e.g. "Id") to
8608	// unconditionally include in API requests. By default, fields with
8609	// empty or default values are omitted from API requests. However, any
8610	// non-pointer, non-interface field appearing in ForceSendFields will be
8611	// sent to the server regardless of whether the field is empty or not.
8612	// This may be used to include empty fields in Patch requests.
8613	ForceSendFields []string `json:"-"`
8614
8615	// NullFields is a list of field names (e.g. "Id") to include in API
8616	// requests with the JSON null value. By default, fields with empty
8617	// values are omitted from API requests. However, any field with an
8618	// empty value appearing in NullFields will be sent to the server as
8619	// null. It is an error if a field in this list has a non-empty value.
8620	// This may be used to include null fields in Patch requests.
8621	NullFields []string `json:"-"`
8622}
8623
8624func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8625	type NoMethod DiskTypeAggregatedList
8626	raw := NoMethod(*s)
8627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8628}
8629
8630// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8631// message.
8632type DiskTypeAggregatedListWarning struct {
8633	// Code: [Output Only] A warning code, if applicable. For example,
8634	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8635	// the response.
8636	//
8637	// Possible values:
8638	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8639	// changes made by a failed operation.
8640	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8641	// created.
8642	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8643	// resources has a type marked as deprecated
8644	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8645	// that is larger than image size.
8646	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8647	// resources has a type marked as experimental
8648	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8649	// call
8650	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8651	// overridden. Deprecated unused field.
8652	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8653	// injected kernel, which is deprecated.
8654	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8655	// exceedingly large number of resources
8656	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8657	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8658	// not assigned to an instance on the network.
8659	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8660	// ip forward.
8661	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8662	// refers to an instance that does not exist.
8663	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8664	// URL refers to an instance that is not on the same network as the
8665	// route.
8666	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8667	// have a status of RUNNING.
8668	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8669	// continue the process despite the mentioned error.
8670	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8671	// page.
8672	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8673	// missing due to errors
8674	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8675	// that requires a TOS they have not accepted.
8676	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8677	// resource is in use.
8678	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8679	// auto-delete could not be deleted because they were in use.
8680	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8681	// ignored.
8682	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8683	// instance group manager is valid as such, but its application does not
8684	// make a lot of sense, because it allows only single instance in
8685	// instance group.
8686	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8687	// are present
8688	//   "UNREACHABLE" - A given scope cannot be reached.
8689	Code string `json:"code,omitempty"`
8690
8691	// Data: [Output Only] Metadata about this warning in key: value format.
8692	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8693	// }
8694	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8695
8696	// Message: [Output Only] A human-readable description of the warning
8697	// code.
8698	Message string `json:"message,omitempty"`
8699
8700	// ForceSendFields is a list of field names (e.g. "Code") to
8701	// unconditionally include in API requests. By default, fields with
8702	// empty or default values are omitted from API requests. However, any
8703	// non-pointer, non-interface field appearing in ForceSendFields will be
8704	// sent to the server regardless of whether the field is empty or not.
8705	// This may be used to include empty fields in Patch requests.
8706	ForceSendFields []string `json:"-"`
8707
8708	// NullFields is a list of field names (e.g. "Code") to include in API
8709	// requests with the JSON null value. By default, fields with empty
8710	// values are omitted from API requests. However, any field with an
8711	// empty value appearing in NullFields will be sent to the server as
8712	// null. It is an error if a field in this list has a non-empty value.
8713	// This may be used to include null fields in Patch requests.
8714	NullFields []string `json:"-"`
8715}
8716
8717func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8718	type NoMethod DiskTypeAggregatedListWarning
8719	raw := NoMethod(*s)
8720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8721}
8722
8723type DiskTypeAggregatedListWarningData struct {
8724	// Key: [Output Only] A key that provides more detail on the warning
8725	// being returned. For example, for warnings where there are no results
8726	// in a list request for a particular zone, this key might be scope and
8727	// the key value might be the zone name. Other examples might be a key
8728	// indicating a deprecated resource and a suggested replacement, or a
8729	// warning about invalid network settings (for example, if an instance
8730	// attempts to perform IP forwarding but is not enabled for IP
8731	// forwarding).
8732	Key string `json:"key,omitempty"`
8733
8734	// Value: [Output Only] A warning data value corresponding to the key.
8735	Value string `json:"value,omitempty"`
8736
8737	// ForceSendFields is a list of field names (e.g. "Key") to
8738	// unconditionally include in API requests. By default, fields with
8739	// empty or default values are omitted from API requests. However, any
8740	// non-pointer, non-interface field appearing in ForceSendFields will be
8741	// sent to the server regardless of whether the field is empty or not.
8742	// This may be used to include empty fields in Patch requests.
8743	ForceSendFields []string `json:"-"`
8744
8745	// NullFields is a list of field names (e.g. "Key") to include in API
8746	// requests with the JSON null value. By default, fields with empty
8747	// values are omitted from API requests. However, any field with an
8748	// empty value appearing in NullFields will be sent to the server as
8749	// null. It is an error if a field in this list has a non-empty value.
8750	// This may be used to include null fields in Patch requests.
8751	NullFields []string `json:"-"`
8752}
8753
8754func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8755	type NoMethod DiskTypeAggregatedListWarningData
8756	raw := NoMethod(*s)
8757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8758}
8759
8760// DiskTypeList: Contains a list of disk types.
8761type DiskTypeList struct {
8762	// Id: [Output Only] Unique identifier for the resource; defined by the
8763	// server.
8764	Id string `json:"id,omitempty"`
8765
8766	// Items: A list of DiskType resources.
8767	Items []*DiskType `json:"items,omitempty"`
8768
8769	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8770	// disk types.
8771	Kind string `json:"kind,omitempty"`
8772
8773	// NextPageToken: [Output Only] This token allows you to get the next
8774	// page of results for list requests. If the number of results is larger
8775	// than maxResults, use the nextPageToken as a value for the query
8776	// parameter pageToken in the next list request. Subsequent list
8777	// requests will have their own nextPageToken to continue paging through
8778	// the results.
8779	NextPageToken string `json:"nextPageToken,omitempty"`
8780
8781	// SelfLink: [Output Only] Server-defined URL for this resource.
8782	SelfLink string `json:"selfLink,omitempty"`
8783
8784	// Warning: [Output Only] Informational warning message.
8785	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8786
8787	// ServerResponse contains the HTTP response code and headers from the
8788	// server.
8789	googleapi.ServerResponse `json:"-"`
8790
8791	// ForceSendFields is a list of field names (e.g. "Id") to
8792	// unconditionally include in API requests. By default, fields with
8793	// empty or default values are omitted from API requests. However, any
8794	// non-pointer, non-interface field appearing in ForceSendFields will be
8795	// sent to the server regardless of whether the field is empty or not.
8796	// This may be used to include empty fields in Patch requests.
8797	ForceSendFields []string `json:"-"`
8798
8799	// NullFields is a list of field names (e.g. "Id") to include in API
8800	// requests with the JSON null value. By default, fields with empty
8801	// values are omitted from API requests. However, any field with an
8802	// empty value appearing in NullFields will be sent to the server as
8803	// null. It is an error if a field in this list has a non-empty value.
8804	// This may be used to include null fields in Patch requests.
8805	NullFields []string `json:"-"`
8806}
8807
8808func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8809	type NoMethod DiskTypeList
8810	raw := NoMethod(*s)
8811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8812}
8813
8814// DiskTypeListWarning: [Output Only] Informational warning message.
8815type DiskTypeListWarning struct {
8816	// Code: [Output Only] A warning code, if applicable. For example,
8817	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8818	// the response.
8819	//
8820	// Possible values:
8821	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8822	// changes made by a failed operation.
8823	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8824	// created.
8825	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8826	// resources has a type marked as deprecated
8827	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8828	// that is larger than image size.
8829	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8830	// resources has a type marked as experimental
8831	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8832	// call
8833	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8834	// overridden. Deprecated unused field.
8835	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8836	// injected kernel, which is deprecated.
8837	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8838	// exceedingly large number of resources
8839	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8840	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8841	// not assigned to an instance on the network.
8842	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8843	// ip forward.
8844	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8845	// refers to an instance that does not exist.
8846	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8847	// URL refers to an instance that is not on the same network as the
8848	// route.
8849	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8850	// have a status of RUNNING.
8851	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8852	// continue the process despite the mentioned error.
8853	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8854	// page.
8855	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8856	// missing due to errors
8857	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8858	// that requires a TOS they have not accepted.
8859	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8860	// resource is in use.
8861	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8862	// auto-delete could not be deleted because they were in use.
8863	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8864	// ignored.
8865	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8866	// instance group manager is valid as such, but its application does not
8867	// make a lot of sense, because it allows only single instance in
8868	// instance group.
8869	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8870	// are present
8871	//   "UNREACHABLE" - A given scope cannot be reached.
8872	Code string `json:"code,omitempty"`
8873
8874	// Data: [Output Only] Metadata about this warning in key: value format.
8875	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8876	// }
8877	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8878
8879	// Message: [Output Only] A human-readable description of the warning
8880	// code.
8881	Message string `json:"message,omitempty"`
8882
8883	// ForceSendFields is a list of field names (e.g. "Code") to
8884	// unconditionally include in API requests. By default, fields with
8885	// empty or default values are omitted from API requests. However, any
8886	// non-pointer, non-interface field appearing in ForceSendFields will be
8887	// sent to the server regardless of whether the field is empty or not.
8888	// This may be used to include empty fields in Patch requests.
8889	ForceSendFields []string `json:"-"`
8890
8891	// NullFields is a list of field names (e.g. "Code") to include in API
8892	// requests with the JSON null value. By default, fields with empty
8893	// values are omitted from API requests. However, any field with an
8894	// empty value appearing in NullFields will be sent to the server as
8895	// null. It is an error if a field in this list has a non-empty value.
8896	// This may be used to include null fields in Patch requests.
8897	NullFields []string `json:"-"`
8898}
8899
8900func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8901	type NoMethod DiskTypeListWarning
8902	raw := NoMethod(*s)
8903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8904}
8905
8906type DiskTypeListWarningData struct {
8907	// Key: [Output Only] A key that provides more detail on the warning
8908	// being returned. For example, for warnings where there are no results
8909	// in a list request for a particular zone, this key might be scope and
8910	// the key value might be the zone name. Other examples might be a key
8911	// indicating a deprecated resource and a suggested replacement, or a
8912	// warning about invalid network settings (for example, if an instance
8913	// attempts to perform IP forwarding but is not enabled for IP
8914	// forwarding).
8915	Key string `json:"key,omitempty"`
8916
8917	// Value: [Output Only] A warning data value corresponding to the key.
8918	Value string `json:"value,omitempty"`
8919
8920	// ForceSendFields is a list of field names (e.g. "Key") to
8921	// unconditionally include in API requests. By default, fields with
8922	// empty or default values are omitted from API requests. However, any
8923	// non-pointer, non-interface field appearing in ForceSendFields will be
8924	// sent to the server regardless of whether the field is empty or not.
8925	// This may be used to include empty fields in Patch requests.
8926	ForceSendFields []string `json:"-"`
8927
8928	// NullFields is a list of field names (e.g. "Key") to include in API
8929	// requests with the JSON null value. By default, fields with empty
8930	// values are omitted from API requests. However, any field with an
8931	// empty value appearing in NullFields will be sent to the server as
8932	// null. It is an error if a field in this list has a non-empty value.
8933	// This may be used to include null fields in Patch requests.
8934	NullFields []string `json:"-"`
8935}
8936
8937func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8938	type NoMethod DiskTypeListWarningData
8939	raw := NoMethod(*s)
8940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8941}
8942
8943type DiskTypesScopedList struct {
8944	// DiskTypes: [Output Only] A list of disk types contained in this
8945	// scope.
8946	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8947
8948	// Warning: [Output Only] Informational warning which replaces the list
8949	// of disk types when the list is empty.
8950	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8951
8952	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8953	// unconditionally include in API requests. By default, fields with
8954	// empty or default values are omitted from API requests. However, any
8955	// non-pointer, non-interface field appearing in ForceSendFields will be
8956	// sent to the server regardless of whether the field is empty or not.
8957	// This may be used to include empty fields in Patch requests.
8958	ForceSendFields []string `json:"-"`
8959
8960	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8961	// API requests with the JSON null value. By default, fields with empty
8962	// values are omitted from API requests. However, any field with an
8963	// empty value appearing in NullFields will be sent to the server as
8964	// null. It is an error if a field in this list has a non-empty value.
8965	// This may be used to include null fields in Patch requests.
8966	NullFields []string `json:"-"`
8967}
8968
8969func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8970	type NoMethod DiskTypesScopedList
8971	raw := NoMethod(*s)
8972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8973}
8974
8975// DiskTypesScopedListWarning: [Output Only] Informational warning which
8976// replaces the list of disk types when the list is empty.
8977type DiskTypesScopedListWarning struct {
8978	// Code: [Output Only] A warning code, if applicable. For example,
8979	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8980	// the response.
8981	//
8982	// Possible values:
8983	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8984	// changes made by a failed operation.
8985	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8986	// created.
8987	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8988	// resources has a type marked as deprecated
8989	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8990	// that is larger than image size.
8991	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8992	// resources has a type marked as experimental
8993	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8994	// call
8995	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8996	// overridden. Deprecated unused field.
8997	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8998	// injected kernel, which is deprecated.
8999	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9000	// exceedingly large number of resources
9001	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9002	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9003	// not assigned to an instance on the network.
9004	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9005	// ip forward.
9006	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9007	// refers to an instance that does not exist.
9008	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9009	// URL refers to an instance that is not on the same network as the
9010	// route.
9011	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9012	// have a status of RUNNING.
9013	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9014	// continue the process despite the mentioned error.
9015	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9016	// page.
9017	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9018	// missing due to errors
9019	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9020	// that requires a TOS they have not accepted.
9021	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9022	// resource is in use.
9023	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9024	// auto-delete could not be deleted because they were in use.
9025	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9026	// ignored.
9027	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9028	// instance group manager is valid as such, but its application does not
9029	// make a lot of sense, because it allows only single instance in
9030	// instance group.
9031	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9032	// are present
9033	//   "UNREACHABLE" - A given scope cannot be reached.
9034	Code string `json:"code,omitempty"`
9035
9036	// Data: [Output Only] Metadata about this warning in key: value format.
9037	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9038	// }
9039	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
9040
9041	// Message: [Output Only] A human-readable description of the warning
9042	// code.
9043	Message string `json:"message,omitempty"`
9044
9045	// ForceSendFields is a list of field names (e.g. "Code") to
9046	// unconditionally include in API requests. By default, fields with
9047	// empty or default values are omitted from API requests. However, any
9048	// non-pointer, non-interface field appearing in ForceSendFields will be
9049	// sent to the server regardless of whether the field is empty or not.
9050	// This may be used to include empty fields in Patch requests.
9051	ForceSendFields []string `json:"-"`
9052
9053	// NullFields is a list of field names (e.g. "Code") to include in API
9054	// requests with the JSON null value. By default, fields with empty
9055	// values are omitted from API requests. However, any field with an
9056	// empty value appearing in NullFields will be sent to the server as
9057	// null. It is an error if a field in this list has a non-empty value.
9058	// This may be used to include null fields in Patch requests.
9059	NullFields []string `json:"-"`
9060}
9061
9062func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
9063	type NoMethod DiskTypesScopedListWarning
9064	raw := NoMethod(*s)
9065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9066}
9067
9068type DiskTypesScopedListWarningData struct {
9069	// Key: [Output Only] A key that provides more detail on the warning
9070	// being returned. For example, for warnings where there are no results
9071	// in a list request for a particular zone, this key might be scope and
9072	// the key value might be the zone name. Other examples might be a key
9073	// indicating a deprecated resource and a suggested replacement, or a
9074	// warning about invalid network settings (for example, if an instance
9075	// attempts to perform IP forwarding but is not enabled for IP
9076	// forwarding).
9077	Key string `json:"key,omitempty"`
9078
9079	// Value: [Output Only] A warning data value corresponding to the key.
9080	Value string `json:"value,omitempty"`
9081
9082	// ForceSendFields is a list of field names (e.g. "Key") to
9083	// unconditionally include in API requests. By default, fields with
9084	// empty or default values are omitted from API requests. However, any
9085	// non-pointer, non-interface field appearing in ForceSendFields will be
9086	// sent to the server regardless of whether the field is empty or not.
9087	// This may be used to include empty fields in Patch requests.
9088	ForceSendFields []string `json:"-"`
9089
9090	// NullFields is a list of field names (e.g. "Key") to include in API
9091	// requests with the JSON null value. By default, fields with empty
9092	// values are omitted from API requests. However, any field with an
9093	// empty value appearing in NullFields will be sent to the server as
9094	// null. It is an error if a field in this list has a non-empty value.
9095	// This may be used to include null fields in Patch requests.
9096	NullFields []string `json:"-"`
9097}
9098
9099func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
9100	type NoMethod DiskTypesScopedListWarningData
9101	raw := NoMethod(*s)
9102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9103}
9104
9105type DisksAddResourcePoliciesRequest struct {
9106	// ResourcePolicies: Full or relative path to the resource policy to be
9107	// added to this disk. You can only specify one resource policy.
9108	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9109
9110	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9111	// unconditionally include in API requests. By default, fields with
9112	// empty or default values are omitted from API requests. However, any
9113	// non-pointer, non-interface field appearing in ForceSendFields will be
9114	// sent to the server regardless of whether the field is empty or not.
9115	// This may be used to include empty fields in Patch requests.
9116	ForceSendFields []string `json:"-"`
9117
9118	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9119	// include in API requests with the JSON null value. By default, fields
9120	// with empty values are omitted from API requests. However, any field
9121	// with an empty value appearing in NullFields will be sent to the
9122	// server as null. It is an error if a field in this list has a
9123	// non-empty value. This may be used to include null fields in Patch
9124	// requests.
9125	NullFields []string `json:"-"`
9126}
9127
9128func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9129	type NoMethod DisksAddResourcePoliciesRequest
9130	raw := NoMethod(*s)
9131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9132}
9133
9134type DisksRemoveResourcePoliciesRequest struct {
9135	// ResourcePolicies: Resource policies to be removed from this disk.
9136	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9137
9138	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9139	// unconditionally include in API requests. By default, fields with
9140	// empty or default values are omitted from API requests. However, any
9141	// non-pointer, non-interface field appearing in ForceSendFields will be
9142	// sent to the server regardless of whether the field is empty or not.
9143	// This may be used to include empty fields in Patch requests.
9144	ForceSendFields []string `json:"-"`
9145
9146	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9147	// include in API requests with the JSON null value. By default, fields
9148	// with empty values are omitted from API requests. However, any field
9149	// with an empty value appearing in NullFields will be sent to the
9150	// server as null. It is an error if a field in this list has a
9151	// non-empty value. This may be used to include null fields in Patch
9152	// requests.
9153	NullFields []string `json:"-"`
9154}
9155
9156func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9157	type NoMethod DisksRemoveResourcePoliciesRequest
9158	raw := NoMethod(*s)
9159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9160}
9161
9162type DisksResizeRequest struct {
9163	// SizeGb: The new size of the persistent disk, which is specified in
9164	// GB.
9165	SizeGb int64 `json:"sizeGb,omitempty,string"`
9166
9167	// ForceSendFields is a list of field names (e.g. "SizeGb") to
9168	// unconditionally include in API requests. By default, fields with
9169	// empty or default values are omitted from API requests. However, any
9170	// non-pointer, non-interface field appearing in ForceSendFields will be
9171	// sent to the server regardless of whether the field is empty or not.
9172	// This may be used to include empty fields in Patch requests.
9173	ForceSendFields []string `json:"-"`
9174
9175	// NullFields is a list of field names (e.g. "SizeGb") to include in API
9176	// requests with the JSON null value. By default, fields with empty
9177	// values are omitted from API requests. However, any field with an
9178	// empty value appearing in NullFields will be sent to the server as
9179	// null. It is an error if a field in this list has a non-empty value.
9180	// This may be used to include null fields in Patch requests.
9181	NullFields []string `json:"-"`
9182}
9183
9184func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
9185	type NoMethod DisksResizeRequest
9186	raw := NoMethod(*s)
9187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9188}
9189
9190type DisksScopedList struct {
9191	// Disks: [Output Only] A list of disks contained in this scope.
9192	Disks []*Disk `json:"disks,omitempty"`
9193
9194	// Warning: [Output Only] Informational warning which replaces the list
9195	// of disks when the list is empty.
9196	Warning *DisksScopedListWarning `json:"warning,omitempty"`
9197
9198	// ForceSendFields is a list of field names (e.g. "Disks") to
9199	// unconditionally include in API requests. By default, fields with
9200	// empty or default values are omitted from API requests. However, any
9201	// non-pointer, non-interface field appearing in ForceSendFields will be
9202	// sent to the server regardless of whether the field is empty or not.
9203	// This may be used to include empty fields in Patch requests.
9204	ForceSendFields []string `json:"-"`
9205
9206	// NullFields is a list of field names (e.g. "Disks") to include in API
9207	// requests with the JSON null value. By default, fields with empty
9208	// values are omitted from API requests. However, any field with an
9209	// empty value appearing in NullFields will be sent to the server as
9210	// null. It is an error if a field in this list has a non-empty value.
9211	// This may be used to include null fields in Patch requests.
9212	NullFields []string `json:"-"`
9213}
9214
9215func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
9216	type NoMethod DisksScopedList
9217	raw := NoMethod(*s)
9218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9219}
9220
9221// DisksScopedListWarning: [Output Only] Informational warning which
9222// replaces the list of disks when the list is empty.
9223type DisksScopedListWarning struct {
9224	// Code: [Output Only] A warning code, if applicable. For example,
9225	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9226	// the response.
9227	//
9228	// Possible values:
9229	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
9230	// changes made by a failed operation.
9231	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
9232	// created.
9233	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
9234	// resources has a type marked as deprecated
9235	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
9236	// that is larger than image size.
9237	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
9238	// resources has a type marked as experimental
9239	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
9240	// call
9241	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
9242	// overridden. Deprecated unused field.
9243	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
9244	// injected kernel, which is deprecated.
9245	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9246	// exceedingly large number of resources
9247	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9248	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9249	// not assigned to an instance on the network.
9250	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9251	// ip forward.
9252	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9253	// refers to an instance that does not exist.
9254	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9255	// URL refers to an instance that is not on the same network as the
9256	// route.
9257	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9258	// have a status of RUNNING.
9259	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9260	// continue the process despite the mentioned error.
9261	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9262	// page.
9263	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9264	// missing due to errors
9265	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9266	// that requires a TOS they have not accepted.
9267	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9268	// resource is in use.
9269	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9270	// auto-delete could not be deleted because they were in use.
9271	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9272	// ignored.
9273	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9274	// instance group manager is valid as such, but its application does not
9275	// make a lot of sense, because it allows only single instance in
9276	// instance group.
9277	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9278	// are present
9279	//   "UNREACHABLE" - A given scope cannot be reached.
9280	Code string `json:"code,omitempty"`
9281
9282	// Data: [Output Only] Metadata about this warning in key: value format.
9283	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9284	// }
9285	Data []*DisksScopedListWarningData `json:"data,omitempty"`
9286
9287	// Message: [Output Only] A human-readable description of the warning
9288	// code.
9289	Message string `json:"message,omitempty"`
9290
9291	// ForceSendFields is a list of field names (e.g. "Code") to
9292	// unconditionally include in API requests. By default, fields with
9293	// empty or default values are omitted from API requests. However, any
9294	// non-pointer, non-interface field appearing in ForceSendFields will be
9295	// sent to the server regardless of whether the field is empty or not.
9296	// This may be used to include empty fields in Patch requests.
9297	ForceSendFields []string `json:"-"`
9298
9299	// NullFields is a list of field names (e.g. "Code") to include in API
9300	// requests with the JSON null value. By default, fields with empty
9301	// values are omitted from API requests. However, any field with an
9302	// empty value appearing in NullFields will be sent to the server as
9303	// null. It is an error if a field in this list has a non-empty value.
9304	// This may be used to include null fields in Patch requests.
9305	NullFields []string `json:"-"`
9306}
9307
9308func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
9309	type NoMethod DisksScopedListWarning
9310	raw := NoMethod(*s)
9311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9312}
9313
9314type DisksScopedListWarningData struct {
9315	// Key: [Output Only] A key that provides more detail on the warning
9316	// being returned. For example, for warnings where there are no results
9317	// in a list request for a particular zone, this key might be scope and
9318	// the key value might be the zone name. Other examples might be a key
9319	// indicating a deprecated resource and a suggested replacement, or a
9320	// warning about invalid network settings (for example, if an instance
9321	// attempts to perform IP forwarding but is not enabled for IP
9322	// forwarding).
9323	Key string `json:"key,omitempty"`
9324
9325	// Value: [Output Only] A warning data value corresponding to the key.
9326	Value string `json:"value,omitempty"`
9327
9328	// ForceSendFields is a list of field names (e.g. "Key") to
9329	// unconditionally include in API requests. By default, fields with
9330	// empty or default values are omitted from API requests. However, any
9331	// non-pointer, non-interface field appearing in ForceSendFields will be
9332	// sent to the server regardless of whether the field is empty or not.
9333	// This may be used to include empty fields in Patch requests.
9334	ForceSendFields []string `json:"-"`
9335
9336	// NullFields is a list of field names (e.g. "Key") to include in API
9337	// requests with the JSON null value. By default, fields with empty
9338	// values are omitted from API requests. However, any field with an
9339	// empty value appearing in NullFields will be sent to the server as
9340	// null. It is an error if a field in this list has a non-empty value.
9341	// This may be used to include null fields in Patch requests.
9342	NullFields []string `json:"-"`
9343}
9344
9345func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
9346	type NoMethod DisksScopedListWarningData
9347	raw := NoMethod(*s)
9348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9349}
9350
9351// DisplayDevice: A set of Display Device options
9352type DisplayDevice struct {
9353	// EnableDisplay: Defines whether the instance has Display enabled.
9354	EnableDisplay bool `json:"enableDisplay,omitempty"`
9355
9356	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
9357	// unconditionally include in API requests. By default, fields with
9358	// empty or default values are omitted from API requests. However, any
9359	// non-pointer, non-interface field appearing in ForceSendFields will be
9360	// sent to the server regardless of whether the field is empty or not.
9361	// This may be used to include empty fields in Patch requests.
9362	ForceSendFields []string `json:"-"`
9363
9364	// NullFields is a list of field names (e.g. "EnableDisplay") to include
9365	// in API requests with the JSON null value. By default, fields with
9366	// empty values are omitted from API requests. However, any field with
9367	// an empty value appearing in NullFields will be sent to the server as
9368	// null. It is an error if a field in this list has a non-empty value.
9369	// This may be used to include null fields in Patch requests.
9370	NullFields []string `json:"-"`
9371}
9372
9373func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
9374	type NoMethod DisplayDevice
9375	raw := NoMethod(*s)
9376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9377}
9378
9379type DistributionPolicy struct {
9380	// TargetShape: The distribution shape to which the group converges
9381	// either proactively or on resize events (depending on the value set in
9382	// updatePolicy.instanceRedistributionType).
9383	//
9384	// Possible values:
9385	//   "ANY" - The group picks zones for creating VM instances to fulfill
9386	// the requested number of VMs within present resource constraints and
9387	// to maximize utilization of unused zonal reservations. Recommended for
9388	// batch workloads that do not require high availability.
9389	//   "BALANCED" - The group prioritizes acquisition of resources,
9390	// scheduling VMs in zones where resources are available while
9391	// distributing VMs as evenly as possible across selected zones to
9392	// minimize the impact of zonal failure. Recommended for highly
9393	// available serving workloads.
9394	//   "EVEN" - The group schedules VM instance creation and deletion to
9395	// achieve and maintain an even number of managed instances across the
9396	// selected zones. The distribution is even when the number of managed
9397	// instances does not differ by more than 1 between any two zones.
9398	// Recommended for highly available serving workloads.
9399	TargetShape string `json:"targetShape,omitempty"`
9400
9401	// Zones: Zones where the regional managed instance group will create
9402	// and manage its instances.
9403	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
9404
9405	// ForceSendFields is a list of field names (e.g. "TargetShape") to
9406	// unconditionally include in API requests. By default, fields with
9407	// empty or default values are omitted from API requests. However, any
9408	// non-pointer, non-interface field appearing in ForceSendFields will be
9409	// sent to the server regardless of whether the field is empty or not.
9410	// This may be used to include empty fields in Patch requests.
9411	ForceSendFields []string `json:"-"`
9412
9413	// NullFields is a list of field names (e.g. "TargetShape") to include
9414	// in API requests with the JSON null value. By default, fields with
9415	// empty values are omitted from API requests. However, any field with
9416	// an empty value appearing in NullFields will be sent to the server as
9417	// null. It is an error if a field in this list has a non-empty value.
9418	// This may be used to include null fields in Patch requests.
9419	NullFields []string `json:"-"`
9420}
9421
9422func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
9423	type NoMethod DistributionPolicy
9424	raw := NoMethod(*s)
9425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9426}
9427
9428type DistributionPolicyZoneConfiguration struct {
9429	// Zone: The URL of the zone. The zone must exist in the region where
9430	// the managed instance group is located.
9431	Zone string `json:"zone,omitempty"`
9432
9433	// ForceSendFields is a list of field names (e.g. "Zone") to
9434	// unconditionally include in API requests. By default, fields with
9435	// empty or default values are omitted from API requests. However, any
9436	// non-pointer, non-interface field appearing in ForceSendFields will be
9437	// sent to the server regardless of whether the field is empty or not.
9438	// This may be used to include empty fields in Patch requests.
9439	ForceSendFields []string `json:"-"`
9440
9441	// NullFields is a list of field names (e.g. "Zone") to include in API
9442	// requests with the JSON null value. By default, fields with empty
9443	// values are omitted from API requests. However, any field with an
9444	// empty value appearing in NullFields will be sent to the server as
9445	// null. It is an error if a field in this list has a non-empty value.
9446	// This may be used to include null fields in Patch requests.
9447	NullFields []string `json:"-"`
9448}
9449
9450func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
9451	type NoMethod DistributionPolicyZoneConfiguration
9452	raw := NoMethod(*s)
9453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9454}
9455
9456// Duration: A Duration represents a fixed-length span of time
9457// represented as a count of seconds and fractions of seconds at
9458// nanosecond resolution. It is independent of any calendar and concepts
9459// like "day" or "month". Range is approximately 10,000 years.
9460type Duration struct {
9461	// Nanos: Span of time that's a fraction of a second at nanosecond
9462	// resolution. Durations less than one second are represented with a 0
9463	// `seconds` field and a positive `nanos` field. Must be from 0 to
9464	// 999,999,999 inclusive.
9465	Nanos int64 `json:"nanos,omitempty"`
9466
9467	// Seconds: Span of time at a resolution of a second. Must be from 0 to
9468	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
9469	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
9470	Seconds int64 `json:"seconds,omitempty,string"`
9471
9472	// ForceSendFields is a list of field names (e.g. "Nanos") to
9473	// unconditionally include in API requests. By default, fields with
9474	// empty or default values are omitted from API requests. However, any
9475	// non-pointer, non-interface field appearing in ForceSendFields will be
9476	// sent to the server regardless of whether the field is empty or not.
9477	// This may be used to include empty fields in Patch requests.
9478	ForceSendFields []string `json:"-"`
9479
9480	// NullFields is a list of field names (e.g. "Nanos") to include in API
9481	// requests with the JSON null value. By default, fields with empty
9482	// values are omitted from API requests. However, any field with an
9483	// empty value appearing in NullFields will be sent to the server as
9484	// null. It is an error if a field in this list has a non-empty value.
9485	// This may be used to include null fields in Patch requests.
9486	NullFields []string `json:"-"`
9487}
9488
9489func (s *Duration) MarshalJSON() ([]byte, error) {
9490	type NoMethod Duration
9491	raw := NoMethod(*s)
9492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9493}
9494
9495type ExchangedPeeringRoute struct {
9496	// DestRange: The destination range of the route.
9497	DestRange string `json:"destRange,omitempty"`
9498
9499	// Imported: True if the peering route has been imported from a peer.
9500	// The actual import happens if the field
9501	// networkPeering.importCustomRoutes is true for this network, and
9502	// networkPeering.exportCustomRoutes is true for the peer network, and
9503	// the import does not result in a route conflict.
9504	Imported bool `json:"imported,omitempty"`
9505
9506	// NextHopRegion: The region of peering route next hop, only applies to
9507	// dynamic routes.
9508	NextHopRegion string `json:"nextHopRegion,omitempty"`
9509
9510	// Priority: The priority of the peering route.
9511	Priority int64 `json:"priority,omitempty"`
9512
9513	// Type: The type of the peering route.
9514	//
9515	// Possible values:
9516	//   "DYNAMIC_PEERING_ROUTE" - For routes exported from local network.
9517	//   "STATIC_PEERING_ROUTE" - The peering route.
9518	//   "SUBNET_PEERING_ROUTE" - The peering route corresponding to
9519	// subnetwork range.
9520	Type string `json:"type,omitempty"`
9521
9522	// ForceSendFields is a list of field names (e.g. "DestRange") to
9523	// unconditionally include in API requests. By default, fields with
9524	// empty or default values are omitted from API requests. However, any
9525	// non-pointer, non-interface field appearing in ForceSendFields will be
9526	// sent to the server regardless of whether the field is empty or not.
9527	// This may be used to include empty fields in Patch requests.
9528	ForceSendFields []string `json:"-"`
9529
9530	// NullFields is a list of field names (e.g. "DestRange") to include in
9531	// API requests with the JSON null value. By default, fields with empty
9532	// values are omitted from API requests. However, any field with an
9533	// empty value appearing in NullFields will be sent to the server as
9534	// null. It is an error if a field in this list has a non-empty value.
9535	// This may be used to include null fields in Patch requests.
9536	NullFields []string `json:"-"`
9537}
9538
9539func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9540	type NoMethod ExchangedPeeringRoute
9541	raw := NoMethod(*s)
9542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9543}
9544
9545type ExchangedPeeringRoutesList struct {
9546	// Id: [Output Only] Unique identifier for the resource; defined by the
9547	// server.
9548	Id string `json:"id,omitempty"`
9549
9550	// Items: A list of ExchangedPeeringRoute resources.
9551	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9552
9553	// Kind: [Output Only] Type of resource. Always
9554	// compute#exchangedPeeringRoutesList for exchanged peering routes
9555	// lists.
9556	Kind string `json:"kind,omitempty"`
9557
9558	// NextPageToken: [Output Only] This token allows you to get the next
9559	// page of results for list requests. If the number of results is larger
9560	// than maxResults, use the nextPageToken as a value for the query
9561	// parameter pageToken in the next list request. Subsequent list
9562	// requests will have their own nextPageToken to continue paging through
9563	// the results.
9564	NextPageToken string `json:"nextPageToken,omitempty"`
9565
9566	// SelfLink: [Output Only] Server-defined URL for this resource.
9567	SelfLink string `json:"selfLink,omitempty"`
9568
9569	// Warning: [Output Only] Informational warning message.
9570	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9571
9572	// ServerResponse contains the HTTP response code and headers from the
9573	// server.
9574	googleapi.ServerResponse `json:"-"`
9575
9576	// ForceSendFields is a list of field names (e.g. "Id") to
9577	// unconditionally include in API requests. By default, fields with
9578	// empty or default values are omitted from API requests. However, any
9579	// non-pointer, non-interface field appearing in ForceSendFields will be
9580	// sent to the server regardless of whether the field is empty or not.
9581	// This may be used to include empty fields in Patch requests.
9582	ForceSendFields []string `json:"-"`
9583
9584	// NullFields is a list of field names (e.g. "Id") to include in API
9585	// requests with the JSON null value. By default, fields with empty
9586	// values are omitted from API requests. However, any field with an
9587	// empty value appearing in NullFields will be sent to the server as
9588	// null. It is an error if a field in this list has a non-empty value.
9589	// This may be used to include null fields in Patch requests.
9590	NullFields []string `json:"-"`
9591}
9592
9593func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9594	type NoMethod ExchangedPeeringRoutesList
9595	raw := NoMethod(*s)
9596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9597}
9598
9599// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9600// warning message.
9601type ExchangedPeeringRoutesListWarning struct {
9602	// Code: [Output Only] A warning code, if applicable. For example,
9603	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9604	// the response.
9605	//
9606	// Possible values:
9607	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
9608	// changes made by a failed operation.
9609	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
9610	// created.
9611	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
9612	// resources has a type marked as deprecated
9613	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
9614	// that is larger than image size.
9615	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
9616	// resources has a type marked as experimental
9617	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
9618	// call
9619	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
9620	// overridden. Deprecated unused field.
9621	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
9622	// injected kernel, which is deprecated.
9623	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9624	// exceedingly large number of resources
9625	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9626	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9627	// not assigned to an instance on the network.
9628	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9629	// ip forward.
9630	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9631	// refers to an instance that does not exist.
9632	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9633	// URL refers to an instance that is not on the same network as the
9634	// route.
9635	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9636	// have a status of RUNNING.
9637	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9638	// continue the process despite the mentioned error.
9639	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9640	// page.
9641	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9642	// missing due to errors
9643	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9644	// that requires a TOS they have not accepted.
9645	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9646	// resource is in use.
9647	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9648	// auto-delete could not be deleted because they were in use.
9649	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9650	// ignored.
9651	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9652	// instance group manager is valid as such, but its application does not
9653	// make a lot of sense, because it allows only single instance in
9654	// instance group.
9655	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9656	// are present
9657	//   "UNREACHABLE" - A given scope cannot be reached.
9658	Code string `json:"code,omitempty"`
9659
9660	// Data: [Output Only] Metadata about this warning in key: value format.
9661	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9662	// }
9663	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9664
9665	// Message: [Output Only] A human-readable description of the warning
9666	// code.
9667	Message string `json:"message,omitempty"`
9668
9669	// ForceSendFields is a list of field names (e.g. "Code") to
9670	// unconditionally include in API requests. By default, fields with
9671	// empty or default values are omitted from API requests. However, any
9672	// non-pointer, non-interface field appearing in ForceSendFields will be
9673	// sent to the server regardless of whether the field is empty or not.
9674	// This may be used to include empty fields in Patch requests.
9675	ForceSendFields []string `json:"-"`
9676
9677	// NullFields is a list of field names (e.g. "Code") to include in API
9678	// requests with the JSON null value. By default, fields with empty
9679	// values are omitted from API requests. However, any field with an
9680	// empty value appearing in NullFields will be sent to the server as
9681	// null. It is an error if a field in this list has a non-empty value.
9682	// This may be used to include null fields in Patch requests.
9683	NullFields []string `json:"-"`
9684}
9685
9686func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9687	type NoMethod ExchangedPeeringRoutesListWarning
9688	raw := NoMethod(*s)
9689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9690}
9691
9692type ExchangedPeeringRoutesListWarningData struct {
9693	// Key: [Output Only] A key that provides more detail on the warning
9694	// being returned. For example, for warnings where there are no results
9695	// in a list request for a particular zone, this key might be scope and
9696	// the key value might be the zone name. Other examples might be a key
9697	// indicating a deprecated resource and a suggested replacement, or a
9698	// warning about invalid network settings (for example, if an instance
9699	// attempts to perform IP forwarding but is not enabled for IP
9700	// forwarding).
9701	Key string `json:"key,omitempty"`
9702
9703	// Value: [Output Only] A warning data value corresponding to the key.
9704	Value string `json:"value,omitempty"`
9705
9706	// ForceSendFields is a list of field names (e.g. "Key") to
9707	// unconditionally include in API requests. By default, fields with
9708	// empty or default values are omitted from API requests. However, any
9709	// non-pointer, non-interface field appearing in ForceSendFields will be
9710	// sent to the server regardless of whether the field is empty or not.
9711	// This may be used to include empty fields in Patch requests.
9712	ForceSendFields []string `json:"-"`
9713
9714	// NullFields is a list of field names (e.g. "Key") to include in API
9715	// requests with the JSON null value. By default, fields with empty
9716	// values are omitted from API requests. However, any field with an
9717	// empty value appearing in NullFields will be sent to the server as
9718	// null. It is an error if a field in this list has a non-empty value.
9719	// This may be used to include null fields in Patch requests.
9720	NullFields []string `json:"-"`
9721}
9722
9723func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9724	type NoMethod ExchangedPeeringRoutesListWarningData
9725	raw := NoMethod(*s)
9726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9727}
9728
9729// Expr: Represents a textual expression in the Common Expression
9730// Language (CEL) syntax. CEL is a C-like expression language. The
9731// syntax and semantics of CEL are documented at
9732// https://github.com/google/cel-spec. Example (Comparison): title:
9733// "Summary size limit" description: "Determines if a summary is less
9734// than 100 chars" expression: "document.summary.size() < 100" Example
9735// (Equality): title: "Requestor is owner" description: "Determines if
9736// requestor is the document owner" expression: "document.owner ==
9737// request.auth.claims.email" Example (Logic): title: "Public documents"
9738// description: "Determine whether the document should be publicly
9739// visible" expression: "document.type != 'private' && document.type !=
9740// 'internal'" Example (Data Manipulation): title: "Notification string"
9741// description: "Create a notification string with a timestamp."
9742// expression: "'New message received at ' +
9743// string(document.create_time)" The exact variables and functions that
9744// may be referenced within an expression are determined by the service
9745// that evaluates it. See the service documentation for additional
9746// information.
9747type Expr struct {
9748	// Description: Optional. Description of the expression. This is a
9749	// longer text which describes the expression, e.g. when hovered over it
9750	// in a UI.
9751	Description string `json:"description,omitempty"`
9752
9753	// Expression: Textual representation of an expression in Common
9754	// Expression Language syntax.
9755	Expression string `json:"expression,omitempty"`
9756
9757	// Location: Optional. String indicating the location of the expression
9758	// for error reporting, e.g. a file name and a position in the file.
9759	Location string `json:"location,omitempty"`
9760
9761	// Title: Optional. Title for the expression, i.e. a short string
9762	// describing its purpose. This can be used e.g. in UIs which allow to
9763	// enter the expression.
9764	Title string `json:"title,omitempty"`
9765
9766	// ForceSendFields is a list of field names (e.g. "Description") to
9767	// unconditionally include in API requests. By default, fields with
9768	// empty or default values are omitted from API requests. However, any
9769	// non-pointer, non-interface field appearing in ForceSendFields will be
9770	// sent to the server regardless of whether the field is empty or not.
9771	// This may be used to include empty fields in Patch requests.
9772	ForceSendFields []string `json:"-"`
9773
9774	// NullFields is a list of field names (e.g. "Description") to include
9775	// in API requests with the JSON null value. By default, fields with
9776	// empty values are omitted from API requests. However, any field with
9777	// an empty value appearing in NullFields will be sent to the server as
9778	// null. It is an error if a field in this list has a non-empty value.
9779	// This may be used to include null fields in Patch requests.
9780	NullFields []string `json:"-"`
9781}
9782
9783func (s *Expr) MarshalJSON() ([]byte, error) {
9784	type NoMethod Expr
9785	raw := NoMethod(*s)
9786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9787}
9788
9789// ExternalVpnGateway: Represents an external VPN gateway. External VPN
9790// gateway is the on-premises VPN gateway(s) or another cloud provider's
9791// VPN gateway that connects to your Google Cloud VPN gateway. To create
9792// a highly available VPN from Google Cloud Platform to your VPN gateway
9793// or another cloud provider's VPN gateway, you must create a external
9794// VPN gateway resource with information about the other gateway. For
9795// more information about using external VPN gateways, see Creating an
9796// HA VPN gateway and tunnel pair to a peer VPN.
9797type ExternalVpnGateway struct {
9798	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9799	// format.
9800	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9801
9802	// Description: An optional description of this resource. Provide this
9803	// property when you create the resource.
9804	Description string `json:"description,omitempty"`
9805
9806	// Id: [Output Only] The unique identifier for the resource. This
9807	// identifier is defined by the server.
9808	Id *uint64 `json:"id,omitempty,string"`
9809
9810	// Interfaces: A list of interfaces for this external VPN gateway. If
9811	// your peer-side gateway is an on-premises gateway and non-AWS cloud
9812	// providers' gateway, at most two interfaces can be provided for an
9813	// external VPN gateway. If your peer side is an AWS virtual private
9814	// gateway, four interfaces should be provided for an external VPN
9815	// gateway.
9816	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9817
9818	// Kind: [Output Only] Type of the resource. Always
9819	// compute#externalVpnGateway for externalVpnGateways.
9820	Kind string `json:"kind,omitempty"`
9821
9822	// LabelFingerprint: A fingerprint for the labels being applied to this
9823	// ExternalVpnGateway, which is essentially a hash of the labels set
9824	// used for optimistic locking. The fingerprint is initially generated
9825	// by Compute Engine and changes after every request to modify or update
9826	// labels. You must always provide an up-to-date fingerprint hash in
9827	// order to update or change labels, otherwise the request will fail
9828	// with error 412 conditionNotMet. To see the latest fingerprint, make a
9829	// get() request to retrieve an ExternalVpnGateway.
9830	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9831
9832	// Labels: Labels for this resource. These can only be added or modified
9833	// by the setLabels method. Each label key/value pair must comply with
9834	// RFC1035. Label values may be empty.
9835	Labels map[string]string `json:"labels,omitempty"`
9836
9837	// Name: Name of the resource. Provided by the client when the resource
9838	// is created. The name must be 1-63 characters long, and comply with
9839	// RFC1035. Specifically, the name must be 1-63 characters long and
9840	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9841	// the first character must be a lowercase letter, and all following
9842	// characters must be a dash, lowercase letter, or digit, except the
9843	// last character, which cannot be a dash.
9844	Name string `json:"name,omitempty"`
9845
9846	// RedundancyType: Indicates the user-supplied redundancy type of this
9847	// external VPN gateway.
9848	//
9849	// Possible values:
9850	//   "FOUR_IPS_REDUNDANCY" - The external VPN gateway has four public IP
9851	// addresses; at the time of writing this API, the AWS virtual private
9852	// gateway is an example which has four public IP addresses for high
9853	// availability connections; there should be two VPN connections in the
9854	// AWS virtual private gateway , each AWS VPN connection has two public
9855	// IP addresses; please make sure to put two public IP addresses from
9856	// one AWS VPN connection into interfaces 0 and 1 of this external VPN
9857	// gateway, and put the other two public IP addresses from another AWS
9858	// VPN connection into interfaces 2 and 3 of this external VPN gateway.
9859	// When displaying highly available configuration status for the VPN
9860	// tunnels connected to FOUR_IPS_REDUNDANCY external VPN gateway, Google
9861	// will always detect whether interfaces 0 and 1 are connected on one
9862	// interface of HA Cloud VPN gateway, and detect whether interfaces 2
9863	// and 3 are connected to another interface of the HA Cloud VPN gateway.
9864	//   "SINGLE_IP_INTERNALLY_REDUNDANT" - The external VPN gateway has
9865	// only one public IP address which internally provide redundancy or
9866	// failover.
9867	//   "TWO_IPS_REDUNDANCY" - The external VPN gateway has two public IP
9868	// addresses which are redundant with each other, the following two
9869	// types of setup on your on-premises side would have this type of
9870	// redundancy: (1) Two separate on-premises gateways, each with one
9871	// public IP address, the two on-premises gateways are redundant with
9872	// each other. (2) A single on-premise gateway with two public IP
9873	// addresses that are redundant with eatch other.
9874	RedundancyType string `json:"redundancyType,omitempty"`
9875
9876	// SelfLink: [Output Only] Server-defined URL for the resource.
9877	SelfLink string `json:"selfLink,omitempty"`
9878
9879	// ServerResponse contains the HTTP response code and headers from the
9880	// server.
9881	googleapi.ServerResponse `json:"-"`
9882
9883	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9884	// to unconditionally include in API requests. By default, fields with
9885	// empty or default values are omitted from API requests. However, any
9886	// non-pointer, non-interface field appearing in ForceSendFields will be
9887	// sent to the server regardless of whether the field is empty or not.
9888	// This may be used to include empty fields in Patch requests.
9889	ForceSendFields []string `json:"-"`
9890
9891	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9892	// include in API requests with the JSON null value. By default, fields
9893	// with empty values are omitted from API requests. However, any field
9894	// with an empty value appearing in NullFields will be sent to the
9895	// server as null. It is an error if a field in this list has a
9896	// non-empty value. This may be used to include null fields in Patch
9897	// requests.
9898	NullFields []string `json:"-"`
9899}
9900
9901func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9902	type NoMethod ExternalVpnGateway
9903	raw := NoMethod(*s)
9904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9905}
9906
9907// ExternalVpnGatewayInterface: The interface for the external VPN
9908// gateway.
9909type ExternalVpnGatewayInterface struct {
9910	// Id: The numeric ID of this interface. The allowed input values for
9911	// this id for different redundancy types of external VPN gateway: -
9912	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 -
9913	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9914	Id int64 `json:"id,omitempty"`
9915
9916	// IpAddress: IP address of the interface in the external VPN gateway.
9917	// Only IPv4 is supported. This IP address can be either from your
9918	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9919	// be an IP address from Google Compute Engine.
9920	IpAddress string `json:"ipAddress,omitempty"`
9921
9922	// ForceSendFields is a list of field names (e.g. "Id") to
9923	// unconditionally include in API requests. By default, fields with
9924	// empty or default values are omitted from API requests. However, any
9925	// non-pointer, non-interface field appearing in ForceSendFields will be
9926	// sent to the server regardless of whether the field is empty or not.
9927	// This may be used to include empty fields in Patch requests.
9928	ForceSendFields []string `json:"-"`
9929
9930	// NullFields is a list of field names (e.g. "Id") to include in API
9931	// requests with the JSON null value. By default, fields with empty
9932	// values are omitted from API requests. However, any field with an
9933	// empty value appearing in NullFields will be sent to the server as
9934	// null. It is an error if a field in this list has a non-empty value.
9935	// This may be used to include null fields in Patch requests.
9936	NullFields []string `json:"-"`
9937}
9938
9939func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9940	type NoMethod ExternalVpnGatewayInterface
9941	raw := NoMethod(*s)
9942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9943}
9944
9945// ExternalVpnGatewayList: Response to the list request, and contains a
9946// list of externalVpnGateways.
9947type ExternalVpnGatewayList struct {
9948	Etag string `json:"etag,omitempty"`
9949
9950	// Id: [Output Only] Unique identifier for the resource; defined by the
9951	// server.
9952	Id string `json:"id,omitempty"`
9953
9954	// Items: A list of ExternalVpnGateway resources.
9955	Items []*ExternalVpnGateway `json:"items,omitempty"`
9956
9957	// Kind: [Output Only] Type of resource. Always
9958	// compute#externalVpnGatewayList for lists of externalVpnGateways.
9959	Kind string `json:"kind,omitempty"`
9960
9961	// NextPageToken: [Output Only] This token allows you to get the next
9962	// page of results for list requests. If the number of results is larger
9963	// than maxResults, use the nextPageToken as a value for the query
9964	// parameter pageToken in the next list request. Subsequent list
9965	// requests will have their own nextPageToken to continue paging through
9966	// the results.
9967	NextPageToken string `json:"nextPageToken,omitempty"`
9968
9969	// SelfLink: [Output Only] Server-defined URL for this resource.
9970	SelfLink string `json:"selfLink,omitempty"`
9971
9972	// Warning: [Output Only] Informational warning message.
9973	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9974
9975	// ServerResponse contains the HTTP response code and headers from the
9976	// server.
9977	googleapi.ServerResponse `json:"-"`
9978
9979	// ForceSendFields is a list of field names (e.g. "Etag") to
9980	// unconditionally include in API requests. By default, fields with
9981	// empty or default values are omitted from API requests. However, any
9982	// non-pointer, non-interface field appearing in ForceSendFields will be
9983	// sent to the server regardless of whether the field is empty or not.
9984	// This may be used to include empty fields in Patch requests.
9985	ForceSendFields []string `json:"-"`
9986
9987	// NullFields is a list of field names (e.g. "Etag") to include in API
9988	// requests with the JSON null value. By default, fields with empty
9989	// values are omitted from API requests. However, any field with an
9990	// empty value appearing in NullFields will be sent to the server as
9991	// null. It is an error if a field in this list has a non-empty value.
9992	// This may be used to include null fields in Patch requests.
9993	NullFields []string `json:"-"`
9994}
9995
9996func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9997	type NoMethod ExternalVpnGatewayList
9998	raw := NoMethod(*s)
9999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10000}
10001
10002// ExternalVpnGatewayListWarning: [Output Only] Informational warning
10003// message.
10004type ExternalVpnGatewayListWarning struct {
10005	// Code: [Output Only] A warning code, if applicable. For example,
10006	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10007	// the response.
10008	//
10009	// Possible values:
10010	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10011	// changes made by a failed operation.
10012	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10013	// created.
10014	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10015	// resources has a type marked as deprecated
10016	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10017	// that is larger than image size.
10018	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10019	// resources has a type marked as experimental
10020	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10021	// call
10022	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10023	// overridden. Deprecated unused field.
10024	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10025	// injected kernel, which is deprecated.
10026	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10027	// exceedingly large number of resources
10028	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10029	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10030	// not assigned to an instance on the network.
10031	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10032	// ip forward.
10033	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10034	// refers to an instance that does not exist.
10035	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10036	// URL refers to an instance that is not on the same network as the
10037	// route.
10038	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10039	// have a status of RUNNING.
10040	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10041	// continue the process despite the mentioned error.
10042	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10043	// page.
10044	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10045	// missing due to errors
10046	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10047	// that requires a TOS they have not accepted.
10048	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10049	// resource is in use.
10050	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10051	// auto-delete could not be deleted because they were in use.
10052	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10053	// ignored.
10054	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10055	// instance group manager is valid as such, but its application does not
10056	// make a lot of sense, because it allows only single instance in
10057	// instance group.
10058	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10059	// are present
10060	//   "UNREACHABLE" - A given scope cannot be reached.
10061	Code string `json:"code,omitempty"`
10062
10063	// Data: [Output Only] Metadata about this warning in key: value format.
10064	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10065	// }
10066	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
10067
10068	// Message: [Output Only] A human-readable description of the warning
10069	// code.
10070	Message string `json:"message,omitempty"`
10071
10072	// ForceSendFields is a list of field names (e.g. "Code") to
10073	// unconditionally include in API requests. By default, fields with
10074	// empty or default values are omitted from API requests. However, any
10075	// non-pointer, non-interface field appearing in ForceSendFields will be
10076	// sent to the server regardless of whether the field is empty or not.
10077	// This may be used to include empty fields in Patch requests.
10078	ForceSendFields []string `json:"-"`
10079
10080	// NullFields is a list of field names (e.g. "Code") to include in API
10081	// requests with the JSON null value. By default, fields with empty
10082	// values are omitted from API requests. However, any field with an
10083	// empty value appearing in NullFields will be sent to the server as
10084	// null. It is an error if a field in this list has a non-empty value.
10085	// This may be used to include null fields in Patch requests.
10086	NullFields []string `json:"-"`
10087}
10088
10089func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
10090	type NoMethod ExternalVpnGatewayListWarning
10091	raw := NoMethod(*s)
10092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10093}
10094
10095type ExternalVpnGatewayListWarningData struct {
10096	// Key: [Output Only] A key that provides more detail on the warning
10097	// being returned. For example, for warnings where there are no results
10098	// in a list request for a particular zone, this key might be scope and
10099	// the key value might be the zone name. Other examples might be a key
10100	// indicating a deprecated resource and a suggested replacement, or a
10101	// warning about invalid network settings (for example, if an instance
10102	// attempts to perform IP forwarding but is not enabled for IP
10103	// forwarding).
10104	Key string `json:"key,omitempty"`
10105
10106	// Value: [Output Only] A warning data value corresponding to the key.
10107	Value string `json:"value,omitempty"`
10108
10109	// ForceSendFields is a list of field names (e.g. "Key") to
10110	// unconditionally include in API requests. By default, fields with
10111	// empty or default values are omitted from API requests. However, any
10112	// non-pointer, non-interface field appearing in ForceSendFields will be
10113	// sent to the server regardless of whether the field is empty or not.
10114	// This may be used to include empty fields in Patch requests.
10115	ForceSendFields []string `json:"-"`
10116
10117	// NullFields is a list of field names (e.g. "Key") to include in API
10118	// requests with the JSON null value. By default, fields with empty
10119	// values are omitted from API requests. However, any field with an
10120	// empty value appearing in NullFields will be sent to the server as
10121	// null. It is an error if a field in this list has a non-empty value.
10122	// This may be used to include null fields in Patch requests.
10123	NullFields []string `json:"-"`
10124}
10125
10126func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
10127	type NoMethod ExternalVpnGatewayListWarningData
10128	raw := NoMethod(*s)
10129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10130}
10131
10132type FileContentBuffer struct {
10133	// Content: The raw content in the secure keys file.
10134	Content string `json:"content,omitempty"`
10135
10136	// FileType: The file type of source file.
10137	//
10138	// Possible values:
10139	//   "BIN"
10140	//   "UNDEFINED"
10141	//   "X509"
10142	FileType string `json:"fileType,omitempty"`
10143
10144	// ForceSendFields is a list of field names (e.g. "Content") to
10145	// unconditionally include in API requests. By default, fields with
10146	// empty or default values are omitted from API requests. However, any
10147	// non-pointer, non-interface field appearing in ForceSendFields will be
10148	// sent to the server regardless of whether the field is empty or not.
10149	// This may be used to include empty fields in Patch requests.
10150	ForceSendFields []string `json:"-"`
10151
10152	// NullFields is a list of field names (e.g. "Content") to include in
10153	// API requests with the JSON null value. By default, fields with empty
10154	// values are omitted from API requests. However, any field with an
10155	// empty value appearing in NullFields will be sent to the server as
10156	// null. It is an error if a field in this list has a non-empty value.
10157	// This may be used to include null fields in Patch requests.
10158	NullFields []string `json:"-"`
10159}
10160
10161func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
10162	type NoMethod FileContentBuffer
10163	raw := NoMethod(*s)
10164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10165}
10166
10167// Firewall: Represents a Firewall Rule resource. Firewall rules allow
10168// or deny ingress traffic to, and egress traffic from your instances.
10169// For more information, read Firewall rules.
10170type Firewall struct {
10171	// Allowed: The list of ALLOW rules specified by this firewall. Each
10172	// rule specifies a protocol and port-range tuple that describes a
10173	// permitted connection.
10174	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
10175
10176	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10177	// format.
10178	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10179
10180	// Denied: The list of DENY rules specified by this firewall. Each rule
10181	// specifies a protocol and port-range tuple that describes a denied
10182	// connection.
10183	Denied []*FirewallDenied `json:"denied,omitempty"`
10184
10185	// Description: An optional description of this resource. Provide this
10186	// field when you create the resource.
10187	Description string `json:"description,omitempty"`
10188
10189	// DestinationRanges: If destination ranges are specified, the firewall
10190	// rule applies only to traffic that has destination IP address in these
10191	// ranges. These ranges must be expressed in CIDR format. Both IPv4 and
10192	// IPv6 are supported.
10193	DestinationRanges []string `json:"destinationRanges,omitempty"`
10194
10195	// Direction: Direction of traffic to which this firewall applies,
10196	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
10197	// traffic, you cannot specify the destinationRanges field, and for
10198	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
10199	// fields.
10200	//
10201	// Possible values:
10202	//   "EGRESS" - Indicates that firewall should apply to outgoing
10203	// traffic.
10204	//   "INGRESS" - Indicates that firewall should apply to incoming
10205	// traffic.
10206	Direction string `json:"direction,omitempty"`
10207
10208	// Disabled: Denotes whether the firewall rule is disabled. When set to
10209	// true, the firewall rule is not enforced and the network behaves as if
10210	// it did not exist. If this is unspecified, the firewall rule will be
10211	// enabled.
10212	Disabled bool `json:"disabled,omitempty"`
10213
10214	// Id: [Output Only] The unique identifier for the resource. This
10215	// identifier is defined by the server.
10216	Id uint64 `json:"id,omitempty,string"`
10217
10218	// Kind: [Output Only] Type of the resource. Always compute#firewall for
10219	// firewall rules.
10220	Kind string `json:"kind,omitempty"`
10221
10222	// LogConfig: This field denotes the logging options for a particular
10223	// firewall rule. If logging is enabled, logs will be exported to Cloud
10224	// Logging.
10225	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
10226
10227	// Name: Name of the resource; provided by the client when the resource
10228	// is created. The name must be 1-63 characters long, and comply with
10229	// RFC1035. Specifically, the name must be 1-63 characters long and
10230	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
10231	// character must be a lowercase letter, and all following characters
10232	// (except for the last character) must be a dash, lowercase letter, or
10233	// digit. The last character must be a lowercase letter or digit.
10234	Name string `json:"name,omitempty"`
10235
10236	// Network: URL of the network resource for this firewall rule. If not
10237	// specified when creating a firewall rule, the default network is used:
10238	// global/networks/default If you choose to specify this field, you can
10239	// specify the network as a full or partial URL. For example, the
10240	// following are all valid URLs: -
10241	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
10242	// - projects/myproject/global/networks/my-network -
10243	// global/networks/default
10244	Network string `json:"network,omitempty"`
10245
10246	// Priority: Priority for this rule. This is an integer between `0` and
10247	// `65535`, both inclusive. The default value is `1000`. Relative
10248	// priorities determine which rule takes effect if multiple rules apply.
10249	// Lower values indicate higher priority. For example, a rule with
10250	// priority `0` has higher precedence than a rule with priority `1`.
10251	// DENY rules take precedence over ALLOW rules if they have equal
10252	// priority. Note that VPC networks have implied rules with a priority
10253	// of `65535`. To avoid conflicts with the implied rules, use a priority
10254	// number less than `65535`.
10255	Priority int64 `json:"priority,omitempty"`
10256
10257	// SelfLink: [Output Only] Server-defined URL for the resource.
10258	SelfLink string `json:"selfLink,omitempty"`
10259
10260	// SourceRanges: If source ranges are specified, the firewall rule
10261	// applies only to traffic that has a source IP address in these ranges.
10262	// These ranges must be expressed in CIDR format. One or both of
10263	// sourceRanges and sourceTags may be set. If both fields are set, the
10264	// rule applies to traffic that has a source IP address within
10265	// sourceRanges OR a source IP from a resource with a matching tag
10266	// listed in the sourceTags field. The connection does not need to match
10267	// both fields for the rule to apply. Both IPv4 and IPv6 are supported.
10268	SourceRanges []string `json:"sourceRanges,omitempty"`
10269
10270	// SourceServiceAccounts: If source service accounts are specified, the
10271	// firewall rules apply only to traffic originating from an instance
10272	// with a service account in this list. Source service accounts cannot
10273	// be used to control traffic to an instance's external IP address
10274	// because service accounts are associated with an instance, not an IP
10275	// address. sourceRanges can be set at the same time as
10276	// sourceServiceAccounts. If both are set, the firewall applies to
10277	// traffic that has a source IP address within the sourceRanges OR a
10278	// source IP that belongs to an instance with service account listed in
10279	// sourceServiceAccount. The connection does not need to match both
10280	// fields for the firewall to apply. sourceServiceAccounts cannot be
10281	// used at the same time as sourceTags or targetTags.
10282	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
10283
10284	// SourceTags: If source tags are specified, the firewall rule applies
10285	// only to traffic with source IPs that match the primary network
10286	// interfaces of VM instances that have the tag and are in the same VPC
10287	// network. Source tags cannot be used to control traffic to an
10288	// instance's external IP address, it only applies to traffic between
10289	// instances in the same virtual network. Because tags are associated
10290	// with instances, not IP addresses. One or both of sourceRanges and
10291	// sourceTags may be set. If both fields are set, the firewall applies
10292	// to traffic that has a source IP address within sourceRanges OR a
10293	// source IP from a resource with a matching tag listed in the
10294	// sourceTags field. The connection does not need to match both fields
10295	// for the firewall to apply.
10296	SourceTags []string `json:"sourceTags,omitempty"`
10297
10298	// TargetServiceAccounts: A list of service accounts indicating sets of
10299	// instances located in the network that may make network connections as
10300	// specified in allowed[]. targetServiceAccounts cannot be used at the
10301	// same time as targetTags or sourceTags. If neither
10302	// targetServiceAccounts nor targetTags are specified, the firewall rule
10303	// applies to all instances on the specified network.
10304	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10305
10306	// TargetTags: A list of tags that controls which instances the firewall
10307	// rule applies to. If targetTags are specified, then the firewall rule
10308	// applies only to instances in the VPC network that have one of those
10309	// tags. If no targetTags are specified, the firewall rule applies to
10310	// all instances on the specified network.
10311	TargetTags []string `json:"targetTags,omitempty"`
10312
10313	// ServerResponse contains the HTTP response code and headers from the
10314	// server.
10315	googleapi.ServerResponse `json:"-"`
10316
10317	// ForceSendFields is a list of field names (e.g. "Allowed") to
10318	// unconditionally include in API requests. By default, fields with
10319	// empty or default values are omitted from API requests. However, any
10320	// non-pointer, non-interface field appearing in ForceSendFields will be
10321	// sent to the server regardless of whether the field is empty or not.
10322	// This may be used to include empty fields in Patch requests.
10323	ForceSendFields []string `json:"-"`
10324
10325	// NullFields is a list of field names (e.g. "Allowed") to include in
10326	// API requests with the JSON null value. By default, fields with empty
10327	// values are omitted from API requests. However, any field with an
10328	// empty value appearing in NullFields will be sent to the server as
10329	// null. It is an error if a field in this list has a non-empty value.
10330	// This may be used to include null fields in Patch requests.
10331	NullFields []string `json:"-"`
10332}
10333
10334func (s *Firewall) MarshalJSON() ([]byte, error) {
10335	type NoMethod Firewall
10336	raw := NoMethod(*s)
10337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10338}
10339
10340type FirewallAllowed struct {
10341	// IPProtocol: The IP protocol to which this rule applies. The protocol
10342	// type is required when creating a firewall rule. This value can either
10343	// be one of the following well known protocol strings (tcp, udp, icmp,
10344	// esp, ah, ipip, sctp) or the IP protocol number.
10345	IPProtocol string `json:"IPProtocol,omitempty"`
10346
10347	// Ports: An optional list of ports to which this rule applies. This
10348	// field is only applicable for the UDP or TCP protocol. Each entry must
10349	// be either an integer or a range. If not specified, this rule applies
10350	// to connections through any port. Example inputs include: ["22"],
10351	// ["80","443"], and ["12345-12349"].
10352	Ports []string `json:"ports,omitempty"`
10353
10354	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10355	// unconditionally include in API requests. By default, fields with
10356	// empty or default values are omitted from API requests. However, any
10357	// non-pointer, non-interface field appearing in ForceSendFields will be
10358	// sent to the server regardless of whether the field is empty or not.
10359	// This may be used to include empty fields in Patch requests.
10360	ForceSendFields []string `json:"-"`
10361
10362	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10363	// API requests with the JSON null value. By default, fields with empty
10364	// values are omitted from API requests. However, any field with an
10365	// empty value appearing in NullFields will be sent to the server as
10366	// null. It is an error if a field in this list has a non-empty value.
10367	// This may be used to include null fields in Patch requests.
10368	NullFields []string `json:"-"`
10369}
10370
10371func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
10372	type NoMethod FirewallAllowed
10373	raw := NoMethod(*s)
10374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10375}
10376
10377type FirewallDenied struct {
10378	// IPProtocol: The IP protocol to which this rule applies. The protocol
10379	// type is required when creating a firewall rule. This value can either
10380	// be one of the following well known protocol strings (tcp, udp, icmp,
10381	// esp, ah, ipip, sctp) or the IP protocol number.
10382	IPProtocol string `json:"IPProtocol,omitempty"`
10383
10384	// Ports: An optional list of ports to which this rule applies. This
10385	// field is only applicable for the UDP or TCP protocol. Each entry must
10386	// be either an integer or a range. If not specified, this rule applies
10387	// to connections through any port. Example inputs include: ["22"],
10388	// ["80","443"], and ["12345-12349"].
10389	Ports []string `json:"ports,omitempty"`
10390
10391	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10392	// unconditionally include in API requests. By default, fields with
10393	// empty or default values are omitted from API requests. However, any
10394	// non-pointer, non-interface field appearing in ForceSendFields will be
10395	// sent to the server regardless of whether the field is empty or not.
10396	// This may be used to include empty fields in Patch requests.
10397	ForceSendFields []string `json:"-"`
10398
10399	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10400	// API requests with the JSON null value. By default, fields with empty
10401	// values are omitted from API requests. However, any field with an
10402	// empty value appearing in NullFields will be sent to the server as
10403	// null. It is an error if a field in this list has a non-empty value.
10404	// This may be used to include null fields in Patch requests.
10405	NullFields []string `json:"-"`
10406}
10407
10408func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
10409	type NoMethod FirewallDenied
10410	raw := NoMethod(*s)
10411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10412}
10413
10414// FirewallList: Contains a list of firewalls.
10415type FirewallList struct {
10416	// Id: [Output Only] Unique identifier for the resource; defined by the
10417	// server.
10418	Id string `json:"id,omitempty"`
10419
10420	// Items: A list of Firewall resources.
10421	Items []*Firewall `json:"items,omitempty"`
10422
10423	// Kind: [Output Only] Type of resource. Always compute#firewallList for
10424	// lists of firewalls.
10425	Kind string `json:"kind,omitempty"`
10426
10427	// NextPageToken: [Output Only] This token allows you to get the next
10428	// page of results for list requests. If the number of results is larger
10429	// than maxResults, use the nextPageToken as a value for the query
10430	// parameter pageToken in the next list request. Subsequent list
10431	// requests will have their own nextPageToken to continue paging through
10432	// the results.
10433	NextPageToken string `json:"nextPageToken,omitempty"`
10434
10435	// SelfLink: [Output Only] Server-defined URL for this resource.
10436	SelfLink string `json:"selfLink,omitempty"`
10437
10438	// Warning: [Output Only] Informational warning message.
10439	Warning *FirewallListWarning `json:"warning,omitempty"`
10440
10441	// ServerResponse contains the HTTP response code and headers from the
10442	// server.
10443	googleapi.ServerResponse `json:"-"`
10444
10445	// ForceSendFields is a list of field names (e.g. "Id") to
10446	// unconditionally include in API requests. By default, fields with
10447	// empty or default values are omitted from API requests. However, any
10448	// non-pointer, non-interface field appearing in ForceSendFields will be
10449	// sent to the server regardless of whether the field is empty or not.
10450	// This may be used to include empty fields in Patch requests.
10451	ForceSendFields []string `json:"-"`
10452
10453	// NullFields is a list of field names (e.g. "Id") to include in API
10454	// requests with the JSON null value. By default, fields with empty
10455	// values are omitted from API requests. However, any field with an
10456	// empty value appearing in NullFields will be sent to the server as
10457	// null. It is an error if a field in this list has a non-empty value.
10458	// This may be used to include null fields in Patch requests.
10459	NullFields []string `json:"-"`
10460}
10461
10462func (s *FirewallList) MarshalJSON() ([]byte, error) {
10463	type NoMethod FirewallList
10464	raw := NoMethod(*s)
10465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10466}
10467
10468// FirewallListWarning: [Output Only] Informational warning message.
10469type FirewallListWarning struct {
10470	// Code: [Output Only] A warning code, if applicable. For example,
10471	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10472	// the response.
10473	//
10474	// Possible values:
10475	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10476	// changes made by a failed operation.
10477	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10478	// created.
10479	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10480	// resources has a type marked as deprecated
10481	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10482	// that is larger than image size.
10483	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10484	// resources has a type marked as experimental
10485	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10486	// call
10487	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10488	// overridden. Deprecated unused field.
10489	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10490	// injected kernel, which is deprecated.
10491	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10492	// exceedingly large number of resources
10493	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10494	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10495	// not assigned to an instance on the network.
10496	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10497	// ip forward.
10498	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10499	// refers to an instance that does not exist.
10500	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10501	// URL refers to an instance that is not on the same network as the
10502	// route.
10503	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10504	// have a status of RUNNING.
10505	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10506	// continue the process despite the mentioned error.
10507	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10508	// page.
10509	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10510	// missing due to errors
10511	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10512	// that requires a TOS they have not accepted.
10513	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10514	// resource is in use.
10515	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10516	// auto-delete could not be deleted because they were in use.
10517	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10518	// ignored.
10519	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10520	// instance group manager is valid as such, but its application does not
10521	// make a lot of sense, because it allows only single instance in
10522	// instance group.
10523	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10524	// are present
10525	//   "UNREACHABLE" - A given scope cannot be reached.
10526	Code string `json:"code,omitempty"`
10527
10528	// Data: [Output Only] Metadata about this warning in key: value format.
10529	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10530	// }
10531	Data []*FirewallListWarningData `json:"data,omitempty"`
10532
10533	// Message: [Output Only] A human-readable description of the warning
10534	// code.
10535	Message string `json:"message,omitempty"`
10536
10537	// ForceSendFields is a list of field names (e.g. "Code") to
10538	// unconditionally include in API requests. By default, fields with
10539	// empty or default values are omitted from API requests. However, any
10540	// non-pointer, non-interface field appearing in ForceSendFields will be
10541	// sent to the server regardless of whether the field is empty or not.
10542	// This may be used to include empty fields in Patch requests.
10543	ForceSendFields []string `json:"-"`
10544
10545	// NullFields is a list of field names (e.g. "Code") to include in API
10546	// requests with the JSON null value. By default, fields with empty
10547	// values are omitted from API requests. However, any field with an
10548	// empty value appearing in NullFields will be sent to the server as
10549	// null. It is an error if a field in this list has a non-empty value.
10550	// This may be used to include null fields in Patch requests.
10551	NullFields []string `json:"-"`
10552}
10553
10554func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
10555	type NoMethod FirewallListWarning
10556	raw := NoMethod(*s)
10557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10558}
10559
10560type FirewallListWarningData struct {
10561	// Key: [Output Only] A key that provides more detail on the warning
10562	// being returned. For example, for warnings where there are no results
10563	// in a list request for a particular zone, this key might be scope and
10564	// the key value might be the zone name. Other examples might be a key
10565	// indicating a deprecated resource and a suggested replacement, or a
10566	// warning about invalid network settings (for example, if an instance
10567	// attempts to perform IP forwarding but is not enabled for IP
10568	// forwarding).
10569	Key string `json:"key,omitempty"`
10570
10571	// Value: [Output Only] A warning data value corresponding to the key.
10572	Value string `json:"value,omitempty"`
10573
10574	// ForceSendFields is a list of field names (e.g. "Key") to
10575	// unconditionally include in API requests. By default, fields with
10576	// empty or default values are omitted from API requests. However, any
10577	// non-pointer, non-interface field appearing in ForceSendFields will be
10578	// sent to the server regardless of whether the field is empty or not.
10579	// This may be used to include empty fields in Patch requests.
10580	ForceSendFields []string `json:"-"`
10581
10582	// NullFields is a list of field names (e.g. "Key") to include in API
10583	// requests with the JSON null value. By default, fields with empty
10584	// values are omitted from API requests. However, any field with an
10585	// empty value appearing in NullFields will be sent to the server as
10586	// null. It is an error if a field in this list has a non-empty value.
10587	// This may be used to include null fields in Patch requests.
10588	NullFields []string `json:"-"`
10589}
10590
10591func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10592	type NoMethod FirewallListWarningData
10593	raw := NoMethod(*s)
10594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10595}
10596
10597// FirewallLogConfig: The available logging options for a firewall rule.
10598type FirewallLogConfig struct {
10599	// Enable: This field denotes whether to enable logging for a particular
10600	// firewall rule.
10601	Enable bool `json:"enable,omitempty"`
10602
10603	// Metadata: This field can only be specified for a particular firewall
10604	// rule if logging is enabled for that rule. This field denotes whether
10605	// to include or exclude metadata for firewall logs.
10606	//
10607	// Possible values:
10608	//   "EXCLUDE_ALL_METADATA"
10609	//   "INCLUDE_ALL_METADATA"
10610	Metadata string `json:"metadata,omitempty"`
10611
10612	// ForceSendFields is a list of field names (e.g. "Enable") to
10613	// unconditionally include in API requests. By default, fields with
10614	// empty or default values are omitted from API requests. However, any
10615	// non-pointer, non-interface field appearing in ForceSendFields will be
10616	// sent to the server regardless of whether the field is empty or not.
10617	// This may be used to include empty fields in Patch requests.
10618	ForceSendFields []string `json:"-"`
10619
10620	// NullFields is a list of field names (e.g. "Enable") to include in API
10621	// requests with the JSON null value. By default, fields with empty
10622	// values are omitted from API requests. However, any field with an
10623	// empty value appearing in NullFields will be sent to the server as
10624	// null. It is an error if a field in this list has a non-empty value.
10625	// This may be used to include null fields in Patch requests.
10626	NullFields []string `json:"-"`
10627}
10628
10629func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10630	type NoMethod FirewallLogConfig
10631	raw := NoMethod(*s)
10632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10633}
10634
10635type FirewallPoliciesListAssociationsResponse struct {
10636	// Associations: A list of associations.
10637	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10638
10639	// Kind: [Output Only] Type of firewallPolicy associations. Always
10640	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
10641	// associations.
10642	Kind string `json:"kind,omitempty"`
10643
10644	// ServerResponse contains the HTTP response code and headers from the
10645	// server.
10646	googleapi.ServerResponse `json:"-"`
10647
10648	// ForceSendFields is a list of field names (e.g. "Associations") to
10649	// unconditionally include in API requests. By default, fields with
10650	// empty or default values are omitted from API requests. However, any
10651	// non-pointer, non-interface field appearing in ForceSendFields will be
10652	// sent to the server regardless of whether the field is empty or not.
10653	// This may be used to include empty fields in Patch requests.
10654	ForceSendFields []string `json:"-"`
10655
10656	// NullFields is a list of field names (e.g. "Associations") to include
10657	// in API requests with the JSON null value. By default, fields with
10658	// empty values are omitted from API requests. However, any field with
10659	// an empty value appearing in NullFields will be sent to the server as
10660	// null. It is an error if a field in this list has a non-empty value.
10661	// This may be used to include null fields in Patch requests.
10662	NullFields []string `json:"-"`
10663}
10664
10665func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
10666	type NoMethod FirewallPoliciesListAssociationsResponse
10667	raw := NoMethod(*s)
10668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10669}
10670
10671// FirewallPolicy: Represents a Firewall Policy resource.
10672type FirewallPolicy struct {
10673	// Associations: A list of associations that belong to this firewall
10674	// policy.
10675	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10676
10677	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10678	// format.
10679	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10680
10681	// Description: An optional description of this resource. Provide this
10682	// property when you create the resource.
10683	Description string `json:"description,omitempty"`
10684
10685	// DisplayName: Deprecated, please use short name instead. User-provided
10686	// name of the Organization firewall plicy. The name should be unique in
10687	// the organization in which the firewall policy is created. This name
10688	// must be set on creation and cannot be changed. The name must be 1-63
10689	// characters long, and comply with RFC1035. Specifically, the name must
10690	// be 1-63 characters long and match the regular expression
10691	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10692	// a lowercase letter, and all following characters must be a dash,
10693	// lowercase letter, or digit, except the last character, which cannot
10694	// be a dash.
10695	DisplayName string `json:"displayName,omitempty"`
10696
10697	// Fingerprint: Specifies a fingerprint for this resource, which is
10698	// essentially a hash of the metadata's contents and used for optimistic
10699	// locking. The fingerprint is initially generated by Compute Engine and
10700	// changes after every request to modify or update metadata. You must
10701	// always provide an up-to-date fingerprint hash in order to update or
10702	// change metadata, otherwise the request will fail with error 412
10703	// conditionNotMet. To see the latest fingerprint, make get() request to
10704	// the firewall policy.
10705	Fingerprint string `json:"fingerprint,omitempty"`
10706
10707	// Id: [Output Only] The unique identifier for the resource. This
10708	// identifier is defined by the server.
10709	Id uint64 `json:"id,omitempty,string"`
10710
10711	// Kind: [Output only] Type of the resource. Always
10712	// compute#firewallPolicyfor firewall policies
10713	Kind string `json:"kind,omitempty"`
10714
10715	// Name: [Output Only] Name of the resource. It is a numeric ID
10716	// allocated by GCP which uniquely identifies the Firewall Policy.
10717	Name string `json:"name,omitempty"`
10718
10719	// Parent: [Output Only] The parent of the firewall policy.
10720	Parent string `json:"parent,omitempty"`
10721
10722	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
10723	// tuples. A firewall policy can not exceed a set number of tuples.
10724	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10725
10726	// Rules: A list of rules that belong to this policy. There must always
10727	// be a default rule (rule with priority 2147483647 and match "*"). If
10728	// no rules are provided when creating a firewall policy, a default rule
10729	// with action "allow" will be added.
10730	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
10731
10732	// SelfLink: [Output Only] Server-defined URL for the resource.
10733	SelfLink string `json:"selfLink,omitempty"`
10734
10735	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10736	// with the resource id.
10737	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10738
10739	// ShortName: User-provided name of the Organization firewall plicy. The
10740	// name should be unique in the organization in which the firewall
10741	// policy is created. This name must be set on creation and cannot be
10742	// changed. The name must be 1-63 characters long, and comply with
10743	// RFC1035. Specifically, the name must be 1-63 characters long and
10744	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10745	// the first character must be a lowercase letter, and all following
10746	// characters must be a dash, lowercase letter, or digit, except the
10747	// last character, which cannot be a dash.
10748	ShortName string `json:"shortName,omitempty"`
10749
10750	// ServerResponse contains the HTTP response code and headers from the
10751	// server.
10752	googleapi.ServerResponse `json:"-"`
10753
10754	// ForceSendFields is a list of field names (e.g. "Associations") to
10755	// unconditionally include in API requests. By default, fields with
10756	// empty or default values are omitted from API requests. However, any
10757	// non-pointer, non-interface field appearing in ForceSendFields will be
10758	// sent to the server regardless of whether the field is empty or not.
10759	// This may be used to include empty fields in Patch requests.
10760	ForceSendFields []string `json:"-"`
10761
10762	// NullFields is a list of field names (e.g. "Associations") to include
10763	// in API requests with the JSON null value. By default, fields with
10764	// empty values are omitted from API requests. However, any field with
10765	// an empty value appearing in NullFields will be sent to the server as
10766	// null. It is an error if a field in this list has a non-empty value.
10767	// This may be used to include null fields in Patch requests.
10768	NullFields []string `json:"-"`
10769}
10770
10771func (s *FirewallPolicy) MarshalJSON() ([]byte, error) {
10772	type NoMethod FirewallPolicy
10773	raw := NoMethod(*s)
10774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10775}
10776
10777type FirewallPolicyAssociation struct {
10778	// AttachmentTarget: The target that the firewall policy is attached to.
10779	AttachmentTarget string `json:"attachmentTarget,omitempty"`
10780
10781	// DisplayName: [Output Only] Deprecated, please use short name instead.
10782	// The display name of the firewall policy of the association.
10783	DisplayName string `json:"displayName,omitempty"`
10784
10785	// FirewallPolicyId: [Output Only] The firewall policy ID of the
10786	// association.
10787	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
10788
10789	// Name: The name for an association.
10790	Name string `json:"name,omitempty"`
10791
10792	// ShortName: [Output Only] The short name of the firewall policy of the
10793	// association.
10794	ShortName string `json:"shortName,omitempty"`
10795
10796	// ServerResponse contains the HTTP response code and headers from the
10797	// server.
10798	googleapi.ServerResponse `json:"-"`
10799
10800	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
10801	// unconditionally include in API requests. By default, fields with
10802	// empty or default values are omitted from API requests. However, any
10803	// non-pointer, non-interface field appearing in ForceSendFields will be
10804	// sent to the server regardless of whether the field is empty or not.
10805	// This may be used to include empty fields in Patch requests.
10806	ForceSendFields []string `json:"-"`
10807
10808	// NullFields is a list of field names (e.g. "AttachmentTarget") to
10809	// include in API requests with the JSON null value. By default, fields
10810	// with empty values are omitted from API requests. However, any field
10811	// with an empty value appearing in NullFields will be sent to the
10812	// server as null. It is an error if a field in this list has a
10813	// non-empty value. This may be used to include null fields in Patch
10814	// requests.
10815	NullFields []string `json:"-"`
10816}
10817
10818func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
10819	type NoMethod FirewallPolicyAssociation
10820	raw := NoMethod(*s)
10821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10822}
10823
10824type FirewallPolicyList struct {
10825	// Id: [Output Only] Unique identifier for the resource; defined by the
10826	// server.
10827	Id string `json:"id,omitempty"`
10828
10829	// Items: A list of FirewallPolicy resources.
10830	Items []*FirewallPolicy `json:"items,omitempty"`
10831
10832	// Kind: [Output Only] Type of resource. Always
10833	// compute#firewallPolicyList for listsof FirewallPolicies
10834	Kind string `json:"kind,omitempty"`
10835
10836	// NextPageToken: [Output Only] This token allows you to get the next
10837	// page of results for list requests. If the number of results is larger
10838	// than maxResults, use the nextPageToken as a value for the query
10839	// parameter pageToken in the next list request. Subsequent list
10840	// requests will have their own nextPageToken to continue paging through
10841	// the results.
10842	NextPageToken string `json:"nextPageToken,omitempty"`
10843
10844	// Warning: [Output Only] Informational warning message.
10845	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`
10846
10847	// ServerResponse contains the HTTP response code and headers from the
10848	// server.
10849	googleapi.ServerResponse `json:"-"`
10850
10851	// ForceSendFields is a list of field names (e.g. "Id") to
10852	// unconditionally include in API requests. By default, fields with
10853	// empty or default values are omitted from API requests. However, any
10854	// non-pointer, non-interface field appearing in ForceSendFields will be
10855	// sent to the server regardless of whether the field is empty or not.
10856	// This may be used to include empty fields in Patch requests.
10857	ForceSendFields []string `json:"-"`
10858
10859	// NullFields is a list of field names (e.g. "Id") to include in API
10860	// requests with the JSON null value. By default, fields with empty
10861	// values are omitted from API requests. However, any field with an
10862	// empty value appearing in NullFields will be sent to the server as
10863	// null. It is an error if a field in this list has a non-empty value.
10864	// This may be used to include null fields in Patch requests.
10865	NullFields []string `json:"-"`
10866}
10867
10868func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) {
10869	type NoMethod FirewallPolicyList
10870	raw := NoMethod(*s)
10871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10872}
10873
10874// FirewallPolicyListWarning: [Output Only] Informational warning
10875// message.
10876type FirewallPolicyListWarning struct {
10877	// Code: [Output Only] A warning code, if applicable. For example,
10878	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10879	// the response.
10880	//
10881	// Possible values:
10882	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10883	// changes made by a failed operation.
10884	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10885	// created.
10886	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10887	// resources has a type marked as deprecated
10888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10889	// that is larger than image size.
10890	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10891	// resources has a type marked as experimental
10892	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10893	// call
10894	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10895	// overridden. Deprecated unused field.
10896	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10897	// injected kernel, which is deprecated.
10898	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10899	// exceedingly large number of resources
10900	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10901	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10902	// not assigned to an instance on the network.
10903	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10904	// ip forward.
10905	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10906	// refers to an instance that does not exist.
10907	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10908	// URL refers to an instance that is not on the same network as the
10909	// route.
10910	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10911	// have a status of RUNNING.
10912	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10913	// continue the process despite the mentioned error.
10914	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10915	// page.
10916	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10917	// missing due to errors
10918	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10919	// that requires a TOS they have not accepted.
10920	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10921	// resource is in use.
10922	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10923	// auto-delete could not be deleted because they were in use.
10924	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10925	// ignored.
10926	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10927	// instance group manager is valid as such, but its application does not
10928	// make a lot of sense, because it allows only single instance in
10929	// instance group.
10930	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10931	// are present
10932	//   "UNREACHABLE" - A given scope cannot be reached.
10933	Code string `json:"code,omitempty"`
10934
10935	// Data: [Output Only] Metadata about this warning in key: value format.
10936	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10937	// }
10938	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
10939
10940	// Message: [Output Only] A human-readable description of the warning
10941	// code.
10942	Message string `json:"message,omitempty"`
10943
10944	// ForceSendFields is a list of field names (e.g. "Code") to
10945	// unconditionally include in API requests. By default, fields with
10946	// empty or default values are omitted from API requests. However, any
10947	// non-pointer, non-interface field appearing in ForceSendFields will be
10948	// sent to the server regardless of whether the field is empty or not.
10949	// This may be used to include empty fields in Patch requests.
10950	ForceSendFields []string `json:"-"`
10951
10952	// NullFields is a list of field names (e.g. "Code") to include in API
10953	// requests with the JSON null value. By default, fields with empty
10954	// values are omitted from API requests. However, any field with an
10955	// empty value appearing in NullFields will be sent to the server as
10956	// null. It is an error if a field in this list has a non-empty value.
10957	// This may be used to include null fields in Patch requests.
10958	NullFields []string `json:"-"`
10959}
10960
10961func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
10962	type NoMethod FirewallPolicyListWarning
10963	raw := NoMethod(*s)
10964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10965}
10966
10967type FirewallPolicyListWarningData struct {
10968	// Key: [Output Only] A key that provides more detail on the warning
10969	// being returned. For example, for warnings where there are no results
10970	// in a list request for a particular zone, this key might be scope and
10971	// the key value might be the zone name. Other examples might be a key
10972	// indicating a deprecated resource and a suggested replacement, or a
10973	// warning about invalid network settings (for example, if an instance
10974	// attempts to perform IP forwarding but is not enabled for IP
10975	// forwarding).
10976	Key string `json:"key,omitempty"`
10977
10978	// Value: [Output Only] A warning data value corresponding to the key.
10979	Value string `json:"value,omitempty"`
10980
10981	// ForceSendFields is a list of field names (e.g. "Key") to
10982	// unconditionally include in API requests. By default, fields with
10983	// empty or default values are omitted from API requests. However, any
10984	// non-pointer, non-interface field appearing in ForceSendFields will be
10985	// sent to the server regardless of whether the field is empty or not.
10986	// This may be used to include empty fields in Patch requests.
10987	ForceSendFields []string `json:"-"`
10988
10989	// NullFields is a list of field names (e.g. "Key") to include in API
10990	// requests with the JSON null value. By default, fields with empty
10991	// values are omitted from API requests. However, any field with an
10992	// empty value appearing in NullFields will be sent to the server as
10993	// null. It is an error if a field in this list has a non-empty value.
10994	// This may be used to include null fields in Patch requests.
10995	NullFields []string `json:"-"`
10996}
10997
10998func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
10999	type NoMethod FirewallPolicyListWarningData
11000	raw := NoMethod(*s)
11001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11002}
11003
11004// FirewallPolicyRule: Represents a rule that describes one or more
11005// match conditions along with the action to be taken when traffic
11006// matches this condition (allow or deny).
11007type FirewallPolicyRule struct {
11008	// Action: The Action to perform when the client connection triggers the
11009	// rule. Can currently be either "allow" or "deny()" where valid values
11010	// for status are 403, 404, and 502.
11011	Action string `json:"action,omitempty"`
11012
11013	// Description: An optional description for this resource.
11014	Description string `json:"description,omitempty"`
11015
11016	// Direction: The direction in which this rule applies.
11017	//
11018	// Possible values:
11019	//   "EGRESS"
11020	//   "INGRESS"
11021	Direction string `json:"direction,omitempty"`
11022
11023	// Disabled: Denotes whether the firewall policy rule is disabled. When
11024	// set to true, the firewall policy rule is not enforced and traffic
11025	// behaves as if it did not exist. If this is unspecified, the firewall
11026	// policy rule will be enabled.
11027	Disabled bool `json:"disabled,omitempty"`
11028
11029	// EnableLogging: Denotes whether to enable logging for a particular
11030	// rule. If logging is enabled, logs will be exported to the configured
11031	// export destination in Stackdriver. Logs may be exported to BigQuery
11032	// or Pub/Sub. Note: you cannot enable logging on "goto_next" rules.
11033	EnableLogging bool `json:"enableLogging,omitempty"`
11034
11035	// Kind: [Output only] Type of the resource. Always
11036	// compute#firewallPolicyRule for firewall policy rules
11037	Kind string `json:"kind,omitempty"`
11038
11039	// Match: A match condition that incoming traffic is evaluated against.
11040	// If it evaluates to true, the corresponding 'action' is enforced.
11041	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
11042
11043	// Priority: An integer indicating the priority of a rule in the list.
11044	// The priority must be a positive value between 0 and 2147483647. Rules
11045	// are evaluated from highest to lowest priority where 0 is the highest
11046	// priority and 2147483647 is the lowest prority.
11047	Priority int64 `json:"priority,omitempty"`
11048
11049	// RuleTupleCount: [Output Only] Calculation of the complexity of a
11050	// single firewall policy rule.
11051	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
11052
11053	// TargetResources: A list of network resource URLs to which this rule
11054	// applies. This field allows you to control which network's VMs get
11055	// this rule. If this field is left blank, all VMs within the
11056	// organization will receive the rule.
11057	TargetResources []string `json:"targetResources,omitempty"`
11058
11059	// TargetServiceAccounts: A list of service accounts indicating the sets
11060	// of instances that are applied with this rule.
11061	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
11062
11063	// ServerResponse contains the HTTP response code and headers from the
11064	// server.
11065	googleapi.ServerResponse `json:"-"`
11066
11067	// ForceSendFields is a list of field names (e.g. "Action") to
11068	// unconditionally include in API requests. By default, fields with
11069	// empty or default values are omitted from API requests. However, any
11070	// non-pointer, non-interface field appearing in ForceSendFields will be
11071	// sent to the server regardless of whether the field is empty or not.
11072	// This may be used to include empty fields in Patch requests.
11073	ForceSendFields []string `json:"-"`
11074
11075	// NullFields is a list of field names (e.g. "Action") to include in API
11076	// requests with the JSON null value. By default, fields with empty
11077	// values are omitted from API requests. However, any field with an
11078	// empty value appearing in NullFields will be sent to the server as
11079	// null. It is an error if a field in this list has a non-empty value.
11080	// This may be used to include null fields in Patch requests.
11081	NullFields []string `json:"-"`
11082}
11083
11084func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) {
11085	type NoMethod FirewallPolicyRule
11086	raw := NoMethod(*s)
11087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11088}
11089
11090// FirewallPolicyRuleMatcher: Represents a match condition that incoming
11091// traffic is evaluated against. Exactly one field must be specified.
11092type FirewallPolicyRuleMatcher struct {
11093	// DestIpRanges: CIDR IP address range. Maximum number of destination
11094	// CIDR IP ranges allowed is 5000.
11095	DestIpRanges []string `json:"destIpRanges,omitempty"`
11096
11097	// Layer4Configs: Pairs of IP protocols and ports that the rule should
11098	// match.
11099	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
11100
11101	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP
11102	// ranges allowed is 5000.
11103	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
11104
11105	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
11106	// unconditionally include in API requests. By default, fields with
11107	// empty or default values are omitted from API requests. However, any
11108	// non-pointer, non-interface field appearing in ForceSendFields will be
11109	// sent to the server regardless of whether the field is empty or not.
11110	// This may be used to include empty fields in Patch requests.
11111	ForceSendFields []string `json:"-"`
11112
11113	// NullFields is a list of field names (e.g. "DestIpRanges") to include
11114	// in API requests with the JSON null value. By default, fields with
11115	// empty values are omitted from API requests. However, any field with
11116	// an empty value appearing in NullFields will be sent to the server as
11117	// null. It is an error if a field in this list has a non-empty value.
11118	// This may be used to include null fields in Patch requests.
11119	NullFields []string `json:"-"`
11120}
11121
11122func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
11123	type NoMethod FirewallPolicyRuleMatcher
11124	raw := NoMethod(*s)
11125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11126}
11127
11128type FirewallPolicyRuleMatcherLayer4Config struct {
11129	// IpProtocol: The IP protocol to which this rule applies. The protocol
11130	// type is required when creating a firewall rule. This value can either
11131	// be one of the following well known protocol strings (tcp, udp, icmp,
11132	// esp, ah, ipip, sctp), or the IP protocol number.
11133	IpProtocol string `json:"ipProtocol,omitempty"`
11134
11135	// Ports: An optional list of ports to which this rule applies. This
11136	// field is only applicable for UDP or TCP protocol. Each entry must be
11137	// either an integer or a range. If not specified, this rule applies to
11138	// connections through any port. Example inputs include: ["22"],
11139	// ["80","443"], and ["12345-12349"].
11140	Ports []string `json:"ports,omitempty"`
11141
11142	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
11143	// unconditionally include in API requests. By default, fields with
11144	// empty or default values are omitted from API requests. However, any
11145	// non-pointer, non-interface field appearing in ForceSendFields will be
11146	// sent to the server regardless of whether the field is empty or not.
11147	// This may be used to include empty fields in Patch requests.
11148	ForceSendFields []string `json:"-"`
11149
11150	// NullFields is a list of field names (e.g. "IpProtocol") to include in
11151	// API requests with the JSON null value. By default, fields with empty
11152	// values are omitted from API requests. However, any field with an
11153	// empty value appearing in NullFields will be sent to the server as
11154	// null. It is an error if a field in this list has a non-empty value.
11155	// This may be used to include null fields in Patch requests.
11156	NullFields []string `json:"-"`
11157}
11158
11159func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
11160	type NoMethod FirewallPolicyRuleMatcherLayer4Config
11161	raw := NoMethod(*s)
11162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11163}
11164
11165// FixedOrPercent: Encapsulates numeric value that can be either
11166// absolute or relative.
11167type FixedOrPercent struct {
11168	// Calculated: [Output Only] Absolute value of VM instances calculated
11169	// based on the specific mode. - If the value is fixed, then the
11170	// calculated value is equal to the fixed value. - If the value is a
11171	// percent, then the calculated value is percent/100 * targetSize. For
11172	// example, the calculated value of a 80% of a managed instance group
11173	// with 150 instances would be (80/100 * 150) = 120 VM instances. If
11174	// there is a remainder, the number is rounded.
11175	Calculated int64 `json:"calculated,omitempty"`
11176
11177	// Fixed: Specifies a fixed number of VM instances. This must be a
11178	// positive integer.
11179	Fixed int64 `json:"fixed,omitempty"`
11180
11181	// Percent: Specifies a percentage of instances between 0 to 100%,
11182	// inclusive. For example, specify 80 for 80%.
11183	Percent int64 `json:"percent,omitempty"`
11184
11185	// ForceSendFields is a list of field names (e.g. "Calculated") to
11186	// unconditionally include in API requests. By default, fields with
11187	// empty or default values are omitted from API requests. However, any
11188	// non-pointer, non-interface field appearing in ForceSendFields will be
11189	// sent to the server regardless of whether the field is empty or not.
11190	// This may be used to include empty fields in Patch requests.
11191	ForceSendFields []string `json:"-"`
11192
11193	// NullFields is a list of field names (e.g. "Calculated") to include in
11194	// API requests with the JSON null value. By default, fields with empty
11195	// values are omitted from API requests. However, any field with an
11196	// empty value appearing in NullFields will be sent to the server as
11197	// null. It is an error if a field in this list has a non-empty value.
11198	// This may be used to include null fields in Patch requests.
11199	NullFields []string `json:"-"`
11200}
11201
11202func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
11203	type NoMethod FixedOrPercent
11204	raw := NoMethod(*s)
11205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11206}
11207
11208// ForwardingRule: Represents a Forwarding Rule resource. Forwarding
11209// rule resources in Google Cloud can be either regional or global in
11210// scope: * Global
11211// (https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
11212// * Regional
11213// (https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
11214// A forwarding rule and its corresponding IP address represent the
11215// frontend configuration of a Google Cloud Platform load balancer.
11216// Forwarding rules can also reference target instances and Cloud VPN
11217// Classic gateways (targetVpnGateway). For more information, read
11218// Forwarding rule concepts and Using protocol forwarding.
11219type ForwardingRule struct {
11220	// IPAddress: IP address that this forwarding rule serves. When a client
11221	// sends traffic to this IP address, the forwarding rule directs the
11222	// traffic to the target that you specify in the forwarding rule. If you
11223	// don't specify a reserved IP address, an ephemeral IP address is
11224	// assigned. Methods for specifying an IP address: * IPv4 dotted
11225	// decimal, as in `100.1.2.3` * Full URL, as in
11226	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region
11227	// /addresses/address-name * Partial URL or by name, as in: -
11228	// projects/project_id/regions/region/addresses/address-name -
11229	// regions/region/addresses/address-name - global/addresses/address-name
11230	// - address-name The loadBalancingScheme and the forwarding rule's
11231	// target determine the type of IP address that you can use. For
11232	// detailed information, see IP address specifications
11233	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
11234	// Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
11235	// validateForProxyless field set to true. For Private Service Connect
11236	// forwarding rules that forward traffic to Google APIs, IP address must
11237	// be provided.
11238	IPAddress string `json:"IPAddress,omitempty"`
11239
11240	// IPProtocol: The IP protocol to which this rule applies. For protocol
11241	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and
11242	// L3_DEFAULT. The valid IP protocols are different for different load
11243	// balancing products as described in Load balancing features
11244	// (https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
11245	//
11246	// Possible values:
11247	//   "AH"
11248	//   "ESP"
11249	//   "ICMP"
11250	//   "SCTP"
11251	//   "TCP"
11252	//   "UDP"
11253	IPProtocol string `json:"IPProtocol,omitempty"`
11254
11255	// AllPorts: This field is used along with the backend_service field for
11256	// Internal TCP/UDP Load Balancing or Network Load Balancing, or with
11257	// the target field for internal and external TargetInstance. You can
11258	// only use one of ports and port_range, or allPorts. The three are
11259	// mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed
11260	// to any ports will be forwarded to the target or backendService.
11261	AllPorts bool `json:"allPorts,omitempty"`
11262
11263	// AllowGlobalAccess: This field is used along with the backend_service
11264	// field for internal load balancing or with the target field for
11265	// internal TargetInstance. If the field is set to TRUE, clients can
11266	// access ILB from all regions. Otherwise only allows access from
11267	// clients in the same region as the internal load balancer.
11268	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
11269
11270	// BackendService: Identifies the backend service to which the
11271	// forwarding rule sends traffic. Required for Internal TCP/UDP Load
11272	// Balancing and Network Load Balancing; must be omitted for all other
11273	// load balancer types.
11274	BackendService string `json:"backendService,omitempty"`
11275
11276	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11277	// format.
11278	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11279
11280	// Description: An optional description of this resource. Provide this
11281	// property when you create the resource.
11282	Description string `json:"description,omitempty"`
11283
11284	// Fingerprint: Fingerprint of this resource. A hash of the contents
11285	// stored in this object. This field is used in optimistic locking. This
11286	// field will be ignored when inserting a ForwardingRule. Include the
11287	// fingerprint in patch request to ensure that you do not overwrite
11288	// changes that were applied from another concurrent request. To see the
11289	// latest fingerprint, make a get() request to retrieve a
11290	// ForwardingRule.
11291	Fingerprint string `json:"fingerprint,omitempty"`
11292
11293	// Id: [Output Only] The unique identifier for the resource. This
11294	// identifier is defined by the server.
11295	Id uint64 `json:"id,omitempty,string"`
11296
11297	// IpVersion: The IP Version that will be used by this forwarding rule.
11298	// Valid options are IPV4 or IPV6. This can only be specified for an
11299	// external global forwarding rule.
11300	//
11301	// Possible values:
11302	//   "IPV4"
11303	//   "IPV6"
11304	//   "UNSPECIFIED_VERSION"
11305	IpVersion string `json:"ipVersion,omitempty"`
11306
11307	// IsMirroringCollector: Indicates whether or not this load balancer can
11308	// be used as a collector for packet mirroring. To prevent mirroring
11309	// loops, instances behind this load balancer will not have their
11310	// traffic mirrored even if a PacketMirroring rule applies to them. This
11311	// can only be set to true for load balancers that have their
11312	// loadBalancingScheme set to INTERNAL.
11313	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
11314
11315	// Kind: [Output Only] Type of the resource. Always
11316	// compute#forwardingRule for Forwarding Rule resources.
11317	Kind string `json:"kind,omitempty"`
11318
11319	// LabelFingerprint: A fingerprint for the labels being applied to this
11320	// resource, which is essentially a hash of the labels set used for
11321	// optimistic locking. The fingerprint is initially generated by Compute
11322	// Engine and changes after every request to modify or update labels.
11323	// You must always provide an up-to-date fingerprint hash in order to
11324	// update or change labels, otherwise the request will fail with error
11325	// 412 conditionNotMet. To see the latest fingerprint, make a get()
11326	// request to retrieve a ForwardingRule.
11327	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11328
11329	// Labels: Labels for this resource. These can only be added or modified
11330	// by the setLabels method. Each label key/value pair must comply with
11331	// RFC1035. Label values may be empty.
11332	Labels map[string]string `json:"labels,omitempty"`
11333
11334	// LoadBalancingScheme: Specifies the forwarding rule type. For more
11335	// information about forwarding rules, refer to Forwarding rule
11336	// concepts.
11337	//
11338	// Possible values:
11339	//   "EXTERNAL"
11340	//   "INTERNAL"
11341	//   "INTERNAL_MANAGED"
11342	//   "INTERNAL_SELF_MANAGED"
11343	//   "INVALID"
11344	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
11345
11346	// MetadataFilters: Opaque filter criteria used by load balancer to
11347	// restrict routing configuration to a limited set of xDS compliant
11348	// clients. In their xDS requests to load balancer, xDS clients present
11349	// node metadata. When there is a match, the relevant configuration is
11350	// made available to those proxies. Otherwise, all the resources (e.g.
11351	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule are not
11352	// visible to those proxies. For each metadataFilter in this list, if
11353	// its filterMatchCriteria is set to MATCH_ANY, at least one of the
11354	// filterLabels must match the corresponding label provided in the
11355	// metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
11356	// its filterLabels must match with corresponding labels provided in the
11357	// metadata. If multiple metadataFilters are specified, all of them need
11358	// to be satisfied in order to be considered a match. metadataFilters
11359	// specified here will be applifed before those specified in the UrlMap
11360	// that this ForwardingRule references. metadataFilters only applies to
11361	// Loadbalancers that have their loadBalancingScheme set to
11362	// INTERNAL_SELF_MANAGED.
11363	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
11364
11365	// Name: Name of the resource; provided by the client when the resource
11366	// is created. The name must be 1-63 characters long, and comply with
11367	// RFC1035. Specifically, the name must be 1-63 characters long and
11368	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11369	// the first character must be a lowercase letter, and all following
11370	// characters must be a dash, lowercase letter, or digit, except the
11371	// last character, which cannot be a dash. For Private Service Connect
11372	// forwarding rules that forward traffic to Google APIs, the forwarding
11373	// rule name must be a 1-20 characters string with lowercase letters and
11374	// numbers and must start with a letter.
11375	Name string `json:"name,omitempty"`
11376
11377	// Network: This field is not used for external load balancing. For
11378	// Internal TCP/UDP Load Balancing, this field identifies the network
11379	// that the load balanced IP should belong to for this Forwarding Rule.
11380	// If this field is not specified, the default network will be used. For
11381	// Private Service Connect forwarding rules that forward traffic to
11382	// Google APIs, a network must be provided.
11383	Network string `json:"network,omitempty"`
11384
11385	// NetworkTier: This signifies the networking tier used for configuring
11386	// this load balancer and can only take the following values: PREMIUM,
11387	// STANDARD. For regional ForwardingRule, the valid values are PREMIUM
11388	// and STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
11389	// If this field is not specified, it is assumed to be PREMIUM. If
11390	// IPAddress is specified, this value must be equal to the networkTier
11391	// of the Address.
11392	//
11393	// Possible values:
11394	//   "PREMIUM" - High quality, Google-grade network tier, support for
11395	// all networking products.
11396	//   "STANDARD" - Public internet quality, only limited support for
11397	// other networking products.
11398	NetworkTier string `json:"networkTier,omitempty"`
11399
11400	// PortRange: This field can be used only if: - Load balancing scheme is
11401	// one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED -
11402	// IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in
11403	// the specified range will be forwarded to target or backend_service.
11404	// You can only use one of ports, port_range, or allPorts. The three are
11405	// mutually exclusive. Forwarding rules with the same [IPAddress,
11406	// IPProtocol] pair must have disjoint ports. Some types of forwarding
11407	// target have constraints on the acceptable ports. For more
11408	// information, see Port specifications
11409	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications).
11410	// @pattern: \\d+(?:-\\d+)?
11411	PortRange string `json:"portRange,omitempty"`
11412
11413	// Ports: The ports field is only supported when the forwarding rule
11414	// references a backend_service directly. Only packets addressed to the
11415	// specified list of ports
11416	// ((https://cloud.google.com/load-balancing/docs/forwarding-rule-concept
11417	// s#port_specifications)) are forwarded to backends. You can only use
11418	// one of ports and port_range, or allPorts. The three are mutually
11419	// exclusive. You can specify a list of up to five ports, which can be
11420	// non-contiguous. Forwarding rules with the same [IPAddress,
11421	// IPProtocol] pair must have disjoint ports. @pattern: \\d+(?:-\\d+)?
11422	Ports []string `json:"ports,omitempty"`
11423
11424	// PscConnectionId: [Output Only] The PSC connection id of the PSC
11425	// Forwarding Rule.
11426	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
11427
11428	// Possible values:
11429	//   "ACCEPTED" - The connection has been accepted by the producer.
11430	//   "CLOSED" - The connection has been closed by the producer and will
11431	// not serve traffic going forward.
11432	//   "PENDING" - The connection is pending acceptance by the producer.
11433	//   "REJECTED" - The connection has been rejected by the producer.
11434	//   "STATUS_UNSPECIFIED"
11435	PscConnectionStatus string `json:"pscConnectionStatus,omitempty"`
11436
11437	// Region: [Output Only] URL of the region where the regional forwarding
11438	// rule resides. This field is not applicable to global forwarding
11439	// rules. You must specify this field as part of the HTTP request URL.
11440	// It is not settable as a field in the request body.
11441	Region string `json:"region,omitempty"`
11442
11443	// SelfLink: [Output Only] Server-defined URL for the resource.
11444	SelfLink string `json:"selfLink,omitempty"`
11445
11446	// ServiceDirectoryRegistrations: Service Directory resources to
11447	// register this forwarding rule with. Currently, only supports a single
11448	// Service Directory resource. It is only supported for internal load
11449	// balancing.
11450	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
11451
11452	// ServiceLabel: An optional prefix to the service name for this
11453	// Forwarding Rule. If specified, the prefix is the first label of the
11454	// fully qualified service name. The label must be 1-63 characters long,
11455	// and comply with RFC1035. Specifically, the label must be 1-63
11456	// characters long and match the regular expression
11457	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11458	// a lowercase letter, and all following characters must be a dash,
11459	// lowercase letter, or digit, except the last character, which cannot
11460	// be a dash. This field is only used for internal load balancing.
11461	ServiceLabel string `json:"serviceLabel,omitempty"`
11462
11463	// ServiceName: [Output Only] The internal fully qualified service name
11464	// for this Forwarding Rule. This field is only used for internal load
11465	// balancing.
11466	ServiceName string `json:"serviceName,omitempty"`
11467
11468	// Subnetwork: This field identifies the subnetwork that the load
11469	// balanced IP should belong to for this Forwarding Rule, used in
11470	// internal load balancing and network load balancing with IPv6. If the
11471	// network specified is in auto subnet mode, this field is optional.
11472	// However, a subnetwork must be specified if the network is in custom
11473	// subnet mode or when creating external forwarding rule with IPv6.
11474	Subnetwork string `json:"subnetwork,omitempty"`
11475
11476	Target string `json:"target,omitempty"`
11477
11478	// ServerResponse contains the HTTP response code and headers from the
11479	// server.
11480	googleapi.ServerResponse `json:"-"`
11481
11482	// ForceSendFields is a list of field names (e.g. "IPAddress") to
11483	// unconditionally include in API requests. By default, fields with
11484	// empty or default values are omitted from API requests. However, any
11485	// non-pointer, non-interface field appearing in ForceSendFields will be
11486	// sent to the server regardless of whether the field is empty or not.
11487	// This may be used to include empty fields in Patch requests.
11488	ForceSendFields []string `json:"-"`
11489
11490	// NullFields is a list of field names (e.g. "IPAddress") to include in
11491	// API requests with the JSON null value. By default, fields with empty
11492	// values are omitted from API requests. However, any field with an
11493	// empty value appearing in NullFields will be sent to the server as
11494	// null. It is an error if a field in this list has a non-empty value.
11495	// This may be used to include null fields in Patch requests.
11496	NullFields []string `json:"-"`
11497}
11498
11499func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
11500	type NoMethod ForwardingRule
11501	raw := NoMethod(*s)
11502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11503}
11504
11505type ForwardingRuleAggregatedList struct {
11506	// Id: [Output Only] Unique identifier for the resource; defined by the
11507	// server.
11508	Id string `json:"id,omitempty"`
11509
11510	// Items: A list of ForwardingRulesScopedList resources.
11511	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
11512
11513	// Kind: [Output Only] Type of resource. Always
11514	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
11515	Kind string `json:"kind,omitempty"`
11516
11517	// NextPageToken: [Output Only] This token allows you to get the next
11518	// page of results for list requests. If the number of results is larger
11519	// than maxResults, use the nextPageToken as a value for the query
11520	// parameter pageToken in the next list request. Subsequent list
11521	// requests will have their own nextPageToken to continue paging through
11522	// the results.
11523	NextPageToken string `json:"nextPageToken,omitempty"`
11524
11525	// SelfLink: [Output Only] Server-defined URL for this resource.
11526	SelfLink string `json:"selfLink,omitempty"`
11527
11528	// Unreachables: [Output Only] Unreachable resources.
11529	Unreachables []string `json:"unreachables,omitempty"`
11530
11531	// Warning: [Output Only] Informational warning message.
11532	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
11533
11534	// ServerResponse contains the HTTP response code and headers from the
11535	// server.
11536	googleapi.ServerResponse `json:"-"`
11537
11538	// ForceSendFields is a list of field names (e.g. "Id") to
11539	// unconditionally include in API requests. By default, fields with
11540	// empty or default values are omitted from API requests. However, any
11541	// non-pointer, non-interface field appearing in ForceSendFields will be
11542	// sent to the server regardless of whether the field is empty or not.
11543	// This may be used to include empty fields in Patch requests.
11544	ForceSendFields []string `json:"-"`
11545
11546	// NullFields is a list of field names (e.g. "Id") to include in API
11547	// requests with the JSON null value. By default, fields with empty
11548	// values are omitted from API requests. However, any field with an
11549	// empty value appearing in NullFields will be sent to the server as
11550	// null. It is an error if a field in this list has a non-empty value.
11551	// This may be used to include null fields in Patch requests.
11552	NullFields []string `json:"-"`
11553}
11554
11555func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
11556	type NoMethod ForwardingRuleAggregatedList
11557	raw := NoMethod(*s)
11558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11559}
11560
11561// ForwardingRuleAggregatedListWarning: [Output Only] Informational
11562// warning message.
11563type ForwardingRuleAggregatedListWarning struct {
11564	// Code: [Output Only] A warning code, if applicable. For example,
11565	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11566	// the response.
11567	//
11568	// Possible values:
11569	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
11570	// changes made by a failed operation.
11571	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
11572	// created.
11573	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
11574	// resources has a type marked as deprecated
11575	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
11576	// that is larger than image size.
11577	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
11578	// resources has a type marked as experimental
11579	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
11580	// call
11581	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
11582	// overridden. Deprecated unused field.
11583	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
11584	// injected kernel, which is deprecated.
11585	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
11586	// exceedingly large number of resources
11587	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
11588	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
11589	// not assigned to an instance on the network.
11590	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
11591	// ip forward.
11592	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
11593	// refers to an instance that does not exist.
11594	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
11595	// URL refers to an instance that is not on the same network as the
11596	// route.
11597	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
11598	// have a status of RUNNING.
11599	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
11600	// continue the process despite the mentioned error.
11601	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
11602	// page.
11603	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
11604	// missing due to errors
11605	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
11606	// that requires a TOS they have not accepted.
11607	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
11608	// resource is in use.
11609	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
11610	// auto-delete could not be deleted because they were in use.
11611	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
11612	// ignored.
11613	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
11614	// instance group manager is valid as such, but its application does not
11615	// make a lot of sense, because it allows only single instance in
11616	// instance group.
11617	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
11618	// are present
11619	//   "UNREACHABLE" - A given scope cannot be reached.
11620	Code string `json:"code,omitempty"`
11621
11622	// Data: [Output Only] Metadata about this warning in key: value format.
11623	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
11624	// }
11625	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
11626
11627	// Message: [Output Only] A human-readable description of the warning
11628	// code.
11629	Message string `json:"message,omitempty"`
11630
11631	// ForceSendFields is a list of field names (e.g. "Code") to
11632	// unconditionally include in API requests. By default, fields with
11633	// empty or default values are omitted from API requests. However, any
11634	// non-pointer, non-interface field appearing in ForceSendFields will be
11635	// sent to the server regardless of whether the field is empty or not.
11636	// This may be used to include empty fields in Patch requests.
11637	ForceSendFields []string `json:"-"`
11638
11639	// NullFields is a list of field names (e.g. "Code") to include in API
11640	// requests with the JSON null value. By default, fields with empty
11641	// values are omitted from API requests. However, any field with an
11642	// empty value appearing in NullFields will be sent to the server as
11643	// null. It is an error if a field in this list has a non-empty value.
11644	// This may be used to include null fields in Patch requests.
11645	NullFields []string `json:"-"`
11646}
11647
11648func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
11649	type NoMethod ForwardingRuleAggregatedListWarning
11650	raw := NoMethod(*s)
11651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11652}
11653
11654type ForwardingRuleAggregatedListWarningData struct {
11655	// Key: [Output Only] A key that provides more detail on the warning
11656	// being returned. For example, for warnings where there are no results
11657	// in a list request for a particular zone, this key might be scope and
11658	// the key value might be the zone name. Other examples might be a key
11659	// indicating a deprecated resource and a suggested replacement, or a
11660	// warning about invalid network settings (for example, if an instance
11661	// attempts to perform IP forwarding but is not enabled for IP
11662	// forwarding).
11663	Key string `json:"key,omitempty"`
11664
11665	// Value: [Output Only] A warning data value corresponding to the key.
11666	Value string `json:"value,omitempty"`
11667
11668	// ForceSendFields is a list of field names (e.g. "Key") to
11669	// unconditionally include in API requests. By default, fields with
11670	// empty or default values are omitted from API requests. However, any
11671	// non-pointer, non-interface field appearing in ForceSendFields will be
11672	// sent to the server regardless of whether the field is empty or not.
11673	// This may be used to include empty fields in Patch requests.
11674	ForceSendFields []string `json:"-"`
11675
11676	// NullFields is a list of field names (e.g. "Key") to include in API
11677	// requests with the JSON null value. By default, fields with empty
11678	// values are omitted from API requests. However, any field with an
11679	// empty value appearing in NullFields will be sent to the server as
11680	// null. It is an error if a field in this list has a non-empty value.
11681	// This may be used to include null fields in Patch requests.
11682	NullFields []string `json:"-"`
11683}
11684
11685func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11686	type NoMethod ForwardingRuleAggregatedListWarningData
11687	raw := NoMethod(*s)
11688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11689}
11690
11691// ForwardingRuleList: Contains a list of ForwardingRule resources.
11692type ForwardingRuleList struct {
11693	// Id: [Output Only] Unique identifier for the resource; defined by the
11694	// server.
11695	Id string `json:"id,omitempty"`
11696
11697	// Items: A list of ForwardingRule resources.
11698	Items []*ForwardingRule `json:"items,omitempty"`
11699
11700	// Kind: Type of resource.
11701	Kind string `json:"kind,omitempty"`
11702
11703	// NextPageToken: [Output Only] This token allows you to get the next
11704	// page of results for list requests. If the number of results is larger
11705	// than maxResults, use the nextPageToken as a value for the query
11706	// parameter pageToken in the next list request. Subsequent list
11707	// requests will have their own nextPageToken to continue paging through
11708	// the results.
11709	NextPageToken string `json:"nextPageToken,omitempty"`
11710
11711	// SelfLink: [Output Only] Server-defined URL for this resource.
11712	SelfLink string `json:"selfLink,omitempty"`
11713
11714	// Warning: [Output Only] Informational warning message.
11715	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
11716
11717	// ServerResponse contains the HTTP response code and headers from the
11718	// server.
11719	googleapi.ServerResponse `json:"-"`
11720
11721	// ForceSendFields is a list of field names (e.g. "Id") to
11722	// unconditionally include in API requests. By default, fields with
11723	// empty or default values are omitted from API requests. However, any
11724	// non-pointer, non-interface field appearing in ForceSendFields will be
11725	// sent to the server regardless of whether the field is empty or not.
11726	// This may be used to include empty fields in Patch requests.
11727	ForceSendFields []string `json:"-"`
11728
11729	// NullFields is a list of field names (e.g. "Id") to include in API
11730	// 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 *ForwardingRuleList) MarshalJSON() ([]byte, error) {
11739	type NoMethod ForwardingRuleList
11740	raw := NoMethod(*s)
11741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11742}
11743
11744// ForwardingRuleListWarning: [Output Only] Informational warning
11745// message.
11746type ForwardingRuleListWarning struct {
11747	// Code: [Output Only] A warning code, if applicable. For example,
11748	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11749	// the response.
11750	//
11751	// Possible values:
11752	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
11753	// changes made by a failed operation.
11754	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
11755	// created.
11756	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
11757	// resources has a type marked as deprecated
11758	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
11759	// that is larger than image size.
11760	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
11761	// resources has a type marked as experimental
11762	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
11763	// call
11764	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
11765	// overridden. Deprecated unused field.
11766	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
11767	// injected kernel, which is deprecated.
11768	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
11769	// exceedingly large number of resources
11770	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
11771	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
11772	// not assigned to an instance on the network.
11773	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
11774	// ip forward.
11775	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
11776	// refers to an instance that does not exist.
11777	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
11778	// URL refers to an instance that is not on the same network as the
11779	// route.
11780	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
11781	// have a status of RUNNING.
11782	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
11783	// continue the process despite the mentioned error.
11784	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
11785	// page.
11786	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
11787	// missing due to errors
11788	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
11789	// that requires a TOS they have not accepted.
11790	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
11791	// resource is in use.
11792	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
11793	// auto-delete could not be deleted because they were in use.
11794	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
11795	// ignored.
11796	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
11797	// instance group manager is valid as such, but its application does not
11798	// make a lot of sense, because it allows only single instance in
11799	// instance group.
11800	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
11801	// are present
11802	//   "UNREACHABLE" - A given scope cannot be reached.
11803	Code string `json:"code,omitempty"`
11804
11805	// Data: [Output Only] Metadata about this warning in key: value format.
11806	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
11807	// }
11808	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
11809
11810	// Message: [Output Only] A human-readable description of the warning
11811	// code.
11812	Message string `json:"message,omitempty"`
11813
11814	// ForceSendFields is a list of field names (e.g. "Code") to
11815	// unconditionally include in API requests. By default, fields with
11816	// empty or default values are omitted from API requests. However, any
11817	// non-pointer, non-interface field appearing in ForceSendFields will be
11818	// sent to the server regardless of whether the field is empty or not.
11819	// This may be used to include empty fields in Patch requests.
11820	ForceSendFields []string `json:"-"`
11821
11822	// NullFields is a list of field names (e.g. "Code") to include in API
11823	// requests with the JSON null value. By default, fields with empty
11824	// values are omitted from API requests. However, any field with an
11825	// empty value appearing in NullFields will be sent to the server as
11826	// null. It is an error if a field in this list has a non-empty value.
11827	// This may be used to include null fields in Patch requests.
11828	NullFields []string `json:"-"`
11829}
11830
11831func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
11832	type NoMethod ForwardingRuleListWarning
11833	raw := NoMethod(*s)
11834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11835}
11836
11837type ForwardingRuleListWarningData struct {
11838	// Key: [Output Only] A key that provides more detail on the warning
11839	// being returned. For example, for warnings where there are no results
11840	// in a list request for a particular zone, this key might be scope and
11841	// the key value might be the zone name. Other examples might be a key
11842	// indicating a deprecated resource and a suggested replacement, or a
11843	// warning about invalid network settings (for example, if an instance
11844	// attempts to perform IP forwarding but is not enabled for IP
11845	// forwarding).
11846	Key string `json:"key,omitempty"`
11847
11848	// Value: [Output Only] A warning data value corresponding to the key.
11849	Value string `json:"value,omitempty"`
11850
11851	// ForceSendFields is a list of field names (e.g. "Key") to
11852	// unconditionally include in API requests. By default, fields with
11853	// empty or default values are omitted from API requests. However, any
11854	// non-pointer, non-interface field appearing in ForceSendFields will be
11855	// sent to the server regardless of whether the field is empty or not.
11856	// This may be used to include empty fields in Patch requests.
11857	ForceSendFields []string `json:"-"`
11858
11859	// NullFields is a list of field names (e.g. "Key") to include in API
11860	// requests with the JSON null value. By default, fields with empty
11861	// values are omitted from API requests. However, any field with an
11862	// empty value appearing in NullFields will be sent to the server as
11863	// null. It is an error if a field in this list has a non-empty value.
11864	// This may be used to include null fields in Patch requests.
11865	NullFields []string `json:"-"`
11866}
11867
11868func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11869	type NoMethod ForwardingRuleListWarningData
11870	raw := NoMethod(*s)
11871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11872}
11873
11874type ForwardingRuleReference struct {
11875	ForwardingRule string `json:"forwardingRule,omitempty"`
11876
11877	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11878	// unconditionally include in API requests. By default, fields with
11879	// empty or default values are omitted from API requests. However, any
11880	// non-pointer, non-interface field appearing in ForceSendFields will be
11881	// sent to the server regardless of whether the field is empty or not.
11882	// This may be used to include empty fields in Patch requests.
11883	ForceSendFields []string `json:"-"`
11884
11885	// NullFields is a list of field names (e.g. "ForwardingRule") to
11886	// include in API requests with the JSON null value. By default, fields
11887	// with empty values are omitted from API requests. However, any field
11888	// with an empty value appearing in NullFields will be sent to the
11889	// server as null. It is an error if a field in this list has a
11890	// non-empty value. This may be used to include null fields in Patch
11891	// requests.
11892	NullFields []string `json:"-"`
11893}
11894
11895func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11896	type NoMethod ForwardingRuleReference
11897	raw := NoMethod(*s)
11898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11899}
11900
11901// ForwardingRuleServiceDirectoryRegistration: Describes the
11902// auto-registration of the Forwarding Rule to Service Directory. The
11903// region and project of the Service Directory resource generated from
11904// this registration will be the same as this Forwarding Rule.
11905type ForwardingRuleServiceDirectoryRegistration struct {
11906	// Namespace: Service Directory namespace to register the forwarding
11907	// rule under.
11908	Namespace string `json:"namespace,omitempty"`
11909
11910	// Service: Service Directory service to register the forwarding rule
11911	// under.
11912	Service string `json:"service,omitempty"`
11913
11914	// ServiceDirectoryRegion: [Optional] Service Directory region to
11915	// register this global forwarding rule under. Default to "us-central1".
11916	// Only used for PSC for Google APIs. All PSC for Google APIs Forwarding
11917	// Rules on the same network should use the same Service Directory
11918	// region.
11919	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
11920
11921	// ForceSendFields is a list of field names (e.g. "Namespace") to
11922	// unconditionally include in API requests. By default, fields with
11923	// empty or default values are omitted from API requests. However, any
11924	// non-pointer, non-interface field appearing in ForceSendFields will be
11925	// sent to the server regardless of whether the field is empty or not.
11926	// This may be used to include empty fields in Patch requests.
11927	ForceSendFields []string `json:"-"`
11928
11929	// NullFields is a list of field names (e.g. "Namespace") to include in
11930	// API requests with the JSON null value. By default, fields with empty
11931	// values are omitted from API requests. However, any field with an
11932	// empty value appearing in NullFields will be sent to the server as
11933	// null. It is an error if a field in this list has a non-empty value.
11934	// This may be used to include null fields in Patch requests.
11935	NullFields []string `json:"-"`
11936}
11937
11938func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
11939	type NoMethod ForwardingRuleServiceDirectoryRegistration
11940	raw := NoMethod(*s)
11941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11942}
11943
11944type ForwardingRulesScopedList struct {
11945	// ForwardingRules: A list of forwarding rules contained in this scope.
11946	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11947
11948	// Warning: Informational warning which replaces the list of forwarding
11949	// rules when the list is empty.
11950	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11951
11952	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11953	// unconditionally include in API requests. By default, fields with
11954	// empty or default values are omitted from API requests. However, any
11955	// non-pointer, non-interface field appearing in ForceSendFields will be
11956	// sent to the server regardless of whether the field is empty or not.
11957	// This may be used to include empty fields in Patch requests.
11958	ForceSendFields []string `json:"-"`
11959
11960	// NullFields is a list of field names (e.g. "ForwardingRules") to
11961	// include in API requests with the JSON null value. By default, fields
11962	// with empty values are omitted from API requests. However, any field
11963	// with an empty value appearing in NullFields will be sent to the
11964	// server as null. It is an error if a field in this list has a
11965	// non-empty value. This may be used to include null fields in Patch
11966	// requests.
11967	NullFields []string `json:"-"`
11968}
11969
11970func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
11971	type NoMethod ForwardingRulesScopedList
11972	raw := NoMethod(*s)
11973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11974}
11975
11976// ForwardingRulesScopedListWarning: Informational warning which
11977// replaces the list of forwarding rules when the list is empty.
11978type ForwardingRulesScopedListWarning struct {
11979	// Code: [Output Only] A warning code, if applicable. For example,
11980	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11981	// the response.
11982	//
11983	// Possible values:
11984	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
11985	// changes made by a failed operation.
11986	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
11987	// created.
11988	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
11989	// resources has a type marked as deprecated
11990	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
11991	// that is larger than image size.
11992	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
11993	// resources has a type marked as experimental
11994	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
11995	// call
11996	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
11997	// overridden. Deprecated unused field.
11998	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
11999	// injected kernel, which is deprecated.
12000	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
12001	// exceedingly large number of resources
12002	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
12003	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
12004	// not assigned to an instance on the network.
12005	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
12006	// ip forward.
12007	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
12008	// refers to an instance that does not exist.
12009	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
12010	// URL refers to an instance that is not on the same network as the
12011	// route.
12012	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
12013	// have a status of RUNNING.
12014	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
12015	// continue the process despite the mentioned error.
12016	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
12017	// page.
12018	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
12019	// missing due to errors
12020	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
12021	// that requires a TOS they have not accepted.
12022	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
12023	// resource is in use.
12024	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
12025	// auto-delete could not be deleted because they were in use.
12026	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
12027	// ignored.
12028	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
12029	// instance group manager is valid as such, but its application does not
12030	// make a lot of sense, because it allows only single instance in
12031	// instance group.
12032	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
12033	// are present
12034	//   "UNREACHABLE" - A given scope cannot be reached.
12035	Code string `json:"code,omitempty"`
12036
12037	// Data: [Output Only] Metadata about this warning in key: value format.
12038	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
12039	// }
12040	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
12041
12042	// Message: [Output Only] A human-readable description of the warning
12043	// code.
12044	Message string `json:"message,omitempty"`
12045
12046	// ForceSendFields is a list of field names (e.g. "Code") to
12047	// unconditionally include in API requests. By default, fields with
12048	// empty or default values are omitted from API requests. However, any
12049	// non-pointer, non-interface field appearing in ForceSendFields will be
12050	// sent to the server regardless of whether the field is empty or not.
12051	// This may be used to include empty fields in Patch requests.
12052	ForceSendFields []string `json:"-"`
12053
12054	// NullFields is a list of field names (e.g. "Code") to include in API
12055	// requests with the JSON null value. By default, fields with empty
12056	// values are omitted from API requests. However, any field with an
12057	// empty value appearing in NullFields will be sent to the server as
12058	// null. It is an error if a field in this list has a non-empty value.
12059	// This may be used to include null fields in Patch requests.
12060	NullFields []string `json:"-"`
12061}
12062
12063func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
12064	type NoMethod ForwardingRulesScopedListWarning
12065	raw := NoMethod(*s)
12066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12067}
12068
12069type ForwardingRulesScopedListWarningData struct {
12070	// Key: [Output Only] A key that provides more detail on the warning
12071	// being returned. For example, for warnings where there are no results
12072	// in a list request for a particular zone, this key might be scope and
12073	// the key value might be the zone name. Other examples might be a key
12074	// indicating a deprecated resource and a suggested replacement, or a
12075	// warning about invalid network settings (for example, if an instance
12076	// attempts to perform IP forwarding but is not enabled for IP
12077	// forwarding).
12078	Key string `json:"key,omitempty"`
12079
12080	// Value: [Output Only] A warning data value corresponding to the key.
12081	Value string `json:"value,omitempty"`
12082
12083	// ForceSendFields is a list of field names (e.g. "Key") to
12084	// unconditionally include in API requests. By default, fields with
12085	// empty or default values are omitted from API requests. However, any
12086	// non-pointer, non-interface field appearing in ForceSendFields will be
12087	// sent to the server regardless of whether the field is empty or not.
12088	// This may be used to include empty fields in Patch requests.
12089	ForceSendFields []string `json:"-"`
12090
12091	// NullFields is a list of field names (e.g. "Key") to include in API
12092	// requests with the JSON null value. By default, fields with empty
12093	// values are omitted from API requests. However, any field with an
12094	// empty value appearing in NullFields will be sent to the server as
12095	// null. It is an error if a field in this list has a non-empty value.
12096	// This may be used to include null fields in Patch requests.
12097	NullFields []string `json:"-"`
12098}
12099
12100func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
12101	type NoMethod ForwardingRulesScopedListWarningData
12102	raw := NoMethod(*s)
12103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12104}
12105
12106type GRPCHealthCheck struct {
12107	// GrpcServiceName: The gRPC service name for the health check. This
12108	// field is optional. The value of grpc_service_name has the following
12109	// meanings by convention: - Empty service_name means the overall status
12110	// of all services at the backend. - Non-empty service_name means the
12111	// health of that gRPC service, as defined by the owner of the service.
12112	// The grpc_service_name can only be ASCII.
12113	GrpcServiceName string `json:"grpcServiceName,omitempty"`
12114
12115	// Port: The port number for the health check request. Must be specified
12116	// if port_name and port_specification are not set or if
12117	// port_specification is USE_FIXED_PORT. Valid values are 1 through
12118	// 65535.
12119	Port int64 `json:"port,omitempty"`
12120
12121	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12122	// both port and port_name are defined, port takes precedence. The
12123	// port_name should conform to RFC1035.
12124	PortName string `json:"portName,omitempty"`
12125
12126	// PortSpecification: Specifies how port is selected for health
12127	// checking, can be one of following values: USE_FIXED_PORT: The port
12128	// number in port is used for health checking. USE_NAMED_PORT: The
12129	// portName is used for health checking. USE_SERVING_PORT: For
12130	// NetworkEndpointGroup, the port specified for each network endpoint is
12131	// used for health checking. For other backends, the port or named port
12132	// specified in the Backend Service is used for health checking. If not
12133	// specified, gRPC health check follows behavior specified in port and
12134	// portName fields.
12135	//
12136	// Possible values:
12137	//   "USE_FIXED_PORT" - The port number in port is used for health
12138	// checking.
12139	//   "USE_NAMED_PORT" - The portName is used for health checking.
12140	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12141	// for each network endpoint is used for health checking. For other
12142	// backends, the port or named port specified in the Backend Service is
12143	// used for health checking.
12144	PortSpecification string `json:"portSpecification,omitempty"`
12145
12146	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
12147	// unconditionally include in API requests. By default, fields with
12148	// empty or default values are omitted from API requests. However, any
12149	// non-pointer, non-interface field appearing in ForceSendFields will be
12150	// sent to the server regardless of whether the field is empty or not.
12151	// This may be used to include empty fields in Patch requests.
12152	ForceSendFields []string `json:"-"`
12153
12154	// NullFields is a list of field names (e.g. "GrpcServiceName") to
12155	// include in API requests with the JSON null value. By default, fields
12156	// with empty values are omitted from API requests. However, any field
12157	// with an empty value appearing in NullFields will be sent to the
12158	// server as null. It is an error if a field in this list has a
12159	// non-empty value. This may be used to include null fields in Patch
12160	// requests.
12161	NullFields []string `json:"-"`
12162}
12163
12164func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
12165	type NoMethod GRPCHealthCheck
12166	raw := NoMethod(*s)
12167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12168}
12169
12170type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
12171	// NetworkEndpoints: The list of network endpoints to be attached.
12172	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12173
12174	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12175	// unconditionally include in API requests. By default, fields with
12176	// empty or default values are omitted from API requests. However, any
12177	// non-pointer, non-interface field appearing in ForceSendFields will be
12178	// sent to the server regardless of whether the field is empty or not.
12179	// This may be used to include empty fields in Patch requests.
12180	ForceSendFields []string `json:"-"`
12181
12182	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12183	// include in API requests with the JSON null value. By default, fields
12184	// with empty values are omitted from API requests. However, any field
12185	// with an empty value appearing in NullFields will be sent to the
12186	// server as null. It is an error if a field in this list has a
12187	// non-empty value. This may be used to include null fields in Patch
12188	// requests.
12189	NullFields []string `json:"-"`
12190}
12191
12192func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
12193	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
12194	raw := NoMethod(*s)
12195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12196}
12197
12198type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
12199	// NetworkEndpoints: The list of network endpoints to be detached.
12200	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12201
12202	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12203	// unconditionally include in API requests. By default, fields with
12204	// empty or default values are omitted from API requests. However, any
12205	// non-pointer, non-interface field appearing in ForceSendFields will be
12206	// sent to the server regardless of whether the field is empty or not.
12207	// This may be used to include empty fields in Patch requests.
12208	ForceSendFields []string `json:"-"`
12209
12210	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12211	// include in API requests with the JSON null value. By default, fields
12212	// with empty values are omitted from API requests. However, any field
12213	// with an empty value appearing in NullFields will be sent to the
12214	// server as null. It is an error if a field in this list has a
12215	// non-empty value. This may be used to include null fields in Patch
12216	// requests.
12217	NullFields []string `json:"-"`
12218}
12219
12220func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
12221	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
12222	raw := NoMethod(*s)
12223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12224}
12225
12226type GlobalOrganizationSetPolicyRequest struct {
12227	// Bindings: Flatten Policy to create a backward compatible wire-format.
12228	// Deprecated. Use 'policy' to specify bindings.
12229	Bindings []*Binding `json:"bindings,omitempty"`
12230
12231	// Etag: Flatten Policy to create a backward compatible wire-format.
12232	// Deprecated. Use 'policy' to specify the etag.
12233	Etag string `json:"etag,omitempty"`
12234
12235	// Policy: REQUIRED: The complete policy to be applied to the
12236	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12237	// empty policy is in general a valid policy but certain services (like
12238	// Projects) might reject them.
12239	Policy *Policy `json:"policy,omitempty"`
12240
12241	// ForceSendFields is a list of field names (e.g. "Bindings") to
12242	// unconditionally include in API requests. By default, fields with
12243	// empty or default values are omitted from API requests. However, any
12244	// non-pointer, non-interface field appearing in ForceSendFields will be
12245	// sent to the server regardless of whether the field is empty or not.
12246	// This may be used to include empty fields in Patch requests.
12247	ForceSendFields []string `json:"-"`
12248
12249	// NullFields is a list of field names (e.g. "Bindings") to include in
12250	// API requests with the JSON null value. By default, fields with empty
12251	// values are omitted from API requests. However, any field with an
12252	// empty value appearing in NullFields will be sent to the server as
12253	// null. It is an error if a field in this list has a non-empty value.
12254	// This may be used to include null fields in Patch requests.
12255	NullFields []string `json:"-"`
12256}
12257
12258func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
12259	type NoMethod GlobalOrganizationSetPolicyRequest
12260	raw := NoMethod(*s)
12261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12262}
12263
12264type GlobalSetLabelsRequest struct {
12265	// LabelFingerprint: The fingerprint of the previous set of labels for
12266	// this resource, used to detect conflicts. The fingerprint is initially
12267	// generated by Compute Engine and changes after every request to modify
12268	// or update labels. You must always provide an up-to-date fingerprint
12269	// hash when updating or changing labels, otherwise the request will
12270	// fail with error 412 conditionNotMet. Make a get() request to the
12271	// resource to get the latest fingerprint.
12272	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12273
12274	// Labels: A list of labels to apply for this resource. Each label key &
12275	// value must comply with RFC1035. Specifically, the name must be 1-63
12276	// characters long and match the regular expression
12277	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12278	// a lowercase letter, and all following characters must be a dash,
12279	// lowercase letter, or digit, except the last character, which cannot
12280	// be a dash. For example, "webserver-frontend": "images". A label value
12281	// can also be empty (e.g. "my-label": "").
12282	Labels map[string]string `json:"labels,omitempty"`
12283
12284	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
12285	// unconditionally include in API requests. By default, fields with
12286	// empty or default values are omitted from API requests. However, any
12287	// non-pointer, non-interface field appearing in ForceSendFields will be
12288	// sent to the server regardless of whether the field is empty or not.
12289	// This may be used to include empty fields in Patch requests.
12290	ForceSendFields []string `json:"-"`
12291
12292	// NullFields is a list of field names (e.g. "LabelFingerprint") to
12293	// include in API requests with the JSON null value. By default, fields
12294	// with empty values are omitted from API requests. However, any field
12295	// with an empty value appearing in NullFields will be sent to the
12296	// server as null. It is an error if a field in this list has a
12297	// non-empty value. This may be used to include null fields in Patch
12298	// requests.
12299	NullFields []string `json:"-"`
12300}
12301
12302func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
12303	type NoMethod GlobalSetLabelsRequest
12304	raw := NoMethod(*s)
12305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12306}
12307
12308type GlobalSetPolicyRequest struct {
12309	// Bindings: Flatten Policy to create a backward compatible wire-format.
12310	// Deprecated. Use 'policy' to specify bindings.
12311	Bindings []*Binding `json:"bindings,omitempty"`
12312
12313	// Etag: Flatten Policy to create a backward compatible wire-format.
12314	// Deprecated. Use 'policy' to specify the etag.
12315	Etag string `json:"etag,omitempty"`
12316
12317	// Policy: REQUIRED: The complete policy to be applied to the
12318	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12319	// empty policy is in general a valid policy but certain services (like
12320	// Projects) might reject them.
12321	Policy *Policy `json:"policy,omitempty"`
12322
12323	// ForceSendFields is a list of field names (e.g. "Bindings") to
12324	// unconditionally include in API requests. By default, fields with
12325	// empty or default values are omitted from API requests. However, any
12326	// non-pointer, non-interface field appearing in ForceSendFields will be
12327	// sent to the server regardless of whether the field is empty or not.
12328	// This may be used to include empty fields in Patch requests.
12329	ForceSendFields []string `json:"-"`
12330
12331	// NullFields is a list of field names (e.g. "Bindings") to include in
12332	// API requests with the JSON null value. By default, fields with empty
12333	// values are omitted from API requests. However, any field with an
12334	// empty value appearing in NullFields will be sent to the server as
12335	// null. It is an error if a field in this list has a non-empty value.
12336	// This may be used to include null fields in Patch requests.
12337	NullFields []string `json:"-"`
12338}
12339
12340func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
12341	type NoMethod GlobalSetPolicyRequest
12342	raw := NoMethod(*s)
12343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12344}
12345
12346// GuestAttributes: A guest attributes entry.
12347type GuestAttributes struct {
12348	// Kind: [Output Only] Type of the resource. Always
12349	// compute#guestAttributes for guest attributes entry.
12350	Kind string `json:"kind,omitempty"`
12351
12352	// QueryPath: The path to be queried. This can be the default namespace
12353	// ('') or a nested namespace ('\/') or a specified key ('\/\').
12354	QueryPath string `json:"queryPath,omitempty"`
12355
12356	// QueryValue: [Output Only] The value of the requested queried path.
12357	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
12358
12359	// SelfLink: [Output Only] Server-defined URL for this resource.
12360	SelfLink string `json:"selfLink,omitempty"`
12361
12362	// VariableKey: The key to search for.
12363	VariableKey string `json:"variableKey,omitempty"`
12364
12365	// VariableValue: [Output Only] The value found for the requested key.
12366	VariableValue string `json:"variableValue,omitempty"`
12367
12368	// ServerResponse contains the HTTP response code and headers from the
12369	// server.
12370	googleapi.ServerResponse `json:"-"`
12371
12372	// ForceSendFields is a list of field names (e.g. "Kind") to
12373	// unconditionally include in API requests. By default, fields with
12374	// empty or default values are omitted from API requests. However, any
12375	// non-pointer, non-interface field appearing in ForceSendFields will be
12376	// sent to the server regardless of whether the field is empty or not.
12377	// This may be used to include empty fields in Patch requests.
12378	ForceSendFields []string `json:"-"`
12379
12380	// NullFields is a list of field names (e.g. "Kind") to include in API
12381	// requests with the JSON null value. By default, fields with empty
12382	// values are omitted from API requests. However, any field with an
12383	// empty value appearing in NullFields will be sent to the server as
12384	// null. It is an error if a field in this list has a non-empty value.
12385	// This may be used to include null fields in Patch requests.
12386	NullFields []string `json:"-"`
12387}
12388
12389func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
12390	type NoMethod GuestAttributes
12391	raw := NoMethod(*s)
12392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12393}
12394
12395// GuestAttributesEntry: A guest attributes namespace/key/value entry.
12396type GuestAttributesEntry struct {
12397	// Key: Key for the guest attribute entry.
12398	Key string `json:"key,omitempty"`
12399
12400	// Namespace: Namespace for the guest attribute entry.
12401	Namespace string `json:"namespace,omitempty"`
12402
12403	// Value: Value for the guest attribute entry.
12404	Value string `json:"value,omitempty"`
12405
12406	// ForceSendFields is a list of field names (e.g. "Key") to
12407	// unconditionally include in API requests. By default, fields with
12408	// empty or default values are omitted from API requests. However, any
12409	// non-pointer, non-interface field appearing in ForceSendFields will be
12410	// sent to the server regardless of whether the field is empty or not.
12411	// This may be used to include empty fields in Patch requests.
12412	ForceSendFields []string `json:"-"`
12413
12414	// NullFields is a list of field names (e.g. "Key") to include in API
12415	// requests with the JSON null value. By default, fields with empty
12416	// values are omitted from API requests. However, any field with an
12417	// empty value appearing in NullFields will be sent to the server as
12418	// null. It is an error if a field in this list has a non-empty value.
12419	// This may be used to include null fields in Patch requests.
12420	NullFields []string `json:"-"`
12421}
12422
12423func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
12424	type NoMethod GuestAttributesEntry
12425	raw := NoMethod(*s)
12426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12427}
12428
12429// GuestAttributesValue: Array of guest attribute namespace/key/value
12430// tuples.
12431type GuestAttributesValue struct {
12432	Items []*GuestAttributesEntry `json:"items,omitempty"`
12433
12434	// ForceSendFields is a list of field names (e.g. "Items") to
12435	// unconditionally include in API requests. By default, fields with
12436	// empty or default values are omitted from API requests. However, any
12437	// non-pointer, non-interface field appearing in ForceSendFields will be
12438	// sent to the server regardless of whether the field is empty or not.
12439	// This may be used to include empty fields in Patch requests.
12440	ForceSendFields []string `json:"-"`
12441
12442	// NullFields is a list of field names (e.g. "Items") to include in API
12443	// requests with the JSON null value. By default, fields with empty
12444	// values are omitted from API requests. However, any field with an
12445	// empty value appearing in NullFields will be sent to the server as
12446	// null. It is an error if a field in this list has a non-empty value.
12447	// This may be used to include null fields in Patch requests.
12448	NullFields []string `json:"-"`
12449}
12450
12451func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
12452	type NoMethod GuestAttributesValue
12453	raw := NoMethod(*s)
12454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12455}
12456
12457// GuestOsFeature: Guest OS features.
12458type GuestOsFeature struct {
12459	// Type: The ID of a supported feature. Read Enabling guest operating
12460	// system features to see a list of available options.
12461	//
12462	// Possible values:
12463	//   "FEATURE_TYPE_UNSPECIFIED"
12464	//   "GVNIC"
12465	//   "MULTI_IP_SUBNET"
12466	//   "SECURE_BOOT"
12467	//   "SEV_CAPABLE"
12468	//   "UEFI_COMPATIBLE"
12469	//   "VIRTIO_SCSI_MULTIQUEUE"
12470	//   "WINDOWS"
12471	Type string `json:"type,omitempty"`
12472
12473	// ForceSendFields is a list of field names (e.g. "Type") to
12474	// unconditionally include in API requests. By default, fields with
12475	// empty or default values are omitted from API requests. However, any
12476	// non-pointer, non-interface field appearing in ForceSendFields will be
12477	// sent to the server regardless of whether the field is empty or not.
12478	// This may be used to include empty fields in Patch requests.
12479	ForceSendFields []string `json:"-"`
12480
12481	// NullFields is a list of field names (e.g. "Type") to include in API
12482	// requests with the JSON null value. By default, fields with empty
12483	// values are omitted from API requests. However, any field with an
12484	// empty value appearing in NullFields will be sent to the server as
12485	// null. It is an error if a field in this list has a non-empty value.
12486	// This may be used to include null fields in Patch requests.
12487	NullFields []string `json:"-"`
12488}
12489
12490func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
12491	type NoMethod GuestOsFeature
12492	raw := NoMethod(*s)
12493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12494}
12495
12496type HTTP2HealthCheck struct {
12497	// Host: The value of the host header in the HTTP/2 health check
12498	// request. If left empty (default value), the IP on behalf of which
12499	// this health check is performed will be used.
12500	Host string `json:"host,omitempty"`
12501
12502	// Port: The TCP port number for the health check request. The default
12503	// value is 443. Valid values are 1 through 65535.
12504	Port int64 `json:"port,omitempty"`
12505
12506	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12507	// both port and port_name are defined, port takes precedence.
12508	PortName string `json:"portName,omitempty"`
12509
12510	// PortSpecification: Specifies how port is selected for health
12511	// checking, can be one of following values: USE_FIXED_PORT: The port
12512	// number in port is used for health checking. USE_NAMED_PORT: The
12513	// portName is used for health checking. USE_SERVING_PORT: For
12514	// NetworkEndpointGroup, the port specified for each network endpoint is
12515	// used for health checking. For other backends, the port or named port
12516	// specified in the Backend Service is used for health checking. If not
12517	// specified, HTTP2 health check follows behavior specified in port and
12518	// portName fields.
12519	//
12520	// Possible values:
12521	//   "USE_FIXED_PORT" - The port number in port is used for health
12522	// checking.
12523	//   "USE_NAMED_PORT" - The portName is used for health checking.
12524	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12525	// for each network endpoint is used for health checking. For other
12526	// backends, the port or named port specified in the Backend Service is
12527	// used for health checking.
12528	PortSpecification string `json:"portSpecification,omitempty"`
12529
12530	// ProxyHeader: Specifies the type of proxy header to append before
12531	// sending data to the backend, either NONE or PROXY_V1. The default is
12532	// NONE.
12533	//
12534	// Possible values:
12535	//   "NONE"
12536	//   "PROXY_V1"
12537	ProxyHeader string `json:"proxyHeader,omitempty"`
12538
12539	// RequestPath: The request path of the HTTP/2 health check request. The
12540	// default value is /.
12541	RequestPath string `json:"requestPath,omitempty"`
12542
12543	// Response: The string to match anywhere in the first 1024 bytes of the
12544	// response body. If left empty (the default value), the status code
12545	// determines health. The response data can only be ASCII.
12546	Response string `json:"response,omitempty"`
12547
12548	// ForceSendFields is a list of field names (e.g. "Host") to
12549	// unconditionally include in API requests. By default, fields with
12550	// empty or default values are omitted from API requests. However, any
12551	// non-pointer, non-interface field appearing in ForceSendFields will be
12552	// sent to the server regardless of whether the field is empty or not.
12553	// This may be used to include empty fields in Patch requests.
12554	ForceSendFields []string `json:"-"`
12555
12556	// NullFields is a list of field names (e.g. "Host") to include in API
12557	// requests with the JSON null value. By default, fields with empty
12558	// values are omitted from API requests. However, any field with an
12559	// empty value appearing in NullFields will be sent to the server as
12560	// null. It is an error if a field in this list has a non-empty value.
12561	// This may be used to include null fields in Patch requests.
12562	NullFields []string `json:"-"`
12563}
12564
12565func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
12566	type NoMethod HTTP2HealthCheck
12567	raw := NoMethod(*s)
12568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12569}
12570
12571type HTTPHealthCheck struct {
12572	// Host: The value of the host header in the HTTP health check request.
12573	// If left empty (default value), the IP on behalf of which this health
12574	// check is performed will be used.
12575	Host string `json:"host,omitempty"`
12576
12577	// Port: The TCP port number for the health check request. The default
12578	// value is 80. Valid values are 1 through 65535.
12579	Port int64 `json:"port,omitempty"`
12580
12581	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12582	// both port and port_name are defined, port takes precedence.
12583	PortName string `json:"portName,omitempty"`
12584
12585	// PortSpecification: Specifies how port is selected for health
12586	// checking, can be one of following values: USE_FIXED_PORT: The port
12587	// number in port is used for health checking. USE_NAMED_PORT: The
12588	// portName is used for health checking. USE_SERVING_PORT: For
12589	// NetworkEndpointGroup, the port specified for each network endpoint is
12590	// used for health checking. For other backends, the port or named port
12591	// specified in the Backend Service is used for health checking. If not
12592	// specified, HTTP health check follows behavior specified in port and
12593	// portName fields.
12594	//
12595	// Possible values:
12596	//   "USE_FIXED_PORT" - The port number in port is used for health
12597	// checking.
12598	//   "USE_NAMED_PORT" - The portName is used for health checking.
12599	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12600	// for each network endpoint is used for health checking. For other
12601	// backends, the port or named port specified in the Backend Service is
12602	// used for health checking.
12603	PortSpecification string `json:"portSpecification,omitempty"`
12604
12605	// ProxyHeader: Specifies the type of proxy header to append before
12606	// sending data to the backend, either NONE or PROXY_V1. The default is
12607	// NONE.
12608	//
12609	// Possible values:
12610	//   "NONE"
12611	//   "PROXY_V1"
12612	ProxyHeader string `json:"proxyHeader,omitempty"`
12613
12614	// RequestPath: The request path of the HTTP health check request. The
12615	// default value is /.
12616	RequestPath string `json:"requestPath,omitempty"`
12617
12618	// Response: The string to match anywhere in the first 1024 bytes of the
12619	// response body. If left empty (the default value), the status code
12620	// determines health. The response data can only be ASCII.
12621	Response string `json:"response,omitempty"`
12622
12623	// ForceSendFields is a list of field names (e.g. "Host") to
12624	// unconditionally include in API requests. By default, fields with
12625	// empty or default values are omitted from API requests. However, any
12626	// non-pointer, non-interface field appearing in ForceSendFields will be
12627	// sent to the server regardless of whether the field is empty or not.
12628	// This may be used to include empty fields in Patch requests.
12629	ForceSendFields []string `json:"-"`
12630
12631	// NullFields is a list of field names (e.g. "Host") to include in API
12632	// requests with the JSON null value. By default, fields with empty
12633	// values are omitted from API requests. However, any field with an
12634	// empty value appearing in NullFields will be sent to the server as
12635	// null. It is an error if a field in this list has a non-empty value.
12636	// This may be used to include null fields in Patch requests.
12637	NullFields []string `json:"-"`
12638}
12639
12640func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
12641	type NoMethod HTTPHealthCheck
12642	raw := NoMethod(*s)
12643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12644}
12645
12646type HTTPSHealthCheck struct {
12647	// Host: The value of the host header in the HTTPS health check request.
12648	// If left empty (default value), the IP on behalf of which this health
12649	// check is performed will be used.
12650	Host string `json:"host,omitempty"`
12651
12652	// Port: The TCP port number for the health check request. The default
12653	// value is 443. Valid values are 1 through 65535.
12654	Port int64 `json:"port,omitempty"`
12655
12656	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12657	// both port and port_name are defined, port takes precedence.
12658	PortName string `json:"portName,omitempty"`
12659
12660	// PortSpecification: Specifies how port is selected for health
12661	// checking, can be one of following values: USE_FIXED_PORT: The port
12662	// number in port is used for health checking. USE_NAMED_PORT: The
12663	// portName is used for health checking. USE_SERVING_PORT: For
12664	// NetworkEndpointGroup, the port specified for each network endpoint is
12665	// used for health checking. For other backends, the port or named port
12666	// specified in the Backend Service is used for health checking. If not
12667	// specified, HTTPS health check follows behavior specified in port and
12668	// portName fields.
12669	//
12670	// Possible values:
12671	//   "USE_FIXED_PORT" - The port number in port is used for health
12672	// checking.
12673	//   "USE_NAMED_PORT" - The portName is used for health checking.
12674	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12675	// for each network endpoint is used for health checking. For other
12676	// backends, the port or named port specified in the Backend Service is
12677	// used for health checking.
12678	PortSpecification string `json:"portSpecification,omitempty"`
12679
12680	// ProxyHeader: Specifies the type of proxy header to append before
12681	// sending data to the backend, either NONE or PROXY_V1. The default is
12682	// NONE.
12683	//
12684	// Possible values:
12685	//   "NONE"
12686	//   "PROXY_V1"
12687	ProxyHeader string `json:"proxyHeader,omitempty"`
12688
12689	// RequestPath: The request path of the HTTPS health check request. The
12690	// default value is /.
12691	RequestPath string `json:"requestPath,omitempty"`
12692
12693	// Response: The string to match anywhere in the first 1024 bytes of the
12694	// response body. If left empty (the default value), the status code
12695	// determines health. The response data can only be ASCII.
12696	Response string `json:"response,omitempty"`
12697
12698	// ForceSendFields is a list of field names (e.g. "Host") to
12699	// unconditionally include in API requests. By default, fields with
12700	// empty or default values are omitted from API requests. However, any
12701	// non-pointer, non-interface field appearing in ForceSendFields will be
12702	// sent to the server regardless of whether the field is empty or not.
12703	// This may be used to include empty fields in Patch requests.
12704	ForceSendFields []string `json:"-"`
12705
12706	// NullFields is a list of field names (e.g. "Host") to include in API
12707	// requests with the JSON null value. By default, fields with empty
12708	// values are omitted from API requests. However, any field with an
12709	// empty value appearing in NullFields will be sent to the server as
12710	// null. It is an error if a field in this list has a non-empty value.
12711	// This may be used to include null fields in Patch requests.
12712	NullFields []string `json:"-"`
12713}
12714
12715func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
12716	type NoMethod HTTPSHealthCheck
12717	raw := NoMethod(*s)
12718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12719}
12720
12721// HealthCheck: Represents a Health Check resource. Google Compute
12722// Engine has two Health Check resources: * Global
12723// (/compute/docs/reference/rest/v1/healthChecks) * Regional
12724// (/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S)
12725// load balancers must use regional health checks
12726// (`compute.v1.regionHealthChecks`). Traffic Director must use global
12727// health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load
12728// balancers can use either regional or global health checks
12729// (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
12730// External HTTP(S), TCP proxy, and SSL proxy load balancers as well as
12731// managed instance group auto-healing must use global health checks
12732// (`compute.v1.HealthChecks`). Backend service-based network load
12733// balancers must use regional health checks
12734// (`compute.v1.regionHealthChecks`). Target pool-based network load
12735// balancers must use legacy HTTP health checks
12736// (`compute.v1.httpHealthChecks`). For more information, see Health
12737// checks overview.
12738type HealthCheck struct {
12739	// CheckIntervalSec: How often (in seconds) to send a health check. The
12740	// default value is 5 seconds.
12741	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12742
12743	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
12744	// format.
12745	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12746
12747	// Description: An optional description of this resource. Provide this
12748	// property when you create the resource.
12749	Description string `json:"description,omitempty"`
12750
12751	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
12752
12753	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12754	// after this many consecutive successes. The default value is 2.
12755	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12756
12757	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
12758
12759	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
12760
12761	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
12762
12763	// Id: [Output Only] The unique identifier for the resource. This
12764	// identifier is defined by the server.
12765	Id uint64 `json:"id,omitempty,string"`
12766
12767	// Kind: Type of the resource.
12768	Kind string `json:"kind,omitempty"`
12769
12770	// LogConfig: Configure logging on this health check.
12771	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
12772
12773	// Name: Name of the resource. Provided by the client when the resource
12774	// is created. The name must be 1-63 characters long, and comply with
12775	// RFC1035. For example, a name that is 1-63 characters long, matches
12776	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise
12777	// complies with RFC1035. This regular expression describes a name where
12778	// the first character is a lowercase letter, and all following
12779	// characters are a dash, lowercase letter, or digit, except the last
12780	// character, which isn't a dash.
12781	Name string `json:"name,omitempty"`
12782
12783	// Region: [Output Only] Region where the health check resides. Not
12784	// applicable to global health checks.
12785	Region string `json:"region,omitempty"`
12786
12787	// SelfLink: [Output Only] Server-defined URL for the resource.
12788	SelfLink string `json:"selfLink,omitempty"`
12789
12790	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
12791
12792	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
12793
12794	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12795	// The default value is 5 seconds. It is invalid for timeoutSec to have
12796	// greater value than checkIntervalSec.
12797	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12798
12799	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
12800	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
12801	// the protocol-specific health check field must be specified, which
12802	// must match type field.
12803	//
12804	// Possible values:
12805	//   "GRPC"
12806	//   "HTTP"
12807	//   "HTTP2"
12808	//   "HTTPS"
12809	//   "INVALID"
12810	//   "SSL"
12811	//   "TCP"
12812	Type string `json:"type,omitempty"`
12813
12814	// UnhealthyThreshold: A so-far healthy instance will be marked
12815	// unhealthy after this many consecutive failures. The default value is
12816	// 2.
12817	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12818
12819	// ServerResponse contains the HTTP response code and headers from the
12820	// server.
12821	googleapi.ServerResponse `json:"-"`
12822
12823	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12824	// unconditionally include in API requests. By default, fields with
12825	// empty or default values are omitted from API requests. However, any
12826	// non-pointer, non-interface field appearing in ForceSendFields will be
12827	// sent to the server regardless of whether the field is empty or not.
12828	// This may be used to include empty fields in Patch requests.
12829	ForceSendFields []string `json:"-"`
12830
12831	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12832	// include in API requests with the JSON null value. By default, fields
12833	// with empty values are omitted from API requests. However, any field
12834	// with an empty value appearing in NullFields will be sent to the
12835	// server as null. It is an error if a field in this list has a
12836	// non-empty value. This may be used to include null fields in Patch
12837	// requests.
12838	NullFields []string `json:"-"`
12839}
12840
12841func (s *HealthCheck) MarshalJSON() ([]byte, error) {
12842	type NoMethod HealthCheck
12843	raw := NoMethod(*s)
12844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12845}
12846
12847// HealthCheckList: Contains a list of HealthCheck resources.
12848type HealthCheckList struct {
12849	// Id: [Output Only] Unique identifier for the resource; defined by the
12850	// server.
12851	Id string `json:"id,omitempty"`
12852
12853	// Items: A list of HealthCheck resources.
12854	Items []*HealthCheck `json:"items,omitempty"`
12855
12856	// Kind: Type of resource.
12857	Kind string `json:"kind,omitempty"`
12858
12859	// NextPageToken: [Output Only] This token allows you to get the next
12860	// page of results for list requests. If the number of results is larger
12861	// than maxResults, use the nextPageToken as a value for the query
12862	// parameter pageToken in the next list request. Subsequent list
12863	// requests will have their own nextPageToken to continue paging through
12864	// the results.
12865	NextPageToken string `json:"nextPageToken,omitempty"`
12866
12867	// SelfLink: [Output Only] Server-defined URL for this resource.
12868	SelfLink string `json:"selfLink,omitempty"`
12869
12870	// Warning: [Output Only] Informational warning message.
12871	Warning *HealthCheckListWarning `json:"warning,omitempty"`
12872
12873	// ServerResponse contains the HTTP response code and headers from the
12874	// server.
12875	googleapi.ServerResponse `json:"-"`
12876
12877	// ForceSendFields is a list of field names (e.g. "Id") to
12878	// unconditionally include in API requests. By default, fields with
12879	// empty or default values are omitted from API requests. However, any
12880	// non-pointer, non-interface field appearing in ForceSendFields will be
12881	// sent to the server regardless of whether the field is empty or not.
12882	// This may be used to include empty fields in Patch requests.
12883	ForceSendFields []string `json:"-"`
12884
12885	// NullFields is a list of field names (e.g. "Id") to include in API
12886	// requests with the JSON null value. By default, fields with empty
12887	// values are omitted from API requests. However, any field with an
12888	// empty value appearing in NullFields will be sent to the server as
12889	// null. It is an error if a field in this list has a non-empty value.
12890	// This may be used to include null fields in Patch requests.
12891	NullFields []string `json:"-"`
12892}
12893
12894func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12895	type NoMethod HealthCheckList
12896	raw := NoMethod(*s)
12897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12898}
12899
12900// HealthCheckListWarning: [Output Only] Informational warning message.
12901type HealthCheckListWarning struct {
12902	// Code: [Output Only] A warning code, if applicable. For example,
12903	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12904	// the response.
12905	//
12906	// Possible values:
12907	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
12908	// changes made by a failed operation.
12909	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
12910	// created.
12911	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
12912	// resources has a type marked as deprecated
12913	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
12914	// that is larger than image size.
12915	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
12916	// resources has a type marked as experimental
12917	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
12918	// call
12919	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
12920	// overridden. Deprecated unused field.
12921	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
12922	// injected kernel, which is deprecated.
12923	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
12924	// exceedingly large number of resources
12925	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
12926	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
12927	// not assigned to an instance on the network.
12928	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
12929	// ip forward.
12930	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
12931	// refers to an instance that does not exist.
12932	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
12933	// URL refers to an instance that is not on the same network as the
12934	// route.
12935	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
12936	// have a status of RUNNING.
12937	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
12938	// continue the process despite the mentioned error.
12939	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
12940	// page.
12941	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
12942	// missing due to errors
12943	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
12944	// that requires a TOS they have not accepted.
12945	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
12946	// resource is in use.
12947	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
12948	// auto-delete could not be deleted because they were in use.
12949	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
12950	// ignored.
12951	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
12952	// instance group manager is valid as such, but its application does not
12953	// make a lot of sense, because it allows only single instance in
12954	// instance group.
12955	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
12956	// are present
12957	//   "UNREACHABLE" - A given scope cannot be reached.
12958	Code string `json:"code,omitempty"`
12959
12960	// Data: [Output Only] Metadata about this warning in key: value format.
12961	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
12962	// }
12963	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12964
12965	// Message: [Output Only] A human-readable description of the warning
12966	// code.
12967	Message string `json:"message,omitempty"`
12968
12969	// ForceSendFields is a list of field names (e.g. "Code") to
12970	// unconditionally include in API requests. By default, fields with
12971	// empty or default values are omitted from API requests. However, any
12972	// non-pointer, non-interface field appearing in ForceSendFields will be
12973	// sent to the server regardless of whether the field is empty or not.
12974	// This may be used to include empty fields in Patch requests.
12975	ForceSendFields []string `json:"-"`
12976
12977	// NullFields is a list of field names (e.g. "Code") to include in API
12978	// requests with the JSON null value. By default, fields with empty
12979	// values are omitted from API requests. However, any field with an
12980	// empty value appearing in NullFields will be sent to the server as
12981	// null. It is an error if a field in this list has a non-empty value.
12982	// This may be used to include null fields in Patch requests.
12983	NullFields []string `json:"-"`
12984}
12985
12986func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
12987	type NoMethod HealthCheckListWarning
12988	raw := NoMethod(*s)
12989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12990}
12991
12992type HealthCheckListWarningData struct {
12993	// Key: [Output Only] A key that provides more detail on the warning
12994	// being returned. For example, for warnings where there are no results
12995	// in a list request for a particular zone, this key might be scope and
12996	// the key value might be the zone name. Other examples might be a key
12997	// indicating a deprecated resource and a suggested replacement, or a
12998	// warning about invalid network settings (for example, if an instance
12999	// attempts to perform IP forwarding but is not enabled for IP
13000	// forwarding).
13001	Key string `json:"key,omitempty"`
13002
13003	// Value: [Output Only] A warning data value corresponding to the key.
13004	Value string `json:"value,omitempty"`
13005
13006	// ForceSendFields is a list of field names (e.g. "Key") to
13007	// unconditionally include in API requests. By default, fields with
13008	// empty or default values are omitted from API requests. However, any
13009	// non-pointer, non-interface field appearing in ForceSendFields will be
13010	// sent to the server regardless of whether the field is empty or not.
13011	// This may be used to include empty fields in Patch requests.
13012	ForceSendFields []string `json:"-"`
13013
13014	// NullFields is a list of field names (e.g. "Key") to include in API
13015	// requests with the JSON null value. By default, fields with empty
13016	// values are omitted from API requests. However, any field with an
13017	// empty value appearing in NullFields will be sent to the server as
13018	// null. It is an error if a field in this list has a non-empty value.
13019	// This may be used to include null fields in Patch requests.
13020	NullFields []string `json:"-"`
13021}
13022
13023func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13024	type NoMethod HealthCheckListWarningData
13025	raw := NoMethod(*s)
13026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13027}
13028
13029// HealthCheckLogConfig: Configuration of logging on a health check. If
13030// logging is enabled, logs will be exported to Stackdriver.
13031type HealthCheckLogConfig struct {
13032	// Enable: Indicates whether or not to export logs. This is false by
13033	// default, which means no health check logging will be done.
13034	Enable bool `json:"enable,omitempty"`
13035
13036	// ForceSendFields is a list of field names (e.g. "Enable") to
13037	// unconditionally include in API requests. By default, fields with
13038	// empty or default values are omitted from API requests. However, any
13039	// non-pointer, non-interface field appearing in ForceSendFields will be
13040	// sent to the server regardless of whether the field is empty or not.
13041	// This may be used to include empty fields in Patch requests.
13042	ForceSendFields []string `json:"-"`
13043
13044	// NullFields is a list of field names (e.g. "Enable") to include in API
13045	// requests with the JSON null value. By default, fields with empty
13046	// values are omitted from API requests. However, any field with an
13047	// empty value appearing in NullFields will be sent to the server as
13048	// null. It is an error if a field in this list has a non-empty value.
13049	// This may be used to include null fields in Patch requests.
13050	NullFields []string `json:"-"`
13051}
13052
13053func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
13054	type NoMethod HealthCheckLogConfig
13055	raw := NoMethod(*s)
13056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13057}
13058
13059// HealthCheckReference: A full or valid partial URL to a health check.
13060// For example, the following are valid URLs: -
13061// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
13062// - projects/project-id/global/httpHealthChecks/health-check -
13063// global/httpHealthChecks/health-check
13064type HealthCheckReference struct {
13065	HealthCheck string `json:"healthCheck,omitempty"`
13066
13067	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
13068	// unconditionally include in API requests. By default, fields with
13069	// empty or default values are omitted from API requests. However, any
13070	// non-pointer, non-interface field appearing in ForceSendFields will be
13071	// sent to the server regardless of whether the field is empty or not.
13072	// This may be used to include empty fields in Patch requests.
13073	ForceSendFields []string `json:"-"`
13074
13075	// NullFields is a list of field names (e.g. "HealthCheck") to include
13076	// in API requests with the JSON null value. By default, fields with
13077	// empty values are omitted from API requests. However, any field with
13078	// an empty value appearing in NullFields will be sent to the server as
13079	// null. It is an error if a field in this list has a non-empty value.
13080	// This may be used to include null fields in Patch requests.
13081	NullFields []string `json:"-"`
13082}
13083
13084func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
13085	type NoMethod HealthCheckReference
13086	raw := NoMethod(*s)
13087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13088}
13089
13090// HealthCheckService: Represents a Health-Check as a Service resource.
13091type HealthCheckService struct {
13092	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13093	// format.
13094	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13095
13096	// Description: An optional description of this resource. Provide this
13097	// property when you create the resource.
13098	Description string `json:"description,omitempty"`
13099
13100	// Fingerprint: Fingerprint of this resource. A hash of the contents
13101	// stored in this object. This field is used in optimistic locking. This
13102	// field will be ignored when inserting a HealthCheckService. An
13103	// up-to-date fingerprint must be provided in order to patch/update the
13104	// HealthCheckService; Otherwise, the request will fail with error 412
13105	// conditionNotMet. To see the latest fingerprint, make a get() request
13106	// to retrieve the HealthCheckService.
13107	Fingerprint string `json:"fingerprint,omitempty"`
13108
13109	// HealthChecks: A list of URLs to the HealthCheck resources. Must have
13110	// at least one HealthCheck, and not more than 10. HealthCheck resources
13111	// must have portSpecification=USE_SERVING_PORT or
13112	// portSpecification=USE_FIXED_PORT. For regional HealthCheckService,
13113	// the HealthCheck must be regional and in the same region. For global
13114	// HealthCheckService, HealthCheck must be global. Mix of regional and
13115	// global HealthChecks is not supported. Multiple regional HealthChecks
13116	// must belong to the same region. Regional HealthChecks must belong to
13117	// the same region as zones of NEGs.
13118	HealthChecks []string `json:"healthChecks,omitempty"`
13119
13120	// HealthStatusAggregationPolicy: Optional. Policy for how the results
13121	// from multiple health checks for the same endpoint are aggregated.
13122	// Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An
13123	// EndpointHealth message is returned for each pair in the health check
13124	// service. - AND. If any health check of an endpoint reports UNHEALTHY,
13125	// then UNHEALTHY is the HealthState of the endpoint. If all health
13126	// checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .
13127	//
13128	// Possible values:
13129	//   "AND" - If any backend's health check reports UNHEALTHY, then
13130	// UNHEALTHY is the HealthState of the entire health check service. If
13131	// all backend's are healthy, the HealthState of the health check
13132	// service is HEALTHY.
13133	//   "NO_AGGREGATION" - An EndpointHealth message is returned for each
13134	// backend in the health check service.
13135	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
13136
13137	// Id: [Output Only] The unique identifier for the resource. This
13138	// identifier is defined by the server.
13139	Id uint64 `json:"id,omitempty,string"`
13140
13141	// Kind: [Output only] Type of the resource. Always
13142	// compute#healthCheckServicefor health check services.
13143	Kind string `json:"kind,omitempty"`
13144
13145	// Name: Name of the resource. The name must be 1-63 characters long,
13146	// and comply with RFC1035. Specifically, the name must be 1-63
13147	// characters long and match the regular expression
13148	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13149	// a lowercase letter, and all following characters must be a dash,
13150	// lowercase letter, or digit, except the last character, which cannot
13151	// be a dash.
13152	Name string `json:"name,omitempty"`
13153
13154	// NetworkEndpointGroups: A list of URLs to the NetworkEndpointGroup
13155	// resources. Must not have more than 100. For regional
13156	// HealthCheckService, NEGs must be in zones in the region of the
13157	// HealthCheckService.
13158	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
13159
13160	// NotificationEndpoints: A list of URLs to the NotificationEndpoint
13161	// resources. Must not have more than 10. A list of endpoints for
13162	// receiving notifications of change in health status. For regional
13163	// HealthCheckService, NotificationEndpoint must be regional and in the
13164	// same region. For global HealthCheckService, NotificationEndpoint must
13165	// be global.
13166	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
13167
13168	// Region: [Output Only] URL of the region where the health check
13169	// service resides. This field is not applicable to global health check
13170	// services. You must specify this field as part of the HTTP request
13171	// URL. It is not settable as a field in the request body.
13172	Region string `json:"region,omitempty"`
13173
13174	// SelfLink: [Output Only] Server-defined URL for the resource.
13175	SelfLink string `json:"selfLink,omitempty"`
13176
13177	// ServerResponse contains the HTTP response code and headers from the
13178	// server.
13179	googleapi.ServerResponse `json:"-"`
13180
13181	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13182	// to unconditionally include in API requests. By default, fields with
13183	// empty or default values are omitted from API requests. However, any
13184	// non-pointer, non-interface field appearing in ForceSendFields will be
13185	// sent to the server regardless of whether the field is empty or not.
13186	// This may be used to include empty fields in Patch requests.
13187	ForceSendFields []string `json:"-"`
13188
13189	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13190	// include in API requests with the JSON null value. By default, fields
13191	// with empty values are omitted from API requests. However, any field
13192	// with an empty value appearing in NullFields will be sent to the
13193	// server as null. It is an error if a field in this list has a
13194	// non-empty value. This may be used to include null fields in Patch
13195	// requests.
13196	NullFields []string `json:"-"`
13197}
13198
13199func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
13200	type NoMethod HealthCheckService
13201	raw := NoMethod(*s)
13202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13203}
13204
13205// HealthCheckServiceReference: A full or valid partial URL to a health
13206// check service. For example, the following are valid URLs: -
13207// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
13208// -
13209// projects/project-id/regions/us-west1/healthCheckServices/health-check-
13210// service - regions/us-west1/healthCheckServices/health-check-service
13211type HealthCheckServiceReference struct {
13212	HealthCheckService string `json:"healthCheckService,omitempty"`
13213
13214	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
13215	// to unconditionally include in API requests. By default, fields with
13216	// empty or default values are omitted from API requests. However, any
13217	// non-pointer, non-interface field appearing in ForceSendFields will be
13218	// sent to the server regardless of whether the field is empty or not.
13219	// This may be used to include empty fields in Patch requests.
13220	ForceSendFields []string `json:"-"`
13221
13222	// NullFields is a list of field names (e.g. "HealthCheckService") to
13223	// include in API requests with the JSON null value. By default, fields
13224	// with empty values are omitted from API requests. However, any field
13225	// with an empty value appearing in NullFields will be sent to the
13226	// server as null. It is an error if a field in this list has a
13227	// non-empty value. This may be used to include null fields in Patch
13228	// requests.
13229	NullFields []string `json:"-"`
13230}
13231
13232func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
13233	type NoMethod HealthCheckServiceReference
13234	raw := NoMethod(*s)
13235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13236}
13237
13238type HealthCheckServicesList struct {
13239	// Id: [Output Only] Unique identifier for the resource; defined by the
13240	// server.
13241	Id string `json:"id,omitempty"`
13242
13243	// Items: A list of HealthCheckService resources.
13244	Items []*HealthCheckService `json:"items,omitempty"`
13245
13246	// Kind: [Output Only] Type of the resource. Always
13247	// compute#healthCheckServicesList for lists of HealthCheckServices.
13248	Kind string `json:"kind,omitempty"`
13249
13250	// NextPageToken: [Output Only] This token allows you to get the next
13251	// page of results for list requests. If the number of results is larger
13252	// than maxResults, use the nextPageToken as a value for the query
13253	// parameter pageToken in the next list request. Subsequent list
13254	// requests will have their own nextPageToken to continue paging through
13255	// the results.
13256	NextPageToken string `json:"nextPageToken,omitempty"`
13257
13258	// SelfLink: [Output Only] Server-defined URL for this resource.
13259	SelfLink string `json:"selfLink,omitempty"`
13260
13261	// Warning: [Output Only] Informational warning message.
13262	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
13263
13264	// ServerResponse contains the HTTP response code and headers from the
13265	// server.
13266	googleapi.ServerResponse `json:"-"`
13267
13268	// ForceSendFields is a list of field names (e.g. "Id") to
13269	// unconditionally include in API requests. By default, fields with
13270	// empty or default values are omitted from API requests. However, any
13271	// non-pointer, non-interface field appearing in ForceSendFields will be
13272	// sent to the server regardless of whether the field is empty or not.
13273	// This may be used to include empty fields in Patch requests.
13274	ForceSendFields []string `json:"-"`
13275
13276	// NullFields is a list of field names (e.g. "Id") to include in API
13277	// requests with the JSON null value. By default, fields with empty
13278	// values are omitted from API requests. However, any field with an
13279	// empty value appearing in NullFields will be sent to the server as
13280	// null. It is an error if a field in this list has a non-empty value.
13281	// This may be used to include null fields in Patch requests.
13282	NullFields []string `json:"-"`
13283}
13284
13285func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
13286	type NoMethod HealthCheckServicesList
13287	raw := NoMethod(*s)
13288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13289}
13290
13291// HealthCheckServicesListWarning: [Output Only] Informational warning
13292// message.
13293type HealthCheckServicesListWarning struct {
13294	// Code: [Output Only] A warning code, if applicable. For example,
13295	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13296	// the response.
13297	//
13298	// Possible values:
13299	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13300	// changes made by a failed operation.
13301	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13302	// created.
13303	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13304	// resources has a type marked as deprecated
13305	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13306	// that is larger than image size.
13307	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13308	// resources has a type marked as experimental
13309	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13310	// call
13311	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13312	// overridden. Deprecated unused field.
13313	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13314	// injected kernel, which is deprecated.
13315	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13316	// exceedingly large number of resources
13317	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13318	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13319	// not assigned to an instance on the network.
13320	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13321	// ip forward.
13322	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13323	// refers to an instance that does not exist.
13324	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13325	// URL refers to an instance that is not on the same network as the
13326	// route.
13327	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13328	// have a status of RUNNING.
13329	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13330	// continue the process despite the mentioned error.
13331	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13332	// page.
13333	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13334	// missing due to errors
13335	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13336	// that requires a TOS they have not accepted.
13337	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13338	// resource is in use.
13339	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13340	// auto-delete could not be deleted because they were in use.
13341	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13342	// ignored.
13343	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13344	// instance group manager is valid as such, but its application does not
13345	// make a lot of sense, because it allows only single instance in
13346	// instance group.
13347	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13348	// are present
13349	//   "UNREACHABLE" - A given scope cannot be reached.
13350	Code string `json:"code,omitempty"`
13351
13352	// Data: [Output Only] Metadata about this warning in key: value format.
13353	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13354	// }
13355	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
13356
13357	// Message: [Output Only] A human-readable description of the warning
13358	// code.
13359	Message string `json:"message,omitempty"`
13360
13361	// ForceSendFields is a list of field names (e.g. "Code") to
13362	// unconditionally include in API requests. By default, fields with
13363	// empty or default values are omitted from API requests. However, any
13364	// non-pointer, non-interface field appearing in ForceSendFields will be
13365	// sent to the server regardless of whether the field is empty or not.
13366	// This may be used to include empty fields in Patch requests.
13367	ForceSendFields []string `json:"-"`
13368
13369	// NullFields is a list of field names (e.g. "Code") to include in API
13370	// requests with the JSON null value. By default, fields with empty
13371	// values are omitted from API requests. However, any field with an
13372	// empty value appearing in NullFields will be sent to the server as
13373	// null. It is an error if a field in this list has a non-empty value.
13374	// This may be used to include null fields in Patch requests.
13375	NullFields []string `json:"-"`
13376}
13377
13378func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
13379	type NoMethod HealthCheckServicesListWarning
13380	raw := NoMethod(*s)
13381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13382}
13383
13384type HealthCheckServicesListWarningData struct {
13385	// Key: [Output Only] A key that provides more detail on the warning
13386	// being returned. For example, for warnings where there are no results
13387	// in a list request for a particular zone, this key might be scope and
13388	// the key value might be the zone name. Other examples might be a key
13389	// indicating a deprecated resource and a suggested replacement, or a
13390	// warning about invalid network settings (for example, if an instance
13391	// attempts to perform IP forwarding but is not enabled for IP
13392	// forwarding).
13393	Key string `json:"key,omitempty"`
13394
13395	// Value: [Output Only] A warning data value corresponding to the key.
13396	Value string `json:"value,omitempty"`
13397
13398	// ForceSendFields is a list of field names (e.g. "Key") to
13399	// unconditionally include in API requests. By default, fields with
13400	// empty or default values are omitted from API requests. However, any
13401	// non-pointer, non-interface field appearing in ForceSendFields will be
13402	// sent to the server regardless of whether the field is empty or not.
13403	// This may be used to include empty fields in Patch requests.
13404	ForceSendFields []string `json:"-"`
13405
13406	// NullFields is a list of field names (e.g. "Key") to include in API
13407	// requests with the JSON null value. By default, fields with empty
13408	// values are omitted from API requests. However, any field with an
13409	// empty value appearing in NullFields will be sent to the server as
13410	// null. It is an error if a field in this list has a non-empty value.
13411	// This may be used to include null fields in Patch requests.
13412	NullFields []string `json:"-"`
13413}
13414
13415func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
13416	type NoMethod HealthCheckServicesListWarningData
13417	raw := NoMethod(*s)
13418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13419}
13420
13421type HealthChecksAggregatedList struct {
13422	// Id: [Output Only] Unique identifier for the resource; defined by the
13423	// server.
13424	Id string `json:"id,omitempty"`
13425
13426	// Items: A list of HealthChecksScopedList resources.
13427	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
13428
13429	// Kind: Type of resource.
13430	Kind string `json:"kind,omitempty"`
13431
13432	// NextPageToken: [Output Only] This token allows you to get the next
13433	// page of results for list requests. If the number of results is larger
13434	// than maxResults, use the nextPageToken as a value for the query
13435	// parameter pageToken in the next list request. Subsequent list
13436	// requests will have their own nextPageToken to continue paging through
13437	// the results.
13438	NextPageToken string `json:"nextPageToken,omitempty"`
13439
13440	// SelfLink: [Output Only] Server-defined URL for this resource.
13441	SelfLink string `json:"selfLink,omitempty"`
13442
13443	// Unreachables: [Output Only] Unreachable resources.
13444	Unreachables []string `json:"unreachables,omitempty"`
13445
13446	// Warning: [Output Only] Informational warning message.
13447	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
13448
13449	// ServerResponse contains the HTTP response code and headers from the
13450	// server.
13451	googleapi.ServerResponse `json:"-"`
13452
13453	// ForceSendFields is a list of field names (e.g. "Id") to
13454	// unconditionally include in API requests. By default, fields with
13455	// empty or default values are omitted from API requests. However, any
13456	// non-pointer, non-interface field appearing in ForceSendFields will be
13457	// sent to the server regardless of whether the field is empty or not.
13458	// This may be used to include empty fields in Patch requests.
13459	ForceSendFields []string `json:"-"`
13460
13461	// NullFields is a list of field names (e.g. "Id") to include in API
13462	// requests with the JSON null value. By default, fields with empty
13463	// values are omitted from API requests. However, any field with an
13464	// empty value appearing in NullFields will be sent to the server as
13465	// null. It is an error if a field in this list has a non-empty value.
13466	// This may be used to include null fields in Patch requests.
13467	NullFields []string `json:"-"`
13468}
13469
13470func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
13471	type NoMethod HealthChecksAggregatedList
13472	raw := NoMethod(*s)
13473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13474}
13475
13476// HealthChecksAggregatedListWarning: [Output Only] Informational
13477// warning message.
13478type HealthChecksAggregatedListWarning struct {
13479	// Code: [Output Only] A warning code, if applicable. For example,
13480	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13481	// the response.
13482	//
13483	// Possible values:
13484	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13485	// changes made by a failed operation.
13486	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13487	// created.
13488	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13489	// resources has a type marked as deprecated
13490	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13491	// that is larger than image size.
13492	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13493	// resources has a type marked as experimental
13494	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13495	// call
13496	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13497	// overridden. Deprecated unused field.
13498	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13499	// injected kernel, which is deprecated.
13500	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13501	// exceedingly large number of resources
13502	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13503	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13504	// not assigned to an instance on the network.
13505	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13506	// ip forward.
13507	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13508	// refers to an instance that does not exist.
13509	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13510	// URL refers to an instance that is not on the same network as the
13511	// route.
13512	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13513	// have a status of RUNNING.
13514	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13515	// continue the process despite the mentioned error.
13516	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13517	// page.
13518	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13519	// missing due to errors
13520	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13521	// that requires a TOS they have not accepted.
13522	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13523	// resource is in use.
13524	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13525	// auto-delete could not be deleted because they were in use.
13526	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13527	// ignored.
13528	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13529	// instance group manager is valid as such, but its application does not
13530	// make a lot of sense, because it allows only single instance in
13531	// instance group.
13532	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13533	// are present
13534	//   "UNREACHABLE" - A given scope cannot be reached.
13535	Code string `json:"code,omitempty"`
13536
13537	// Data: [Output Only] Metadata about this warning in key: value format.
13538	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13539	// }
13540	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
13541
13542	// Message: [Output Only] A human-readable description of the warning
13543	// code.
13544	Message string `json:"message,omitempty"`
13545
13546	// ForceSendFields is a list of field names (e.g. "Code") to
13547	// unconditionally include in API requests. By default, fields with
13548	// empty or default values are omitted from API requests. However, any
13549	// non-pointer, non-interface field appearing in ForceSendFields will be
13550	// sent to the server regardless of whether the field is empty or not.
13551	// This may be used to include empty fields in Patch requests.
13552	ForceSendFields []string `json:"-"`
13553
13554	// NullFields is a list of field names (e.g. "Code") to include in API
13555	// requests with the JSON null value. By default, fields with empty
13556	// values are omitted from API requests. However, any field with an
13557	// empty value appearing in NullFields will be sent to the server as
13558	// null. It is an error if a field in this list has a non-empty value.
13559	// This may be used to include null fields in Patch requests.
13560	NullFields []string `json:"-"`
13561}
13562
13563func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
13564	type NoMethod HealthChecksAggregatedListWarning
13565	raw := NoMethod(*s)
13566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13567}
13568
13569type HealthChecksAggregatedListWarningData struct {
13570	// Key: [Output Only] A key that provides more detail on the warning
13571	// being returned. For example, for warnings where there are no results
13572	// in a list request for a particular zone, this key might be scope and
13573	// the key value might be the zone name. Other examples might be a key
13574	// indicating a deprecated resource and a suggested replacement, or a
13575	// warning about invalid network settings (for example, if an instance
13576	// attempts to perform IP forwarding but is not enabled for IP
13577	// forwarding).
13578	Key string `json:"key,omitempty"`
13579
13580	// Value: [Output Only] A warning data value corresponding to the key.
13581	Value string `json:"value,omitempty"`
13582
13583	// ForceSendFields is a list of field names (e.g. "Key") to
13584	// unconditionally include in API requests. By default, fields with
13585	// empty or default values are omitted from API requests. However, any
13586	// non-pointer, non-interface field appearing in ForceSendFields will be
13587	// sent to the server regardless of whether the field is empty or not.
13588	// This may be used to include empty fields in Patch requests.
13589	ForceSendFields []string `json:"-"`
13590
13591	// NullFields is a list of field names (e.g. "Key") to include in API
13592	// requests with the JSON null value. By default, fields with empty
13593	// values are omitted from API requests. However, any field with an
13594	// empty value appearing in NullFields will be sent to the server as
13595	// null. It is an error if a field in this list has a non-empty value.
13596	// This may be used to include null fields in Patch requests.
13597	NullFields []string `json:"-"`
13598}
13599
13600func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13601	type NoMethod HealthChecksAggregatedListWarningData
13602	raw := NoMethod(*s)
13603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13604}
13605
13606type HealthChecksScopedList struct {
13607	// HealthChecks: A list of HealthChecks contained in this scope.
13608	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
13609
13610	// Warning: Informational warning which replaces the list of backend
13611	// services when the list is empty.
13612	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
13613
13614	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
13615	// unconditionally include in API requests. By default, fields with
13616	// empty or default values are omitted from API requests. However, any
13617	// non-pointer, non-interface field appearing in ForceSendFields will be
13618	// sent to the server regardless of whether the field is empty or not.
13619	// This may be used to include empty fields in Patch requests.
13620	ForceSendFields []string `json:"-"`
13621
13622	// NullFields is a list of field names (e.g. "HealthChecks") to include
13623	// in API requests with the JSON null value. By default, fields with
13624	// empty values are omitted from API requests. However, any field with
13625	// an empty value appearing in NullFields will be sent to the server as
13626	// null. It is an error if a field in this list has a non-empty value.
13627	// This may be used to include null fields in Patch requests.
13628	NullFields []string `json:"-"`
13629}
13630
13631func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
13632	type NoMethod HealthChecksScopedList
13633	raw := NoMethod(*s)
13634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13635}
13636
13637// HealthChecksScopedListWarning: Informational warning which replaces
13638// the list of backend services when the list is empty.
13639type HealthChecksScopedListWarning struct {
13640	// Code: [Output Only] A warning code, if applicable. For example,
13641	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13642	// the response.
13643	//
13644	// Possible values:
13645	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13646	// changes made by a failed operation.
13647	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13648	// created.
13649	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13650	// resources has a type marked as deprecated
13651	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13652	// that is larger than image size.
13653	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13654	// resources has a type marked as experimental
13655	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13656	// call
13657	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13658	// overridden. Deprecated unused field.
13659	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13660	// injected kernel, which is deprecated.
13661	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13662	// exceedingly large number of resources
13663	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13664	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13665	// not assigned to an instance on the network.
13666	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13667	// ip forward.
13668	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13669	// refers to an instance that does not exist.
13670	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13671	// URL refers to an instance that is not on the same network as the
13672	// route.
13673	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13674	// have a status of RUNNING.
13675	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13676	// continue the process despite the mentioned error.
13677	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13678	// page.
13679	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13680	// missing due to errors
13681	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13682	// that requires a TOS they have not accepted.
13683	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13684	// resource is in use.
13685	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13686	// auto-delete could not be deleted because they were in use.
13687	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13688	// ignored.
13689	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13690	// instance group manager is valid as such, but its application does not
13691	// make a lot of sense, because it allows only single instance in
13692	// instance group.
13693	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13694	// are present
13695	//   "UNREACHABLE" - A given scope cannot be reached.
13696	Code string `json:"code,omitempty"`
13697
13698	// Data: [Output Only] Metadata about this warning in key: value format.
13699	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13700	// }
13701	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
13702
13703	// Message: [Output Only] A human-readable description of the warning
13704	// code.
13705	Message string `json:"message,omitempty"`
13706
13707	// ForceSendFields is a list of field names (e.g. "Code") to
13708	// unconditionally include in API requests. By default, fields with
13709	// empty or default values are omitted from API requests. However, any
13710	// non-pointer, non-interface field appearing in ForceSendFields will be
13711	// sent to the server regardless of whether the field is empty or not.
13712	// This may be used to include empty fields in Patch requests.
13713	ForceSendFields []string `json:"-"`
13714
13715	// NullFields is a list of field names (e.g. "Code") to include in API
13716	// requests with the JSON null value. By default, fields with empty
13717	// values are omitted from API requests. However, any field with an
13718	// empty value appearing in NullFields will be sent to the server as
13719	// null. It is an error if a field in this list has a non-empty value.
13720	// This may be used to include null fields in Patch requests.
13721	NullFields []string `json:"-"`
13722}
13723
13724func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
13725	type NoMethod HealthChecksScopedListWarning
13726	raw := NoMethod(*s)
13727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13728}
13729
13730type HealthChecksScopedListWarningData struct {
13731	// Key: [Output Only] A key that provides more detail on the warning
13732	// being returned. For example, for warnings where there are no results
13733	// in a list request for a particular zone, this key might be scope and
13734	// the key value might be the zone name. Other examples might be a key
13735	// indicating a deprecated resource and a suggested replacement, or a
13736	// warning about invalid network settings (for example, if an instance
13737	// attempts to perform IP forwarding but is not enabled for IP
13738	// forwarding).
13739	Key string `json:"key,omitempty"`
13740
13741	// Value: [Output Only] A warning data value corresponding to the key.
13742	Value string `json:"value,omitempty"`
13743
13744	// ForceSendFields is a list of field names (e.g. "Key") to
13745	// unconditionally include in API requests. By default, fields with
13746	// empty or default values are omitted from API requests. However, any
13747	// non-pointer, non-interface field appearing in ForceSendFields will be
13748	// sent to the server regardless of whether the field is empty or not.
13749	// This may be used to include empty fields in Patch requests.
13750	ForceSendFields []string `json:"-"`
13751
13752	// NullFields is a list of field names (e.g. "Key") to include in API
13753	// requests with the JSON null value. By default, fields with empty
13754	// values are omitted from API requests. However, any field with an
13755	// empty value appearing in NullFields will be sent to the server as
13756	// null. It is an error if a field in this list has a non-empty value.
13757	// This may be used to include null fields in Patch requests.
13758	NullFields []string `json:"-"`
13759}
13760
13761func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
13762	type NoMethod HealthChecksScopedListWarningData
13763	raw := NoMethod(*s)
13764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13765}
13766
13767type HealthStatus struct {
13768	// Annotations: Metadata defined as annotations for network endpoint.
13769	Annotations map[string]string `json:"annotations,omitempty"`
13770
13771	// ForwardingRule: URL of the forwarding rule associated with the health
13772	// status of the instance.
13773	ForwardingRule string `json:"forwardingRule,omitempty"`
13774
13775	// ForwardingRuleIp: A forwarding rule IP address assigned to this
13776	// instance.
13777	ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"`
13778
13779	// HealthState: Health state of the instance.
13780	//
13781	// Possible values:
13782	//   "HEALTHY"
13783	//   "UNHEALTHY"
13784	HealthState string `json:"healthState,omitempty"`
13785
13786	// Instance: URL of the instance resource.
13787	Instance string `json:"instance,omitempty"`
13788
13789	// IpAddress: For target pool based Network Load Balancing, it indicates
13790	// the forwarding rule's IP address assigned to this instance. For other
13791	// types of load balancing, the field indicates VM internal ip.
13792	IpAddress string `json:"ipAddress,omitempty"`
13793
13794	// Port: The named port of the instance group, not necessarily the port
13795	// that is health-checked.
13796	Port int64 `json:"port,omitempty"`
13797
13798	Weight string `json:"weight,omitempty"`
13799
13800	// Possible values:
13801	//   "INVALID_WEIGHT" - The response to a Health Check probe had the
13802	// HTTP response header field X-Load-Balancing-Endpoint-Weight, but its
13803	// content was invalid (i.e., not a non-negative single-precision
13804	// floating-point number in decimal string representation).
13805	//   "MISSING_WEIGHT" - The response to a Health Check probe did not
13806	// have the HTTP response header field X-Load-Balancing-Endpoint-Weight.
13807	//   "UNAVAILABLE_WEIGHT" - This is the value when the accompanied
13808	// health status is either TIMEOUT (i.e.,the Health Check probe was not
13809	// able to get a response in time) or UNKNOWN. For the latter, it should
13810	// be typically because there has not been sufficient time to parse and
13811	// report the weight for a new backend (which is with 0.0.0.0 ip
13812	// address). However, it can be also due to an outage case for which the
13813	// health status is explicitly reset to UNKNOWN.
13814	//   "WEIGHT_NONE" - This is the default value when WeightReportMode is
13815	// DISABLE, and is also the initial value when WeightReportMode has just
13816	// updated to ENABLE or DRY_RUN and there has not been sufficient time
13817	// to parse and report the backend weight.
13818	WeightError string `json:"weightError,omitempty"`
13819
13820	// ForceSendFields is a list of field names (e.g. "Annotations") to
13821	// unconditionally include in API requests. By default, fields with
13822	// empty or default values are omitted from API requests. However, any
13823	// non-pointer, non-interface field appearing in ForceSendFields will be
13824	// sent to the server regardless of whether the field is empty or not.
13825	// This may be used to include empty fields in Patch requests.
13826	ForceSendFields []string `json:"-"`
13827
13828	// NullFields is a list of field names (e.g. "Annotations") to include
13829	// in API requests with the JSON null value. By default, fields with
13830	// empty values are omitted from API requests. However, any field with
13831	// an empty value appearing in NullFields will be sent to the server as
13832	// null. It is an error if a field in this list has a non-empty value.
13833	// This may be used to include null fields in Patch requests.
13834	NullFields []string `json:"-"`
13835}
13836
13837func (s *HealthStatus) MarshalJSON() ([]byte, error) {
13838	type NoMethod HealthStatus
13839	raw := NoMethod(*s)
13840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13841}
13842
13843type HealthStatusForNetworkEndpoint struct {
13844	// BackendService: URL of the backend service associated with the health
13845	// state of the network endpoint.
13846	BackendService *BackendServiceReference `json:"backendService,omitempty"`
13847
13848	// ForwardingRule: URL of the forwarding rule associated with the health
13849	// state of the network endpoint.
13850	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
13851
13852	// HealthCheck: URL of the health check associated with the health state
13853	// of the network endpoint.
13854	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
13855
13856	// HealthCheckService: URL of the health check service associated with
13857	// the health state of the network endpoint.
13858	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
13859
13860	// HealthState: Health state of the network endpoint determined based on
13861	// the health checks configured.
13862	//
13863	// Possible values:
13864	//   "DRAINING"
13865	//   "HEALTHY"
13866	//   "UNHEALTHY"
13867	//   "UNKNOWN"
13868	HealthState string `json:"healthState,omitempty"`
13869
13870	// ForceSendFields is a list of field names (e.g. "BackendService") to
13871	// unconditionally include in API requests. By default, fields with
13872	// empty or default values are omitted from API requests. However, any
13873	// non-pointer, non-interface field appearing in ForceSendFields will be
13874	// sent to the server regardless of whether the field is empty or not.
13875	// This may be used to include empty fields in Patch requests.
13876	ForceSendFields []string `json:"-"`
13877
13878	// NullFields is a list of field names (e.g. "BackendService") to
13879	// include in API requests with the JSON null value. By default, fields
13880	// with empty values are omitted from API requests. However, any field
13881	// with an empty value appearing in NullFields will be sent to the
13882	// server as null. It is an error if a field in this list has a
13883	// non-empty value. This may be used to include null fields in Patch
13884	// requests.
13885	NullFields []string `json:"-"`
13886}
13887
13888func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
13889	type NoMethod HealthStatusForNetworkEndpoint
13890	raw := NoMethod(*s)
13891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13892}
13893
13894// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
13895// use the named PathMatcher to select the BackendService.
13896type HostRule struct {
13897	// Description: An optional description of this resource. Provide this
13898	// property when you create the resource.
13899	Description string `json:"description,omitempty"`
13900
13901	// Hosts: The list of host patterns to match. They must be valid
13902	// hostnames with optional port numbers in the format host:port. *
13903	// matches any string of ([a-z0-9-.]*). In that case, * must be the
13904	// first character and must be followed in the pattern by either - or ..
13905	// * based matching is not supported when the URL map is bound to target
13906	// gRPC proxy that has validateForProxyless field set to true.
13907	Hosts []string `json:"hosts,omitempty"`
13908
13909	// PathMatcher: The name of the PathMatcher to use to match the path
13910	// portion of the URL if the hostRule matches the URL's host portion.
13911	PathMatcher string `json:"pathMatcher,omitempty"`
13912
13913	// ForceSendFields is a list of field names (e.g. "Description") to
13914	// unconditionally include in API requests. By default, fields with
13915	// empty or default values are omitted from API requests. However, any
13916	// non-pointer, non-interface field appearing in ForceSendFields will be
13917	// sent to the server regardless of whether the field is empty or not.
13918	// This may be used to include empty fields in Patch requests.
13919	ForceSendFields []string `json:"-"`
13920
13921	// NullFields is a list of field names (e.g. "Description") to include
13922	// in API requests with the JSON null value. By default, fields with
13923	// empty values are omitted from API requests. However, any field with
13924	// an empty value appearing in NullFields will be sent to the server as
13925	// null. It is an error if a field in this list has a non-empty value.
13926	// This may be used to include null fields in Patch requests.
13927	NullFields []string `json:"-"`
13928}
13929
13930func (s *HostRule) MarshalJSON() ([]byte, error) {
13931	type NoMethod HostRule
13932	raw := NoMethod(*s)
13933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13934}
13935
13936// HttpFaultAbort: Specification for how requests are aborted as part of
13937// fault injection.
13938type HttpFaultAbort struct {
13939	// HttpStatus: The HTTP status code used to abort the request. The value
13940	// must be between 200 and 599 inclusive. For gRPC protocol, the gRPC
13941	// status code is mapped to HTTP status code according to this mapping
13942	// table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an
13943	// OK status is currently not supported by Traffic Director.
13944	HttpStatus int64 `json:"httpStatus,omitempty"`
13945
13946	// Percentage: The percentage of traffic
13947	// (connections/operations/requests) which will be aborted as part of
13948	// fault injection. The value must be between 0.0 and 100.0 inclusive.
13949	Percentage float64 `json:"percentage,omitempty"`
13950
13951	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
13952	// unconditionally include in API requests. By default, fields with
13953	// empty or default values are omitted from API requests. However, any
13954	// non-pointer, non-interface field appearing in ForceSendFields will be
13955	// sent to the server regardless of whether the field is empty or not.
13956	// This may be used to include empty fields in Patch requests.
13957	ForceSendFields []string `json:"-"`
13958
13959	// NullFields is a list of field names (e.g. "HttpStatus") to include in
13960	// API requests with the JSON null value. By default, fields with empty
13961	// values are omitted from API requests. However, any field with an
13962	// empty value appearing in NullFields will be sent to the server as
13963	// null. It is an error if a field in this list has a non-empty value.
13964	// This may be used to include null fields in Patch requests.
13965	NullFields []string `json:"-"`
13966}
13967
13968func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
13969	type NoMethod HttpFaultAbort
13970	raw := NoMethod(*s)
13971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13972}
13973
13974func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
13975	type NoMethod HttpFaultAbort
13976	var s1 struct {
13977		Percentage gensupport.JSONFloat64 `json:"percentage"`
13978		*NoMethod
13979	}
13980	s1.NoMethod = (*NoMethod)(s)
13981	if err := json.Unmarshal(data, &s1); err != nil {
13982		return err
13983	}
13984	s.Percentage = float64(s1.Percentage)
13985	return nil
13986}
13987
13988// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
13989// forwarding the request to the backend service as part of fault
13990// injection.
13991type HttpFaultDelay struct {
13992	// FixedDelay: Specifies the value of the fixed delay interval.
13993	FixedDelay *Duration `json:"fixedDelay,omitempty"`
13994
13995	// Percentage: The percentage of traffic
13996	// (connections/operations/requests) on which delay will be introduced
13997	// as part of fault injection. The value must be between 0.0 and 100.0
13998	// inclusive.
13999	Percentage float64 `json:"percentage,omitempty"`
14000
14001	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
14002	// unconditionally include in API requests. By default, fields with
14003	// empty or default values are omitted from API requests. However, any
14004	// non-pointer, non-interface field appearing in ForceSendFields will be
14005	// sent to the server regardless of whether the field is empty or not.
14006	// This may be used to include empty fields in Patch requests.
14007	ForceSendFields []string `json:"-"`
14008
14009	// NullFields is a list of field names (e.g. "FixedDelay") to include in
14010	// API requests with the JSON null value. By default, fields with empty
14011	// values are omitted from API requests. However, any field with an
14012	// empty value appearing in NullFields will be sent to the server as
14013	// null. It is an error if a field in this list has a non-empty value.
14014	// This may be used to include null fields in Patch requests.
14015	NullFields []string `json:"-"`
14016}
14017
14018func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
14019	type NoMethod HttpFaultDelay
14020	raw := NoMethod(*s)
14021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14022}
14023
14024func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
14025	type NoMethod HttpFaultDelay
14026	var s1 struct {
14027		Percentage gensupport.JSONFloat64 `json:"percentage"`
14028		*NoMethod
14029	}
14030	s1.NoMethod = (*NoMethod)(s)
14031	if err := json.Unmarshal(data, &s1); err != nil {
14032		return err
14033	}
14034	s.Percentage = float64(s1.Percentage)
14035	return nil
14036}
14037
14038// HttpFaultInjection: The specification for fault injection introduced
14039// into traffic to test the resiliency of clients to backend service
14040// failure. As part of fault injection, when clients send requests to a
14041// backend service, delays can be introduced by Loadbalancer on a
14042// percentage of requests before sending those request to the backend
14043// service. Similarly requests from clients can be aborted by the
14044// Loadbalancer for a percentage of requests.
14045type HttpFaultInjection struct {
14046	// Abort: The specification for how client requests are aborted as part
14047	// of fault injection.
14048	Abort *HttpFaultAbort `json:"abort,omitempty"`
14049
14050	// Delay: The specification for how client requests are delayed as part
14051	// of fault injection, before being sent to a backend service.
14052	Delay *HttpFaultDelay `json:"delay,omitempty"`
14053
14054	// ForceSendFields is a list of field names (e.g. "Abort") to
14055	// unconditionally include in API requests. By default, fields with
14056	// empty or default values are omitted from API requests. However, any
14057	// non-pointer, non-interface field appearing in ForceSendFields will be
14058	// sent to the server regardless of whether the field is empty or not.
14059	// This may be used to include empty fields in Patch requests.
14060	ForceSendFields []string `json:"-"`
14061
14062	// NullFields is a list of field names (e.g. "Abort") to include in API
14063	// requests with the JSON null value. By default, fields with empty
14064	// values are omitted from API requests. However, any field with an
14065	// empty value appearing in NullFields will be sent to the server as
14066	// null. It is an error if a field in this list has a non-empty value.
14067	// This may be used to include null fields in Patch requests.
14068	NullFields []string `json:"-"`
14069}
14070
14071func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
14072	type NoMethod HttpFaultInjection
14073	raw := NoMethod(*s)
14074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14075}
14076
14077// HttpHeaderAction: The request and response header transformations
14078// that take effect before the request is passed along to the selected
14079// backendService.
14080type HttpHeaderAction struct {
14081	// RequestHeadersToAdd: Headers to add to a matching request prior to
14082	// forwarding the request to the backendService.
14083	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
14084
14085	// RequestHeadersToRemove: A list of header names for headers that need
14086	// to be removed from the request prior to forwarding the request to the
14087	// backendService.
14088	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
14089
14090	// ResponseHeadersToAdd: Headers to add the response prior to sending
14091	// the response back to the client.
14092	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
14093
14094	// ResponseHeadersToRemove: A list of header names for headers that need
14095	// to be removed from the response prior to sending the response back to
14096	// the client.
14097	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
14098
14099	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
14100	// to unconditionally include in API requests. By default, fields with
14101	// empty or default values are omitted from API requests. However, any
14102	// non-pointer, non-interface field appearing in ForceSendFields will be
14103	// sent to the server regardless of whether the field is empty or not.
14104	// This may be used to include empty fields in Patch requests.
14105	ForceSendFields []string `json:"-"`
14106
14107	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
14108	// include in API requests with the JSON null value. By default, fields
14109	// with empty values are omitted from API requests. However, any field
14110	// with an empty value appearing in NullFields will be sent to the
14111	// server as null. It is an error if a field in this list has a
14112	// non-empty value. This may be used to include null fields in Patch
14113	// requests.
14114	NullFields []string `json:"-"`
14115}
14116
14117func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
14118	type NoMethod HttpHeaderAction
14119	raw := NoMethod(*s)
14120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14121}
14122
14123// HttpHeaderMatch: matchRule criteria for request header matches.
14124type HttpHeaderMatch struct {
14125	// ExactMatch: The value should exactly match contents of exactMatch.
14126	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14127	// presentMatch or rangeMatch must be set.
14128	ExactMatch string `json:"exactMatch,omitempty"`
14129
14130	// HeaderName: The name of the HTTP header to match. For matching
14131	// against the HTTP request's authority, use a headerMatch with the
14132	// header name ":authority". For matching a request's method, use the
14133	// headerName ":method". When the URL map is bound to target gRPC proxy
14134	// that has validateForProxyless field set to true, only non-binary
14135	// user-specified custom metadata and the `content-type` header are
14136	// supported. The following transport-level headers cannot be used in
14137	// header matching rules: `:authority`, `:method`, `:path`, `:scheme`,
14138	// `user-agent`, `accept-encoding`, `content-encoding`,
14139	// `grpc-accept-encoding`, `grpc-encoding`,
14140	// `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and
14141	// `grpc-trace-bin.
14142	HeaderName string `json:"headerName,omitempty"`
14143
14144	// InvertMatch: If set to false, the headerMatch is considered a match
14145	// if the match criteria above are met. If set to true, the headerMatch
14146	// is considered a match if the match criteria above are NOT met. The
14147	// default setting is false.
14148	InvertMatch bool `json:"invertMatch,omitempty"`
14149
14150	// PrefixMatch: The value of the header must start with the contents of
14151	// prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch,
14152	// regexMatch, presentMatch or rangeMatch must be set.
14153	PrefixMatch string `json:"prefixMatch,omitempty"`
14154
14155	// PresentMatch: A header with the contents of headerName must exist.
14156	// The match takes place whether or not the request's header has a
14157	// value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14158	// presentMatch or rangeMatch must be set.
14159	PresentMatch bool `json:"presentMatch,omitempty"`
14160
14161	// RangeMatch: The header value must be an integer and its value must be
14162	// in the range specified in rangeMatch. If the header does not contain
14163	// an integer, number or is empty, the match fails. For example for a
14164	// range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not
14165	// match. - -3someString will not match. Only one of exactMatch,
14166	// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must
14167	// be set. Note that rangeMatch is not supported for Loadbalancers that
14168	// have their loadBalancingScheme set to EXTERNAL.
14169	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
14170
14171	// RegexMatch: The value of the header must match the regular expression
14172	// specified in regexMatch. For regular expression grammar, please see:
14173	// github.com/google/re2/wiki/Syntax For matching against a port
14174	// specified in the HTTP request, use a headerMatch with headerName set
14175	// to PORT and a regular expression that satisfies the RFC2616 Host
14176	// header's port specifier. Only one of exactMatch, prefixMatch,
14177	// suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Note
14178	// that regexMatch only applies to Loadbalancers that have their
14179	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14180	RegexMatch string `json:"regexMatch,omitempty"`
14181
14182	// SuffixMatch: The value of the header must end with the contents of
14183	// suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch,
14184	// regexMatch, presentMatch or rangeMatch must be set.
14185	SuffixMatch string `json:"suffixMatch,omitempty"`
14186
14187	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14188	// unconditionally include in API requests. By default, fields with
14189	// empty or default values are omitted from API requests. However, any
14190	// non-pointer, non-interface field appearing in ForceSendFields will be
14191	// sent to the server regardless of whether the field is empty or not.
14192	// This may be used to include empty fields in Patch requests.
14193	ForceSendFields []string `json:"-"`
14194
14195	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14196	// API requests with the JSON null value. By default, fields with empty
14197	// values are omitted from API requests. However, any field with an
14198	// empty value appearing in NullFields will be sent to the server as
14199	// null. It is an error if a field in this list has a non-empty value.
14200	// This may be used to include null fields in Patch requests.
14201	NullFields []string `json:"-"`
14202}
14203
14204func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
14205	type NoMethod HttpHeaderMatch
14206	raw := NoMethod(*s)
14207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14208}
14209
14210// HttpHeaderOption: Specification determining how headers are added to
14211// requests or responses.
14212type HttpHeaderOption struct {
14213	// HeaderName: The name of the header.
14214	HeaderName string `json:"headerName,omitempty"`
14215
14216	// HeaderValue: The value of the header to add.
14217	HeaderValue string `json:"headerValue,omitempty"`
14218
14219	// Replace: If false, headerValue is appended to any values that already
14220	// exist for the header. If true, headerValue is set for the header,
14221	// discarding any values that were set for that header. The default
14222	// value is false.
14223	Replace bool `json:"replace,omitempty"`
14224
14225	// ForceSendFields is a list of field names (e.g. "HeaderName") to
14226	// unconditionally include in API requests. By default, fields with
14227	// empty or default values are omitted from API requests. However, any
14228	// non-pointer, non-interface field appearing in ForceSendFields will be
14229	// sent to the server regardless of whether the field is empty or not.
14230	// This may be used to include empty fields in Patch requests.
14231	ForceSendFields []string `json:"-"`
14232
14233	// NullFields is a list of field names (e.g. "HeaderName") to include in
14234	// API requests with the JSON null value. By default, fields with empty
14235	// values are omitted from API requests. However, any field with an
14236	// empty value appearing in NullFields will be sent to the server as
14237	// null. It is an error if a field in this list has a non-empty value.
14238	// This may be used to include null fields in Patch requests.
14239	NullFields []string `json:"-"`
14240}
14241
14242func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
14243	type NoMethod HttpHeaderOption
14244	raw := NoMethod(*s)
14245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14246}
14247
14248// HttpHealthCheck: Represents a legacy HTTP Health Check resource.
14249// Legacy HTTP health checks are now only required by target pool-based
14250// network load balancers. For all other load balancers, including
14251// backend service-based network load balancers, and for managed
14252// instance group auto-healing, you must use modern (non-legacy) health
14253// checks. For more information, see Health checks overview .
14254type HttpHealthCheck struct {
14255	// CheckIntervalSec: How often (in seconds) to send a health check. The
14256	// default value is 5 seconds.
14257	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14258
14259	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14260	// format.
14261	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14262
14263	// Description: An optional description of this resource. Provide this
14264	// property when you create the resource.
14265	Description string `json:"description,omitempty"`
14266
14267	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14268	// after this many consecutive successes. The default value is 2.
14269	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14270
14271	// Host: The value of the host header in the HTTP health check request.
14272	// If left empty (default value), the public IP on behalf of which this
14273	// health check is performed will be used.
14274	Host string `json:"host,omitempty"`
14275
14276	// Id: [Output Only] The unique identifier for the resource. This
14277	// identifier is defined by the server.
14278	Id uint64 `json:"id,omitempty,string"`
14279
14280	// Kind: [Output Only] Type of the resource. Always
14281	// compute#httpHealthCheck for HTTP health checks.
14282	Kind string `json:"kind,omitempty"`
14283
14284	// Name: Name of the resource. Provided by the client when the resource
14285	// is created. The name must be 1-63 characters long, and comply with
14286	// RFC1035. Specifically, the name must be 1-63 characters long and
14287	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14288	// the first character must be a lowercase letter, and all following
14289	// characters must be a dash, lowercase letter, or digit, except the
14290	// last character, which cannot be a dash.
14291	Name string `json:"name,omitempty"`
14292
14293	// Port: The TCP port number for the HTTP health check request. The
14294	// default value is 80.
14295	Port int64 `json:"port,omitempty"`
14296
14297	// RequestPath: The request path of the HTTP health check request. The
14298	// default value is /. This field does not support query parameters.
14299	RequestPath string `json:"requestPath,omitempty"`
14300
14301	// SelfLink: [Output Only] Server-defined URL for the resource.
14302	SelfLink string `json:"selfLink,omitempty"`
14303
14304	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14305	// The default value is 5 seconds. It is invalid for timeoutSec to have
14306	// greater value than checkIntervalSec.
14307	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14308
14309	// UnhealthyThreshold: A so-far healthy instance will be marked
14310	// unhealthy after this many consecutive failures. The default value is
14311	// 2.
14312	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14313
14314	// ServerResponse contains the HTTP response code and headers from the
14315	// server.
14316	googleapi.ServerResponse `json:"-"`
14317
14318	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14319	// unconditionally include in API requests. By default, fields with
14320	// empty or default values are omitted from API requests. However, any
14321	// non-pointer, non-interface field appearing in ForceSendFields will be
14322	// sent to the server regardless of whether the field is empty or not.
14323	// This may be used to include empty fields in Patch requests.
14324	ForceSendFields []string `json:"-"`
14325
14326	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14327	// include in API requests with the JSON null value. By default, fields
14328	// with empty values are omitted from API requests. However, any field
14329	// with an empty value appearing in NullFields will be sent to the
14330	// server as null. It is an error if a field in this list has a
14331	// non-empty value. This may be used to include null fields in Patch
14332	// requests.
14333	NullFields []string `json:"-"`
14334}
14335
14336func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
14337	type NoMethod HttpHealthCheck
14338	raw := NoMethod(*s)
14339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14340}
14341
14342// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
14343type HttpHealthCheckList struct {
14344	// Id: [Output Only] Unique identifier for the resource; defined by the
14345	// server.
14346	Id string `json:"id,omitempty"`
14347
14348	// Items: A list of HttpHealthCheck resources.
14349	Items []*HttpHealthCheck `json:"items,omitempty"`
14350
14351	// Kind: Type of resource.
14352	Kind string `json:"kind,omitempty"`
14353
14354	// NextPageToken: [Output Only] This token allows you to get the next
14355	// page of results for list requests. If the number of results is larger
14356	// than maxResults, use the nextPageToken as a value for the query
14357	// parameter pageToken in the next list request. Subsequent list
14358	// requests will have their own nextPageToken to continue paging through
14359	// the results.
14360	NextPageToken string `json:"nextPageToken,omitempty"`
14361
14362	// SelfLink: [Output Only] Server-defined URL for this resource.
14363	SelfLink string `json:"selfLink,omitempty"`
14364
14365	// Warning: [Output Only] Informational warning message.
14366	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
14367
14368	// ServerResponse contains the HTTP response code and headers from the
14369	// server.
14370	googleapi.ServerResponse `json:"-"`
14371
14372	// ForceSendFields is a list of field names (e.g. "Id") to
14373	// unconditionally include in API requests. By default, fields with
14374	// empty or default values are omitted from API requests. However, any
14375	// non-pointer, non-interface field appearing in ForceSendFields will be
14376	// sent to the server regardless of whether the field is empty or not.
14377	// This may be used to include empty fields in Patch requests.
14378	ForceSendFields []string `json:"-"`
14379
14380	// NullFields is a list of field names (e.g. "Id") to include in API
14381	// requests with the JSON null value. By default, fields with empty
14382	// values are omitted from API requests. However, any field with an
14383	// empty value appearing in NullFields will be sent to the server as
14384	// null. It is an error if a field in this list has a non-empty value.
14385	// This may be used to include null fields in Patch requests.
14386	NullFields []string `json:"-"`
14387}
14388
14389func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
14390	type NoMethod HttpHealthCheckList
14391	raw := NoMethod(*s)
14392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14393}
14394
14395// HttpHealthCheckListWarning: [Output Only] Informational warning
14396// message.
14397type HttpHealthCheckListWarning struct {
14398	// Code: [Output Only] A warning code, if applicable. For example,
14399	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14400	// the response.
14401	//
14402	// Possible values:
14403	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
14404	// changes made by a failed operation.
14405	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
14406	// created.
14407	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
14408	// resources has a type marked as deprecated
14409	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
14410	// that is larger than image size.
14411	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
14412	// resources has a type marked as experimental
14413	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
14414	// call
14415	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
14416	// overridden. Deprecated unused field.
14417	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
14418	// injected kernel, which is deprecated.
14419	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
14420	// exceedingly large number of resources
14421	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
14422	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
14423	// not assigned to an instance on the network.
14424	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
14425	// ip forward.
14426	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
14427	// refers to an instance that does not exist.
14428	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
14429	// URL refers to an instance that is not on the same network as the
14430	// route.
14431	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
14432	// have a status of RUNNING.
14433	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
14434	// continue the process despite the mentioned error.
14435	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
14436	// page.
14437	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
14438	// missing due to errors
14439	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
14440	// that requires a TOS they have not accepted.
14441	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
14442	// resource is in use.
14443	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
14444	// auto-delete could not be deleted because they were in use.
14445	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
14446	// ignored.
14447	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
14448	// instance group manager is valid as such, but its application does not
14449	// make a lot of sense, because it allows only single instance in
14450	// instance group.
14451	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
14452	// are present
14453	//   "UNREACHABLE" - A given scope cannot be reached.
14454	Code string `json:"code,omitempty"`
14455
14456	// Data: [Output Only] Metadata about this warning in key: value format.
14457	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
14458	// }
14459	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
14460
14461	// Message: [Output Only] A human-readable description of the warning
14462	// code.
14463	Message string `json:"message,omitempty"`
14464
14465	// ForceSendFields is a list of field names (e.g. "Code") to
14466	// unconditionally include in API requests. By default, fields with
14467	// empty or default values are omitted from API requests. However, any
14468	// non-pointer, non-interface field appearing in ForceSendFields will be
14469	// sent to the server regardless of whether the field is empty or not.
14470	// This may be used to include empty fields in Patch requests.
14471	ForceSendFields []string `json:"-"`
14472
14473	// NullFields is a list of field names (e.g. "Code") to include in API
14474	// requests with the JSON null value. By default, fields with empty
14475	// values are omitted from API requests. However, any field with an
14476	// empty value appearing in NullFields will be sent to the server as
14477	// null. It is an error if a field in this list has a non-empty value.
14478	// This may be used to include null fields in Patch requests.
14479	NullFields []string `json:"-"`
14480}
14481
14482func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14483	type NoMethod HttpHealthCheckListWarning
14484	raw := NoMethod(*s)
14485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14486}
14487
14488type HttpHealthCheckListWarningData struct {
14489	// Key: [Output Only] A key that provides more detail on the warning
14490	// being returned. For example, for warnings where there are no results
14491	// in a list request for a particular zone, this key might be scope and
14492	// the key value might be the zone name. Other examples might be a key
14493	// indicating a deprecated resource and a suggested replacement, or a
14494	// warning about invalid network settings (for example, if an instance
14495	// attempts to perform IP forwarding but is not enabled for IP
14496	// forwarding).
14497	Key string `json:"key,omitempty"`
14498
14499	// Value: [Output Only] A warning data value corresponding to the key.
14500	Value string `json:"value,omitempty"`
14501
14502	// ForceSendFields is a list of field names (e.g. "Key") to
14503	// unconditionally include in API requests. By default, fields with
14504	// empty or default values are omitted from API requests. However, any
14505	// non-pointer, non-interface field appearing in ForceSendFields will be
14506	// sent to the server regardless of whether the field is empty or not.
14507	// This may be used to include empty fields in Patch requests.
14508	ForceSendFields []string `json:"-"`
14509
14510	// NullFields is a list of field names (e.g. "Key") to include in API
14511	// requests with the JSON null value. By default, fields with empty
14512	// values are omitted from API requests. However, any field with an
14513	// empty value appearing in NullFields will be sent to the server as
14514	// null. It is an error if a field in this list has a non-empty value.
14515	// This may be used to include null fields in Patch requests.
14516	NullFields []string `json:"-"`
14517}
14518
14519func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14520	type NoMethod HttpHealthCheckListWarningData
14521	raw := NoMethod(*s)
14522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14523}
14524
14525// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
14526// query parameter.
14527type HttpQueryParameterMatch struct {
14528	// ExactMatch: The queryParameterMatch matches if the value of the
14529	// parameter exactly matches the contents of exactMatch. Only one of
14530	// presentMatch, exactMatch or regexMatch must be set.
14531	ExactMatch string `json:"exactMatch,omitempty"`
14532
14533	// Name: The name of the query parameter to match. The query parameter
14534	// must exist in the request, in the absence of which the request match
14535	// fails.
14536	Name string `json:"name,omitempty"`
14537
14538	// PresentMatch: Specifies that the queryParameterMatch matches if the
14539	// request contains the query parameter, irrespective of whether the
14540	// parameter has a value or not. Only one of presentMatch, exactMatch or
14541	// regexMatch must be set.
14542	PresentMatch bool `json:"presentMatch,omitempty"`
14543
14544	// RegexMatch: The queryParameterMatch matches if the value of the
14545	// parameter matches the regular expression specified by regexMatch. For
14546	// the regular expression grammar, please see
14547	// github.com/google/re2/wiki/Syntax Only one of presentMatch,
14548	// exactMatch or regexMatch must be set. Note that regexMatch only
14549	// applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
14550	RegexMatch string `json:"regexMatch,omitempty"`
14551
14552	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14553	// unconditionally include in API requests. By default, fields with
14554	// empty or default values are omitted from API requests. However, any
14555	// non-pointer, non-interface field appearing in ForceSendFields will be
14556	// sent to the server regardless of whether the field is empty or not.
14557	// This may be used to include empty fields in Patch requests.
14558	ForceSendFields []string `json:"-"`
14559
14560	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14561	// API requests with the JSON null value. By default, fields with empty
14562	// values are omitted from API requests. However, any field with an
14563	// empty value appearing in NullFields will be sent to the server as
14564	// null. It is an error if a field in this list has a non-empty value.
14565	// This may be used to include null fields in Patch requests.
14566	NullFields []string `json:"-"`
14567}
14568
14569func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
14570	type NoMethod HttpQueryParameterMatch
14571	raw := NoMethod(*s)
14572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14573}
14574
14575// HttpRedirectAction: Specifies settings for an HTTP redirect.
14576type HttpRedirectAction struct {
14577	// HostRedirect: The host that will be used in the redirect response
14578	// instead of the one that was supplied in the request. The value must
14579	// be between 1 and 255 characters.
14580	HostRedirect string `json:"hostRedirect,omitempty"`
14581
14582	// HttpsRedirect: If set to true, the URL scheme in the redirected
14583	// request is set to https. If set to false, the URL scheme of the
14584	// redirected request will remain the same as that of the request. This
14585	// must only be set for UrlMaps used in TargetHttpProxys. Setting this
14586	// true for TargetHttpsProxy is not permitted. The default is set to
14587	// false.
14588	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
14589
14590	// PathRedirect: The path that will be used in the redirect response
14591	// instead of the one that was supplied in the request. pathRedirect
14592	// cannot be supplied together with prefixRedirect. Supply one alone or
14593	// neither. If neither is supplied, the path of the original request
14594	// will be used for the redirect. The value must be between 1 and 1024
14595	// characters.
14596	PathRedirect string `json:"pathRedirect,omitempty"`
14597
14598	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
14599	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
14600	// before redirecting the request. prefixRedirect cannot be supplied
14601	// together with pathRedirect. Supply one alone or neither. If neither
14602	// is supplied, the path of the original request will be used for the
14603	// redirect. The value must be between 1 and 1024 characters.
14604	PrefixRedirect string `json:"prefixRedirect,omitempty"`
14605
14606	// RedirectResponseCode: The HTTP Status code to use for this
14607	// RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT,
14608	// which is the default value and corresponds to 301. - FOUND, which
14609	// corresponds to 302. - SEE_OTHER which corresponds to 303. -
14610	// TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
14611	// request method will be retained. - PERMANENT_REDIRECT, which
14612	// corresponds to 308. In this case, the request method will be
14613	// retained.
14614	//
14615	// Possible values:
14616	//   "FOUND" - Http Status Code 302 - Found.
14617	//   "MOVED_PERMANENTLY_DEFAULT" - Http Status Code 301 - Moved
14618	// Permanently.
14619	//   "PERMANENT_REDIRECT" - Http Status Code 308 - Permanent Redirect
14620	// maintaining HTTP method.
14621	//   "SEE_OTHER" - Http Status Code 303 - See Other.
14622	//   "TEMPORARY_REDIRECT" - Http Status Code 307 - Temporary Redirect
14623	// maintaining HTTP method.
14624	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
14625
14626	// StripQuery: If set to true, any accompanying query portion of the
14627	// original URL is removed prior to redirecting the request. If set to
14628	// false, the query portion of the original URL is retained. The default
14629	// is set to false.
14630	StripQuery bool `json:"stripQuery,omitempty"`
14631
14632	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
14633	// unconditionally include in API requests. By default, fields with
14634	// empty or default values are omitted from API requests. However, any
14635	// non-pointer, non-interface field appearing in ForceSendFields will be
14636	// sent to the server regardless of whether the field is empty or not.
14637	// This may be used to include empty fields in Patch requests.
14638	ForceSendFields []string `json:"-"`
14639
14640	// NullFields is a list of field names (e.g. "HostRedirect") to include
14641	// in API requests with the JSON null value. By default, fields with
14642	// empty values are omitted from API requests. However, any field with
14643	// an empty value appearing in NullFields will be sent to the server as
14644	// null. It is an error if a field in this list has a non-empty value.
14645	// This may be used to include null fields in Patch requests.
14646	NullFields []string `json:"-"`
14647}
14648
14649func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
14650	type NoMethod HttpRedirectAction
14651	raw := NoMethod(*s)
14652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14653}
14654
14655// HttpRetryPolicy: The retry policy associates with HttpRouteRule
14656type HttpRetryPolicy struct {
14657	// NumRetries: Specifies the allowed number retries. This number must be
14658	// > 0. If not specified, defaults to 1.
14659	NumRetries int64 `json:"numRetries,omitempty"`
14660
14661	// PerTryTimeout: Specifies a non-zero timeout per retry attempt. If not
14662	// specified, will use the timeout set in HttpRouteAction. If timeout in
14663	// HttpRouteAction is not set, will use the largest timeout among all
14664	// backend services associated with the route.
14665	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
14666
14667	// RetryConditions: Specifies one or more conditions when this retry
14668	// policy applies. Valid values are: - 5xx: Retry will be attempted if
14669	// the instance or endpoint responds with any 5xx response code, or if
14670	// the instance or endpoint does not respond at all, example:
14671	// disconnects, reset, read timeout, connection failure, and refused
14672	// streams. - gateway-error: Similar to 5xx, but only applies to
14673	// response codes 502, 503 or 504. - - connect-failure: A retry will be
14674	// attempted on failures connecting to the instance or endpoint, for
14675	// example due to connection timeouts. - retriable-4xx: A retry will be
14676	// attempted if the instance or endpoint responds with a retriable 4xx
14677	// response code. Currently the only retriable error supported is 409. -
14678	// refused-stream: A retry will be attempted if the instance or endpoint
14679	// resets the stream with a REFUSED_STREAM error code. This reset type
14680	// indicates that it is safe to retry. - cancelled: A retry will be
14681	// attempted if the gRPC status code in the response header is set to
14682	// cancelled. - deadline-exceeded: A retry will be attempted if the gRPC
14683	// status code in the response header is set to deadline-exceeded. -
14684	// internal: A retry will be attempted if the gRPC status code in the
14685	// response header is set to internal. - resource-exhausted: A retry
14686	// will be attempted if the gRPC status code in the response header is
14687	// set to resource-exhausted. - unavailable: A retry will be attempted
14688	// if the gRPC status code in the response header is set to unavailable.
14689	RetryConditions []string `json:"retryConditions,omitempty"`
14690
14691	// ForceSendFields is a list of field names (e.g. "NumRetries") to
14692	// unconditionally include in API requests. By default, fields with
14693	// empty or default values are omitted from API requests. However, any
14694	// non-pointer, non-interface field appearing in ForceSendFields will be
14695	// sent to the server regardless of whether the field is empty or not.
14696	// This may be used to include empty fields in Patch requests.
14697	ForceSendFields []string `json:"-"`
14698
14699	// NullFields is a list of field names (e.g. "NumRetries") to include in
14700	// API requests with the JSON null value. By default, fields with empty
14701	// values are omitted from API requests. However, any field with an
14702	// empty value appearing in NullFields will be sent to the server as
14703	// null. It is an error if a field in this list has a non-empty value.
14704	// This may be used to include null fields in Patch requests.
14705	NullFields []string `json:"-"`
14706}
14707
14708func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
14709	type NoMethod HttpRetryPolicy
14710	raw := NoMethod(*s)
14711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14712}
14713
14714type HttpRouteAction struct {
14715	// CorsPolicy: The specification for allowing client side cross-origin
14716	// requests. Please see W3C Recommendation for Cross Origin Resource
14717	// Sharing Not supported when the URL map is bound to target gRPC proxy.
14718	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
14719
14720	// FaultInjectionPolicy: The specification for fault injection
14721	// introduced into traffic to test the resiliency of clients to backend
14722	// service failure. As part of fault injection, when clients send
14723	// requests to a backend service, delays can be introduced by
14724	// Loadbalancer on a percentage of requests before sending those request
14725	// to the backend service. Similarly requests from clients can be
14726	// aborted by the Loadbalancer for a percentage of requests. For the
14727	// requests impacted by fault injection, timeout and retry_policy will
14728	// be ignored by clients that are configured with a
14729	// fault_injection_policy.
14730	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
14731
14732	// MaxStreamDuration: Specifies the maximum duration (timeout) for
14733	// streams on the selected route. Unlike the timeout field where the
14734	// timeout duration starts from the time the request has been fully
14735	// processed (i.e. end-of-stream), the duration in this field is
14736	// computed from the beginning of the stream until the response has been
14737	// completely processed, including all retries. A stream that does not
14738	// complete in this duration is closed. If not specified, will use the
14739	// largest maxStreamDuration among all backend services associated with
14740	// the route. This field is only allowed if the Url map is used with
14741	// backend services with loadBalancingScheme set to
14742	// INTERNAL_SELF_MANAGED.
14743	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
14744
14745	// RequestMirrorPolicy: Specifies the policy on how requests intended
14746	// for the route's backends are shadowed to a separate mirrored backend
14747	// service. Loadbalancer does not wait for responses from the shadow
14748	// service. Prior to sending traffic to the shadow service, the host /
14749	// authority header is suffixed with -shadow. Not supported when the URL
14750	// map is bound to target gRPC proxy that has validateForProxyless field
14751	// set to true.
14752	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
14753
14754	// RetryPolicy: Specifies the retry policy associated with this route.
14755	// Not supported when the URL map is bound to target gRPC proxy that has
14756	// validateForProxyless field set to true.
14757	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
14758
14759	// Timeout: Specifies the timeout for the selected route. Timeout is
14760	// computed from the time the request has been fully processed (i.e.
14761	// end-of-stream) up until the response has been completely processed.
14762	// Timeout includes all retries. If not specified, will use the largest
14763	// timeout among all backend services associated with the route. Not
14764	// supported when the URL map is bound to target gRPC proxy that has
14765	// validateForProxyless field set to true.
14766	Timeout *Duration `json:"timeout,omitempty"`
14767
14768	// UrlRewrite: The spec to modify the URL of the request, prior to
14769	// forwarding the request to the matched service. urlRewrite is the only
14770	// action supported in UrlMaps for external HTTP(S) load balancers. Not
14771	// supported when the URL map is bound to target gRPC proxy that has
14772	// validateForProxyless field set to true.
14773	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
14774
14775	// WeightedBackendServices: A list of weighted backend services to send
14776	// traffic to when a route match occurs. The weights determine the
14777	// fraction of traffic that flows to their corresponding backend
14778	// service. If all traffic needs to go to a single backend service,
14779	// there must be one weightedBackendService with weight set to a
14780	// non-zero number. Once a backendService is identified and before
14781	// forwarding the request to the backend service, advanced routing
14782	// actions such as URL rewrites and header transformations are applied
14783	// depending on additional settings specified in this HttpRouteAction.
14784	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
14785
14786	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
14787	// unconditionally include in API requests. By default, fields with
14788	// empty or default values are omitted from API requests. However, any
14789	// non-pointer, non-interface field appearing in ForceSendFields will be
14790	// sent to the server regardless of whether the field is empty or not.
14791	// This may be used to include empty fields in Patch requests.
14792	ForceSendFields []string `json:"-"`
14793
14794	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
14795	// API requests with the JSON null value. By default, fields with empty
14796	// values are omitted from API requests. However, any field with an
14797	// empty value appearing in NullFields will be sent to the server as
14798	// null. It is an error if a field in this list has a non-empty value.
14799	// This may be used to include null fields in Patch requests.
14800	NullFields []string `json:"-"`
14801}
14802
14803func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
14804	type NoMethod HttpRouteAction
14805	raw := NoMethod(*s)
14806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14807}
14808
14809// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
14810// request and the corresponding routing action that load balancing
14811// proxies will perform.
14812type HttpRouteRule struct {
14813	// Description: The short description conveying the intent of this
14814	// routeRule. The description can have a maximum length of 1024
14815	// characters.
14816	Description string `json:"description,omitempty"`
14817
14818	// HeaderAction: Specifies changes to request and response headers that
14819	// need to take effect for the selected backendService. The headerAction
14820	// specified here are applied before the matching
14821	// pathMatchers[].headerAction and after
14822	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
14823	// ServiceWeightAction[].headerAction Note that headerAction is not
14824	// supported for Loadbalancers that have their loadBalancingScheme set
14825	// to EXTERNAL. Not supported when the URL map is bound to target gRPC
14826	// proxy that has validateForProxyless field set to true.
14827	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
14828
14829	// MatchRules: The list of criteria for matching attributes of a request
14830	// to this routeRule. This list has OR semantics: the request matches
14831	// this routeRule when any of the matchRules are satisfied. However
14832	// predicates within a given matchRule have AND semantics. All
14833	// predicates within a matchRule must match for the request to match the
14834	// rule.
14835	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
14836
14837	// Priority: For routeRules within a given pathMatcher, priority
14838	// determines the order in which load balancer will interpret
14839	// routeRules. RouteRules are evaluated in order of priority, from the
14840	// lowest to highest number. The priority of a rule decreases as its
14841	// number increases (1, 2, 3, N+1). The first rule that matches the
14842	// request is applied. You cannot configure two or more routeRules with
14843	// the same priority. Priority for each rule must be set to a number
14844	// between 0 and 2147483647 inclusive. Priority numbers can have gaps,
14845	// which enable you to add or remove rules in the future without
14846	// affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12,
14847	// 16 is a valid series of priority numbers to which you could add rules
14848	// numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without
14849	// any impact on existing rules.
14850	Priority int64 `json:"priority,omitempty"`
14851
14852	// RouteAction: In response to a matching matchRule, the load balancer
14853	// performs advanced routing actions like URL rewrites, header
14854	// transformations, etc. prior to forwarding the request to the selected
14855	// backend. If routeAction specifies any weightedBackendServices,
14856	// service must not be set. Conversely if service is set, routeAction
14857	// cannot contain any weightedBackendServices. Only one of urlRedirect,
14858	// service or routeAction.weightedBackendService must be set. UrlMaps
14859	// for external HTTP(S) load balancers support only the urlRewrite
14860	// action within a routeRule's routeAction.
14861	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
14862
14863	// Service: The full or partial URL of the backend service resource to
14864	// which traffic is directed if this rule is matched. If routeAction is
14865	// additionally specified, advanced routing actions like URL Rewrites,
14866	// etc. take effect prior to sending the request to the backend.
14867	// However, if service is specified, routeAction cannot contain any
14868	// weightedBackendService s. Conversely, if routeAction specifies any
14869	// weightedBackendServices, service must not be specified. Only one of
14870	// urlRedirect, service or routeAction.weightedBackendService must be
14871	// set.
14872	Service string `json:"service,omitempty"`
14873
14874	// UrlRedirect: When this rule is matched, the request is redirected to
14875	// a URL specified by urlRedirect. If urlRedirect is specified, service
14876	// or routeAction must not be set. Not supported when the URL map is
14877	// bound to target gRPC proxy.
14878	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
14879
14880	// ForceSendFields is a list of field names (e.g. "Description") to
14881	// unconditionally include in API requests. By default, fields with
14882	// empty or default values are omitted from API requests. However, any
14883	// non-pointer, non-interface field appearing in ForceSendFields will be
14884	// sent to the server regardless of whether the field is empty or not.
14885	// This may be used to include empty fields in Patch requests.
14886	ForceSendFields []string `json:"-"`
14887
14888	// NullFields is a list of field names (e.g. "Description") to include
14889	// in API requests with the JSON null value. By default, fields with
14890	// empty values are omitted from API requests. However, any field with
14891	// an empty value appearing in NullFields will be sent to the server as
14892	// null. It is an error if a field in this list has a non-empty value.
14893	// This may be used to include null fields in Patch requests.
14894	NullFields []string `json:"-"`
14895}
14896
14897func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
14898	type NoMethod HttpRouteRule
14899	raw := NoMethod(*s)
14900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14901}
14902
14903// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
14904// for matching requests to an HttpRouteRule. All specified criteria
14905// must be satisfied for a match to occur.
14906type HttpRouteRuleMatch struct {
14907	// FullPathMatch: For satisfying the matchRule condition, the path of
14908	// the request must exactly match the value specified in fullPathMatch
14909	// after removing any query parameters and anchor that may be part of
14910	// the original URL. fullPathMatch must be between 1 and 1024
14911	// characters. Only one of prefixMatch, fullPathMatch or regexMatch must
14912	// be specified.
14913	FullPathMatch string `json:"fullPathMatch,omitempty"`
14914
14915	// HeaderMatches: Specifies a list of header match criteria, all of
14916	// which must match corresponding headers in the request.
14917	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
14918
14919	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
14920	// case sensitive. The default value is false. ignoreCase must not be
14921	// used with regexMatch. Not supported when the URL map is bound to
14922	// target gRPC proxy.
14923	IgnoreCase bool `json:"ignoreCase,omitempty"`
14924
14925	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
14926	// restrict routing configuration to a limited set of xDS compliant
14927	// clients. In their xDS requests to Loadbalancer, xDS clients present
14928	// node metadata. When there is a match, the relevant routing
14929	// configuration is made available to those proxies. For each
14930	// metadataFilter in this list, if its filterMatchCriteria is set to
14931	// MATCH_ANY, at least one of the filterLabels must match the
14932	// corresponding label provided in the metadata. If its
14933	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
14934	// must match with corresponding labels provided in the metadata. If
14935	// multiple metadataFilters are specified, all of them need to be
14936	// satisfied in order to be considered a match. metadataFilters
14937	// specified here will be applied after those specified in
14938	// ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
14939	// belongs to. metadataFilters only applies to Loadbalancers that have
14940	// their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported
14941	// when the URL map is bound to target gRPC proxy that has
14942	// validateForProxyless field set to true.
14943	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
14944
14945	// PrefixMatch: For satisfying the matchRule condition, the request's
14946	// path must begin with the specified prefixMatch. prefixMatch must
14947	// begin with a /. The value must be between 1 and 1024 characters. Only
14948	// one of prefixMatch, fullPathMatch or regexMatch must be specified.
14949	PrefixMatch string `json:"prefixMatch,omitempty"`
14950
14951	// QueryParameterMatches: Specifies a list of query parameter match
14952	// criteria, all of which must match corresponding query parameters in
14953	// the request. Not supported when the URL map is bound to target gRPC
14954	// proxy.
14955	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
14956
14957	// RegexMatch: For satisfying the matchRule condition, the path of the
14958	// request must satisfy the regular expression specified in regexMatch
14959	// after removing any query parameters and anchor supplied with the
14960	// original URL. For regular expression grammar please see
14961	// github.com/google/re2/wiki/Syntax Only one of prefixMatch,
14962	// fullPathMatch or regexMatch must be specified. Note that regexMatch
14963	// only applies to Loadbalancers that have their loadBalancingScheme set
14964	// to INTERNAL_SELF_MANAGED.
14965	RegexMatch string `json:"regexMatch,omitempty"`
14966
14967	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
14968	// unconditionally include in API requests. By default, fields with
14969	// empty or default values are omitted from API requests. However, any
14970	// non-pointer, non-interface field appearing in ForceSendFields will be
14971	// sent to the server regardless of whether the field is empty or not.
14972	// This may be used to include empty fields in Patch requests.
14973	ForceSendFields []string `json:"-"`
14974
14975	// NullFields is a list of field names (e.g. "FullPathMatch") to include
14976	// in API requests with the JSON null value. By default, fields with
14977	// empty values are omitted from API requests. However, any field with
14978	// an empty value appearing in NullFields will be sent to the server as
14979	// null. It is an error if a field in this list has a non-empty value.
14980	// This may be used to include null fields in Patch requests.
14981	NullFields []string `json:"-"`
14982}
14983
14984func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
14985	type NoMethod HttpRouteRuleMatch
14986	raw := NoMethod(*s)
14987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14988}
14989
14990// HttpsHealthCheck: Represents a legacy HTTPS Health Check resource.
14991// Legacy HTTPS health checks have been deprecated. If you are using a
14992// target pool-based network load balancer, you must use a legacy HTTP
14993// (not HTTPS) health check. For all other load balancers, including
14994// backend service-based network load balancers, and for managed
14995// instance group auto-healing, you must use modern (non-legacy) health
14996// checks. For more information, see Health checks overview .
14997type HttpsHealthCheck struct {
14998	// CheckIntervalSec: How often (in seconds) to send a health check. The
14999	// default value is 5 seconds.
15000	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
15001
15002	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15003	// format.
15004	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15005
15006	// Description: An optional description of this resource. Provide this
15007	// property when you create the resource.
15008	Description string `json:"description,omitempty"`
15009
15010	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
15011	// after this many consecutive successes. The default value is 2.
15012	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
15013
15014	// Host: The value of the host header in the HTTPS health check request.
15015	// If left empty (default value), the public IP on behalf of which this
15016	// health check is performed will be used.
15017	Host string `json:"host,omitempty"`
15018
15019	// Id: [Output Only] The unique identifier for the resource. This
15020	// identifier is defined by the server.
15021	Id uint64 `json:"id,omitempty,string"`
15022
15023	// Kind: Type of the resource.
15024	Kind string `json:"kind,omitempty"`
15025
15026	// Name: Name of the resource. Provided by the client when the resource
15027	// is created. The name must be 1-63 characters long, and comply with
15028	// RFC1035. Specifically, the name must be 1-63 characters long and
15029	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15030	// the first character must be a lowercase letter, and all following
15031	// characters must be a dash, lowercase letter, or digit, except the
15032	// last character, which cannot be a dash.
15033	Name string `json:"name,omitempty"`
15034
15035	// Port: The TCP port number for the HTTPS health check request. The
15036	// default value is 443.
15037	Port int64 `json:"port,omitempty"`
15038
15039	// RequestPath: The request path of the HTTPS health check request. The
15040	// default value is "/".
15041	RequestPath string `json:"requestPath,omitempty"`
15042
15043	// SelfLink: [Output Only] Server-defined URL for the resource.
15044	SelfLink string `json:"selfLink,omitempty"`
15045
15046	// TimeoutSec: How long (in seconds) to wait before claiming failure.
15047	// The default value is 5 seconds. It is invalid for timeoutSec to have
15048	// a greater value than checkIntervalSec.
15049	TimeoutSec int64 `json:"timeoutSec,omitempty"`
15050
15051	// UnhealthyThreshold: A so-far healthy instance will be marked
15052	// unhealthy after this many consecutive failures. The default value is
15053	// 2.
15054	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
15055
15056	// ServerResponse contains the HTTP response code and headers from the
15057	// server.
15058	googleapi.ServerResponse `json:"-"`
15059
15060	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
15061	// unconditionally include in API requests. By default, fields with
15062	// empty or default values are omitted from API requests. However, any
15063	// non-pointer, non-interface field appearing in ForceSendFields will be
15064	// sent to the server regardless of whether the field is empty or not.
15065	// This may be used to include empty fields in Patch requests.
15066	ForceSendFields []string `json:"-"`
15067
15068	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
15069	// include in API requests with the JSON null value. By default, fields
15070	// with empty values are omitted from API requests. However, any field
15071	// with an empty value appearing in NullFields will be sent to the
15072	// server as null. It is an error if a field in this list has a
15073	// non-empty value. This may be used to include null fields in Patch
15074	// requests.
15075	NullFields []string `json:"-"`
15076}
15077
15078func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
15079	type NoMethod HttpsHealthCheck
15080	raw := NoMethod(*s)
15081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15082}
15083
15084// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
15085type HttpsHealthCheckList struct {
15086	// Id: [Output Only] Unique identifier for the resource; defined by the
15087	// server.
15088	Id string `json:"id,omitempty"`
15089
15090	// Items: A list of HttpsHealthCheck resources.
15091	Items []*HttpsHealthCheck `json:"items,omitempty"`
15092
15093	// Kind: Type of resource.
15094	Kind string `json:"kind,omitempty"`
15095
15096	// NextPageToken: [Output Only] This token allows you to get the next
15097	// page of results for list requests. If the number of results is larger
15098	// than maxResults, use the nextPageToken as a value for the query
15099	// parameter pageToken in the next list request. Subsequent list
15100	// requests will have their own nextPageToken to continue paging through
15101	// the results.
15102	NextPageToken string `json:"nextPageToken,omitempty"`
15103
15104	// SelfLink: [Output Only] Server-defined URL for this resource.
15105	SelfLink string `json:"selfLink,omitempty"`
15106
15107	// Warning: [Output Only] Informational warning message.
15108	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
15109
15110	// ServerResponse contains the HTTP response code and headers from the
15111	// server.
15112	googleapi.ServerResponse `json:"-"`
15113
15114	// ForceSendFields is a list of field names (e.g. "Id") to
15115	// unconditionally include in API requests. By default, fields with
15116	// empty or default values are omitted from API requests. However, any
15117	// non-pointer, non-interface field appearing in ForceSendFields will be
15118	// sent to the server regardless of whether the field is empty or not.
15119	// This may be used to include empty fields in Patch requests.
15120	ForceSendFields []string `json:"-"`
15121
15122	// NullFields is a list of field names (e.g. "Id") to include in API
15123	// requests with the JSON null value. By default, fields with empty
15124	// values are omitted from API requests. However, any field with an
15125	// empty value appearing in NullFields will be sent to the server as
15126	// null. It is an error if a field in this list has a non-empty value.
15127	// This may be used to include null fields in Patch requests.
15128	NullFields []string `json:"-"`
15129}
15130
15131func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
15132	type NoMethod HttpsHealthCheckList
15133	raw := NoMethod(*s)
15134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15135}
15136
15137// HttpsHealthCheckListWarning: [Output Only] Informational warning
15138// message.
15139type HttpsHealthCheckListWarning struct {
15140	// Code: [Output Only] A warning code, if applicable. For example,
15141	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15142	// the response.
15143	//
15144	// Possible values:
15145	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
15146	// changes made by a failed operation.
15147	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
15148	// created.
15149	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
15150	// resources has a type marked as deprecated
15151	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
15152	// that is larger than image size.
15153	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
15154	// resources has a type marked as experimental
15155	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
15156	// call
15157	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
15158	// overridden. Deprecated unused field.
15159	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
15160	// injected kernel, which is deprecated.
15161	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
15162	// exceedingly large number of resources
15163	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
15164	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
15165	// not assigned to an instance on the network.
15166	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
15167	// ip forward.
15168	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
15169	// refers to an instance that does not exist.
15170	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
15171	// URL refers to an instance that is not on the same network as the
15172	// route.
15173	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
15174	// have a status of RUNNING.
15175	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
15176	// continue the process despite the mentioned error.
15177	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
15178	// page.
15179	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
15180	// missing due to errors
15181	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
15182	// that requires a TOS they have not accepted.
15183	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
15184	// resource is in use.
15185	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
15186	// auto-delete could not be deleted because they were in use.
15187	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
15188	// ignored.
15189	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
15190	// instance group manager is valid as such, but its application does not
15191	// make a lot of sense, because it allows only single instance in
15192	// instance group.
15193	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
15194	// are present
15195	//   "UNREACHABLE" - A given scope cannot be reached.
15196	Code string `json:"code,omitempty"`
15197
15198	// Data: [Output Only] Metadata about this warning in key: value format.
15199	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
15200	// }
15201	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
15202
15203	// Message: [Output Only] A human-readable description of the warning
15204	// code.
15205	Message string `json:"message,omitempty"`
15206
15207	// ForceSendFields is a list of field names (e.g. "Code") to
15208	// unconditionally include in API requests. By default, fields with
15209	// empty or default values are omitted from API requests. However, any
15210	// non-pointer, non-interface field appearing in ForceSendFields will be
15211	// sent to the server regardless of whether the field is empty or not.
15212	// This may be used to include empty fields in Patch requests.
15213	ForceSendFields []string `json:"-"`
15214
15215	// NullFields is a list of field names (e.g. "Code") to include in API
15216	// requests with the JSON null value. By default, fields with empty
15217	// values are omitted from API requests. However, any field with an
15218	// empty value appearing in NullFields will be sent to the server as
15219	// null. It is an error if a field in this list has a non-empty value.
15220	// This may be used to include null fields in Patch requests.
15221	NullFields []string `json:"-"`
15222}
15223
15224func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
15225	type NoMethod HttpsHealthCheckListWarning
15226	raw := NoMethod(*s)
15227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15228}
15229
15230type HttpsHealthCheckListWarningData struct {
15231	// Key: [Output Only] A key that provides more detail on the warning
15232	// being returned. For example, for warnings where there are no results
15233	// in a list request for a particular zone, this key might be scope and
15234	// the key value might be the zone name. Other examples might be a key
15235	// indicating a deprecated resource and a suggested replacement, or a
15236	// warning about invalid network settings (for example, if an instance
15237	// attempts to perform IP forwarding but is not enabled for IP
15238	// forwarding).
15239	Key string `json:"key,omitempty"`
15240
15241	// Value: [Output Only] A warning data value corresponding to the key.
15242	Value string `json:"value,omitempty"`
15243
15244	// ForceSendFields is a list of field names (e.g. "Key") to
15245	// unconditionally include in API requests. By default, fields with
15246	// empty or default values are omitted from API requests. However, any
15247	// non-pointer, non-interface field appearing in ForceSendFields will be
15248	// sent to the server regardless of whether the field is empty or not.
15249	// This may be used to include empty fields in Patch requests.
15250	ForceSendFields []string `json:"-"`
15251
15252	// NullFields is a list of field names (e.g. "Key") to include in API
15253	// requests with the JSON null value. By default, fields with empty
15254	// values are omitted from API requests. However, any field with an
15255	// empty value appearing in NullFields will be sent to the server as
15256	// null. It is an error if a field in this list has a non-empty value.
15257	// This may be used to include null fields in Patch requests.
15258	NullFields []string `json:"-"`
15259}
15260
15261func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
15262	type NoMethod HttpsHealthCheckListWarningData
15263	raw := NoMethod(*s)
15264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15265}
15266
15267// Image: Represents an Image resource. You can use images to create
15268// boot disks for your VM instances. For more information, read Images.
15269type Image struct {
15270	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
15271	// Cloud Storage (in bytes).
15272	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
15273
15274	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15275	// format.
15276	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15277
15278	// Deprecated -- The deprecation status associated with this image.
15279	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15280
15281	// Description: An optional description of this resource. Provide this
15282	// property when you create the resource.
15283	Description string `json:"description,omitempty"`
15284
15285	// DiskSizeGb: Size of the image when restored onto a persistent disk
15286	// (in GB).
15287	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
15288
15289	// Family: The name of the image family to which this image belongs. You
15290	// can create disks by specifying an image family instead of a specific
15291	// image name. The image family always returns its latest image that is
15292	// not deprecated. The name of the image family must comply with
15293	// RFC1035.
15294	Family string `json:"family,omitempty"`
15295
15296	// GuestOsFeatures: A list of features to enable on the guest operating
15297	// system. Applicable only for bootable images. Read Enabling guest
15298	// operating system features to see a list of available options.
15299	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
15300
15301	// Id: [Output Only] The unique identifier for the resource. This
15302	// identifier is defined by the server.
15303	Id uint64 `json:"id,omitempty,string"`
15304
15305	// ImageEncryptionKey: Encrypts the image using a customer-supplied
15306	// encryption key. After you encrypt an image with a customer-supplied
15307	// key, you must provide the same key if you use the image later (e.g.
15308	// to create a disk from the image). Customer-supplied encryption keys
15309	// do not protect access to metadata of the disk. If you do not provide
15310	// an encryption key when creating the image, then the disk will be
15311	// encrypted using an automatically generated key and you do not need to
15312	// provide a key to use the image later.
15313	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
15314
15315	// Kind: [Output Only] Type of the resource. Always compute#image for
15316	// images.
15317	Kind string `json:"kind,omitempty"`
15318
15319	// LabelFingerprint: A fingerprint for the labels being applied to this
15320	// image, which is essentially a hash of the labels used for optimistic
15321	// locking. The fingerprint is initially generated by Compute Engine and
15322	// changes after every request to modify or update labels. You must
15323	// always provide an up-to-date fingerprint hash in order to update or
15324	// change labels, otherwise the request will fail with error 412
15325	// conditionNotMet. To see the latest fingerprint, make a get() request
15326	// to retrieve an image.
15327	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15328
15329	// Labels: Labels to apply to this image. These can be later modified by
15330	// the setLabels method.
15331	Labels map[string]string `json:"labels,omitempty"`
15332
15333	// LicenseCodes: Integer license codes indicating which licenses are
15334	// attached to this image.
15335	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
15336
15337	// Licenses: Any applicable license URI.
15338	Licenses []string `json:"licenses,omitempty"`
15339
15340	// Name: Name of the resource; provided by the client when the resource
15341	// is created. The name must be 1-63 characters long, and comply with
15342	// RFC1035. Specifically, the name must be 1-63 characters long and
15343	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15344	// the first character must be a lowercase letter, and all following
15345	// characters must be a dash, lowercase letter, or digit, except the
15346	// last character, which cannot be a dash.
15347	Name string `json:"name,omitempty"`
15348
15349	// RawDisk: The parameters of the raw disk image.
15350	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
15351
15352	// SatisfiesPzs: [Output Only] Reserved for future use.
15353	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15354
15355	// SelfLink: [Output Only] Server-defined URL for the resource.
15356	SelfLink string `json:"selfLink,omitempty"`
15357
15358	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
15359	// instance.
15360	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
15361
15362	// SourceDisk: URL of the source disk used to create this image. For
15363	// example, the following are valid values: -
15364	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
15365	// /disks/disk - projects/project/zones/zone/disks/disk -
15366	// zones/zone/disks/disk In order to create an image, you must provide
15367	// the full or partial URL of one of the following: - The rawDisk.source
15368	// URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot
15369	// URL
15370	SourceDisk string `json:"sourceDisk,omitempty"`
15371
15372	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
15373	// source disk. Required if the source disk is protected by a
15374	// customer-supplied encryption key.
15375	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
15376
15377	// SourceDiskId: [Output Only] The ID value of the disk used to create
15378	// this image. This value may be used to determine whether the image was
15379	// taken from the current or a previous instance of a given disk name.
15380	SourceDiskId string `json:"sourceDiskId,omitempty"`
15381
15382	// SourceImage: URL of the source image used to create this image. The
15383	// following are valid formats for the URL: -
15384	// https://www.googleapis.com/compute/v1/projects/project_id/global/
15385	// images/image_name - projects/project_id/global/images/image_name In
15386	// order to create an image, you must provide the full or partial URL of
15387	// one of the following: - The rawDisk.source URL - The sourceDisk URL -
15388	// The sourceImage URL - The sourceSnapshot URL
15389	SourceImage string `json:"sourceImage,omitempty"`
15390
15391	// SourceImageEncryptionKey: The customer-supplied encryption key of the
15392	// source image. Required if the source image is protected by a
15393	// customer-supplied encryption key.
15394	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
15395
15396	// SourceImageId: [Output Only] The ID value of the image used to create
15397	// this image. This value may be used to determine whether the image was
15398	// taken from the current or a previous instance of a given image name.
15399	SourceImageId string `json:"sourceImageId,omitempty"`
15400
15401	// SourceSnapshot: URL of the source snapshot used to create this image.
15402	// The following are valid formats for the URL: -
15403	// https://www.googleapis.com/compute/v1/projects/project_id/global/
15404	// snapshots/snapshot_name -
15405	// projects/project_id/global/snapshots/snapshot_name In order to create
15406	// an image, you must provide the full or partial URL of one of the
15407	// following: - The rawDisk.source URL - The sourceDisk URL - The
15408	// sourceImage URL - The sourceSnapshot URL
15409	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
15410
15411	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
15412	// the source snapshot. Required if the source snapshot is protected by
15413	// a customer-supplied encryption key.
15414	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
15415
15416	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
15417	// create this image. This value may be used to determine whether the
15418	// snapshot was taken from the current or a previous instance of a given
15419	// snapshot name.
15420	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
15421
15422	// SourceType: The type of the image used to create this disk. The
15423	// default and only value is RAW
15424	//
15425	// Possible values:
15426	//   "RAW" (default)
15427	SourceType string `json:"sourceType,omitempty"`
15428
15429	// Status: [Output Only] The status of the image. An image can be used
15430	// to create other resources, such as instances, only after the image
15431	// has been successfully created and the status is set to READY.
15432	// Possible values are FAILED, PENDING, or READY.
15433	//
15434	// Possible values:
15435	//   "DELETING" - Image is deleting.
15436	//   "FAILED" - Image creation failed due to an error.
15437	//   "PENDING" - Image hasn't been created as yet.
15438	//   "READY" - Image has been successfully created.
15439	Status string `json:"status,omitempty"`
15440
15441	// StorageLocations: Cloud Storage bucket storage location of the image
15442	// (regional or multi-regional).
15443	StorageLocations []string `json:"storageLocations,omitempty"`
15444
15445	// ServerResponse contains the HTTP response code and headers from the
15446	// server.
15447	googleapi.ServerResponse `json:"-"`
15448
15449	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
15450	// unconditionally include in API requests. By default, fields with
15451	// empty or default values are omitted from API requests. However, any
15452	// non-pointer, non-interface field appearing in ForceSendFields will be
15453	// sent to the server regardless of whether the field is empty or not.
15454	// This may be used to include empty fields in Patch requests.
15455	ForceSendFields []string `json:"-"`
15456
15457	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
15458	// include in API requests with the JSON null value. By default, fields
15459	// with empty values are omitted from API requests. However, any field
15460	// with an empty value appearing in NullFields will be sent to the
15461	// server as null. It is an error if a field in this list has a
15462	// non-empty value. This may be used to include null fields in Patch
15463	// requests.
15464	NullFields []string `json:"-"`
15465}
15466
15467func (s *Image) MarshalJSON() ([]byte, error) {
15468	type NoMethod Image
15469	raw := NoMethod(*s)
15470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15471}
15472
15473// ImageRawDisk: The parameters of the raw disk image.
15474type ImageRawDisk struct {
15475	// ContainerType: The format used to encode and transmit the block
15476	// device, which should be TAR. This is just a container and
15477	// transmission format and not a runtime format. Provided by the client
15478	// when the disk image is created.
15479	//
15480	// Possible values:
15481	//   "TAR"
15482	ContainerType string `json:"containerType,omitempty"`
15483
15484	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
15485	// checksum of the disk image before unpackaging provided by the client
15486	// when the disk image is created.
15487	Sha1Checksum string `json:"sha1Checksum,omitempty"`
15488
15489	// Source: The full Google Cloud Storage URL where the raw disk image
15490	// archive is stored. The following are valid formats for the URL: -
15491	// https://storage.googleapis.com/bucket_name/image_archive_name -
15492	// https://storage.googleapis.com/bucket_name/folder_name/
15493	// image_archive_name In order to create an image, you must provide the
15494	// full or partial URL of one of the following: - The rawDisk.source URL
15495	// - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
15496	Source string `json:"source,omitempty"`
15497
15498	// ForceSendFields is a list of field names (e.g. "ContainerType") to
15499	// unconditionally include in API requests. By default, fields with
15500	// empty or default values are omitted from API requests. However, any
15501	// non-pointer, non-interface field appearing in ForceSendFields will be
15502	// sent to the server regardless of whether the field is empty or not.
15503	// This may be used to include empty fields in Patch requests.
15504	ForceSendFields []string `json:"-"`
15505
15506	// NullFields is a list of field names (e.g. "ContainerType") to include
15507	// in API requests with the JSON null value. By default, fields with
15508	// empty values are omitted from API requests. However, any field with
15509	// an empty value appearing in NullFields will be sent to the server as
15510	// null. It is an error if a field in this list has a non-empty value.
15511	// This may be used to include null fields in Patch requests.
15512	NullFields []string `json:"-"`
15513}
15514
15515func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
15516	type NoMethod ImageRawDisk
15517	raw := NoMethod(*s)
15518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15519}
15520
15521type ImageFamilyView struct {
15522	// Image: The latest image that is part of the specified image family in
15523	// the requested location, and that is not deprecated.
15524	Image *Image `json:"image,omitempty"`
15525
15526	// ServerResponse contains the HTTP response code and headers from the
15527	// server.
15528	googleapi.ServerResponse `json:"-"`
15529
15530	// ForceSendFields is a list of field names (e.g. "Image") to
15531	// unconditionally include in API requests. By default, fields with
15532	// empty or default values are omitted from API requests. However, any
15533	// non-pointer, non-interface field appearing in ForceSendFields will be
15534	// sent to the server regardless of whether the field is empty or not.
15535	// This may be used to include empty fields in Patch requests.
15536	ForceSendFields []string `json:"-"`
15537
15538	// NullFields is a list of field names (e.g. "Image") to include in API
15539	// requests with the JSON null value. By default, fields with empty
15540	// values are omitted from API requests. However, any field with an
15541	// empty value appearing in NullFields will be sent to the server as
15542	// null. It is an error if a field in this list has a non-empty value.
15543	// This may be used to include null fields in Patch requests.
15544	NullFields []string `json:"-"`
15545}
15546
15547func (s *ImageFamilyView) MarshalJSON() ([]byte, error) {
15548	type NoMethod ImageFamilyView
15549	raw := NoMethod(*s)
15550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15551}
15552
15553// ImageList: Contains a list of images.
15554type ImageList struct {
15555	// Id: [Output Only] Unique identifier for the resource; defined by the
15556	// server.
15557	Id string `json:"id,omitempty"`
15558
15559	// Items: A list of Image resources.
15560	Items []*Image `json:"items,omitempty"`
15561
15562	// Kind: Type of resource.
15563	Kind string `json:"kind,omitempty"`
15564
15565	// NextPageToken: [Output Only] This token allows you to get the next
15566	// page of results for list requests. If the number of results is larger
15567	// than maxResults, use the nextPageToken as a value for the query
15568	// parameter pageToken in the next list request. Subsequent list
15569	// requests will have their own nextPageToken to continue paging through
15570	// the results.
15571	NextPageToken string `json:"nextPageToken,omitempty"`
15572
15573	// SelfLink: [Output Only] Server-defined URL for this resource.
15574	SelfLink string `json:"selfLink,omitempty"`
15575
15576	// Warning: [Output Only] Informational warning message.
15577	Warning *ImageListWarning `json:"warning,omitempty"`
15578
15579	// ServerResponse contains the HTTP response code and headers from the
15580	// server.
15581	googleapi.ServerResponse `json:"-"`
15582
15583	// ForceSendFields is a list of field names (e.g. "Id") to
15584	// unconditionally include in API requests. By default, fields with
15585	// empty or default values are omitted from API requests. However, any
15586	// non-pointer, non-interface field appearing in ForceSendFields will be
15587	// sent to the server regardless of whether the field is empty or not.
15588	// This may be used to include empty fields in Patch requests.
15589	ForceSendFields []string `json:"-"`
15590
15591	// NullFields is a list of field names (e.g. "Id") to include in API
15592	// requests with the JSON null value. By default, fields with empty
15593	// values are omitted from API requests. However, any field with an
15594	// empty value appearing in NullFields will be sent to the server as
15595	// null. It is an error if a field in this list has a non-empty value.
15596	// This may be used to include null fields in Patch requests.
15597	NullFields []string `json:"-"`
15598}
15599
15600func (s *ImageList) MarshalJSON() ([]byte, error) {
15601	type NoMethod ImageList
15602	raw := NoMethod(*s)
15603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15604}
15605
15606// ImageListWarning: [Output Only] Informational warning message.
15607type ImageListWarning struct {
15608	// Code: [Output Only] A warning code, if applicable. For example,
15609	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15610	// the response.
15611	//
15612	// Possible values:
15613	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
15614	// changes made by a failed operation.
15615	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
15616	// created.
15617	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
15618	// resources has a type marked as deprecated
15619	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
15620	// that is larger than image size.
15621	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
15622	// resources has a type marked as experimental
15623	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
15624	// call
15625	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
15626	// overridden. Deprecated unused field.
15627	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
15628	// injected kernel, which is deprecated.
15629	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
15630	// exceedingly large number of resources
15631	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
15632	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
15633	// not assigned to an instance on the network.
15634	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
15635	// ip forward.
15636	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
15637	// refers to an instance that does not exist.
15638	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
15639	// URL refers to an instance that is not on the same network as the
15640	// route.
15641	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
15642	// have a status of RUNNING.
15643	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
15644	// continue the process despite the mentioned error.
15645	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
15646	// page.
15647	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
15648	// missing due to errors
15649	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
15650	// that requires a TOS they have not accepted.
15651	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
15652	// resource is in use.
15653	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
15654	// auto-delete could not be deleted because they were in use.
15655	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
15656	// ignored.
15657	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
15658	// instance group manager is valid as such, but its application does not
15659	// make a lot of sense, because it allows only single instance in
15660	// instance group.
15661	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
15662	// are present
15663	//   "UNREACHABLE" - A given scope cannot be reached.
15664	Code string `json:"code,omitempty"`
15665
15666	// Data: [Output Only] Metadata about this warning in key: value format.
15667	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
15668	// }
15669	Data []*ImageListWarningData `json:"data,omitempty"`
15670
15671	// Message: [Output Only] A human-readable description of the warning
15672	// code.
15673	Message string `json:"message,omitempty"`
15674
15675	// ForceSendFields is a list of field names (e.g. "Code") to
15676	// unconditionally include in API requests. By default, fields with
15677	// empty or default values are omitted from API requests. However, any
15678	// non-pointer, non-interface field appearing in ForceSendFields will be
15679	// sent to the server regardless of whether the field is empty or not.
15680	// This may be used to include empty fields in Patch requests.
15681	ForceSendFields []string `json:"-"`
15682
15683	// NullFields is a list of field names (e.g. "Code") to include in API
15684	// requests with the JSON null value. By default, fields with empty
15685	// values are omitted from API requests. However, any field with an
15686	// empty value appearing in NullFields will be sent to the server as
15687	// null. It is an error if a field in this list has a non-empty value.
15688	// This may be used to include null fields in Patch requests.
15689	NullFields []string `json:"-"`
15690}
15691
15692func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
15693	type NoMethod ImageListWarning
15694	raw := NoMethod(*s)
15695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15696}
15697
15698type ImageListWarningData struct {
15699	// Key: [Output Only] A key that provides more detail on the warning
15700	// being returned. For example, for warnings where there are no results
15701	// in a list request for a particular zone, this key might be scope and
15702	// the key value might be the zone name. Other examples might be a key
15703	// indicating a deprecated resource and a suggested replacement, or a
15704	// warning about invalid network settings (for example, if an instance
15705	// attempts to perform IP forwarding but is not enabled for IP
15706	// forwarding).
15707	Key string `json:"key,omitempty"`
15708
15709	// Value: [Output Only] A warning data value corresponding to the key.
15710	Value string `json:"value,omitempty"`
15711
15712	// ForceSendFields is a list of field names (e.g. "Key") to
15713	// unconditionally include in API requests. By default, fields with
15714	// empty or default values are omitted from API requests. However, any
15715	// non-pointer, non-interface field appearing in ForceSendFields will be
15716	// sent to the server regardless of whether the field is empty or not.
15717	// This may be used to include empty fields in Patch requests.
15718	ForceSendFields []string `json:"-"`
15719
15720	// NullFields is a list of field names (e.g. "Key") to include in API
15721	// requests with the JSON null value. By default, fields with empty
15722	// values are omitted from API requests. However, any field with an
15723	// empty value appearing in NullFields will be sent to the server as
15724	// null. It is an error if a field in this list has a non-empty value.
15725	// This may be used to include null fields in Patch requests.
15726	NullFields []string `json:"-"`
15727}
15728
15729func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
15730	type NoMethod ImageListWarningData
15731	raw := NoMethod(*s)
15732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15733}
15734
15735// InitialStateConfig: Initial State for shielded instance, these are
15736// public keys which are safe to store in public
15737type InitialStateConfig struct {
15738	// Dbs: The Key Database (db).
15739	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
15740
15741	// Dbxs: The forbidden key database (dbx).
15742	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
15743
15744	// Keks: The Key Exchange Key (KEK).
15745	Keks []*FileContentBuffer `json:"keks,omitempty"`
15746
15747	// Pk: The Platform Key (PK).
15748	Pk *FileContentBuffer `json:"pk,omitempty"`
15749
15750	// ForceSendFields is a list of field names (e.g. "Dbs") to
15751	// unconditionally include in API requests. By default, fields with
15752	// empty or default values are omitted from API requests. However, any
15753	// non-pointer, non-interface field appearing in ForceSendFields will be
15754	// sent to the server regardless of whether the field is empty or not.
15755	// This may be used to include empty fields in Patch requests.
15756	ForceSendFields []string `json:"-"`
15757
15758	// NullFields is a list of field names (e.g. "Dbs") to include in API
15759	// requests with the JSON null value. By default, fields with empty
15760	// values are omitted from API requests. However, any field with an
15761	// empty value appearing in NullFields will be sent to the server as
15762	// null. It is an error if a field in this list has a non-empty value.
15763	// This may be used to include null fields in Patch requests.
15764	NullFields []string `json:"-"`
15765}
15766
15767func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
15768	type NoMethod InitialStateConfig
15769	raw := NoMethod(*s)
15770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15771}
15772
15773// Instance: Represents an Instance resource. An instance is a virtual
15774// machine that is hosted on Google Cloud Platform. For more
15775// information, read Virtual Machine Instances.
15776type Instance struct {
15777	// AdvancedMachineFeatures: Controls for advanced machine-related
15778	// behavior features.
15779	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
15780
15781	// CanIpForward: Allows this instance to send and receive packets with
15782	// non-matching destination or source IPs. This is required if you plan
15783	// to use this instance to forward routes. For more information, see
15784	// Enabling IP Forwarding .
15785	CanIpForward bool `json:"canIpForward,omitempty"`
15786
15787	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
15788
15789	// CpuPlatform: [Output Only] The CPU platform used by this instance.
15790	CpuPlatform string `json:"cpuPlatform,omitempty"`
15791
15792	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15793	// format.
15794	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15795
15796	// DeletionProtection: Whether the resource should be protected against
15797	// deletion.
15798	DeletionProtection bool `json:"deletionProtection,omitempty"`
15799
15800	// Description: An optional description of this resource. Provide this
15801	// property when you create the resource.
15802	Description string `json:"description,omitempty"`
15803
15804	// Disks: Array of disks associated with this instance. Persistent disks
15805	// must be created before you can assign them.
15806	Disks []*AttachedDisk `json:"disks,omitempty"`
15807
15808	// DisplayDevice: Enables display device for the instance.
15809	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15810
15811	// Fingerprint: Specifies a fingerprint for this resource, which is
15812	// essentially a hash of the instance's contents and used for optimistic
15813	// locking. The fingerprint is initially generated by Compute Engine and
15814	// changes after every request to modify or update the instance. You
15815	// must always provide an up-to-date fingerprint hash in order to update
15816	// the instance. To see the latest fingerprint, make get() request to
15817	// the instance.
15818	Fingerprint string `json:"fingerprint,omitempty"`
15819
15820	// GuestAccelerators: A list of the type and count of accelerator cards
15821	// attached to the instance.
15822	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15823
15824	// Hostname: Specifies the hostname of the instance. The specified
15825	// hostname must be RFC1035 compliant. If hostname is not specified, the
15826	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15827	// using the global DNS, and
15828	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15829	Hostname string `json:"hostname,omitempty"`
15830
15831	// Id: [Output Only] The unique identifier for the resource. This
15832	// identifier is defined by the server.
15833	Id uint64 `json:"id,omitempty,string"`
15834
15835	// Kind: [Output Only] Type of the resource. Always compute#instance for
15836	// instances.
15837	Kind string `json:"kind,omitempty"`
15838
15839	// LabelFingerprint: A fingerprint for this request, which is
15840	// essentially a hash of the label's contents and used for optimistic
15841	// locking. The fingerprint is initially generated by Compute Engine and
15842	// changes after every request to modify or update labels. You must
15843	// always provide an up-to-date fingerprint hash in order to update or
15844	// change labels. To see the latest fingerprint, make get() request to
15845	// the instance.
15846	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15847
15848	// Labels: Labels to apply to this instance. These can be later modified
15849	// by the setLabels method.
15850	Labels map[string]string `json:"labels,omitempty"`
15851
15852	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339
15853	// text format.
15854	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
15855
15856	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text
15857	// format.
15858	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
15859
15860	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in
15861	// RFC3339 text format.
15862	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
15863
15864	// MachineType: Full or partial URL of the machine type resource to use
15865	// for this instance, in the format:
15866	// zones/zone/machineTypes/machine-type. This is provided by the client
15867	// when the instance is created. For example, the following is a valid
15868	// partial url to a predefined machine type:
15869	// zones/us-central1-f/machineTypes/n1-standard-1 To create a custom
15870	// machine type, provide a URL to a machine type in the following
15871	// format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24,
15872	// etc), and MEMORY is the total memory for this instance. Memory must
15873	// be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of
15874	// memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For
15875	// example: zones/us-central1-f/machineTypes/custom-4-5120 For a full
15876	// list of restrictions, read the Specifications for custom machine
15877	// types.
15878	MachineType string `json:"machineType,omitempty"`
15879
15880	// Metadata: The metadata key/value pairs assigned to this instance.
15881	// This includes custom metadata and predefined keys.
15882	Metadata *Metadata `json:"metadata,omitempty"`
15883
15884	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15885	// Applicable values are the friendly names of CPU platforms, such as
15886	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15887	// Bridge".
15888	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15889
15890	// Name: The name of the resource, provided by the client when initially
15891	// creating the resource. The resource name must be 1-63 characters
15892	// long, and comply with RFC1035. Specifically, the name must be 1-63
15893	// characters long and match the regular expression
15894	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15895	// a lowercase letter, and all following characters must be a dash,
15896	// lowercase letter, or digit, except the last character, which cannot
15897	// be a dash.
15898	Name string `json:"name,omitempty"`
15899
15900	// NetworkInterfaces: An array of network configurations for this
15901	// instance. These specify how interfaces are configured to interact
15902	// with other network services, such as connecting to the internet.
15903	// Multiple interfaces are supported per instance.
15904	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15905
15906	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15907	// VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
15908	//
15909	// Possible values:
15910	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
15911	// IPv6 access to/from Google services. If specified, the subnetwork who
15912	// is attached to the instance's default network interface will be
15913	// assigned an internal IPv6 prefix if it doesn't have before.
15914	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
15915	// access from VMs in this subnet to Google services. If specified, the
15916	// subnetwork who is attached to the instance's default network
15917	// interface will be assigned an internal IPv6 prefix if it doesn't have
15918	// before.
15919	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
15920	// PrivateIpv6GoogleAccess from its subnetwork.
15921	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15922
15923	// ReservationAffinity: Specifies the reservations that this instance
15924	// can consume from.
15925	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15926
15927	// ResourcePolicies: Resource policies applied to this instance.
15928	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15929
15930	// SatisfiesPzs: [Output Only] Reserved for future use.
15931	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15932
15933	// Scheduling: Sets the scheduling options for this instance.
15934	Scheduling *Scheduling `json:"scheduling,omitempty"`
15935
15936	// SelfLink: [Output Only] Server-defined URL for this resource.
15937	SelfLink string `json:"selfLink,omitempty"`
15938
15939	// ServiceAccounts: A list of service accounts, with their specified
15940	// scopes, authorized for this instance. Only one service account per VM
15941	// instance is supported. Service accounts generate access tokens that
15942	// can be accessed through the metadata server and used to authenticate
15943	// applications on the instance. See Service Accounts for more
15944	// information.
15945	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15946
15947	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15948
15949	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15950
15951	// StartRestricted: [Output Only] Whether a VM has been restricted for
15952	// start because Compute Engine has detected suspicious activity.
15953	StartRestricted bool `json:"startRestricted,omitempty"`
15954
15955	// Status: [Output Only] The status of the instance. One of the
15956	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
15957	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
15958	// information about the status of the instance, see Instance life
15959	// cycle.
15960	//
15961	// Possible values:
15962	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
15963	// down tasks like network deprogramming, releasing quota, IP, tearing
15964	// down disks etc.
15965	//   "PROVISIONING" - Resources are being allocated for the instance.
15966	//   "REPAIRING" - The instance is in repair.
15967	//   "RUNNING" - The instance is running.
15968	//   "STAGING" - All required resources have been allocated and the
15969	// instance is being started.
15970	//   "STOPPED" - The instance has stopped successfully.
15971	//   "STOPPING" - The instance is currently stopping (either being
15972	// deleted or killed).
15973	//   "SUSPENDED" - The instance has suspended.
15974	//   "SUSPENDING" - The instance is suspending.
15975	//   "TERMINATED" - The instance has stopped (either by explicit action
15976	// or underlying failure).
15977	Status string `json:"status,omitempty"`
15978
15979	// StatusMessage: [Output Only] An optional, human-readable explanation
15980	// of the status.
15981	StatusMessage string `json:"statusMessage,omitempty"`
15982
15983	// Tags: Tags to apply to this instance. Tags are used to identify valid
15984	// sources or targets for network firewalls and are specified by the
15985	// client during instance creation. The tags can be later modified by
15986	// the setTags method. Each tag within the list must comply with
15987	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
15988	Tags *Tags `json:"tags,omitempty"`
15989
15990	// Zone: [Output Only] URL of the zone where the instance resides. You
15991	// must specify this field as part of the HTTP request URL. It is not
15992	// settable as a field in the request body.
15993	Zone string `json:"zone,omitempty"`
15994
15995	// ServerResponse contains the HTTP response code and headers from the
15996	// server.
15997	googleapi.ServerResponse `json:"-"`
15998
15999	// ForceSendFields is a list of field names (e.g.
16000	// "AdvancedMachineFeatures") to unconditionally include in API
16001	// requests. By default, fields with empty or default values are omitted
16002	// from API requests. However, any non-pointer, non-interface field
16003	// appearing in ForceSendFields will be sent to the server regardless of
16004	// whether the field is empty or not. This may be used to include empty
16005	// fields in Patch requests.
16006	ForceSendFields []string `json:"-"`
16007
16008	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
16009	// to include in API requests with the JSON null value. By default,
16010	// fields with empty values are omitted from API requests. However, any
16011	// field with an empty value appearing in NullFields will be sent to the
16012	// server as null. It is an error if a field in this list has a
16013	// non-empty value. This may be used to include null fields in Patch
16014	// requests.
16015	NullFields []string `json:"-"`
16016}
16017
16018func (s *Instance) MarshalJSON() ([]byte, error) {
16019	type NoMethod Instance
16020	raw := NoMethod(*s)
16021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16022}
16023
16024type InstanceAggregatedList struct {
16025	// Id: [Output Only] Unique identifier for the resource; defined by the
16026	// server.
16027	Id string `json:"id,omitempty"`
16028
16029	// Items: An object that contains a list of instances scoped by zone.
16030	Items map[string]InstancesScopedList `json:"items,omitempty"`
16031
16032	// Kind: [Output Only] Type of resource. Always
16033	// compute#instanceAggregatedList for aggregated lists of Instance
16034	// resources.
16035	Kind string `json:"kind,omitempty"`
16036
16037	// NextPageToken: [Output Only] This token allows you to get the next
16038	// page of results for list requests. If the number of results is larger
16039	// than maxResults, use the nextPageToken as a value for the query
16040	// parameter pageToken in the next list request. Subsequent list
16041	// requests will have their own nextPageToken to continue paging through
16042	// the results.
16043	NextPageToken string `json:"nextPageToken,omitempty"`
16044
16045	// SelfLink: [Output Only] Server-defined URL for this resource.
16046	SelfLink string `json:"selfLink,omitempty"`
16047
16048	// Unreachables: [Output Only] Unreachable resources.
16049	Unreachables []string `json:"unreachables,omitempty"`
16050
16051	// Warning: [Output Only] Informational warning message.
16052	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
16053
16054	// ServerResponse contains the HTTP response code and headers from the
16055	// server.
16056	googleapi.ServerResponse `json:"-"`
16057
16058	// ForceSendFields is a list of field names (e.g. "Id") to
16059	// unconditionally include in API requests. By default, fields with
16060	// empty or default values are omitted from API requests. However, any
16061	// non-pointer, non-interface field appearing in ForceSendFields will be
16062	// sent to the server regardless of whether the field is empty or not.
16063	// This may be used to include empty fields in Patch requests.
16064	ForceSendFields []string `json:"-"`
16065
16066	// NullFields is a list of field names (e.g. "Id") to include in API
16067	// requests with the JSON null value. By default, fields with empty
16068	// values are omitted from API requests. However, any field with an
16069	// empty value appearing in NullFields will be sent to the server as
16070	// null. It is an error if a field in this list has a non-empty value.
16071	// This may be used to include null fields in Patch requests.
16072	NullFields []string `json:"-"`
16073}
16074
16075func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
16076	type NoMethod InstanceAggregatedList
16077	raw := NoMethod(*s)
16078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16079}
16080
16081// InstanceAggregatedListWarning: [Output Only] Informational warning
16082// message.
16083type InstanceAggregatedListWarning struct {
16084	// Code: [Output Only] A warning code, if applicable. For example,
16085	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16086	// the response.
16087	//
16088	// Possible values:
16089	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16090	// changes made by a failed operation.
16091	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16092	// created.
16093	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16094	// resources has a type marked as deprecated
16095	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16096	// that is larger than image size.
16097	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16098	// resources has a type marked as experimental
16099	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16100	// call
16101	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16102	// overridden. Deprecated unused field.
16103	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16104	// injected kernel, which is deprecated.
16105	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16106	// exceedingly large number of resources
16107	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16108	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16109	// not assigned to an instance on the network.
16110	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16111	// ip forward.
16112	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16113	// refers to an instance that does not exist.
16114	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16115	// URL refers to an instance that is not on the same network as the
16116	// route.
16117	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16118	// have a status of RUNNING.
16119	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16120	// continue the process despite the mentioned error.
16121	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16122	// page.
16123	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16124	// missing due to errors
16125	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16126	// that requires a TOS they have not accepted.
16127	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16128	// resource is in use.
16129	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16130	// auto-delete could not be deleted because they were in use.
16131	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16132	// ignored.
16133	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16134	// instance group manager is valid as such, but its application does not
16135	// make a lot of sense, because it allows only single instance in
16136	// instance group.
16137	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16138	// are present
16139	//   "UNREACHABLE" - A given scope cannot be reached.
16140	Code string `json:"code,omitempty"`
16141
16142	// Data: [Output Only] Metadata about this warning in key: value format.
16143	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16144	// }
16145	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
16146
16147	// Message: [Output Only] A human-readable description of the warning
16148	// code.
16149	Message string `json:"message,omitempty"`
16150
16151	// ForceSendFields is a list of field names (e.g. "Code") to
16152	// unconditionally include in API requests. By default, fields with
16153	// empty or default values are omitted from API requests. However, any
16154	// non-pointer, non-interface field appearing in ForceSendFields will be
16155	// sent to the server regardless of whether the field is empty or not.
16156	// This may be used to include empty fields in Patch requests.
16157	ForceSendFields []string `json:"-"`
16158
16159	// NullFields is a list of field names (e.g. "Code") to include in API
16160	// requests with the JSON null value. By default, fields with empty
16161	// values are omitted from API requests. However, any field with an
16162	// empty value appearing in NullFields will be sent to the server as
16163	// null. It is an error if a field in this list has a non-empty value.
16164	// This may be used to include null fields in Patch requests.
16165	NullFields []string `json:"-"`
16166}
16167
16168func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
16169	type NoMethod InstanceAggregatedListWarning
16170	raw := NoMethod(*s)
16171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16172}
16173
16174type InstanceAggregatedListWarningData struct {
16175	// Key: [Output Only] A key that provides more detail on the warning
16176	// being returned. For example, for warnings where there are no results
16177	// in a list request for a particular zone, this key might be scope and
16178	// the key value might be the zone name. Other examples might be a key
16179	// indicating a deprecated resource and a suggested replacement, or a
16180	// warning about invalid network settings (for example, if an instance
16181	// attempts to perform IP forwarding but is not enabled for IP
16182	// forwarding).
16183	Key string `json:"key,omitempty"`
16184
16185	// Value: [Output Only] A warning data value corresponding to the key.
16186	Value string `json:"value,omitempty"`
16187
16188	// ForceSendFields is a list of field names (e.g. "Key") to
16189	// unconditionally include in API requests. By default, fields with
16190	// empty or default values are omitted from API requests. However, any
16191	// non-pointer, non-interface field appearing in ForceSendFields will be
16192	// sent to the server regardless of whether the field is empty or not.
16193	// This may be used to include empty fields in Patch requests.
16194	ForceSendFields []string `json:"-"`
16195
16196	// NullFields is a list of field names (e.g. "Key") to include in API
16197	// requests with the JSON null value. By default, fields with empty
16198	// values are omitted from API requests. However, any field with an
16199	// empty value appearing in NullFields will be sent to the server as
16200	// null. It is an error if a field in this list has a non-empty value.
16201	// This may be used to include null fields in Patch requests.
16202	NullFields []string `json:"-"`
16203}
16204
16205func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16206	type NoMethod InstanceAggregatedListWarningData
16207	raw := NoMethod(*s)
16208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16209}
16210
16211// InstanceGroup: Represents an Instance Group resource. Instance Groups
16212// can be used to configure a target for load balancing. Instance groups
16213// can either be managed or unmanaged. To create managed instance
16214// groups, use the instanceGroupManager or regionInstanceGroupManager
16215// resource instead. Use zonal unmanaged instance groups if you need to
16216// apply load balancing to groups of heterogeneous instances or if you
16217// need to manage the instances yourself. You cannot create regional
16218// unmanaged instance groups. For more information, read Instance
16219// groups.
16220type InstanceGroup struct {
16221	// CreationTimestamp: [Output Only] The creation timestamp for this
16222	// instance group in RFC3339 text format.
16223	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16224
16225	// Description: An optional description of this resource. Provide this
16226	// property when you create the resource.
16227	Description string `json:"description,omitempty"`
16228
16229	// Fingerprint: [Output Only] The fingerprint of the named ports. The
16230	// system uses this fingerprint to detect conflicts when multiple users
16231	// change the named ports concurrently.
16232	Fingerprint string `json:"fingerprint,omitempty"`
16233
16234	// Id: [Output Only] A unique identifier for this instance group,
16235	// generated by the server.
16236	Id uint64 `json:"id,omitempty,string"`
16237
16238	// Kind: [Output Only] The resource type, which is always
16239	// compute#instanceGroup for instance groups.
16240	Kind string `json:"kind,omitempty"`
16241
16242	// Name: The name of the instance group. The name must be 1-63
16243	// characters long, and comply with RFC1035.
16244	Name string `json:"name,omitempty"`
16245
16246	// NamedPorts:  Assigns a name to a port number. For example: {name:
16247	// "http", port: 80} This allows the system to reference ports by the
16248	// assigned name instead of a port number. Named ports can also contain
16249	// multiple ports. For example: [{name: "http", port: 80},{name: "http",
16250	// port: 8080}] Named ports apply to all instances in this instance
16251	// group.
16252	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16253
16254	// Network: [Output Only] The URL of the network to which all instances
16255	// in the instance group belong. If your instance has multiple network
16256	// interfaces, then the network and subnetwork fields only refer to the
16257	// network and subnet used by your primary interface (nic0).
16258	Network string `json:"network,omitempty"`
16259
16260	// Region: [Output Only] The URL of the region where the instance group
16261	// is located (for regional resources).
16262	Region string `json:"region,omitempty"`
16263
16264	// SelfLink: [Output Only] The URL for this instance group. The server
16265	// generates this URL.
16266	SelfLink string `json:"selfLink,omitempty"`
16267
16268	// Size: [Output Only] The total number of instances in the instance
16269	// group.
16270	Size int64 `json:"size,omitempty"`
16271
16272	// Subnetwork: [Output Only] The URL of the subnetwork to which all
16273	// instances in the instance group belong. If your instance has multiple
16274	// network interfaces, then the network and subnetwork fields only refer
16275	// to the network and subnet used by your primary interface (nic0).
16276	Subnetwork string `json:"subnetwork,omitempty"`
16277
16278	// Zone: [Output Only] The URL of the zone where the instance group is
16279	// located (for zonal resources).
16280	Zone string `json:"zone,omitempty"`
16281
16282	// ServerResponse contains the HTTP response code and headers from the
16283	// server.
16284	googleapi.ServerResponse `json:"-"`
16285
16286	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16287	// to unconditionally include in API requests. By default, fields with
16288	// empty or default values are omitted from API requests. However, any
16289	// non-pointer, non-interface field appearing in ForceSendFields will be
16290	// sent to the server regardless of whether the field is empty or not.
16291	// This may be used to include empty fields in Patch requests.
16292	ForceSendFields []string `json:"-"`
16293
16294	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16295	// include in API requests with the JSON null value. By default, fields
16296	// with empty values are omitted from API requests. However, any field
16297	// with an empty value appearing in NullFields will be sent to the
16298	// server as null. It is an error if a field in this list has a
16299	// non-empty value. This may be used to include null fields in Patch
16300	// requests.
16301	NullFields []string `json:"-"`
16302}
16303
16304func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
16305	type NoMethod InstanceGroup
16306	raw := NoMethod(*s)
16307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16308}
16309
16310type InstanceGroupAggregatedList struct {
16311	// Id: [Output Only] Unique identifier for the resource; defined by the
16312	// server.
16313	Id string `json:"id,omitempty"`
16314
16315	// Items: A list of InstanceGroupsScopedList resources.
16316	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
16317
16318	// Kind: [Output Only] The resource type, which is always
16319	// compute#instanceGroupAggregatedList for aggregated lists of instance
16320	// groups.
16321	Kind string `json:"kind,omitempty"`
16322
16323	// NextPageToken: [Output Only] This token allows you to get the next
16324	// page of results for list requests. If the number of results is larger
16325	// than maxResults, use the nextPageToken as a value for the query
16326	// parameter pageToken in the next list request. Subsequent list
16327	// requests will have their own nextPageToken to continue paging through
16328	// the results.
16329	NextPageToken string `json:"nextPageToken,omitempty"`
16330
16331	// SelfLink: [Output Only] Server-defined URL for this resource.
16332	SelfLink string `json:"selfLink,omitempty"`
16333
16334	// Unreachables: [Output Only] Unreachable resources.
16335	Unreachables []string `json:"unreachables,omitempty"`
16336
16337	// Warning: [Output Only] Informational warning message.
16338	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
16339
16340	// ServerResponse contains the HTTP response code and headers from the
16341	// server.
16342	googleapi.ServerResponse `json:"-"`
16343
16344	// ForceSendFields is a list of field names (e.g. "Id") to
16345	// unconditionally include in API requests. By default, fields with
16346	// empty or default values are omitted from API requests. However, any
16347	// non-pointer, non-interface field appearing in ForceSendFields will be
16348	// sent to the server regardless of whether the field is empty or not.
16349	// This may be used to include empty fields in Patch requests.
16350	ForceSendFields []string `json:"-"`
16351
16352	// NullFields is a list of field names (e.g. "Id") to include in API
16353	// requests with the JSON null value. By default, fields with empty
16354	// values are omitted from API requests. However, any field with an
16355	// empty value appearing in NullFields will be sent to the server as
16356	// null. It is an error if a field in this list has a non-empty value.
16357	// This may be used to include null fields in Patch requests.
16358	NullFields []string `json:"-"`
16359}
16360
16361func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
16362	type NoMethod InstanceGroupAggregatedList
16363	raw := NoMethod(*s)
16364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16365}
16366
16367// InstanceGroupAggregatedListWarning: [Output Only] Informational
16368// warning message.
16369type InstanceGroupAggregatedListWarning struct {
16370	// Code: [Output Only] A warning code, if applicable. For example,
16371	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16372	// the response.
16373	//
16374	// Possible values:
16375	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16376	// changes made by a failed operation.
16377	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16378	// created.
16379	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16380	// resources has a type marked as deprecated
16381	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16382	// that is larger than image size.
16383	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16384	// resources has a type marked as experimental
16385	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16386	// call
16387	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16388	// overridden. Deprecated unused field.
16389	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16390	// injected kernel, which is deprecated.
16391	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16392	// exceedingly large number of resources
16393	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16394	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16395	// not assigned to an instance on the network.
16396	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16397	// ip forward.
16398	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16399	// refers to an instance that does not exist.
16400	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16401	// URL refers to an instance that is not on the same network as the
16402	// route.
16403	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16404	// have a status of RUNNING.
16405	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16406	// continue the process despite the mentioned error.
16407	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16408	// page.
16409	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16410	// missing due to errors
16411	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16412	// that requires a TOS they have not accepted.
16413	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16414	// resource is in use.
16415	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16416	// auto-delete could not be deleted because they were in use.
16417	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16418	// ignored.
16419	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16420	// instance group manager is valid as such, but its application does not
16421	// make a lot of sense, because it allows only single instance in
16422	// instance group.
16423	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16424	// are present
16425	//   "UNREACHABLE" - A given scope cannot be reached.
16426	Code string `json:"code,omitempty"`
16427
16428	// Data: [Output Only] Metadata about this warning in key: value format.
16429	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16430	// }
16431	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
16432
16433	// Message: [Output Only] A human-readable description of the warning
16434	// code.
16435	Message string `json:"message,omitempty"`
16436
16437	// ForceSendFields is a list of field names (e.g. "Code") to
16438	// unconditionally include in API requests. By default, fields with
16439	// empty or default values are omitted from API requests. However, any
16440	// non-pointer, non-interface field appearing in ForceSendFields will be
16441	// sent to the server regardless of whether the field is empty or not.
16442	// This may be used to include empty fields in Patch requests.
16443	ForceSendFields []string `json:"-"`
16444
16445	// NullFields is a list of field names (e.g. "Code") to include in API
16446	// requests with the JSON null value. By default, fields with empty
16447	// values are omitted from API requests. However, any field with an
16448	// empty value appearing in NullFields will be sent to the server as
16449	// null. It is an error if a field in this list has a non-empty value.
16450	// This may be used to include null fields in Patch requests.
16451	NullFields []string `json:"-"`
16452}
16453
16454func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
16455	type NoMethod InstanceGroupAggregatedListWarning
16456	raw := NoMethod(*s)
16457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16458}
16459
16460type InstanceGroupAggregatedListWarningData struct {
16461	// Key: [Output Only] A key that provides more detail on the warning
16462	// being returned. For example, for warnings where there are no results
16463	// in a list request for a particular zone, this key might be scope and
16464	// the key value might be the zone name. Other examples might be a key
16465	// indicating a deprecated resource and a suggested replacement, or a
16466	// warning about invalid network settings (for example, if an instance
16467	// attempts to perform IP forwarding but is not enabled for IP
16468	// forwarding).
16469	Key string `json:"key,omitempty"`
16470
16471	// Value: [Output Only] A warning data value corresponding to the key.
16472	Value string `json:"value,omitempty"`
16473
16474	// ForceSendFields is a list of field names (e.g. "Key") to
16475	// unconditionally include in API requests. By default, fields with
16476	// empty or default values are omitted from API requests. However, any
16477	// non-pointer, non-interface field appearing in ForceSendFields will be
16478	// sent to the server regardless of whether the field is empty or not.
16479	// This may be used to include empty fields in Patch requests.
16480	ForceSendFields []string `json:"-"`
16481
16482	// NullFields is a list of field names (e.g. "Key") to include in API
16483	// requests with the JSON null value. By default, fields with empty
16484	// values are omitted from API requests. However, any field with an
16485	// empty value appearing in NullFields will be sent to the server as
16486	// null. It is an error if a field in this list has a non-empty value.
16487	// This may be used to include null fields in Patch requests.
16488	NullFields []string `json:"-"`
16489}
16490
16491func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16492	type NoMethod InstanceGroupAggregatedListWarningData
16493	raw := NoMethod(*s)
16494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16495}
16496
16497// InstanceGroupList: A list of InstanceGroup resources.
16498type InstanceGroupList struct {
16499	// Id: [Output Only] Unique identifier for the resource; defined by the
16500	// server.
16501	Id string `json:"id,omitempty"`
16502
16503	// Items: A list of InstanceGroup resources.
16504	Items []*InstanceGroup `json:"items,omitempty"`
16505
16506	// Kind: [Output Only] The resource type, which is always
16507	// compute#instanceGroupList for instance group lists.
16508	Kind string `json:"kind,omitempty"`
16509
16510	// NextPageToken: [Output Only] This token allows you to get the next
16511	// page of results for list requests. If the number of results is larger
16512	// than maxResults, use the nextPageToken as a value for the query
16513	// parameter pageToken in the next list request. Subsequent list
16514	// requests will have their own nextPageToken to continue paging through
16515	// the results.
16516	NextPageToken string `json:"nextPageToken,omitempty"`
16517
16518	// SelfLink: [Output Only] Server-defined URL for this resource.
16519	SelfLink string `json:"selfLink,omitempty"`
16520
16521	// Warning: [Output Only] Informational warning message.
16522	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
16523
16524	// ServerResponse contains the HTTP response code and headers from the
16525	// server.
16526	googleapi.ServerResponse `json:"-"`
16527
16528	// ForceSendFields is a list of field names (e.g. "Id") to
16529	// unconditionally include in API requests. By default, fields with
16530	// empty or default values are omitted from API requests. However, any
16531	// non-pointer, non-interface field appearing in ForceSendFields will be
16532	// sent to the server regardless of whether the field is empty or not.
16533	// This may be used to include empty fields in Patch requests.
16534	ForceSendFields []string `json:"-"`
16535
16536	// NullFields is a list of field names (e.g. "Id") to include in API
16537	// requests with the JSON null value. By default, fields with empty
16538	// values are omitted from API requests. However, any field with an
16539	// empty value appearing in NullFields will be sent to the server as
16540	// null. It is an error if a field in this list has a non-empty value.
16541	// This may be used to include null fields in Patch requests.
16542	NullFields []string `json:"-"`
16543}
16544
16545func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
16546	type NoMethod InstanceGroupList
16547	raw := NoMethod(*s)
16548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16549}
16550
16551// InstanceGroupListWarning: [Output Only] Informational warning
16552// message.
16553type InstanceGroupListWarning struct {
16554	// Code: [Output Only] A warning code, if applicable. For example,
16555	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16556	// the response.
16557	//
16558	// Possible values:
16559	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16560	// changes made by a failed operation.
16561	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16562	// created.
16563	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16564	// resources has a type marked as deprecated
16565	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16566	// that is larger than image size.
16567	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16568	// resources has a type marked as experimental
16569	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16570	// call
16571	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16572	// overridden. Deprecated unused field.
16573	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16574	// injected kernel, which is deprecated.
16575	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16576	// exceedingly large number of resources
16577	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16578	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16579	// not assigned to an instance on the network.
16580	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16581	// ip forward.
16582	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16583	// refers to an instance that does not exist.
16584	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16585	// URL refers to an instance that is not on the same network as the
16586	// route.
16587	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16588	// have a status of RUNNING.
16589	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16590	// continue the process despite the mentioned error.
16591	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16592	// page.
16593	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16594	// missing due to errors
16595	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16596	// that requires a TOS they have not accepted.
16597	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16598	// resource is in use.
16599	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16600	// auto-delete could not be deleted because they were in use.
16601	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16602	// ignored.
16603	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16604	// instance group manager is valid as such, but its application does not
16605	// make a lot of sense, because it allows only single instance in
16606	// instance group.
16607	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16608	// are present
16609	//   "UNREACHABLE" - A given scope cannot be reached.
16610	Code string `json:"code,omitempty"`
16611
16612	// Data: [Output Only] Metadata about this warning in key: value format.
16613	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16614	// }
16615	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
16616
16617	// Message: [Output Only] A human-readable description of the warning
16618	// code.
16619	Message string `json:"message,omitempty"`
16620
16621	// ForceSendFields is a list of field names (e.g. "Code") to
16622	// unconditionally include in API requests. By default, fields with
16623	// empty or default values are omitted from API requests. However, any
16624	// non-pointer, non-interface field appearing in ForceSendFields will be
16625	// sent to the server regardless of whether the field is empty or not.
16626	// This may be used to include empty fields in Patch requests.
16627	ForceSendFields []string `json:"-"`
16628
16629	// NullFields is a list of field names (e.g. "Code") to include in API
16630	// requests with the JSON null value. By default, fields with empty
16631	// values are omitted from API requests. However, any field with an
16632	// empty value appearing in NullFields will be sent to the server as
16633	// null. It is an error if a field in this list has a non-empty value.
16634	// This may be used to include null fields in Patch requests.
16635	NullFields []string `json:"-"`
16636}
16637
16638func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
16639	type NoMethod InstanceGroupListWarning
16640	raw := NoMethod(*s)
16641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16642}
16643
16644type InstanceGroupListWarningData struct {
16645	// Key: [Output Only] A key that provides more detail on the warning
16646	// being returned. For example, for warnings where there are no results
16647	// in a list request for a particular zone, this key might be scope and
16648	// the key value might be the zone name. Other examples might be a key
16649	// indicating a deprecated resource and a suggested replacement, or a
16650	// warning about invalid network settings (for example, if an instance
16651	// attempts to perform IP forwarding but is not enabled for IP
16652	// forwarding).
16653	Key string `json:"key,omitempty"`
16654
16655	// Value: [Output Only] A warning data value corresponding to the key.
16656	Value string `json:"value,omitempty"`
16657
16658	// ForceSendFields is a list of field names (e.g. "Key") to
16659	// unconditionally include in API requests. By default, fields with
16660	// empty or default values are omitted from API requests. However, any
16661	// non-pointer, non-interface field appearing in ForceSendFields will be
16662	// sent to the server regardless of whether the field is empty or not.
16663	// This may be used to include empty fields in Patch requests.
16664	ForceSendFields []string `json:"-"`
16665
16666	// NullFields is a list of field names (e.g. "Key") to include in API
16667	// requests with the JSON null value. By default, fields with empty
16668	// values are omitted from API requests. However, any field with an
16669	// empty value appearing in NullFields will be sent to the server as
16670	// null. It is an error if a field in this list has a non-empty value.
16671	// This may be used to include null fields in Patch requests.
16672	NullFields []string `json:"-"`
16673}
16674
16675func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
16676	type NoMethod InstanceGroupListWarningData
16677	raw := NoMethod(*s)
16678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16679}
16680
16681// InstanceGroupManager: Represents a Managed Instance Group resource.
16682// An instance group is a collection of VM instances that you can manage
16683// as a single entity. For more information, read Instance groups. For
16684// zonal Managed Instance Group, use the instanceGroupManagers resource.
16685// For regional Managed Instance Group, use the
16686// regionInstanceGroupManagers resource.
16687type InstanceGroupManager struct {
16688	// AutoHealingPolicies: The autohealing policy for this managed instance
16689	// group. You can specify only one value.
16690	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16691
16692	// BaseInstanceName: The base instance name to use for instances in this
16693	// group. The value must be 1-58 characters long. Instances are named by
16694	// appending a hyphen and a random four-character string to the base
16695	// instance name. The base instance name must comply with RFC1035.
16696	BaseInstanceName string `json:"baseInstanceName,omitempty"`
16697
16698	// CreationTimestamp: [Output Only] The creation timestamp for this
16699	// managed instance group in RFC3339 text format.
16700	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16701
16702	// CurrentActions: [Output Only] The list of instance actions and the
16703	// number of instances in this managed instance group that are scheduled
16704	// for each of those actions.
16705	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
16706
16707	// Description: An optional description of this resource.
16708	Description string `json:"description,omitempty"`
16709
16710	// DistributionPolicy: Policy specifying the intended distribution of
16711	// managed instances across zones in a regional managed instance group.
16712	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
16713
16714	// Fingerprint: Fingerprint of this resource. This field may be used in
16715	// optimistic locking. It will be ignored when inserting an
16716	// InstanceGroupManager. An up-to-date fingerprint must be provided in
16717	// order to update the InstanceGroupManager, otherwise the request will
16718	// fail with error 412 conditionNotMet. To see the latest fingerprint,
16719	// make a get() request to retrieve an InstanceGroupManager.
16720	Fingerprint string `json:"fingerprint,omitempty"`
16721
16722	// Id: [Output Only] A unique identifier for this resource type. The
16723	// server generates this identifier.
16724	Id uint64 `json:"id,omitempty,string"`
16725
16726	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
16727	InstanceGroup string `json:"instanceGroup,omitempty"`
16728
16729	// InstanceTemplate: The URL of the instance template that is specified
16730	// for this managed instance group. The group uses this template to
16731	// create all new instances in the managed instance group. The templates
16732	// for existing instances in the group do not change unless you run
16733	// recreateInstances, run applyUpdatesToInstances, or set the group's
16734	// updatePolicy.type to PROACTIVE.
16735	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16736
16737	// Kind: [Output Only] The resource type, which is always
16738	// compute#instanceGroupManager for managed instance groups.
16739	Kind string `json:"kind,omitempty"`
16740
16741	// Name: The name of the managed instance group. The name must be 1-63
16742	// characters long, and comply with RFC1035.
16743	Name string `json:"name,omitempty"`
16744
16745	// NamedPorts: Named ports configured for the Instance Groups
16746	// complementary to this Instance Group Manager.
16747	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16748
16749	// Region: [Output Only] The URL of the region where the managed
16750	// instance group resides (for regional resources).
16751	Region string `json:"region,omitempty"`
16752
16753	// SelfLink: [Output Only] The URL for this managed instance group. The
16754	// server defines this URL.
16755	SelfLink string `json:"selfLink,omitempty"`
16756
16757	// StatefulPolicy: Stateful configuration for this Instanced Group
16758	// Manager
16759	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
16760
16761	// Status: [Output Only] The status of this managed instance group.
16762	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
16763
16764	// TargetPools: The URLs for all TargetPool resources to which instances
16765	// in the instanceGroup field are added. The target pools automatically
16766	// apply to all of the instances in the managed instance group.
16767	TargetPools []string `json:"targetPools,omitempty"`
16768
16769	// TargetSize: The target number of running instances for this managed
16770	// instance group. You can reduce this number by using the
16771	// instanceGroupManager deleteInstances or abandonInstances methods.
16772	// Resizing the group also changes this number.
16773	TargetSize int64 `json:"targetSize,omitempty"`
16774
16775	// UpdatePolicy: The update policy for this managed instance group.
16776	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
16777
16778	// Versions: Specifies the instance templates used by this managed
16779	// instance group to create instances. Each version is defined by an
16780	// instanceTemplate and a name. Every version can appear at most once
16781	// per instance group. This field overrides the top-level
16782	// instanceTemplate field. Read more about the relationships between
16783	// these fields. Exactly one version must leave the targetSize field
16784	// unset. That version will be applied to all remaining instances. For
16785	// more information, read about canary updates.
16786	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
16787
16788	// Zone: [Output Only] The URL of a zone where the managed instance
16789	// group is located (for zonal resources).
16790	Zone string `json:"zone,omitempty"`
16791
16792	// ServerResponse contains the HTTP response code and headers from the
16793	// server.
16794	googleapi.ServerResponse `json:"-"`
16795
16796	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16797	// to unconditionally include in API requests. By default, fields with
16798	// empty or default values are omitted from API requests. However, any
16799	// non-pointer, non-interface field appearing in ForceSendFields will be
16800	// sent to the server regardless of whether the field is empty or not.
16801	// This may be used to include empty fields in Patch requests.
16802	ForceSendFields []string `json:"-"`
16803
16804	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16805	// include in API requests with the JSON null value. By default, fields
16806	// with empty values are omitted from API requests. However, any field
16807	// with an empty value appearing in NullFields will be sent to the
16808	// server as null. It is an error if a field in this list has a
16809	// non-empty value. This may be used to include null fields in Patch
16810	// requests.
16811	NullFields []string `json:"-"`
16812}
16813
16814func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16815	type NoMethod InstanceGroupManager
16816	raw := NoMethod(*s)
16817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16818}
16819
16820type InstanceGroupManagerActionsSummary struct {
16821	// Abandoning: [Output Only] The total number of instances in the
16822	// managed instance group that are scheduled to be abandoned. Abandoning
16823	// an instance removes it from the managed instance group without
16824	// deleting it.
16825	Abandoning int64 `json:"abandoning,omitempty"`
16826
16827	// Creating: [Output Only] The number of instances in the managed
16828	// instance group that are scheduled to be created or are currently
16829	// being created. If the group fails to create any of these instances,
16830	// it tries again until it creates the instance successfully. If you
16831	// have disabled creation retries, this field will not be populated;
16832	// instead, the creatingWithoutRetries field will be populated.
16833	Creating int64 `json:"creating,omitempty"`
16834
16835	// CreatingWithoutRetries: [Output Only] The number of instances that
16836	// the managed instance group will attempt to create. The group attempts
16837	// to create each instance only once. If the group fails to create any
16838	// of these instances, it decreases the group's targetSize value
16839	// accordingly.
16840	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16841
16842	// Deleting: [Output Only] The number of instances in the managed
16843	// instance group that are scheduled to be deleted or are currently
16844	// being deleted.
16845	Deleting int64 `json:"deleting,omitempty"`
16846
16847	// None: [Output Only] The number of instances in the managed instance
16848	// group that are running and have no scheduled actions.
16849	None int64 `json:"none,omitempty"`
16850
16851	// Recreating: [Output Only] The number of instances in the managed
16852	// instance group that are scheduled to be recreated or are currently
16853	// being being recreated. Recreating an instance deletes the existing
16854	// root persistent disk and creates a new disk from the image that is
16855	// defined in the instance template.
16856	Recreating int64 `json:"recreating,omitempty"`
16857
16858	// Refreshing: [Output Only] The number of instances in the managed
16859	// instance group that are being reconfigured with properties that do
16860	// not require a restart or a recreate action. For example, setting or
16861	// removing target pools for the instance.
16862	Refreshing int64 `json:"refreshing,omitempty"`
16863
16864	// Restarting: [Output Only] The number of instances in the managed
16865	// instance group that are scheduled to be restarted or are currently
16866	// being restarted.
16867	Restarting int64 `json:"restarting,omitempty"`
16868
16869	// Verifying: [Output Only] The number of instances in the managed
16870	// instance group that are being verified. See the
16871	// managedInstances[].currentAction property in the listManagedInstances
16872	// method documentation.
16873	Verifying int64 `json:"verifying,omitempty"`
16874
16875	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16876	// unconditionally include in API requests. By default, fields with
16877	// empty or default values are omitted from API requests. However, any
16878	// non-pointer, non-interface field appearing in ForceSendFields will be
16879	// sent to the server regardless of whether the field is empty or not.
16880	// This may be used to include empty fields in Patch requests.
16881	ForceSendFields []string `json:"-"`
16882
16883	// NullFields is a list of field names (e.g. "Abandoning") to include in
16884	// API requests with the JSON null value. By default, fields with empty
16885	// values are omitted from API requests. However, any field with an
16886	// empty value appearing in NullFields will be sent to the server as
16887	// null. It is an error if a field in this list has a non-empty value.
16888	// This may be used to include null fields in Patch requests.
16889	NullFields []string `json:"-"`
16890}
16891
16892func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16893	type NoMethod InstanceGroupManagerActionsSummary
16894	raw := NoMethod(*s)
16895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16896}
16897
16898type InstanceGroupManagerAggregatedList struct {
16899	// Id: [Output Only] Unique identifier for the resource; defined by the
16900	// server.
16901	Id string `json:"id,omitempty"`
16902
16903	// Items: A list of InstanceGroupManagersScopedList resources.
16904	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16905
16906	// Kind: [Output Only] The resource type, which is always
16907	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16908	// managed instance groups.
16909	Kind string `json:"kind,omitempty"`
16910
16911	// NextPageToken: [Output Only] This token allows you to get the next
16912	// page of results for list requests. If the number of results is larger
16913	// than maxResults, use the nextPageToken as a value for the query
16914	// parameter pageToken in the next list request. Subsequent list
16915	// requests will have their own nextPageToken to continue paging through
16916	// the results.
16917	NextPageToken string `json:"nextPageToken,omitempty"`
16918
16919	// SelfLink: [Output Only] Server-defined URL for this resource.
16920	SelfLink string `json:"selfLink,omitempty"`
16921
16922	// Unreachables: [Output Only] Unreachable resources.
16923	Unreachables []string `json:"unreachables,omitempty"`
16924
16925	// Warning: [Output Only] Informational warning message.
16926	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16927
16928	// ServerResponse contains the HTTP response code and headers from the
16929	// server.
16930	googleapi.ServerResponse `json:"-"`
16931
16932	// ForceSendFields is a list of field names (e.g. "Id") to
16933	// unconditionally include in API requests. By default, fields with
16934	// empty or default values are omitted from API requests. However, any
16935	// non-pointer, non-interface field appearing in ForceSendFields will be
16936	// sent to the server regardless of whether the field is empty or not.
16937	// This may be used to include empty fields in Patch requests.
16938	ForceSendFields []string `json:"-"`
16939
16940	// NullFields is a list of field names (e.g. "Id") to include in API
16941	// requests with the JSON null value. By default, fields with empty
16942	// values are omitted from API requests. However, any field with an
16943	// empty value appearing in NullFields will be sent to the server as
16944	// null. It is an error if a field in this list has a non-empty value.
16945	// This may be used to include null fields in Patch requests.
16946	NullFields []string `json:"-"`
16947}
16948
16949func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16950	type NoMethod InstanceGroupManagerAggregatedList
16951	raw := NoMethod(*s)
16952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16953}
16954
16955// InstanceGroupManagerAggregatedListWarning: [Output Only]
16956// Informational warning message.
16957type InstanceGroupManagerAggregatedListWarning struct {
16958	// Code: [Output Only] A warning code, if applicable. For example,
16959	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16960	// the response.
16961	//
16962	// Possible values:
16963	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16964	// changes made by a failed operation.
16965	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16966	// created.
16967	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16968	// resources has a type marked as deprecated
16969	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16970	// that is larger than image size.
16971	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16972	// resources has a type marked as experimental
16973	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16974	// call
16975	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16976	// overridden. Deprecated unused field.
16977	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16978	// injected kernel, which is deprecated.
16979	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16980	// exceedingly large number of resources
16981	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16982	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16983	// not assigned to an instance on the network.
16984	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16985	// ip forward.
16986	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16987	// refers to an instance that does not exist.
16988	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16989	// URL refers to an instance that is not on the same network as the
16990	// route.
16991	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16992	// have a status of RUNNING.
16993	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16994	// continue the process despite the mentioned error.
16995	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16996	// page.
16997	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16998	// missing due to errors
16999	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17000	// that requires a TOS they have not accepted.
17001	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17002	// resource is in use.
17003	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17004	// auto-delete could not be deleted because they were in use.
17005	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
17006	// ignored.
17007	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
17008	// instance group manager is valid as such, but its application does not
17009	// make a lot of sense, because it allows only single instance in
17010	// instance group.
17011	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
17012	// are present
17013	//   "UNREACHABLE" - A given scope cannot be reached.
17014	Code string `json:"code,omitempty"`
17015
17016	// Data: [Output Only] Metadata about this warning in key: value format.
17017	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
17018	// }
17019	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
17020
17021	// Message: [Output Only] A human-readable description of the warning
17022	// code.
17023	Message string `json:"message,omitempty"`
17024
17025	// ForceSendFields is a list of field names (e.g. "Code") to
17026	// unconditionally include in API requests. By default, fields with
17027	// empty or default values are omitted from API requests. However, any
17028	// non-pointer, non-interface field appearing in ForceSendFields will be
17029	// sent to the server regardless of whether the field is empty or not.
17030	// This may be used to include empty fields in Patch requests.
17031	ForceSendFields []string `json:"-"`
17032
17033	// NullFields is a list of field names (e.g. "Code") to include in API
17034	// requests with the JSON null value. By default, fields with empty
17035	// values are omitted from API requests. However, any field with an
17036	// empty value appearing in NullFields will be sent to the server as
17037	// null. It is an error if a field in this list has a non-empty value.
17038	// This may be used to include null fields in Patch requests.
17039	NullFields []string `json:"-"`
17040}
17041
17042func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
17043	type NoMethod InstanceGroupManagerAggregatedListWarning
17044	raw := NoMethod(*s)
17045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17046}
17047
17048type InstanceGroupManagerAggregatedListWarningData struct {
17049	// Key: [Output Only] A key that provides more detail on the warning
17050	// being returned. For example, for warnings where there are no results
17051	// in a list request for a particular zone, this key might be scope and
17052	// the key value might be the zone name. Other examples might be a key
17053	// indicating a deprecated resource and a suggested replacement, or a
17054	// warning about invalid network settings (for example, if an instance
17055	// attempts to perform IP forwarding but is not enabled for IP
17056	// forwarding).
17057	Key string `json:"key,omitempty"`
17058
17059	// Value: [Output Only] A warning data value corresponding to the key.
17060	Value string `json:"value,omitempty"`
17061
17062	// ForceSendFields is a list of field names (e.g. "Key") to
17063	// unconditionally include in API requests. By default, fields with
17064	// empty or default values are omitted from API requests. However, any
17065	// non-pointer, non-interface field appearing in ForceSendFields will be
17066	// sent to the server regardless of whether the field is empty or not.
17067	// This may be used to include empty fields in Patch requests.
17068	ForceSendFields []string `json:"-"`
17069
17070	// NullFields is a list of field names (e.g. "Key") to include in API
17071	// requests with the JSON null value. By default, fields with empty
17072	// values are omitted from API requests. However, any field with an
17073	// empty value appearing in NullFields will be sent to the server as
17074	// null. It is an error if a field in this list has a non-empty value.
17075	// This may be used to include null fields in Patch requests.
17076	NullFields []string `json:"-"`
17077}
17078
17079func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17080	type NoMethod InstanceGroupManagerAggregatedListWarningData
17081	raw := NoMethod(*s)
17082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17083}
17084
17085type InstanceGroupManagerAutoHealingPolicy struct {
17086	// HealthCheck: The URL for the health check that signals autohealing.
17087	HealthCheck string `json:"healthCheck,omitempty"`
17088
17089	// InitialDelaySec: The number of seconds that the managed instance
17090	// group waits before it applies autohealing policies to new instances
17091	// or recently recreated instances. This initial delay allows instances
17092	// to initialize and run their startup scripts before the instance group
17093	// determines that they are UNHEALTHY. This prevents the managed
17094	// instance group from recreating its instances prematurely. This value
17095	// must be from range [0, 3600].
17096	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
17097
17098	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
17099	// unconditionally include in API requests. By default, fields with
17100	// empty or default values are omitted from API requests. However, any
17101	// non-pointer, non-interface field appearing in ForceSendFields will be
17102	// sent to the server regardless of whether the field is empty or not.
17103	// This may be used to include empty fields in Patch requests.
17104	ForceSendFields []string `json:"-"`
17105
17106	// NullFields is a list of field names (e.g. "HealthCheck") to include
17107	// in API requests with the JSON null value. By default, fields with
17108	// empty values are omitted from API requests. However, any field with
17109	// an empty value appearing in NullFields will be sent to the server as
17110	// null. It is an error if a field in this list has a non-empty value.
17111	// This may be used to include null fields in Patch requests.
17112	NullFields []string `json:"-"`
17113}
17114
17115func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
17116	type NoMethod InstanceGroupManagerAutoHealingPolicy
17117	raw := NoMethod(*s)
17118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17119}
17120
17121// InstanceGroupManagerList: [Output Only] A list of managed instance
17122// groups.
17123type InstanceGroupManagerList struct {
17124	// Id: [Output Only] Unique identifier for the resource; defined by the
17125	// server.
17126	Id string `json:"id,omitempty"`
17127
17128	// Items: A list of InstanceGroupManager resources.
17129	Items []*InstanceGroupManager `json:"items,omitempty"`
17130
17131	// Kind: [Output Only] The resource type, which is always
17132	// compute#instanceGroupManagerList for a list of managed instance
17133	// groups.
17134	Kind string `json:"kind,omitempty"`
17135
17136	// NextPageToken: [Output Only] This token allows you to get the next
17137	// page of results for list requests. If the number of results is larger
17138	// than maxResults, use the nextPageToken as a value for the query
17139	// parameter pageToken in the next list request. Subsequent list
17140	// requests will have their own nextPageToken to continue paging through
17141	// the results.
17142	NextPageToken string `json:"nextPageToken,omitempty"`
17143
17144	// SelfLink: [Output Only] Server-defined URL for this resource.
17145	SelfLink string `json:"selfLink,omitempty"`
17146
17147	// Warning: [Output Only] Informational warning message.
17148	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
17149
17150	// ServerResponse contains the HTTP response code and headers from the
17151	// server.
17152	googleapi.ServerResponse `json:"-"`
17153
17154	// ForceSendFields is a list of field names (e.g. "Id") to
17155	// unconditionally include in API requests. By default, fields with
17156	// empty or default values are omitted from API requests. However, any
17157	// non-pointer, non-interface field appearing in ForceSendFields will be
17158	// sent to the server regardless of whether the field is empty or not.
17159	// This may be used to include empty fields in Patch requests.
17160	ForceSendFields []string `json:"-"`
17161
17162	// NullFields is a list of field names (e.g. "Id") to include in API
17163	// requests with the JSON null value. By default, fields with empty
17164	// values are omitted from API requests. However, any field with an
17165	// empty value appearing in NullFields will be sent to the server as
17166	// null. It is an error if a field in this list has a non-empty value.
17167	// This may be used to include null fields in Patch requests.
17168	NullFields []string `json:"-"`
17169}
17170
17171func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
17172	type NoMethod InstanceGroupManagerList
17173	raw := NoMethod(*s)
17174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17175}
17176
17177// InstanceGroupManagerListWarning: [Output Only] Informational warning
17178// message.
17179type InstanceGroupManagerListWarning struct {
17180	// Code: [Output Only] A warning code, if applicable. For example,
17181	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17182	// the response.
17183	//
17184	// Possible values:
17185	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
17186	// changes made by a failed operation.
17187	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
17188	// created.
17189	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
17190	// resources has a type marked as deprecated
17191	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
17192	// that is larger than image size.
17193	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
17194	// resources has a type marked as experimental
17195	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
17196	// call
17197	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
17198	// overridden. Deprecated unused field.
17199	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
17200	// injected kernel, which is deprecated.
17201	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
17202	// exceedingly large number of resources
17203	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
17204	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
17205	// not assigned to an instance on the network.
17206	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
17207	// ip forward.
17208	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
17209	// refers to an instance that does not exist.
17210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
17211	// URL refers to an instance that is not on the same network as the
17212	// route.
17213	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
17214	// have a status of RUNNING.
17215	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
17216	// continue the process despite the mentioned error.
17217	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
17218	// page.
17219	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
17220	// missing due to errors
17221	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17222	// that requires a TOS they have not accepted.
17223	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17224	// resource is in use.
17225	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17226	// auto-delete could not be deleted because they were in use.
17227	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
17228	// ignored.
17229	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
17230	// instance group manager is valid as such, but its application does not
17231	// make a lot of sense, because it allows only single instance in
17232	// instance group.
17233	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
17234	// are present
17235	//   "UNREACHABLE" - A given scope cannot be reached.
17236	Code string `json:"code,omitempty"`
17237
17238	// Data: [Output Only] Metadata about this warning in key: value format.
17239	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
17240	// }
17241	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
17242
17243	// Message: [Output Only] A human-readable description of the warning
17244	// code.
17245	Message string `json:"message,omitempty"`
17246
17247	// ForceSendFields is a list of field names (e.g. "Code") to
17248	// unconditionally include in API requests. By default, fields with
17249	// empty or default values are omitted from API requests. However, any
17250	// non-pointer, non-interface field appearing in ForceSendFields will be
17251	// sent to the server regardless of whether the field is empty or not.
17252	// This may be used to include empty fields in Patch requests.
17253	ForceSendFields []string `json:"-"`
17254
17255	// NullFields is a list of field names (e.g. "Code") to include in API
17256	// requests with the JSON null value. By default, fields with empty
17257	// values are omitted from API requests. However, any field with an
17258	// empty value appearing in NullFields will be sent to the server as
17259	// null. It is an error if a field in this list has a non-empty value.
17260	// This may be used to include null fields in Patch requests.
17261	NullFields []string `json:"-"`
17262}
17263
17264func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
17265	type NoMethod InstanceGroupManagerListWarning
17266	raw := NoMethod(*s)
17267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17268}
17269
17270type InstanceGroupManagerListWarningData struct {
17271	// Key: [Output Only] A key that provides more detail on the warning
17272	// being returned. For example, for warnings where there are no results
17273	// in a list request for a particular zone, this key might be scope and
17274	// the key value might be the zone name. Other examples might be a key
17275	// indicating a deprecated resource and a suggested replacement, or a
17276	// warning about invalid network settings (for example, if an instance
17277	// attempts to perform IP forwarding but is not enabled for IP
17278	// forwarding).
17279	Key string `json:"key,omitempty"`
17280
17281	// Value: [Output Only] A warning data value corresponding to the key.
17282	Value string `json:"value,omitempty"`
17283
17284	// ForceSendFields is a list of field names (e.g. "Key") to
17285	// unconditionally include in API requests. By default, fields with
17286	// empty or default values are omitted from API requests. However, any
17287	// non-pointer, non-interface field appearing in ForceSendFields will be
17288	// sent to the server regardless of whether the field is empty or not.
17289	// This may be used to include empty fields in Patch requests.
17290	ForceSendFields []string `json:"-"`
17291
17292	// NullFields is a list of field names (e.g. "Key") to include in API
17293	// requests with the JSON null value. By default, fields with empty
17294	// values are omitted from API requests. However, any field with an
17295	// empty value appearing in NullFields will be sent to the server as
17296	// null. It is an error if a field in this list has a non-empty value.
17297	// This may be used to include null fields in Patch requests.
17298	NullFields []string `json:"-"`
17299}
17300
17301func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
17302	type NoMethod InstanceGroupManagerListWarningData
17303	raw := NoMethod(*s)
17304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17305}
17306
17307type InstanceGroupManagerStatus struct {
17308	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
17309	// instance group manager.
17310	Autoscaler string `json:"autoscaler,omitempty"`
17311
17312	// IsStable: [Output Only] A bit indicating whether the managed instance
17313	// group is in a stable state. A stable state means that: none of the
17314	// instances in the managed instance group is currently undergoing any
17315	// type of change (for example, creation, restart, or deletion); no
17316	// future changes are scheduled for instances in the managed instance
17317	// group; and the managed instance group itself is not being modified.
17318	IsStable bool `json:"isStable,omitempty"`
17319
17320	// Stateful: [Output Only] Stateful status of the given Instance Group
17321	// Manager.
17322	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
17323
17324	// VersionTarget: [Output Only] A status of consistency of Instances'
17325	// versions with their target version specified by version field on
17326	// Instance Group Manager.
17327	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
17328
17329	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
17330	// unconditionally include in API requests. By default, fields with
17331	// empty or default values are omitted from API requests. However, any
17332	// non-pointer, non-interface field appearing in ForceSendFields will be
17333	// sent to the server regardless of whether the field is empty or not.
17334	// This may be used to include empty fields in Patch requests.
17335	ForceSendFields []string `json:"-"`
17336
17337	// NullFields is a list of field names (e.g. "Autoscaler") to include in
17338	// API requests with the JSON null value. By default, fields with empty
17339	// values are omitted from API requests. However, any field with an
17340	// empty value appearing in NullFields will be sent to the server as
17341	// null. It is an error if a field in this list has a non-empty value.
17342	// This may be used to include null fields in Patch requests.
17343	NullFields []string `json:"-"`
17344}
17345
17346func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
17347	type NoMethod InstanceGroupManagerStatus
17348	raw := NoMethod(*s)
17349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17350}
17351
17352type InstanceGroupManagerStatusStateful struct {
17353	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
17354	// instance group has stateful configuration, that is, if you have
17355	// configured any items in a stateful policy or in per-instance configs.
17356	// The group might report that it has no stateful config even when there
17357	// is still some preserved state on a managed instance, for example, if
17358	// you have deleted all PICs but not yet applied those deletions.
17359	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
17360
17361	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
17362	// the instance.
17363	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
17364
17365	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
17366	// to unconditionally include in API requests. By default, fields with
17367	// empty or default values are omitted from API requests. However, any
17368	// non-pointer, non-interface field appearing in ForceSendFields will be
17369	// sent to the server regardless of whether the field is empty or not.
17370	// This may be used to include empty fields in Patch requests.
17371	ForceSendFields []string `json:"-"`
17372
17373	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
17374	// include in API requests with the JSON null value. By default, fields
17375	// with empty values are omitted from API requests. However, any field
17376	// with an empty value appearing in NullFields will be sent to the
17377	// server as null. It is an error if a field in this list has a
17378	// non-empty value. This may be used to include null fields in Patch
17379	// requests.
17380	NullFields []string `json:"-"`
17381}
17382
17383func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
17384	type NoMethod InstanceGroupManagerStatusStateful
17385	raw := NoMethod(*s)
17386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17387}
17388
17389type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
17390	// AllEffective: A bit indicating if all of the group's per-instance
17391	// configs (listed in the output of a listPerInstanceConfigs API call)
17392	// have status EFFECTIVE or there are no per-instance-configs.
17393	AllEffective bool `json:"allEffective,omitempty"`
17394
17395	// ForceSendFields is a list of field names (e.g. "AllEffective") to
17396	// unconditionally include in API requests. By default, fields with
17397	// empty or default values are omitted from API requests. However, any
17398	// non-pointer, non-interface field appearing in ForceSendFields will be
17399	// sent to the server regardless of whether the field is empty or not.
17400	// This may be used to include empty fields in Patch requests.
17401	ForceSendFields []string `json:"-"`
17402
17403	// NullFields is a list of field names (e.g. "AllEffective") to include
17404	// in API requests with the JSON null value. By default, fields with
17405	// empty values are omitted from API requests. However, any field with
17406	// an empty value appearing in NullFields will be sent to the server as
17407	// null. It is an error if a field in this list has a non-empty value.
17408	// This may be used to include null fields in Patch requests.
17409	NullFields []string `json:"-"`
17410}
17411
17412func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
17413	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
17414	raw := NoMethod(*s)
17415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17416}
17417
17418type InstanceGroupManagerStatusVersionTarget struct {
17419	// IsReached: [Output Only] A bit indicating whether version target has
17420	// been reached in this managed instance group, i.e. all instances are
17421	// in their target version. Instances' target version are specified by
17422	// version field on Instance Group Manager.
17423	IsReached bool `json:"isReached,omitempty"`
17424
17425	// ForceSendFields is a list of field names (e.g. "IsReached") to
17426	// unconditionally include in API requests. By default, fields with
17427	// empty or default values are omitted from API requests. However, any
17428	// non-pointer, non-interface field appearing in ForceSendFields will be
17429	// sent to the server regardless of whether the field is empty or not.
17430	// This may be used to include empty fields in Patch requests.
17431	ForceSendFields []string `json:"-"`
17432
17433	// NullFields is a list of field names (e.g. "IsReached") to include in
17434	// API requests with the JSON null value. By default, fields with empty
17435	// values are omitted from API requests. However, any field with an
17436	// empty value appearing in NullFields will be sent to the server as
17437	// null. It is an error if a field in this list has a non-empty value.
17438	// This may be used to include null fields in Patch requests.
17439	NullFields []string `json:"-"`
17440}
17441
17442func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
17443	type NoMethod InstanceGroupManagerStatusVersionTarget
17444	raw := NoMethod(*s)
17445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17446}
17447
17448type InstanceGroupManagerUpdatePolicy struct {
17449	// InstanceRedistributionType: The instance redistribution policy for
17450	// regional managed instance groups. Valid values are: - PROACTIVE
17451	// (default): The group attempts to maintain an even distribution of VM
17452	// instances across zones in the region. - NONE: For non-autoscaled
17453	// groups, proactive redistribution is disabled.
17454	//
17455	// Possible values:
17456	//   "NONE" - No action is being proactively performed in order to bring
17457	// this IGM to its target instance distribution.
17458	//   "PROACTIVE" - This IGM will actively converge to its target
17459	// instance distribution.
17460	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
17461
17462	// MaxSurge: The maximum number of instances that can be created above
17463	// the specified targetSize during the update process. This value can be
17464	// either a fixed number or, if the group has 10 or more instances, a
17465	// percentage. If you set a percentage, the number of instances is
17466	// rounded if necessary. The default value for maxSurge is a fixed value
17467	// equal to the number of zones in which the managed instance group
17468	// operates. At least one of either maxSurge or maxUnavailable must be
17469	// greater than 0. Learn more about maxSurge.
17470	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
17471
17472	// MaxUnavailable: The maximum number of instances that can be
17473	// unavailable during the update process. An instance is considered
17474	// available if all of the following conditions are satisfied: - The
17475	// instance's status is RUNNING. - If there is a health check on the
17476	// instance group, the instance's health check status must be HEALTHY at
17477	// least once. If there is no health check on the group, then the
17478	// instance only needs to have a status of RUNNING to be considered
17479	// available. This value can be either a fixed number or, if the group
17480	// has 10 or more instances, a percentage. If you set a percentage, the
17481	// number of instances is rounded if necessary. The default value for
17482	// maxUnavailable is a fixed value equal to the number of zones in which
17483	// the managed instance group operates. At least one of either maxSurge
17484	// or maxUnavailable must be greater than 0. Learn more about
17485	// maxUnavailable.
17486	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
17487
17488	// MinimalAction: Minimal action to be taken on an instance. You can
17489	// specify either RESTART to restart existing instances or REPLACE to
17490	// delete and create new instances from the target template. If you
17491	// specify a RESTART, the Updater will attempt to perform that action
17492	// only. However, if the Updater determines that the minimal action you
17493	// specify is not enough to perform the update, it might perform a more
17494	// disruptive action.
17495	//
17496	// Possible values:
17497	//   "NONE" - Do not perform any action.
17498	//   "REFRESH" - Updates applied in runtime, instances will not be
17499	// disrupted.
17500	//   "REPLACE" - Old instances will be deleted. New instances will be
17501	// created from the target template.
17502	//   "RESTART" - Every instance will be restarted.
17503	MinimalAction string `json:"minimalAction,omitempty"`
17504
17505	// ReplacementMethod: What action should be used to replace instances.
17506	// See minimal_action.REPLACE
17507	//
17508	// Possible values:
17509	//   "RECREATE" - Instances will be recreated (with the same name)
17510	//   "SUBSTITUTE" - Default option: instances will be deleted and
17511	// created (with a new name)
17512	ReplacementMethod string `json:"replacementMethod,omitempty"`
17513
17514	// Type: The type of update process. You can specify either PROACTIVE so
17515	// that the instance group manager proactively executes actions in order
17516	// to bring instances to their target versions or OPPORTUNISTIC so that
17517	// no action is proactively executed but the update will be performed as
17518	// part of other actions (for example, resizes or recreateInstances
17519	// calls).
17520	//
17521	// Possible values:
17522	//   "OPPORTUNISTIC" - No action is being proactively performed in order
17523	// to bring this IGM to its target version distribution (regardless of
17524	// whether this distribution is expressed using instanceTemplate or
17525	// versions field).
17526	//   "PROACTIVE" - This IGM will actively converge to its target version
17527	// distribution (regardless of whether this distribution is expressed
17528	// using instanceTemplate or versions field).
17529	Type string `json:"type,omitempty"`
17530
17531	// ForceSendFields is a list of field names (e.g.
17532	// "InstanceRedistributionType") to unconditionally include in API
17533	// requests. By default, fields with empty or default values are omitted
17534	// from API requests. However, any non-pointer, non-interface field
17535	// appearing in ForceSendFields will be sent to the server regardless of
17536	// whether the field is empty or not. This may be used to include empty
17537	// fields in Patch requests.
17538	ForceSendFields []string `json:"-"`
17539
17540	// NullFields is a list of field names (e.g.
17541	// "InstanceRedistributionType") to include in API requests with the
17542	// JSON null value. By default, fields with empty values are omitted
17543	// from API requests. However, any field with an empty value appearing
17544	// in NullFields will be sent to the server as null. It is an error if a
17545	// field in this list has a non-empty value. This may be used to include
17546	// null fields in Patch requests.
17547	NullFields []string `json:"-"`
17548}
17549
17550func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
17551	type NoMethod InstanceGroupManagerUpdatePolicy
17552	raw := NoMethod(*s)
17553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17554}
17555
17556type InstanceGroupManagerVersion struct {
17557	// InstanceTemplate: The URL of the instance template that is specified
17558	// for this managed instance group. The group uses this template to
17559	// create new instances in the managed instance group until the
17560	// `targetSize` for this version is reached. The templates for existing
17561	// instances in the group do not change unless you run
17562	// recreateInstances, run applyUpdatesToInstances, or set the group's
17563	// updatePolicy.type to PROACTIVE; in those cases, existing instances
17564	// are updated until the `targetSize` for this version is reached.
17565	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17566
17567	// Name: Name of the version. Unique among all versions in the scope of
17568	// this managed instance group.
17569	Name string `json:"name,omitempty"`
17570
17571	// TargetSize: Specifies the intended number of instances to be created
17572	// from the instanceTemplate. The final number of instances created from
17573	// the template will be equal to: - If expressed as a fixed number, the
17574	// minimum of either targetSize.fixed or instanceGroupManager.targetSize
17575	// is used. - if expressed as a percent, the targetSize would be
17576	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
17577	// is a remainder, the number is rounded. If unset, this version will
17578	// update any remaining instances not updated by another version. Read
17579	// Starting a canary update for more information.
17580	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
17581
17582	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17583	// unconditionally include in API requests. By default, fields with
17584	// empty or default values are omitted from API requests. However, any
17585	// non-pointer, non-interface field appearing in ForceSendFields will be
17586	// sent to the server regardless of whether the field is empty or not.
17587	// This may be used to include empty fields in Patch requests.
17588	ForceSendFields []string `json:"-"`
17589
17590	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17591	// include in API requests with the JSON null value. By default, fields
17592	// with empty values are omitted from API requests. However, any field
17593	// with an empty value appearing in NullFields will be sent to the
17594	// server as null. It is an error if a field in this list has a
17595	// non-empty value. This may be used to include null fields in Patch
17596	// requests.
17597	NullFields []string `json:"-"`
17598}
17599
17600func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
17601	type NoMethod InstanceGroupManagerVersion
17602	raw := NoMethod(*s)
17603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17604}
17605
17606type InstanceGroupManagersAbandonInstancesRequest struct {
17607	// Instances: The URLs of one or more instances to abandon. This can be
17608	// a full URL or a partial URL, such as
17609	// zones/[ZONE]/instances/[INSTANCE_NAME].
17610	Instances []string `json:"instances,omitempty"`
17611
17612	// ForceSendFields is a list of field names (e.g. "Instances") to
17613	// unconditionally include in API requests. By default, fields with
17614	// empty or default values are omitted from API requests. However, any
17615	// non-pointer, non-interface field appearing in ForceSendFields will be
17616	// sent to the server regardless of whether the field is empty or not.
17617	// This may be used to include empty fields in Patch requests.
17618	ForceSendFields []string `json:"-"`
17619
17620	// NullFields is a list of field names (e.g. "Instances") to include in
17621	// API requests with the JSON null value. By default, fields with empty
17622	// values are omitted from API requests. However, any field with an
17623	// empty value appearing in NullFields will be sent to the server as
17624	// null. It is an error if a field in this list has a non-empty value.
17625	// This may be used to include null fields in Patch requests.
17626	NullFields []string `json:"-"`
17627}
17628
17629func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
17630	type NoMethod InstanceGroupManagersAbandonInstancesRequest
17631	raw := NoMethod(*s)
17632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17633}
17634
17635// InstanceGroupManagersApplyUpdatesRequest:
17636// InstanceGroupManagers.applyUpdatesToInstances
17637type InstanceGroupManagersApplyUpdatesRequest struct {
17638	// AllInstances: Flag to update all instances instead of specified list
17639	// of “instances”. If the flag is set to true then the instances may
17640	// not be specified in the request.
17641	AllInstances bool `json:"allInstances,omitempty"`
17642
17643	// Instances: The list of URLs of one or more instances for which you
17644	// want to apply updates. Each URL can be a full URL or a partial URL,
17645	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
17646	Instances []string `json:"instances,omitempty"`
17647
17648	// MinimalAction: The minimal action that you want to perform on each
17649	// instance during the update: - REPLACE: At minimum, delete the
17650	// instance and create it again. - RESTART: Stop the instance and start
17651	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
17652	// the instance at all. By default, the minimum action is NONE. If your
17653	// update requires a more disruptive action than you set with this flag,
17654	// the necessary action is performed to execute the update.
17655	//
17656	// Possible values:
17657	//   "NONE" - Do not perform any action.
17658	//   "REFRESH" - Updates applied in runtime, instances will not be
17659	// disrupted.
17660	//   "REPLACE" - Old instances will be deleted. New instances will be
17661	// created from the target template.
17662	//   "RESTART" - Every instance will be restarted.
17663	MinimalAction string `json:"minimalAction,omitempty"`
17664
17665	// MostDisruptiveAllowedAction: The most disruptive action that you want
17666	// to perform on each instance during the update: - REPLACE: Delete the
17667	// instance and create it again. - RESTART: Stop the instance and start
17668	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
17669	// the instance at all. By default, the most disruptive allowed action
17670	// is REPLACE. If your update requires a more disruptive action than you
17671	// set with this flag, the update request will fail.
17672	//
17673	// Possible values:
17674	//   "NONE" - Do not perform any action.
17675	//   "REFRESH" - Updates applied in runtime, instances will not be
17676	// disrupted.
17677	//   "REPLACE" - Old instances will be deleted. New instances will be
17678	// created from the target template.
17679	//   "RESTART" - Every instance will be restarted.
17680	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
17681
17682	// ForceSendFields is a list of field names (e.g. "AllInstances") to
17683	// unconditionally include in API requests. By default, fields with
17684	// empty or default values are omitted from API requests. However, any
17685	// non-pointer, non-interface field appearing in ForceSendFields will be
17686	// sent to the server regardless of whether the field is empty or not.
17687	// This may be used to include empty fields in Patch requests.
17688	ForceSendFields []string `json:"-"`
17689
17690	// NullFields is a list of field names (e.g. "AllInstances") to include
17691	// in API requests with the JSON null value. By default, fields with
17692	// empty values are omitted from API requests. However, any field with
17693	// an empty value appearing in NullFields will be sent to the server as
17694	// null. It is an error if a field in this list has a non-empty value.
17695	// This may be used to include null fields in Patch requests.
17696	NullFields []string `json:"-"`
17697}
17698
17699func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
17700	type NoMethod InstanceGroupManagersApplyUpdatesRequest
17701	raw := NoMethod(*s)
17702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17703}
17704
17705// InstanceGroupManagersCreateInstancesRequest:
17706// InstanceGroupManagers.createInstances
17707type InstanceGroupManagersCreateInstancesRequest struct {
17708	// Instances: [Required] List of specifications of per-instance configs.
17709	Instances []*PerInstanceConfig `json:"instances,omitempty"`
17710
17711	// ForceSendFields is a list of field names (e.g. "Instances") to
17712	// unconditionally include in API requests. By default, fields with
17713	// empty or default values are omitted from API requests. However, any
17714	// non-pointer, non-interface field appearing in ForceSendFields will be
17715	// sent to the server regardless of whether the field is empty or not.
17716	// This may be used to include empty fields in Patch requests.
17717	ForceSendFields []string `json:"-"`
17718
17719	// NullFields is a list of field names (e.g. "Instances") to include in
17720	// API requests with the JSON null value. By default, fields with empty
17721	// values are omitted from API requests. However, any field with an
17722	// empty value appearing in NullFields will be sent to the server as
17723	// null. It is an error if a field in this list has a non-empty value.
17724	// This may be used to include null fields in Patch requests.
17725	NullFields []string `json:"-"`
17726}
17727
17728func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
17729	type NoMethod InstanceGroupManagersCreateInstancesRequest
17730	raw := NoMethod(*s)
17731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17732}
17733
17734type InstanceGroupManagersDeleteInstancesRequest struct {
17735	// Instances: The URLs of one or more instances to delete. This can be a
17736	// full URL or a partial URL, such as
17737	// zones/[ZONE]/instances/[INSTANCE_NAME].
17738	Instances []string `json:"instances,omitempty"`
17739
17740	// SkipInstancesOnValidationError: Specifies whether the request should
17741	// proceed despite the inclusion of instances that are not members of
17742	// the group or that are already in the process of being deleted or
17743	// abandoned. If this field is set to `false` and such an instance is
17744	// specified in the request, the operation fails. The operation always
17745	// fails if the request contains a malformed instance URL or a reference
17746	// to an instance that exists in a zone or region other than the group's
17747	// zone or region.
17748	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
17749
17750	// ForceSendFields is a list of field names (e.g. "Instances") to
17751	// unconditionally include in API requests. By default, fields with
17752	// empty or default values are omitted from API requests. However, any
17753	// non-pointer, non-interface field appearing in ForceSendFields will be
17754	// sent to the server regardless of whether the field is empty or not.
17755	// This may be used to include empty fields in Patch requests.
17756	ForceSendFields []string `json:"-"`
17757
17758	// NullFields is a list of field names (e.g. "Instances") to include in
17759	// API requests with the JSON null value. By default, fields with empty
17760	// values are omitted from API requests. However, any field with an
17761	// empty value appearing in NullFields will be sent to the server as
17762	// null. It is an error if a field in this list has a non-empty value.
17763	// This may be used to include null fields in Patch requests.
17764	NullFields []string `json:"-"`
17765}
17766
17767func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
17768	type NoMethod InstanceGroupManagersDeleteInstancesRequest
17769	raw := NoMethod(*s)
17770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17771}
17772
17773// InstanceGroupManagersDeletePerInstanceConfigsReq:
17774// InstanceGroupManagers.deletePerInstanceConfigs
17775type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
17776	// Names: The list of instance names for which we want to delete
17777	// per-instance configs on this managed instance group.
17778	Names []string `json:"names,omitempty"`
17779
17780	// ForceSendFields is a list of field names (e.g. "Names") to
17781	// unconditionally include in API requests. By default, fields with
17782	// empty or default values are omitted from API requests. However, any
17783	// non-pointer, non-interface field appearing in ForceSendFields will be
17784	// sent to the server regardless of whether the field is empty or not.
17785	// This may be used to include empty fields in Patch requests.
17786	ForceSendFields []string `json:"-"`
17787
17788	// NullFields is a list of field names (e.g. "Names") to include in API
17789	// requests with the JSON null value. By default, fields with empty
17790	// values are omitted from API requests. However, any field with an
17791	// empty value appearing in NullFields will be sent to the server as
17792	// null. It is an error if a field in this list has a non-empty value.
17793	// This may be used to include null fields in Patch requests.
17794	NullFields []string `json:"-"`
17795}
17796
17797func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17798	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
17799	raw := NoMethod(*s)
17800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17801}
17802
17803type InstanceGroupManagersListErrorsResponse struct {
17804	// Items: [Output Only] The list of errors of the managed instance
17805	// group.
17806	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
17807
17808	// NextPageToken: [Output Only] This token allows you to get the next
17809	// page of results for list requests. If the number of results is larger
17810	// than maxResults, use the nextPageToken as a value for the query
17811	// parameter pageToken in the next list request. Subsequent list
17812	// requests will have their own nextPageToken to continue paging through
17813	// the results.
17814	NextPageToken string `json:"nextPageToken,omitempty"`
17815
17816	// ServerResponse contains the HTTP response code and headers from the
17817	// server.
17818	googleapi.ServerResponse `json:"-"`
17819
17820	// ForceSendFields is a list of field names (e.g. "Items") to
17821	// unconditionally include in API requests. By default, fields with
17822	// empty or default values are omitted from API requests. However, any
17823	// non-pointer, non-interface field appearing in ForceSendFields will be
17824	// sent to the server regardless of whether the field is empty or not.
17825	// This may be used to include empty fields in Patch requests.
17826	ForceSendFields []string `json:"-"`
17827
17828	// NullFields is a list of field names (e.g. "Items") to include in API
17829	// requests with the JSON null value. By default, fields with empty
17830	// values are omitted from API requests. However, any field with an
17831	// empty value appearing in NullFields will be sent to the server as
17832	// null. It is an error if a field in this list has a non-empty value.
17833	// This may be used to include null fields in Patch requests.
17834	NullFields []string `json:"-"`
17835}
17836
17837func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
17838	type NoMethod InstanceGroupManagersListErrorsResponse
17839	raw := NoMethod(*s)
17840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17841}
17842
17843type InstanceGroupManagersListManagedInstancesResponse struct {
17844	// ManagedInstances: [Output Only] The list of instances in the managed
17845	// instance group.
17846	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
17847
17848	// NextPageToken: [Output Only] This token allows you to get the next
17849	// page of results for list requests. If the number of results is larger
17850	// than maxResults, use the nextPageToken as a value for the query
17851	// parameter pageToken in the next list request. Subsequent list
17852	// requests will have their own nextPageToken to continue paging through
17853	// the results.
17854	NextPageToken string `json:"nextPageToken,omitempty"`
17855
17856	// ServerResponse contains the HTTP response code and headers from the
17857	// server.
17858	googleapi.ServerResponse `json:"-"`
17859
17860	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
17861	// unconditionally include in API requests. By default, fields with
17862	// empty or default values are omitted from API requests. However, any
17863	// non-pointer, non-interface field appearing in ForceSendFields will be
17864	// sent to the server regardless of whether the field is empty or not.
17865	// This may be used to include empty fields in Patch requests.
17866	ForceSendFields []string `json:"-"`
17867
17868	// NullFields is a list of field names (e.g. "ManagedInstances") to
17869	// include in API requests with the JSON null value. By default, fields
17870	// with empty values are omitted from API requests. However, any field
17871	// with an empty value appearing in NullFields will be sent to the
17872	// server as null. It is an error if a field in this list has a
17873	// non-empty value. This may be used to include null fields in Patch
17874	// requests.
17875	NullFields []string `json:"-"`
17876}
17877
17878func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17879	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17880	raw := NoMethod(*s)
17881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17882}
17883
17884type InstanceGroupManagersListPerInstanceConfigsResp struct {
17885	// Items: [Output Only] The list of PerInstanceConfig.
17886	Items []*PerInstanceConfig `json:"items,omitempty"`
17887
17888	// NextPageToken: [Output Only] This token allows you to get the next
17889	// page of results for list requests. If the number of results is larger
17890	// than maxResults, use the nextPageToken as a value for the query
17891	// parameter pageToken in the next list request. Subsequent list
17892	// requests will have their own nextPageToken to continue paging through
17893	// the results.
17894	NextPageToken string `json:"nextPageToken,omitempty"`
17895
17896	// Warning: [Output Only] Informational warning message.
17897	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17898
17899	// ServerResponse contains the HTTP response code and headers from the
17900	// server.
17901	googleapi.ServerResponse `json:"-"`
17902
17903	// ForceSendFields is a list of field names (e.g. "Items") to
17904	// unconditionally include in API requests. By default, fields with
17905	// empty or default values are omitted from API requests. However, any
17906	// non-pointer, non-interface field appearing in ForceSendFields will be
17907	// sent to the server regardless of whether the field is empty or not.
17908	// This may be used to include empty fields in Patch requests.
17909	ForceSendFields []string `json:"-"`
17910
17911	// NullFields is a list of field names (e.g. "Items") to include in API
17912	// requests with the JSON null value. By default, fields with empty
17913	// values are omitted from API requests. However, any field with an
17914	// empty value appearing in NullFields will be sent to the server as
17915	// null. It is an error if a field in this list has a non-empty value.
17916	// This may be used to include null fields in Patch requests.
17917	NullFields []string `json:"-"`
17918}
17919
17920func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17921	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17922	raw := NoMethod(*s)
17923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17924}
17925
17926// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17927// Informational warning message.
17928type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17929	// Code: [Output Only] A warning code, if applicable. For example,
17930	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17931	// the response.
17932	//
17933	// Possible values:
17934	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
17935	// changes made by a failed operation.
17936	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
17937	// created.
17938	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
17939	// resources has a type marked as deprecated
17940	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
17941	// that is larger than image size.
17942	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
17943	// resources has a type marked as experimental
17944	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
17945	// call
17946	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
17947	// overridden. Deprecated unused field.
17948	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
17949	// injected kernel, which is deprecated.
17950	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
17951	// exceedingly large number of resources
17952	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
17953	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
17954	// not assigned to an instance on the network.
17955	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
17956	// ip forward.
17957	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
17958	// refers to an instance that does not exist.
17959	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
17960	// URL refers to an instance that is not on the same network as the
17961	// route.
17962	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
17963	// have a status of RUNNING.
17964	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
17965	// continue the process despite the mentioned error.
17966	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
17967	// page.
17968	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
17969	// missing due to errors
17970	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17971	// that requires a TOS they have not accepted.
17972	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17973	// resource is in use.
17974	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17975	// auto-delete could not be deleted because they were in use.
17976	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
17977	// ignored.
17978	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
17979	// instance group manager is valid as such, but its application does not
17980	// make a lot of sense, because it allows only single instance in
17981	// instance group.
17982	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
17983	// are present
17984	//   "UNREACHABLE" - A given scope cannot be reached.
17985	Code string `json:"code,omitempty"`
17986
17987	// Data: [Output Only] Metadata about this warning in key: value format.
17988	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
17989	// }
17990	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
17991
17992	// Message: [Output Only] A human-readable description of the warning
17993	// code.
17994	Message string `json:"message,omitempty"`
17995
17996	// ForceSendFields is a list of field names (e.g. "Code") to
17997	// unconditionally include in API requests. By default, fields with
17998	// empty or default values are omitted from API requests. However, any
17999	// non-pointer, non-interface field appearing in ForceSendFields will be
18000	// sent to the server regardless of whether the field is empty or not.
18001	// This may be used to include empty fields in Patch requests.
18002	ForceSendFields []string `json:"-"`
18003
18004	// NullFields is a list of field names (e.g. "Code") to include in API
18005	// requests with the JSON null value. By default, fields with empty
18006	// values are omitted from API requests. However, any field with an
18007	// empty value appearing in NullFields will be sent to the server as
18008	// null. It is an error if a field in this list has a non-empty value.
18009	// This may be used to include null fields in Patch requests.
18010	NullFields []string `json:"-"`
18011}
18012
18013func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
18014	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
18015	raw := NoMethod(*s)
18016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18017}
18018
18019type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
18020	// Key: [Output Only] A key that provides more detail on the warning
18021	// being returned. For example, for warnings where there are no results
18022	// in a list request for a particular zone, this key might be scope and
18023	// the key value might be the zone name. Other examples might be a key
18024	// indicating a deprecated resource and a suggested replacement, or a
18025	// warning about invalid network settings (for example, if an instance
18026	// attempts to perform IP forwarding but is not enabled for IP
18027	// forwarding).
18028	Key string `json:"key,omitempty"`
18029
18030	// Value: [Output Only] A warning data value corresponding to the key.
18031	Value string `json:"value,omitempty"`
18032
18033	// ForceSendFields is a list of field names (e.g. "Key") to
18034	// unconditionally include in API requests. By default, fields with
18035	// empty or default values are omitted from API requests. However, any
18036	// non-pointer, non-interface field appearing in ForceSendFields will be
18037	// sent to the server regardless of whether the field is empty or not.
18038	// This may be used to include empty fields in Patch requests.
18039	ForceSendFields []string `json:"-"`
18040
18041	// NullFields is a list of field names (e.g. "Key") to include in API
18042	// requests with the JSON null value. By default, fields with empty
18043	// values are omitted from API requests. However, any field with an
18044	// empty value appearing in NullFields will be sent to the server as
18045	// null. It is an error if a field in this list has a non-empty value.
18046	// This may be used to include null fields in Patch requests.
18047	NullFields []string `json:"-"`
18048}
18049
18050func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
18051	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
18052	raw := NoMethod(*s)
18053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18054}
18055
18056// InstanceGroupManagersPatchPerInstanceConfigsReq:
18057// InstanceGroupManagers.patchPerInstanceConfigs
18058type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
18059	// PerInstanceConfigs: The list of per-instance configs to insert or
18060	// patch on this managed instance group.
18061	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18062
18063	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18064	// to unconditionally include in API requests. By default, fields with
18065	// empty or default values are omitted from API requests. However, any
18066	// non-pointer, non-interface field appearing in ForceSendFields will be
18067	// sent to the server regardless of whether the field is empty or not.
18068	// This may be used to include empty fields in Patch requests.
18069	ForceSendFields []string `json:"-"`
18070
18071	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18072	// include in API requests with the JSON null value. By default, fields
18073	// with empty values are omitted from API requests. However, any field
18074	// with an empty value appearing in NullFields will be sent to the
18075	// server as null. It is an error if a field in this list has a
18076	// non-empty value. This may be used to include null fields in Patch
18077	// requests.
18078	NullFields []string `json:"-"`
18079}
18080
18081func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18082	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
18083	raw := NoMethod(*s)
18084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18085}
18086
18087type InstanceGroupManagersRecreateInstancesRequest struct {
18088	// Instances: The URLs of one or more instances to recreate. This can be
18089	// a full URL or a partial URL, such as
18090	// zones/[ZONE]/instances/[INSTANCE_NAME].
18091	Instances []string `json:"instances,omitempty"`
18092
18093	// ForceSendFields is a list of field names (e.g. "Instances") to
18094	// unconditionally include in API requests. By default, fields with
18095	// empty or default values are omitted from API requests. However, any
18096	// non-pointer, non-interface field appearing in ForceSendFields will be
18097	// sent to the server regardless of whether the field is empty or not.
18098	// This may be used to include empty fields in Patch requests.
18099	ForceSendFields []string `json:"-"`
18100
18101	// NullFields is a list of field names (e.g. "Instances") to include in
18102	// API requests with the JSON null value. By default, fields with empty
18103	// values are omitted from API requests. However, any field with an
18104	// empty value appearing in NullFields will be sent to the server as
18105	// null. It is an error if a field in this list has a non-empty value.
18106	// This may be used to include null fields in Patch requests.
18107	NullFields []string `json:"-"`
18108}
18109
18110func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
18111	type NoMethod InstanceGroupManagersRecreateInstancesRequest
18112	raw := NoMethod(*s)
18113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18114}
18115
18116type InstanceGroupManagersScopedList struct {
18117	// InstanceGroupManagers: [Output Only] The list of managed instance
18118	// groups that are contained in the specified project and zone.
18119	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
18120
18121	// Warning: [Output Only] The warning that replaces the list of managed
18122	// instance groups when the list is empty.
18123	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
18124
18125	// ForceSendFields is a list of field names (e.g.
18126	// "InstanceGroupManagers") to unconditionally include in API requests.
18127	// By default, fields with empty or default values are omitted from API
18128	// requests. However, any non-pointer, non-interface field appearing in
18129	// ForceSendFields will be sent to the server regardless of whether the
18130	// field is empty or not. This may be used to include empty fields in
18131	// Patch requests.
18132	ForceSendFields []string `json:"-"`
18133
18134	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
18135	// include in API requests with the JSON null value. By default, fields
18136	// with empty values are omitted from API requests. However, any field
18137	// with an empty value appearing in NullFields will be sent to the
18138	// server as null. It is an error if a field in this list has a
18139	// non-empty value. This may be used to include null fields in Patch
18140	// requests.
18141	NullFields []string `json:"-"`
18142}
18143
18144func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
18145	type NoMethod InstanceGroupManagersScopedList
18146	raw := NoMethod(*s)
18147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18148}
18149
18150// InstanceGroupManagersScopedListWarning: [Output Only] The warning
18151// that replaces the list of managed instance groups when the list is
18152// empty.
18153type InstanceGroupManagersScopedListWarning struct {
18154	// Code: [Output Only] A warning code, if applicable. For example,
18155	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18156	// the response.
18157	//
18158	// Possible values:
18159	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18160	// changes made by a failed operation.
18161	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18162	// created.
18163	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18164	// resources has a type marked as deprecated
18165	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18166	// that is larger than image size.
18167	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18168	// resources has a type marked as experimental
18169	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18170	// call
18171	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18172	// overridden. Deprecated unused field.
18173	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18174	// injected kernel, which is deprecated.
18175	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18176	// exceedingly large number of resources
18177	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18178	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18179	// not assigned to an instance on the network.
18180	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18181	// ip forward.
18182	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18183	// refers to an instance that does not exist.
18184	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18185	// URL refers to an instance that is not on the same network as the
18186	// route.
18187	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18188	// have a status of RUNNING.
18189	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18190	// continue the process despite the mentioned error.
18191	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18192	// page.
18193	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18194	// missing due to errors
18195	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18196	// that requires a TOS they have not accepted.
18197	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18198	// resource is in use.
18199	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18200	// auto-delete could not be deleted because they were in use.
18201	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18202	// ignored.
18203	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18204	// instance group manager is valid as such, but its application does not
18205	// make a lot of sense, because it allows only single instance in
18206	// instance group.
18207	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18208	// are present
18209	//   "UNREACHABLE" - A given scope cannot be reached.
18210	Code string `json:"code,omitempty"`
18211
18212	// Data: [Output Only] Metadata about this warning in key: value format.
18213	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18214	// }
18215	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
18216
18217	// Message: [Output Only] A human-readable description of the warning
18218	// code.
18219	Message string `json:"message,omitempty"`
18220
18221	// ForceSendFields is a list of field names (e.g. "Code") to
18222	// unconditionally include in API requests. By default, fields with
18223	// empty or default values are omitted from API requests. However, any
18224	// non-pointer, non-interface field appearing in ForceSendFields will be
18225	// sent to the server regardless of whether the field is empty or not.
18226	// This may be used to include empty fields in Patch requests.
18227	ForceSendFields []string `json:"-"`
18228
18229	// NullFields is a list of field names (e.g. "Code") to include in API
18230	// requests with the JSON null value. By default, fields with empty
18231	// values are omitted from API requests. However, any field with an
18232	// empty value appearing in NullFields will be sent to the server as
18233	// null. It is an error if a field in this list has a non-empty value.
18234	// This may be used to include null fields in Patch requests.
18235	NullFields []string `json:"-"`
18236}
18237
18238func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
18239	type NoMethod InstanceGroupManagersScopedListWarning
18240	raw := NoMethod(*s)
18241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18242}
18243
18244type InstanceGroupManagersScopedListWarningData struct {
18245	// Key: [Output Only] A key that provides more detail on the warning
18246	// being returned. For example, for warnings where there are no results
18247	// in a list request for a particular zone, this key might be scope and
18248	// the key value might be the zone name. Other examples might be a key
18249	// indicating a deprecated resource and a suggested replacement, or a
18250	// warning about invalid network settings (for example, if an instance
18251	// attempts to perform IP forwarding but is not enabled for IP
18252	// forwarding).
18253	Key string `json:"key,omitempty"`
18254
18255	// Value: [Output Only] A warning data value corresponding to the key.
18256	Value string `json:"value,omitempty"`
18257
18258	// ForceSendFields is a list of field names (e.g. "Key") to
18259	// unconditionally include in API requests. By default, fields with
18260	// empty or default values are omitted from API requests. However, any
18261	// non-pointer, non-interface field appearing in ForceSendFields will be
18262	// sent to the server regardless of whether the field is empty or not.
18263	// This may be used to include empty fields in Patch requests.
18264	ForceSendFields []string `json:"-"`
18265
18266	// NullFields is a list of field names (e.g. "Key") to include in API
18267	// requests with the JSON null value. By default, fields with empty
18268	// values are omitted from API requests. However, any field with an
18269	// empty value appearing in NullFields will be sent to the server as
18270	// null. It is an error if a field in this list has a non-empty value.
18271	// This may be used to include null fields in Patch requests.
18272	NullFields []string `json:"-"`
18273}
18274
18275func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
18276	type NoMethod InstanceGroupManagersScopedListWarningData
18277	raw := NoMethod(*s)
18278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18279}
18280
18281type InstanceGroupManagersSetInstanceTemplateRequest struct {
18282	// InstanceTemplate: The URL of the instance template that is specified
18283	// for this managed instance group. The group uses this template to
18284	// create all new instances in the managed instance group. The templates
18285	// for existing instances in the group do not change unless you run
18286	// recreateInstances, run applyUpdatesToInstances, or set the group's
18287	// updatePolicy.type to PROACTIVE.
18288	InstanceTemplate string `json:"instanceTemplate,omitempty"`
18289
18290	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
18291	// unconditionally include in API requests. By default, fields with
18292	// empty or default values are omitted from API requests. However, any
18293	// non-pointer, non-interface field appearing in ForceSendFields will be
18294	// sent to the server regardless of whether the field is empty or not.
18295	// This may be used to include empty fields in Patch requests.
18296	ForceSendFields []string `json:"-"`
18297
18298	// NullFields is a list of field names (e.g. "InstanceTemplate") to
18299	// include in API requests with the JSON null value. By default, fields
18300	// with empty values are omitted from API requests. However, any field
18301	// with an empty value appearing in NullFields will be sent to the
18302	// server as null. It is an error if a field in this list has a
18303	// non-empty value. This may be used to include null fields in Patch
18304	// requests.
18305	NullFields []string `json:"-"`
18306}
18307
18308func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
18309	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
18310	raw := NoMethod(*s)
18311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18312}
18313
18314type InstanceGroupManagersSetTargetPoolsRequest struct {
18315	// Fingerprint: The fingerprint of the target pools information. Use
18316	// this optional property to prevent conflicts when multiple users
18317	// change the target pools settings concurrently. Obtain the fingerprint
18318	// with the instanceGroupManagers.get method. Then, include the
18319	// fingerprint in your request to ensure that you do not overwrite
18320	// changes that were applied from another concurrent request.
18321	Fingerprint string `json:"fingerprint,omitempty"`
18322
18323	// TargetPools: The list of target pool URLs that instances in this
18324	// managed instance group belong to. The managed instance group applies
18325	// these target pools to all of the instances in the group. Existing
18326	// instances and new instances in the group all receive these target
18327	// pool settings.
18328	TargetPools []string `json:"targetPools,omitempty"`
18329
18330	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18331	// unconditionally include in API requests. By default, fields with
18332	// empty or default values are omitted from API requests. However, any
18333	// non-pointer, non-interface field appearing in ForceSendFields will be
18334	// sent to the server regardless of whether the field is empty or not.
18335	// This may be used to include empty fields in Patch requests.
18336	ForceSendFields []string `json:"-"`
18337
18338	// NullFields is a list of field names (e.g. "Fingerprint") to include
18339	// in API requests with the JSON null value. By default, fields with
18340	// empty values are omitted from API requests. However, any field with
18341	// an empty value appearing in NullFields will be sent to the server as
18342	// null. It is an error if a field in this list has a non-empty value.
18343	// This may be used to include null fields in Patch requests.
18344	NullFields []string `json:"-"`
18345}
18346
18347func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
18348	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
18349	raw := NoMethod(*s)
18350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18351}
18352
18353// InstanceGroupManagersUpdatePerInstanceConfigsReq:
18354// InstanceGroupManagers.updatePerInstanceConfigs
18355type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
18356	// PerInstanceConfigs: The list of per-instance configs to insert or
18357	// patch on this managed instance group.
18358	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18359
18360	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18361	// to unconditionally include in API requests. By default, fields with
18362	// empty or default values are omitted from API requests. However, any
18363	// non-pointer, non-interface field appearing in ForceSendFields will be
18364	// sent to the server regardless of whether the field is empty or not.
18365	// This may be used to include empty fields in Patch requests.
18366	ForceSendFields []string `json:"-"`
18367
18368	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18369	// include in API requests with the JSON null value. By default, fields
18370	// with empty values are omitted from API requests. However, any field
18371	// with an empty value appearing in NullFields will be sent to the
18372	// server as null. It is an error if a field in this list has a
18373	// non-empty value. This may be used to include null fields in Patch
18374	// requests.
18375	NullFields []string `json:"-"`
18376}
18377
18378func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18379	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
18380	raw := NoMethod(*s)
18381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18382}
18383
18384type InstanceGroupsAddInstancesRequest struct {
18385	// Instances: The list of instances to add to the instance group.
18386	Instances []*InstanceReference `json:"instances,omitempty"`
18387
18388	// ForceSendFields is a list of field names (e.g. "Instances") to
18389	// unconditionally include in API requests. By default, fields with
18390	// empty or default values are omitted from API requests. However, any
18391	// non-pointer, non-interface field appearing in ForceSendFields will be
18392	// sent to the server regardless of whether the field is empty or not.
18393	// This may be used to include empty fields in Patch requests.
18394	ForceSendFields []string `json:"-"`
18395
18396	// NullFields is a list of field names (e.g. "Instances") to include in
18397	// API requests with the JSON null value. By default, fields with empty
18398	// values are omitted from API requests. However, any field with an
18399	// empty value appearing in NullFields will be sent to the server as
18400	// null. It is an error if a field in this list has a non-empty value.
18401	// This may be used to include null fields in Patch requests.
18402	NullFields []string `json:"-"`
18403}
18404
18405func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
18406	type NoMethod InstanceGroupsAddInstancesRequest
18407	raw := NoMethod(*s)
18408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18409}
18410
18411type InstanceGroupsListInstances struct {
18412	// Id: [Output Only] Unique identifier for the resource; defined by the
18413	// server.
18414	Id string `json:"id,omitempty"`
18415
18416	// Items: A list of InstanceWithNamedPorts resources.
18417	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
18418
18419	// Kind: [Output Only] The resource type, which is always
18420	// compute#instanceGroupsListInstances for the list of instances in the
18421	// specified instance group.
18422	Kind string `json:"kind,omitempty"`
18423
18424	// NextPageToken: [Output Only] This token allows you to get the next
18425	// page of results for list requests. If the number of results is larger
18426	// than maxResults, use the nextPageToken as a value for the query
18427	// parameter pageToken in the next list request. Subsequent list
18428	// requests will have their own nextPageToken to continue paging through
18429	// the results.
18430	NextPageToken string `json:"nextPageToken,omitempty"`
18431
18432	// SelfLink: [Output Only] Server-defined URL for this resource.
18433	SelfLink string `json:"selfLink,omitempty"`
18434
18435	// Warning: [Output Only] Informational warning message.
18436	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
18437
18438	// ServerResponse contains the HTTP response code and headers from the
18439	// server.
18440	googleapi.ServerResponse `json:"-"`
18441
18442	// ForceSendFields is a list of field names (e.g. "Id") to
18443	// unconditionally include in API requests. By default, fields with
18444	// empty or default values are omitted from API requests. However, any
18445	// non-pointer, non-interface field appearing in ForceSendFields will be
18446	// sent to the server regardless of whether the field is empty or not.
18447	// This may be used to include empty fields in Patch requests.
18448	ForceSendFields []string `json:"-"`
18449
18450	// NullFields is a list of field names (e.g. "Id") to include in API
18451	// requests with the JSON null value. By default, fields with empty
18452	// values are omitted from API requests. However, any field with an
18453	// empty value appearing in NullFields will be sent to the server as
18454	// null. It is an error if a field in this list has a non-empty value.
18455	// This may be used to include null fields in Patch requests.
18456	NullFields []string `json:"-"`
18457}
18458
18459func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
18460	type NoMethod InstanceGroupsListInstances
18461	raw := NoMethod(*s)
18462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18463}
18464
18465// InstanceGroupsListInstancesWarning: [Output Only] Informational
18466// warning message.
18467type InstanceGroupsListInstancesWarning struct {
18468	// Code: [Output Only] A warning code, if applicable. For example,
18469	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18470	// the response.
18471	//
18472	// Possible values:
18473	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18474	// changes made by a failed operation.
18475	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18476	// created.
18477	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18478	// resources has a type marked as deprecated
18479	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18480	// that is larger than image size.
18481	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18482	// resources has a type marked as experimental
18483	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18484	// call
18485	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18486	// overridden. Deprecated unused field.
18487	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18488	// injected kernel, which is deprecated.
18489	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18490	// exceedingly large number of resources
18491	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18492	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18493	// not assigned to an instance on the network.
18494	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18495	// ip forward.
18496	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18497	// refers to an instance that does not exist.
18498	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18499	// URL refers to an instance that is not on the same network as the
18500	// route.
18501	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18502	// have a status of RUNNING.
18503	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18504	// continue the process despite the mentioned error.
18505	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18506	// page.
18507	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18508	// missing due to errors
18509	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18510	// that requires a TOS they have not accepted.
18511	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18512	// resource is in use.
18513	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18514	// auto-delete could not be deleted because they were in use.
18515	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18516	// ignored.
18517	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18518	// instance group manager is valid as such, but its application does not
18519	// make a lot of sense, because it allows only single instance in
18520	// instance group.
18521	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18522	// are present
18523	//   "UNREACHABLE" - A given scope cannot be reached.
18524	Code string `json:"code,omitempty"`
18525
18526	// Data: [Output Only] Metadata about this warning in key: value format.
18527	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18528	// }
18529	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
18530
18531	// Message: [Output Only] A human-readable description of the warning
18532	// code.
18533	Message string `json:"message,omitempty"`
18534
18535	// ForceSendFields is a list of field names (e.g. "Code") to
18536	// unconditionally include in API requests. By default, fields with
18537	// empty or default values are omitted from API requests. However, any
18538	// non-pointer, non-interface field appearing in ForceSendFields will be
18539	// sent to the server regardless of whether the field is empty or not.
18540	// This may be used to include empty fields in Patch requests.
18541	ForceSendFields []string `json:"-"`
18542
18543	// NullFields is a list of field names (e.g. "Code") to include in API
18544	// requests with the JSON null value. By default, fields with empty
18545	// values are omitted from API requests. However, any field with an
18546	// empty value appearing in NullFields will be sent to the server as
18547	// null. It is an error if a field in this list has a non-empty value.
18548	// This may be used to include null fields in Patch requests.
18549	NullFields []string `json:"-"`
18550}
18551
18552func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
18553	type NoMethod InstanceGroupsListInstancesWarning
18554	raw := NoMethod(*s)
18555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18556}
18557
18558type InstanceGroupsListInstancesWarningData struct {
18559	// Key: [Output Only] A key that provides more detail on the warning
18560	// being returned. For example, for warnings where there are no results
18561	// in a list request for a particular zone, this key might be scope and
18562	// the key value might be the zone name. Other examples might be a key
18563	// indicating a deprecated resource and a suggested replacement, or a
18564	// warning about invalid network settings (for example, if an instance
18565	// attempts to perform IP forwarding but is not enabled for IP
18566	// forwarding).
18567	Key string `json:"key,omitempty"`
18568
18569	// Value: [Output Only] A warning data value corresponding to the key.
18570	Value string `json:"value,omitempty"`
18571
18572	// ForceSendFields is a list of field names (e.g. "Key") to
18573	// unconditionally include in API requests. By default, fields with
18574	// empty or default values are omitted from API requests. However, any
18575	// non-pointer, non-interface field appearing in ForceSendFields will be
18576	// sent to the server regardless of whether the field is empty or not.
18577	// This may be used to include empty fields in Patch requests.
18578	ForceSendFields []string `json:"-"`
18579
18580	// NullFields is a list of field names (e.g. "Key") to include in API
18581	// requests with the JSON null value. By default, fields with empty
18582	// values are omitted from API requests. However, any field with an
18583	// empty value appearing in NullFields will be sent to the server as
18584	// null. It is an error if a field in this list has a non-empty value.
18585	// This may be used to include null fields in Patch requests.
18586	NullFields []string `json:"-"`
18587}
18588
18589func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
18590	type NoMethod InstanceGroupsListInstancesWarningData
18591	raw := NoMethod(*s)
18592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18593}
18594
18595type InstanceGroupsListInstancesRequest struct {
18596	// InstanceState: A filter for the state of the instances in the
18597	// instance group. Valid options are ALL or RUNNING. If you do not
18598	// specify this parameter the list includes all instances regardless of
18599	// their state.
18600	//
18601	// Possible values:
18602	//   "ALL" - Includes all instances in the generated list regardless of
18603	// their state.
18604	//   "RUNNING" - Includes instances in the generated list only if they
18605	// have a RUNNING state.
18606	InstanceState string `json:"instanceState,omitempty"`
18607
18608	// ForceSendFields is a list of field names (e.g. "InstanceState") to
18609	// unconditionally include in API requests. By default, fields with
18610	// empty or default values are omitted from API requests. However, any
18611	// non-pointer, non-interface field appearing in ForceSendFields will be
18612	// sent to the server regardless of whether the field is empty or not.
18613	// This may be used to include empty fields in Patch requests.
18614	ForceSendFields []string `json:"-"`
18615
18616	// NullFields is a list of field names (e.g. "InstanceState") to include
18617	// in API requests with the JSON null value. By default, fields with
18618	// empty values are omitted from API requests. However, any field with
18619	// an empty value appearing in NullFields will be sent to the server as
18620	// null. It is an error if a field in this list has a non-empty value.
18621	// This may be used to include null fields in Patch requests.
18622	NullFields []string `json:"-"`
18623}
18624
18625func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
18626	type NoMethod InstanceGroupsListInstancesRequest
18627	raw := NoMethod(*s)
18628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18629}
18630
18631type InstanceGroupsRemoveInstancesRequest struct {
18632	// Instances: The list of instances to remove from the instance group.
18633	Instances []*InstanceReference `json:"instances,omitempty"`
18634
18635	// ForceSendFields is a list of field names (e.g. "Instances") to
18636	// unconditionally include in API requests. By default, fields with
18637	// empty or default values are omitted from API requests. However, any
18638	// non-pointer, non-interface field appearing in ForceSendFields will be
18639	// sent to the server regardless of whether the field is empty or not.
18640	// This may be used to include empty fields in Patch requests.
18641	ForceSendFields []string `json:"-"`
18642
18643	// NullFields is a list of field names (e.g. "Instances") to include in
18644	// API requests with the JSON null value. By default, fields with empty
18645	// values are omitted from API requests. However, any field with an
18646	// empty value appearing in NullFields will be sent to the server as
18647	// null. It is an error if a field in this list has a non-empty value.
18648	// This may be used to include null fields in Patch requests.
18649	NullFields []string `json:"-"`
18650}
18651
18652func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
18653	type NoMethod InstanceGroupsRemoveInstancesRequest
18654	raw := NoMethod(*s)
18655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18656}
18657
18658type InstanceGroupsScopedList struct {
18659	// InstanceGroups: [Output Only] The list of instance groups that are
18660	// contained in this scope.
18661	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
18662
18663	// Warning: [Output Only] An informational warning that replaces the
18664	// list of instance groups when the list is empty.
18665	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
18666
18667	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
18668	// unconditionally include in API requests. By default, fields with
18669	// empty or default values are omitted from API requests. However, any
18670	// non-pointer, non-interface field appearing in ForceSendFields will be
18671	// sent to the server regardless of whether the field is empty or not.
18672	// This may be used to include empty fields in Patch requests.
18673	ForceSendFields []string `json:"-"`
18674
18675	// NullFields is a list of field names (e.g. "InstanceGroups") to
18676	// include in API requests with the JSON null value. By default, fields
18677	// with empty values are omitted from API requests. However, any field
18678	// with an empty value appearing in NullFields will be sent to the
18679	// server as null. It is an error if a field in this list has a
18680	// non-empty value. This may be used to include null fields in Patch
18681	// requests.
18682	NullFields []string `json:"-"`
18683}
18684
18685func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
18686	type NoMethod InstanceGroupsScopedList
18687	raw := NoMethod(*s)
18688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18689}
18690
18691// InstanceGroupsScopedListWarning: [Output Only] An informational
18692// warning that replaces the list of instance groups when the list is
18693// empty.
18694type InstanceGroupsScopedListWarning struct {
18695	// Code: [Output Only] A warning code, if applicable. For example,
18696	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18697	// the response.
18698	//
18699	// Possible values:
18700	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18701	// changes made by a failed operation.
18702	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18703	// created.
18704	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18705	// resources has a type marked as deprecated
18706	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18707	// that is larger than image size.
18708	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18709	// resources has a type marked as experimental
18710	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18711	// call
18712	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18713	// overridden. Deprecated unused field.
18714	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18715	// injected kernel, which is deprecated.
18716	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18717	// exceedingly large number of resources
18718	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18719	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18720	// not assigned to an instance on the network.
18721	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18722	// ip forward.
18723	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18724	// refers to an instance that does not exist.
18725	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18726	// URL refers to an instance that is not on the same network as the
18727	// route.
18728	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18729	// have a status of RUNNING.
18730	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18731	// continue the process despite the mentioned error.
18732	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18733	// page.
18734	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18735	// missing due to errors
18736	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18737	// that requires a TOS they have not accepted.
18738	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18739	// resource is in use.
18740	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18741	// auto-delete could not be deleted because they were in use.
18742	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18743	// ignored.
18744	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18745	// instance group manager is valid as such, but its application does not
18746	// make a lot of sense, because it allows only single instance in
18747	// instance group.
18748	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18749	// are present
18750	//   "UNREACHABLE" - A given scope cannot be reached.
18751	Code string `json:"code,omitempty"`
18752
18753	// Data: [Output Only] Metadata about this warning in key: value format.
18754	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18755	// }
18756	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
18757
18758	// Message: [Output Only] A human-readable description of the warning
18759	// code.
18760	Message string `json:"message,omitempty"`
18761
18762	// ForceSendFields is a list of field names (e.g. "Code") to
18763	// unconditionally include in API requests. By default, fields with
18764	// empty or default values are omitted from API requests. However, any
18765	// non-pointer, non-interface field appearing in ForceSendFields will be
18766	// sent to the server regardless of whether the field is empty or not.
18767	// This may be used to include empty fields in Patch requests.
18768	ForceSendFields []string `json:"-"`
18769
18770	// NullFields is a list of field names (e.g. "Code") to include in API
18771	// 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 *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
18780	type NoMethod InstanceGroupsScopedListWarning
18781	raw := NoMethod(*s)
18782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18783}
18784
18785type InstanceGroupsScopedListWarningData struct {
18786	// Key: [Output Only] A key that provides more detail on the warning
18787	// being returned. For example, for warnings where there are no results
18788	// in a list request for a particular zone, this key might be scope and
18789	// the key value might be the zone name. Other examples might be a key
18790	// indicating a deprecated resource and a suggested replacement, or a
18791	// warning about invalid network settings (for example, if an instance
18792	// attempts to perform IP forwarding but is not enabled for IP
18793	// forwarding).
18794	Key string `json:"key,omitempty"`
18795
18796	// Value: [Output Only] A warning data value corresponding to the key.
18797	Value string `json:"value,omitempty"`
18798
18799	// ForceSendFields is a list of field names (e.g. "Key") to
18800	// unconditionally include in API requests. By default, fields with
18801	// empty or default values are omitted from API requests. However, any
18802	// non-pointer, non-interface field appearing in ForceSendFields will be
18803	// sent to the server regardless of whether the field is empty or not.
18804	// This may be used to include empty fields in Patch requests.
18805	ForceSendFields []string `json:"-"`
18806
18807	// NullFields is a list of field names (e.g. "Key") to include in API
18808	// requests with the JSON null value. By default, fields with empty
18809	// values are omitted from API requests. However, any field with an
18810	// empty value appearing in NullFields will be sent to the server as
18811	// null. It is an error if a field in this list has a non-empty value.
18812	// This may be used to include null fields in Patch requests.
18813	NullFields []string `json:"-"`
18814}
18815
18816func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
18817	type NoMethod InstanceGroupsScopedListWarningData
18818	raw := NoMethod(*s)
18819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18820}
18821
18822type InstanceGroupsSetNamedPortsRequest struct {
18823	// Fingerprint: The fingerprint of the named ports information for this
18824	// instance group. Use this optional property to prevent conflicts when
18825	// multiple users change the named ports settings concurrently. Obtain
18826	// the fingerprint with the instanceGroups.get method. Then, include the
18827	// fingerprint in your request to ensure that you do not overwrite
18828	// changes that were applied from another concurrent request. A request
18829	// with an incorrect fingerprint will fail with error 412
18830	// conditionNotMet.
18831	Fingerprint string `json:"fingerprint,omitempty"`
18832
18833	// NamedPorts: The list of named ports to set for this instance group.
18834	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18835
18836	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18837	// unconditionally include in API requests. By default, fields with
18838	// empty or default values are omitted from API requests. However, any
18839	// non-pointer, non-interface field appearing in ForceSendFields will be
18840	// sent to the server regardless of whether the field is empty or not.
18841	// This may be used to include empty fields in Patch requests.
18842	ForceSendFields []string `json:"-"`
18843
18844	// NullFields is a list of field names (e.g. "Fingerprint") to include
18845	// in API requests with the JSON null value. By default, fields with
18846	// empty values are omitted from API requests. However, any field with
18847	// an empty value appearing in NullFields will be sent to the server as
18848	// null. It is an error if a field in this list has a non-empty value.
18849	// This may be used to include null fields in Patch requests.
18850	NullFields []string `json:"-"`
18851}
18852
18853func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
18854	type NoMethod InstanceGroupsSetNamedPortsRequest
18855	raw := NoMethod(*s)
18856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18857}
18858
18859// InstanceList: Contains a list of instances.
18860type InstanceList struct {
18861	// Id: [Output Only] Unique identifier for the resource; defined by the
18862	// server.
18863	Id string `json:"id,omitempty"`
18864
18865	// Items: A list of Instance resources.
18866	Items []*Instance `json:"items,omitempty"`
18867
18868	// Kind: [Output Only] Type of resource. Always compute#instanceList for
18869	// lists of Instance resources.
18870	Kind string `json:"kind,omitempty"`
18871
18872	// NextPageToken: [Output Only] This token allows you to get the next
18873	// page of results for list requests. If the number of results is larger
18874	// than maxResults, use the nextPageToken as a value for the query
18875	// parameter pageToken in the next list request. Subsequent list
18876	// requests will have their own nextPageToken to continue paging through
18877	// the results.
18878	NextPageToken string `json:"nextPageToken,omitempty"`
18879
18880	// SelfLink: [Output Only] Server-defined URL for this resource.
18881	SelfLink string `json:"selfLink,omitempty"`
18882
18883	// Warning: [Output Only] Informational warning message.
18884	Warning *InstanceListWarning `json:"warning,omitempty"`
18885
18886	// ServerResponse contains the HTTP response code and headers from the
18887	// server.
18888	googleapi.ServerResponse `json:"-"`
18889
18890	// ForceSendFields is a list of field names (e.g. "Id") to
18891	// unconditionally include in API requests. By default, fields with
18892	// empty or default values are omitted from API requests. However, any
18893	// non-pointer, non-interface field appearing in ForceSendFields will be
18894	// sent to the server regardless of whether the field is empty or not.
18895	// This may be used to include empty fields in Patch requests.
18896	ForceSendFields []string `json:"-"`
18897
18898	// NullFields is a list of field names (e.g. "Id") to include in API
18899	// requests with the JSON null value. By default, fields with empty
18900	// values are omitted from API requests. However, any field with an
18901	// empty value appearing in NullFields will be sent to the server as
18902	// null. It is an error if a field in this list has a non-empty value.
18903	// This may be used to include null fields in Patch requests.
18904	NullFields []string `json:"-"`
18905}
18906
18907func (s *InstanceList) MarshalJSON() ([]byte, error) {
18908	type NoMethod InstanceList
18909	raw := NoMethod(*s)
18910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18911}
18912
18913// InstanceListWarning: [Output Only] Informational warning message.
18914type InstanceListWarning struct {
18915	// Code: [Output Only] A warning code, if applicable. For example,
18916	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18917	// the response.
18918	//
18919	// Possible values:
18920	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18921	// changes made by a failed operation.
18922	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18923	// created.
18924	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18925	// resources has a type marked as deprecated
18926	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18927	// that is larger than image size.
18928	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18929	// resources has a type marked as experimental
18930	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18931	// call
18932	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18933	// overridden. Deprecated unused field.
18934	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18935	// injected kernel, which is deprecated.
18936	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18937	// exceedingly large number of resources
18938	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18939	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18940	// not assigned to an instance on the network.
18941	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18942	// ip forward.
18943	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18944	// refers to an instance that does not exist.
18945	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18946	// URL refers to an instance that is not on the same network as the
18947	// route.
18948	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18949	// have a status of RUNNING.
18950	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18951	// continue the process despite the mentioned error.
18952	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18953	// page.
18954	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18955	// missing due to errors
18956	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18957	// that requires a TOS they have not accepted.
18958	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18959	// resource is in use.
18960	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18961	// auto-delete could not be deleted because they were in use.
18962	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18963	// ignored.
18964	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18965	// instance group manager is valid as such, but its application does not
18966	// make a lot of sense, because it allows only single instance in
18967	// instance group.
18968	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18969	// are present
18970	//   "UNREACHABLE" - A given scope cannot be reached.
18971	Code string `json:"code,omitempty"`
18972
18973	// Data: [Output Only] Metadata about this warning in key: value format.
18974	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18975	// }
18976	Data []*InstanceListWarningData `json:"data,omitempty"`
18977
18978	// Message: [Output Only] A human-readable description of the warning
18979	// code.
18980	Message string `json:"message,omitempty"`
18981
18982	// ForceSendFields is a list of field names (e.g. "Code") to
18983	// unconditionally include in API requests. By default, fields with
18984	// empty or default values are omitted from API requests. However, any
18985	// non-pointer, non-interface field appearing in ForceSendFields will be
18986	// sent to the server regardless of whether the field is empty or not.
18987	// This may be used to include empty fields in Patch requests.
18988	ForceSendFields []string `json:"-"`
18989
18990	// NullFields is a list of field names (e.g. "Code") to include in API
18991	// requests with the JSON null value. By default, fields with empty
18992	// values are omitted from API requests. However, any field with an
18993	// empty value appearing in NullFields will be sent to the server as
18994	// null. It is an error if a field in this list has a non-empty value.
18995	// This may be used to include null fields in Patch requests.
18996	NullFields []string `json:"-"`
18997}
18998
18999func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
19000	type NoMethod InstanceListWarning
19001	raw := NoMethod(*s)
19002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19003}
19004
19005type InstanceListWarningData struct {
19006	// Key: [Output Only] A key that provides more detail on the warning
19007	// being returned. For example, for warnings where there are no results
19008	// in a list request for a particular zone, this key might be scope and
19009	// the key value might be the zone name. Other examples might be a key
19010	// indicating a deprecated resource and a suggested replacement, or a
19011	// warning about invalid network settings (for example, if an instance
19012	// attempts to perform IP forwarding but is not enabled for IP
19013	// forwarding).
19014	Key string `json:"key,omitempty"`
19015
19016	// Value: [Output Only] A warning data value corresponding to the key.
19017	Value string `json:"value,omitempty"`
19018
19019	// ForceSendFields is a list of field names (e.g. "Key") to
19020	// unconditionally include in API requests. By default, fields with
19021	// empty or default values are omitted from API requests. However, any
19022	// non-pointer, non-interface field appearing in ForceSendFields will be
19023	// sent to the server regardless of whether the field is empty or not.
19024	// This may be used to include empty fields in Patch requests.
19025	ForceSendFields []string `json:"-"`
19026
19027	// NullFields is a list of field names (e.g. "Key") to include in API
19028	// requests with the JSON null value. By default, fields with empty
19029	// values are omitted from API requests. However, any field with an
19030	// empty value appearing in NullFields will be sent to the server as
19031	// null. It is an error if a field in this list has a non-empty value.
19032	// This may be used to include null fields in Patch requests.
19033	NullFields []string `json:"-"`
19034}
19035
19036func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
19037	type NoMethod InstanceListWarningData
19038	raw := NoMethod(*s)
19039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19040}
19041
19042// InstanceListReferrers: Contains a list of instance referrers.
19043type InstanceListReferrers struct {
19044	// Id: [Output Only] Unique identifier for the resource; defined by the
19045	// server.
19046	Id string `json:"id,omitempty"`
19047
19048	// Items: A list of Reference resources.
19049	Items []*Reference `json:"items,omitempty"`
19050
19051	// Kind: [Output Only] Type of resource. Always
19052	// compute#instanceListReferrers for lists of Instance referrers.
19053	Kind string `json:"kind,omitempty"`
19054
19055	// NextPageToken: [Output Only] This token allows you to get the next
19056	// page of results for list requests. If the number of results is larger
19057	// than maxResults, use the nextPageToken as a value for the query
19058	// parameter pageToken in the next list request. Subsequent list
19059	// requests will have their own nextPageToken to continue paging through
19060	// the results.
19061	NextPageToken string `json:"nextPageToken,omitempty"`
19062
19063	// SelfLink: [Output Only] Server-defined URL for this resource.
19064	SelfLink string `json:"selfLink,omitempty"`
19065
19066	// Warning: [Output Only] Informational warning message.
19067	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
19068
19069	// ServerResponse contains the HTTP response code and headers from the
19070	// server.
19071	googleapi.ServerResponse `json:"-"`
19072
19073	// ForceSendFields is a list of field names (e.g. "Id") to
19074	// unconditionally include in API requests. By default, fields with
19075	// empty or default values are omitted from API requests. However, any
19076	// non-pointer, non-interface field appearing in ForceSendFields will be
19077	// sent to the server regardless of whether the field is empty or not.
19078	// This may be used to include empty fields in Patch requests.
19079	ForceSendFields []string `json:"-"`
19080
19081	// NullFields is a list of field names (e.g. "Id") to include in API
19082	// requests with the JSON null value. By default, fields with empty
19083	// values are omitted from API requests. However, any field with an
19084	// empty value appearing in NullFields will be sent to the server as
19085	// null. It is an error if a field in this list has a non-empty value.
19086	// This may be used to include null fields in Patch requests.
19087	NullFields []string `json:"-"`
19088}
19089
19090func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
19091	type NoMethod InstanceListReferrers
19092	raw := NoMethod(*s)
19093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19094}
19095
19096// InstanceListReferrersWarning: [Output Only] Informational warning
19097// message.
19098type InstanceListReferrersWarning struct {
19099	// Code: [Output Only] A warning code, if applicable. For example,
19100	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19101	// the response.
19102	//
19103	// Possible values:
19104	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
19105	// changes made by a failed operation.
19106	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
19107	// created.
19108	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
19109	// resources has a type marked as deprecated
19110	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
19111	// that is larger than image size.
19112	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
19113	// resources has a type marked as experimental
19114	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
19115	// call
19116	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
19117	// overridden. Deprecated unused field.
19118	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
19119	// injected kernel, which is deprecated.
19120	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
19121	// exceedingly large number of resources
19122	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
19123	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
19124	// not assigned to an instance on the network.
19125	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
19126	// ip forward.
19127	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
19128	// refers to an instance that does not exist.
19129	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
19130	// URL refers to an instance that is not on the same network as the
19131	// route.
19132	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
19133	// have a status of RUNNING.
19134	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
19135	// continue the process despite the mentioned error.
19136	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
19137	// page.
19138	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
19139	// missing due to errors
19140	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
19141	// that requires a TOS they have not accepted.
19142	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
19143	// resource is in use.
19144	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
19145	// auto-delete could not be deleted because they were in use.
19146	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
19147	// ignored.
19148	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
19149	// instance group manager is valid as such, but its application does not
19150	// make a lot of sense, because it allows only single instance in
19151	// instance group.
19152	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
19153	// are present
19154	//   "UNREACHABLE" - A given scope cannot be reached.
19155	Code string `json:"code,omitempty"`
19156
19157	// Data: [Output Only] Metadata about this warning in key: value format.
19158	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
19159	// }
19160	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
19161
19162	// Message: [Output Only] A human-readable description of the warning
19163	// code.
19164	Message string `json:"message,omitempty"`
19165
19166	// ForceSendFields is a list of field names (e.g. "Code") to
19167	// unconditionally include in API requests. By default, fields with
19168	// empty or default values are omitted from API requests. However, any
19169	// non-pointer, non-interface field appearing in ForceSendFields will be
19170	// sent to the server regardless of whether the field is empty or not.
19171	// This may be used to include empty fields in Patch requests.
19172	ForceSendFields []string `json:"-"`
19173
19174	// NullFields is a list of field names (e.g. "Code") to include in API
19175	// requests with the JSON null value. By default, fields with empty
19176	// values are omitted from API requests. However, any field with an
19177	// empty value appearing in NullFields will be sent to the server as
19178	// null. It is an error if a field in this list has a non-empty value.
19179	// This may be used to include null fields in Patch requests.
19180	NullFields []string `json:"-"`
19181}
19182
19183func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
19184	type NoMethod InstanceListReferrersWarning
19185	raw := NoMethod(*s)
19186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19187}
19188
19189type InstanceListReferrersWarningData struct {
19190	// Key: [Output Only] A key that provides more detail on the warning
19191	// being returned. For example, for warnings where there are no results
19192	// in a list request for a particular zone, this key might be scope and
19193	// the key value might be the zone name. Other examples might be a key
19194	// indicating a deprecated resource and a suggested replacement, or a
19195	// warning about invalid network settings (for example, if an instance
19196	// attempts to perform IP forwarding but is not enabled for IP
19197	// forwarding).
19198	Key string `json:"key,omitempty"`
19199
19200	// Value: [Output Only] A warning data value corresponding to the key.
19201	Value string `json:"value,omitempty"`
19202
19203	// ForceSendFields is a list of field names (e.g. "Key") to
19204	// unconditionally include in API requests. By default, fields with
19205	// empty or default values are omitted from API requests. However, any
19206	// non-pointer, non-interface field appearing in ForceSendFields will be
19207	// sent to the server regardless of whether the field is empty or not.
19208	// This may be used to include empty fields in Patch requests.
19209	ForceSendFields []string `json:"-"`
19210
19211	// NullFields is a list of field names (e.g. "Key") to include in API
19212	// requests with the JSON null value. By default, fields with empty
19213	// values are omitted from API requests. However, any field with an
19214	// empty value appearing in NullFields will be sent to the server as
19215	// null. It is an error if a field in this list has a non-empty value.
19216	// This may be used to include null fields in Patch requests.
19217	NullFields []string `json:"-"`
19218}
19219
19220func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
19221	type NoMethod InstanceListReferrersWarningData
19222	raw := NoMethod(*s)
19223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19224}
19225
19226type InstanceManagedByIgmError struct {
19227	// Error: [Output Only] Contents of the error.
19228	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
19229
19230	// InstanceActionDetails: [Output Only] Details of the instance action
19231	// that triggered this error. May be null, if the error was not caused
19232	// by an action on an instance. This field is optional.
19233	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
19234
19235	// Timestamp: [Output Only] The time that this error occurred. This
19236	// value is in RFC3339 text format.
19237	Timestamp string `json:"timestamp,omitempty"`
19238
19239	// ForceSendFields is a list of field names (e.g. "Error") to
19240	// unconditionally include in API requests. By default, fields with
19241	// empty or default values are omitted from API requests. However, any
19242	// non-pointer, non-interface field appearing in ForceSendFields will be
19243	// sent to the server regardless of whether the field is empty or not.
19244	// This may be used to include empty fields in Patch requests.
19245	ForceSendFields []string `json:"-"`
19246
19247	// NullFields is a list of field names (e.g. "Error") to include in API
19248	// requests with the JSON null value. By default, fields with empty
19249	// values are omitted from API requests. However, any field with an
19250	// empty value appearing in NullFields will be sent to the server as
19251	// null. It is an error if a field in this list has a non-empty value.
19252	// This may be used to include null fields in Patch requests.
19253	NullFields []string `json:"-"`
19254}
19255
19256func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
19257	type NoMethod InstanceManagedByIgmError
19258	raw := NoMethod(*s)
19259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19260}
19261
19262type InstanceManagedByIgmErrorInstanceActionDetails struct {
19263	// Action: [Output Only] Action that managed instance group was
19264	// executing on the instance when the error occurred. Possible values:
19265	//
19266	// Possible values:
19267	//   "ABANDONING" - The managed instance group is abandoning this
19268	// instance. The instance will be removed from the instance group and
19269	// from any target pools that are associated with this group.
19270	//   "CREATING" - The managed instance group is creating this instance.
19271	// If the group fails to create this instance, it will try again until
19272	// it is successful.
19273	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is
19274	// attempting to create this instance only once. If the group fails to
19275	// create this instance, it does not try again and the group's
19276	// targetSize value is decreased.
19277	//   "DELETING" - The managed instance group is permanently deleting
19278	// this instance.
19279	//   "NONE" - The managed instance group has not scheduled any actions
19280	// for this instance.
19281	//   "RECREATING" - The managed instance group is recreating this
19282	// instance.
19283	//   "REFRESHING" - The managed instance group is applying configuration
19284	// changes to the instance without stopping it. For example, the group
19285	// can update the target pool list for an instance without stopping that
19286	// instance.
19287	//   "RESTARTING" - The managed instance group is restarting this
19288	// instance.
19289	//   "VERIFYING" - The managed instance group is verifying this already
19290	// created instance. Verification happens every time the instance is
19291	// (re)created or restarted and consists of: 1. Waiting until health
19292	// check specified as part of this managed instance group's autohealing
19293	// policy reports HEALTHY. Note: Applies only if autohealing policy has
19294	// a health check specified 2. Waiting for addition verification steps
19295	// performed as post-instance creation (subject to future extensions).
19296	Action string `json:"action,omitempty"`
19297
19298	// Instance: [Output Only] The URL of the instance. The URL can be set
19299	// even if the instance has not yet been created.
19300	Instance string `json:"instance,omitempty"`
19301
19302	// Version: [Output Only] Version this instance was created from, or was
19303	// being created from, but the creation failed. Corresponds to one of
19304	// the versions that were set on the Instance Group Manager resource at
19305	// the time this instance was being created.
19306	Version *ManagedInstanceVersion `json:"version,omitempty"`
19307
19308	// ForceSendFields is a list of field names (e.g. "Action") to
19309	// unconditionally include in API requests. By default, fields with
19310	// empty or default values are omitted from API requests. However, any
19311	// non-pointer, non-interface field appearing in ForceSendFields will be
19312	// sent to the server regardless of whether the field is empty or not.
19313	// This may be used to include empty fields in Patch requests.
19314	ForceSendFields []string `json:"-"`
19315
19316	// NullFields is a list of field names (e.g. "Action") to include in API
19317	// requests with the JSON null value. By default, fields with empty
19318	// values are omitted from API requests. However, any field with an
19319	// empty value appearing in NullFields will be sent to the server as
19320	// null. It is an error if a field in this list has a non-empty value.
19321	// This may be used to include null fields in Patch requests.
19322	NullFields []string `json:"-"`
19323}
19324
19325func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
19326	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
19327	raw := NoMethod(*s)
19328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19329}
19330
19331type InstanceManagedByIgmErrorManagedInstanceError struct {
19332	// Code: [Output Only] Error code.
19333	Code string `json:"code,omitempty"`
19334
19335	// Message: [Output Only] Error message.
19336	Message string `json:"message,omitempty"`
19337
19338	// ForceSendFields is a list of field names (e.g. "Code") to
19339	// unconditionally include in API requests. By default, fields with
19340	// empty or default values are omitted from API requests. However, any
19341	// non-pointer, non-interface field appearing in ForceSendFields will be
19342	// sent to the server regardless of whether the field is empty or not.
19343	// This may be used to include empty fields in Patch requests.
19344	ForceSendFields []string `json:"-"`
19345
19346	// NullFields is a list of field names (e.g. "Code") to include in API
19347	// requests with the JSON null value. By default, fields with empty
19348	// values are omitted from API requests. However, any field with an
19349	// empty value appearing in NullFields will be sent to the server as
19350	// null. It is an error if a field in this list has a non-empty value.
19351	// This may be used to include null fields in Patch requests.
19352	NullFields []string `json:"-"`
19353}
19354
19355func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
19356	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
19357	raw := NoMethod(*s)
19358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19359}
19360
19361type InstanceMoveRequest struct {
19362	// DestinationZone: The URL of the destination zone to move the
19363	// instance. This can be a full or partial URL. For example, the
19364	// following are all valid URLs to a zone: -
19365	// https://www.googleapis.com/compute/v1/projects/project/zones/zone -
19366	// projects/project/zones/zone - zones/zone
19367	DestinationZone string `json:"destinationZone,omitempty"`
19368
19369	// TargetInstance: The URL of the target instance to move. This can be a
19370	// full or partial URL. For example, the following are all valid URLs to
19371	// an instance: -
19372	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
19373	// /instances/instance - projects/project/zones/zone/instances/instance
19374	// - zones/zone/instances/instance
19375	TargetInstance string `json:"targetInstance,omitempty"`
19376
19377	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
19378	// unconditionally include in API requests. By default, fields with
19379	// empty or default values are omitted from API requests. However, any
19380	// non-pointer, non-interface field appearing in ForceSendFields will be
19381	// sent to the server regardless of whether the field is empty or not.
19382	// This may be used to include empty fields in Patch requests.
19383	ForceSendFields []string `json:"-"`
19384
19385	// NullFields is a list of field names (e.g. "DestinationZone") to
19386	// include in API requests with the JSON null value. By default, fields
19387	// with empty values are omitted from API requests. However, any field
19388	// with an empty value appearing in NullFields will be sent to the
19389	// server as null. It is an error if a field in this list has a
19390	// non-empty value. This may be used to include null fields in Patch
19391	// requests.
19392	NullFields []string `json:"-"`
19393}
19394
19395func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
19396	type NoMethod InstanceMoveRequest
19397	raw := NoMethod(*s)
19398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19399}
19400
19401type InstanceProperties struct {
19402	// AdvancedMachineFeatures: Controls for advanced machine-related
19403	// behavior features.
19404	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
19405
19406	// CanIpForward: Enables instances created based on these properties to
19407	// send packets with source IP addresses other than their own and
19408	// receive packets with destination IP addresses other than their own.
19409	// If these instances will be used as an IP gateway or it will be set as
19410	// the next-hop in a Route resource, specify true. If unsure, leave this
19411	// set to false. See the Enable IP forwarding documentation for more
19412	// information.
19413	CanIpForward bool `json:"canIpForward,omitempty"`
19414
19415	// ConfidentialInstanceConfig: Specifies the Confidential Instance
19416	// options.
19417	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
19418
19419	// Description: An optional text description for the instances that are
19420	// created from these properties.
19421	Description string `json:"description,omitempty"`
19422
19423	// Disks: An array of disks that are associated with the instances that
19424	// are created from these properties.
19425	Disks []*AttachedDisk `json:"disks,omitempty"`
19426
19427	// GuestAccelerators: A list of guest accelerator cards' type and count
19428	// to use for instances created from these properties.
19429	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19430
19431	// Labels: Labels to apply to instances that are created from these
19432	// properties.
19433	Labels map[string]string `json:"labels,omitempty"`
19434
19435	// MachineType: The machine type to use for instances that are created
19436	// from these properties.
19437	MachineType string `json:"machineType,omitempty"`
19438
19439	// Metadata: The metadata key/value pairs to assign to instances that
19440	// are created from these properties. These pairs can consist of custom
19441	// metadata or predefined keys. See Project and instance metadata for
19442	// more information.
19443	Metadata *Metadata `json:"metadata,omitempty"`
19444
19445	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
19446	// instance may be scheduled on the specified or newer cpu/platform.
19447	// Applicable values are the friendly names of CPU platforms, such as
19448	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
19449	// Bridge". For more information, read Specifying a Minimum CPU
19450	// Platform.
19451	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19452
19453	// NetworkInterfaces: An array of network access configurations for this
19454	// interface.
19455	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
19456
19457	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
19458	// If not specified, use INHERIT_FROM_SUBNETWORK as default.
19459	//
19460	// Possible values:
19461	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
19462	// IPv6 access to/from Google services. If specified, the subnetwork who
19463	// is attached to the instance's default network interface will be
19464	// assigned an internal IPv6 prefix if it doesn't have before.
19465	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
19466	// access from VMs in this subnet to Google services. If specified, the
19467	// subnetwork who is attached to the instance's default network
19468	// interface will be assigned an internal IPv6 prefix if it doesn't have
19469	// before.
19470	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
19471	// PrivateIpv6GoogleAccess from its subnetwork.
19472	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
19473
19474	// ReservationAffinity: Specifies the reservations that instances can
19475	// consume from.
19476	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
19477
19478	// ResourcePolicies: Resource policies (names, not ULRs) applied to
19479	// instances created from these properties.
19480	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19481
19482	// Scheduling: Specifies the scheduling options for the instances that
19483	// are created from these properties.
19484	Scheduling *Scheduling `json:"scheduling,omitempty"`
19485
19486	// ServiceAccounts: A list of service accounts with specified scopes.
19487	// Access tokens for these service accounts are available to the
19488	// instances that are created from these properties. Use metadata
19489	// queries to obtain the access tokens for these instances.
19490	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
19491
19492	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
19493
19494	// Tags: A list of tags to apply to the instances that are created from
19495	// these properties. The tags identify valid sources or targets for
19496	// network firewalls. The setTags method can modify this list of tags.
19497	// Each tag within the list must comply with RFC1035.
19498	Tags *Tags `json:"tags,omitempty"`
19499
19500	// ForceSendFields is a list of field names (e.g.
19501	// "AdvancedMachineFeatures") to unconditionally include in API
19502	// requests. By default, fields with empty or default values are omitted
19503	// from API requests. However, any non-pointer, non-interface field
19504	// appearing in ForceSendFields will be sent to the server regardless of
19505	// whether the field is empty or not. This may be used to include empty
19506	// fields in Patch requests.
19507	ForceSendFields []string `json:"-"`
19508
19509	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
19510	// to include in API requests with the JSON null value. By default,
19511	// fields with empty values are omitted from API requests. However, any
19512	// field with an empty value appearing in NullFields will be sent to the
19513	// server as null. It is an error if a field in this list has a
19514	// non-empty value. This may be used to include null fields in Patch
19515	// requests.
19516	NullFields []string `json:"-"`
19517}
19518
19519func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
19520	type NoMethod InstanceProperties
19521	raw := NoMethod(*s)
19522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19523}
19524
19525type InstanceReference struct {
19526	// Instance: The URL for a specific instance. @required
19527	// compute.instancegroups.addInstances/removeInstances
19528	Instance string `json:"instance,omitempty"`
19529
19530	// ForceSendFields is a list of field names (e.g. "Instance") to
19531	// unconditionally include in API requests. By default, fields with
19532	// empty or default values are omitted from API requests. However, any
19533	// non-pointer, non-interface field appearing in ForceSendFields will be
19534	// sent to the server regardless of whether the field is empty or not.
19535	// This may be used to include empty fields in Patch requests.
19536	ForceSendFields []string `json:"-"`
19537
19538	// NullFields is a list of field names (e.g. "Instance") to include in
19539	// API requests with the JSON null value. By default, fields with empty
19540	// values are omitted from API requests. However, any field with an
19541	// empty value appearing in NullFields will be sent to the server as
19542	// null. It is an error if a field in this list has a non-empty value.
19543	// This may be used to include null fields in Patch requests.
19544	NullFields []string `json:"-"`
19545}
19546
19547func (s *InstanceReference) MarshalJSON() ([]byte, error) {
19548	type NoMethod InstanceReference
19549	raw := NoMethod(*s)
19550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19551}
19552
19553// InstanceTemplate: Represents an Instance Template resource. You can
19554// use instance templates to create VM instances and managed instance
19555// groups. For more information, read Instance Templates.
19556type InstanceTemplate struct {
19557	// CreationTimestamp: [Output Only] The creation timestamp for this
19558	// instance template in RFC3339 text format.
19559	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19560
19561	// Description: An optional description of this resource. Provide this
19562	// property when you create the resource.
19563	Description string `json:"description,omitempty"`
19564
19565	// Id: [Output Only] A unique identifier for this instance template. The
19566	// server defines this identifier.
19567	Id uint64 `json:"id,omitempty,string"`
19568
19569	// Kind: [Output Only] The resource type, which is always
19570	// compute#instanceTemplate for instance templates.
19571	Kind string `json:"kind,omitempty"`
19572
19573	// Name: Name of the resource; provided by the client when the resource
19574	// is created. The name must be 1-63 characters long, and comply with
19575	// RFC1035. Specifically, the name must be 1-63 characters long and
19576	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19577	// the first character must be a lowercase letter, and all following
19578	// characters must be a dash, lowercase letter, or digit, except the
19579	// last character, which cannot be a dash.
19580	Name string `json:"name,omitempty"`
19581
19582	// Properties: The instance properties for this instance template.
19583	Properties *InstanceProperties `json:"properties,omitempty"`
19584
19585	// SelfLink: [Output Only] The URL for this instance template. The
19586	// server defines this URL.
19587	SelfLink string `json:"selfLink,omitempty"`
19588
19589	// SourceInstance: The source instance used to create the template. You
19590	// can provide this as a partial or full URL to the resource. For
19591	// example, the following are valid values: -
19592	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
19593	// /instances/instance - projects/project/zones/zone/instances/instance
19594	SourceInstance string `json:"sourceInstance,omitempty"`
19595
19596	// SourceInstanceParams: The source instance params to use to create
19597	// this instance template.
19598	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
19599
19600	// ServerResponse contains the HTTP response code and headers from the
19601	// server.
19602	googleapi.ServerResponse `json:"-"`
19603
19604	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19605	// to unconditionally include in API requests. By default, fields with
19606	// empty or default values are omitted from API requests. However, any
19607	// non-pointer, non-interface field appearing in ForceSendFields will be
19608	// sent to the server regardless of whether the field is empty or not.
19609	// This may be used to include empty fields in Patch requests.
19610	ForceSendFields []string `json:"-"`
19611
19612	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19613	// include in API requests with the JSON null value. By default, fields
19614	// with empty values are omitted from API requests. However, any field
19615	// with an empty value appearing in NullFields will be sent to the
19616	// server as null. It is an error if a field in this list has a
19617	// non-empty value. This may be used to include null fields in Patch
19618	// requests.
19619	NullFields []string `json:"-"`
19620}
19621
19622func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
19623	type NoMethod InstanceTemplate
19624	raw := NoMethod(*s)
19625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19626}
19627
19628// InstanceTemplateList: A list of instance templates.
19629type InstanceTemplateList struct {
19630	// Id: [Output Only] Unique identifier for the resource; defined by the
19631	// server.
19632	Id string `json:"id,omitempty"`
19633
19634	// Items: A list of InstanceTemplate resources.
19635	Items []*InstanceTemplate `json:"items,omitempty"`
19636
19637	// Kind: [Output Only] The resource type, which is always
19638	// compute#instanceTemplatesListResponse for instance template lists.
19639	Kind string `json:"kind,omitempty"`
19640
19641	// NextPageToken: [Output Only] This token allows you to get the next
19642	// page of results for list requests. If the number of results is larger
19643	// than maxResults, use the nextPageToken as a value for the query
19644	// parameter pageToken in the next list request. Subsequent list
19645	// requests will have their own nextPageToken to continue paging through
19646	// the results.
19647	NextPageToken string `json:"nextPageToken,omitempty"`
19648
19649	// SelfLink: [Output Only] Server-defined URL for this resource.
19650	SelfLink string `json:"selfLink,omitempty"`
19651
19652	// Warning: [Output Only] Informational warning message.
19653	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
19654
19655	// ServerResponse contains the HTTP response code and headers from the
19656	// server.
19657	googleapi.ServerResponse `json:"-"`
19658
19659	// ForceSendFields is a list of field names (e.g. "Id") to
19660	// unconditionally include in API requests. By default, fields with
19661	// empty or default values are omitted from API requests. However, any
19662	// non-pointer, non-interface field appearing in ForceSendFields will be
19663	// sent to the server regardless of whether the field is empty or not.
19664	// This may be used to include empty fields in Patch requests.
19665	ForceSendFields []string `json:"-"`
19666
19667	// NullFields is a list of field names (e.g. "Id") to include in API
19668	// requests with the JSON null value. By default, fields with empty
19669	// values are omitted from API requests. However, any field with an
19670	// empty value appearing in NullFields will be sent to the server as
19671	// null. It is an error if a field in this list has a non-empty value.
19672	// This may be used to include null fields in Patch requests.
19673	NullFields []string `json:"-"`
19674}
19675
19676func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
19677	type NoMethod InstanceTemplateList
19678	raw := NoMethod(*s)
19679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19680}
19681
19682// InstanceTemplateListWarning: [Output Only] Informational warning
19683// message.
19684type InstanceTemplateListWarning struct {
19685	// Code: [Output Only] A warning code, if applicable. For example,
19686	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19687	// the response.
19688	//
19689	// Possible values:
19690	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
19691	// changes made by a failed operation.
19692	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
19693	// created.
19694	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
19695	// resources has a type marked as deprecated
19696	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
19697	// that is larger than image size.
19698	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
19699	// resources has a type marked as experimental
19700	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
19701	// call
19702	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
19703	// overridden. Deprecated unused field.
19704	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
19705	// injected kernel, which is deprecated.
19706	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
19707	// exceedingly large number of resources
19708	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
19709	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
19710	// not assigned to an instance on the network.
19711	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
19712	// ip forward.
19713	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
19714	// refers to an instance that does not exist.
19715	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
19716	// URL refers to an instance that is not on the same network as the
19717	// route.
19718	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
19719	// have a status of RUNNING.
19720	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
19721	// continue the process despite the mentioned error.
19722	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
19723	// page.
19724	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
19725	// missing due to errors
19726	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
19727	// that requires a TOS they have not accepted.
19728	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
19729	// resource is in use.
19730	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
19731	// auto-delete could not be deleted because they were in use.
19732	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
19733	// ignored.
19734	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
19735	// instance group manager is valid as such, but its application does not
19736	// make a lot of sense, because it allows only single instance in
19737	// instance group.
19738	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
19739	// are present
19740	//   "UNREACHABLE" - A given scope cannot be reached.
19741	Code string `json:"code,omitempty"`
19742
19743	// Data: [Output Only] Metadata about this warning in key: value format.
19744	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
19745	// }
19746	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
19747
19748	// Message: [Output Only] A human-readable description of the warning
19749	// code.
19750	Message string `json:"message,omitempty"`
19751
19752	// ForceSendFields is a list of field names (e.g. "Code") to
19753	// unconditionally include in API requests. By default, fields with
19754	// empty or default values are omitted from API requests. However, any
19755	// non-pointer, non-interface field appearing in ForceSendFields will be
19756	// sent to the server regardless of whether the field is empty or not.
19757	// This may be used to include empty fields in Patch requests.
19758	ForceSendFields []string `json:"-"`
19759
19760	// NullFields is a list of field names (e.g. "Code") to include in API
19761	// requests with the JSON null value. By default, fields with empty
19762	// values are omitted from API requests. However, any field with an
19763	// empty value appearing in NullFields will be sent to the server as
19764	// null. It is an error if a field in this list has a non-empty value.
19765	// This may be used to include null fields in Patch requests.
19766	NullFields []string `json:"-"`
19767}
19768
19769func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
19770	type NoMethod InstanceTemplateListWarning
19771	raw := NoMethod(*s)
19772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19773}
19774
19775type InstanceTemplateListWarningData struct {
19776	// Key: [Output Only] A key that provides more detail on the warning
19777	// being returned. For example, for warnings where there are no results
19778	// in a list request for a particular zone, this key might be scope and
19779	// the key value might be the zone name. Other examples might be a key
19780	// indicating a deprecated resource and a suggested replacement, or a
19781	// warning about invalid network settings (for example, if an instance
19782	// attempts to perform IP forwarding but is not enabled for IP
19783	// forwarding).
19784	Key string `json:"key,omitempty"`
19785
19786	// Value: [Output Only] A warning data value corresponding to the key.
19787	Value string `json:"value,omitempty"`
19788
19789	// ForceSendFields is a list of field names (e.g. "Key") to
19790	// unconditionally include in API requests. By default, fields with
19791	// empty or default values are omitted from API requests. However, any
19792	// non-pointer, non-interface field appearing in ForceSendFields will be
19793	// sent to the server regardless of whether the field is empty or not.
19794	// This may be used to include empty fields in Patch requests.
19795	ForceSendFields []string `json:"-"`
19796
19797	// NullFields is a list of field names (e.g. "Key") to include in API
19798	// requests with the JSON null value. By default, fields with empty
19799	// values are omitted from API requests. However, any field with an
19800	// empty value appearing in NullFields will be sent to the server as
19801	// null. It is an error if a field in this list has a non-empty value.
19802	// This may be used to include null fields in Patch requests.
19803	NullFields []string `json:"-"`
19804}
19805
19806func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
19807	type NoMethod InstanceTemplateListWarningData
19808	raw := NoMethod(*s)
19809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19810}
19811
19812type InstanceWithNamedPorts struct {
19813	// Instance: [Output Only] The URL of the instance.
19814	Instance string `json:"instance,omitempty"`
19815
19816	// NamedPorts: [Output Only] The named ports that belong to this
19817	// instance group.
19818	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
19819
19820	// Status: [Output Only] The status of the instance.
19821	//
19822	// Possible values:
19823	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
19824	// down tasks like network deprogramming, releasing quota, IP, tearing
19825	// down disks etc.
19826	//   "PROVISIONING" - Resources are being allocated for the instance.
19827	//   "REPAIRING" - The instance is in repair.
19828	//   "RUNNING" - The instance is running.
19829	//   "STAGING" - All required resources have been allocated and the
19830	// instance is being started.
19831	//   "STOPPED" - The instance has stopped successfully.
19832	//   "STOPPING" - The instance is currently stopping (either being
19833	// deleted or killed).
19834	//   "SUSPENDED" - The instance has suspended.
19835	//   "SUSPENDING" - The instance is suspending.
19836	//   "TERMINATED" - The instance has stopped (either by explicit action
19837	// or underlying failure).
19838	Status string `json:"status,omitempty"`
19839
19840	// ForceSendFields is a list of field names (e.g. "Instance") to
19841	// unconditionally include in API requests. By default, fields with
19842	// empty or default values are omitted from API requests. However, any
19843	// non-pointer, non-interface field appearing in ForceSendFields will be
19844	// sent to the server regardless of whether the field is empty or not.
19845	// This may be used to include empty fields in Patch requests.
19846	ForceSendFields []string `json:"-"`
19847
19848	// NullFields is a list of field names (e.g. "Instance") to include in
19849	// API 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 *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
19858	type NoMethod InstanceWithNamedPorts
19859	raw := NoMethod(*s)
19860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19861}
19862
19863type InstancesAddResourcePoliciesRequest struct {
19864	// ResourcePolicies: Resource policies to be added to this instance.
19865	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19866
19867	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19868	// unconditionally include in API requests. By default, fields with
19869	// empty or default values are omitted from API requests. However, any
19870	// non-pointer, non-interface field appearing in ForceSendFields will be
19871	// sent to the server regardless of whether the field is empty or not.
19872	// This may be used to include empty fields in Patch requests.
19873	ForceSendFields []string `json:"-"`
19874
19875	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19876	// include in API requests with the JSON null value. By default, fields
19877	// with empty values are omitted from API requests. However, any field
19878	// with an empty value appearing in NullFields will be sent to the
19879	// server as null. It is an error if a field in this list has a
19880	// non-empty value. This may be used to include null fields in Patch
19881	// requests.
19882	NullFields []string `json:"-"`
19883}
19884
19885func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19886	type NoMethod InstancesAddResourcePoliciesRequest
19887	raw := NoMethod(*s)
19888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19889}
19890
19891type InstancesGetEffectiveFirewallsResponse struct {
19892	// FirewallPolicys: Effective firewalls from firewall policies.
19893	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
19894
19895	// Firewalls: Effective firewalls on the instance.
19896	Firewalls []*Firewall `json:"firewalls,omitempty"`
19897
19898	// ServerResponse contains the HTTP response code and headers from the
19899	// server.
19900	googleapi.ServerResponse `json:"-"`
19901
19902	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
19903	// unconditionally include in API requests. By default, fields with
19904	// empty or default values are omitted from API requests. However, any
19905	// non-pointer, non-interface field appearing in ForceSendFields will be
19906	// sent to the server regardless of whether the field is empty or not.
19907	// This may be used to include empty fields in Patch requests.
19908	ForceSendFields []string `json:"-"`
19909
19910	// NullFields is a list of field names (e.g. "FirewallPolicys") to
19911	// include in API requests with the JSON null value. By default, fields
19912	// with empty values are omitted from API requests. However, any field
19913	// with an empty value appearing in NullFields will be sent to the
19914	// server as null. It is an error if a field in this list has a
19915	// non-empty value. This may be used to include null fields in Patch
19916	// requests.
19917	NullFields []string `json:"-"`
19918}
19919
19920func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
19921	type NoMethod InstancesGetEffectiveFirewallsResponse
19922	raw := NoMethod(*s)
19923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19924}
19925
19926type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
19927	// DisplayName: [Output Only] Deprecated, please use short name instead.
19928	// The display name of the firewall policy.
19929	DisplayName string `json:"displayName,omitempty"`
19930
19931	// Name: [Output Only] The name of the firewall policy.
19932	Name string `json:"name,omitempty"`
19933
19934	// Rules: The rules that apply to the network.
19935	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
19936
19937	// ShortName: [Output Only] The short name of the firewall policy.
19938	ShortName string `json:"shortName,omitempty"`
19939
19940	// Type: [Output Only] The type of the firewall policy.
19941	//
19942	// Possible values:
19943	//   "HIERARCHY"
19944	//   "UNSPECIFIED"
19945	Type string `json:"type,omitempty"`
19946
19947	// ForceSendFields is a list of field names (e.g. "DisplayName") to
19948	// unconditionally include in API requests. By default, fields with
19949	// empty or default values are omitted from API requests. However, any
19950	// non-pointer, non-interface field appearing in ForceSendFields will be
19951	// sent to the server regardless of whether the field is empty or not.
19952	// This may be used to include empty fields in Patch requests.
19953	ForceSendFields []string `json:"-"`
19954
19955	// NullFields is a list of field names (e.g. "DisplayName") to include
19956	// in API requests with the JSON null value. By default, fields with
19957	// empty values are omitted from API requests. However, any field with
19958	// an empty value appearing in NullFields will be sent to the server as
19959	// null. It is an error if a field in this list has a non-empty value.
19960	// This may be used to include null fields in Patch requests.
19961	NullFields []string `json:"-"`
19962}
19963
19964func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
19965	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
19966	raw := NoMethod(*s)
19967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19968}
19969
19970type InstancesRemoveResourcePoliciesRequest struct {
19971	// ResourcePolicies: Resource policies to be removed from this instance.
19972	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19973
19974	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19975	// unconditionally include in API requests. By default, fields with
19976	// empty or default values are omitted from API requests. However, any
19977	// non-pointer, non-interface field appearing in ForceSendFields will be
19978	// sent to the server regardless of whether the field is empty or not.
19979	// This may be used to include empty fields in Patch requests.
19980	ForceSendFields []string `json:"-"`
19981
19982	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19983	// include in API requests with the JSON null value. By default, fields
19984	// with empty values are omitted from API requests. However, any field
19985	// with an empty value appearing in NullFields will be sent to the
19986	// server as null. It is an error if a field in this list has a
19987	// non-empty value. This may be used to include null fields in Patch
19988	// requests.
19989	NullFields []string `json:"-"`
19990}
19991
19992func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19993	type NoMethod InstancesRemoveResourcePoliciesRequest
19994	raw := NoMethod(*s)
19995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19996}
19997
19998type InstancesScopedList struct {
19999	// Instances: [Output Only] A list of instances contained in this scope.
20000	Instances []*Instance `json:"instances,omitempty"`
20001
20002	// Warning: [Output Only] Informational warning which replaces the list
20003	// of instances when the list is empty.
20004	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
20005
20006	// ForceSendFields is a list of field names (e.g. "Instances") to
20007	// unconditionally include in API requests. By default, fields with
20008	// empty or default values are omitted from API requests. However, any
20009	// non-pointer, non-interface field appearing in ForceSendFields will be
20010	// sent to the server regardless of whether the field is empty or not.
20011	// This may be used to include empty fields in Patch requests.
20012	ForceSendFields []string `json:"-"`
20013
20014	// NullFields is a list of field names (e.g. "Instances") to include in
20015	// API requests with the JSON null value. By default, fields with empty
20016	// values are omitted from API requests. However, any field with an
20017	// empty value appearing in NullFields will be sent to the server as
20018	// null. It is an error if a field in this list has a non-empty value.
20019	// This may be used to include null fields in Patch requests.
20020	NullFields []string `json:"-"`
20021}
20022
20023func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
20024	type NoMethod InstancesScopedList
20025	raw := NoMethod(*s)
20026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20027}
20028
20029// InstancesScopedListWarning: [Output Only] Informational warning which
20030// replaces the list of instances when the list is empty.
20031type InstancesScopedListWarning struct {
20032	// Code: [Output Only] A warning code, if applicable. For example,
20033	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20034	// the response.
20035	//
20036	// Possible values:
20037	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
20038	// changes made by a failed operation.
20039	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
20040	// created.
20041	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
20042	// resources has a type marked as deprecated
20043	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
20044	// that is larger than image size.
20045	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
20046	// resources has a type marked as experimental
20047	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
20048	// call
20049	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
20050	// overridden. Deprecated unused field.
20051	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
20052	// injected kernel, which is deprecated.
20053	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
20054	// exceedingly large number of resources
20055	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
20056	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
20057	// not assigned to an instance on the network.
20058	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
20059	// ip forward.
20060	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
20061	// refers to an instance that does not exist.
20062	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
20063	// URL refers to an instance that is not on the same network as the
20064	// route.
20065	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
20066	// have a status of RUNNING.
20067	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
20068	// continue the process despite the mentioned error.
20069	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
20070	// page.
20071	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
20072	// missing due to errors
20073	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
20074	// that requires a TOS they have not accepted.
20075	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
20076	// resource is in use.
20077	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
20078	// auto-delete could not be deleted because they were in use.
20079	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
20080	// ignored.
20081	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
20082	// instance group manager is valid as such, but its application does not
20083	// make a lot of sense, because it allows only single instance in
20084	// instance group.
20085	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
20086	// are present
20087	//   "UNREACHABLE" - A given scope cannot be reached.
20088	Code string `json:"code,omitempty"`
20089
20090	// Data: [Output Only] Metadata about this warning in key: value format.
20091	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
20092	// }
20093	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
20094
20095	// Message: [Output Only] A human-readable description of the warning
20096	// code.
20097	Message string `json:"message,omitempty"`
20098
20099	// ForceSendFields is a list of field names (e.g. "Code") to
20100	// unconditionally include in API requests. By default, fields with
20101	// empty or default values are omitted from API requests. However, any
20102	// non-pointer, non-interface field appearing in ForceSendFields will be
20103	// sent to the server regardless of whether the field is empty or not.
20104	// This may be used to include empty fields in Patch requests.
20105	ForceSendFields []string `json:"-"`
20106
20107	// NullFields is a list of field names (e.g. "Code") to include in API
20108	// requests with the JSON null value. By default, fields with empty
20109	// values are omitted from API requests. However, any field with an
20110	// empty value appearing in NullFields will be sent to the server as
20111	// null. It is an error if a field in this list has a non-empty value.
20112	// This may be used to include null fields in Patch requests.
20113	NullFields []string `json:"-"`
20114}
20115
20116func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
20117	type NoMethod InstancesScopedListWarning
20118	raw := NoMethod(*s)
20119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20120}
20121
20122type InstancesScopedListWarningData struct {
20123	// Key: [Output Only] A key that provides more detail on the warning
20124	// being returned. For example, for warnings where there are no results
20125	// in a list request for a particular zone, this key might be scope and
20126	// the key value might be the zone name. Other examples might be a key
20127	// indicating a deprecated resource and a suggested replacement, or a
20128	// warning about invalid network settings (for example, if an instance
20129	// attempts to perform IP forwarding but is not enabled for IP
20130	// forwarding).
20131	Key string `json:"key,omitempty"`
20132
20133	// Value: [Output Only] A warning data value corresponding to the key.
20134	Value string `json:"value,omitempty"`
20135
20136	// ForceSendFields is a list of field names (e.g. "Key") to
20137	// unconditionally include in API requests. By default, fields with
20138	// empty or default values are omitted from API requests. However, any
20139	// non-pointer, non-interface field appearing in ForceSendFields will be
20140	// sent to the server regardless of whether the field is empty or not.
20141	// This may be used to include empty fields in Patch requests.
20142	ForceSendFields []string `json:"-"`
20143
20144	// NullFields is a list of field names (e.g. "Key") to include in API
20145	// requests with the JSON null value. By default, fields with empty
20146	// values are omitted from API requests. However, any field with an
20147	// empty value appearing in NullFields will be sent to the server as
20148	// null. It is an error if a field in this list has a non-empty value.
20149	// This may be used to include null fields in Patch requests.
20150	NullFields []string `json:"-"`
20151}
20152
20153func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
20154	type NoMethod InstancesScopedListWarningData
20155	raw := NoMethod(*s)
20156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20157}
20158
20159type InstancesSetLabelsRequest struct {
20160	// LabelFingerprint: Fingerprint of the previous set of labels for this
20161	// resource, used to prevent conflicts. Provide the latest fingerprint
20162	// value when making a request to add or change labels.
20163	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20164
20165	Labels map[string]string `json:"labels,omitempty"`
20166
20167	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
20168	// unconditionally include in API requests. By default, fields with
20169	// empty or default values are omitted from API requests. However, any
20170	// non-pointer, non-interface field appearing in ForceSendFields will be
20171	// sent to the server regardless of whether the field is empty or not.
20172	// This may be used to include empty fields in Patch requests.
20173	ForceSendFields []string `json:"-"`
20174
20175	// NullFields is a list of field names (e.g. "LabelFingerprint") to
20176	// include in API requests with the JSON null value. By default, fields
20177	// with empty values are omitted from API requests. However, any field
20178	// with an empty value appearing in NullFields will be sent to the
20179	// server as null. It is an error if a field in this list has a
20180	// non-empty value. This may be used to include null fields in Patch
20181	// requests.
20182	NullFields []string `json:"-"`
20183}
20184
20185func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
20186	type NoMethod InstancesSetLabelsRequest
20187	raw := NoMethod(*s)
20188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20189}
20190
20191type InstancesSetMachineResourcesRequest struct {
20192	// GuestAccelerators: A list of the type and count of accelerator cards
20193	// attached to the instance.
20194	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
20195
20196	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
20197	// to unconditionally include in API requests. By default, fields with
20198	// empty or default values are omitted from API requests. However, any
20199	// non-pointer, non-interface field appearing in ForceSendFields will be
20200	// sent to the server regardless of whether the field is empty or not.
20201	// This may be used to include empty fields in Patch requests.
20202	ForceSendFields []string `json:"-"`
20203
20204	// NullFields is a list of field names (e.g. "GuestAccelerators") to
20205	// include in API requests with the JSON null value. By default, fields
20206	// with empty values are omitted from API requests. However, any field
20207	// with an empty value appearing in NullFields will be sent to the
20208	// server as null. It is an error if a field in this list has a
20209	// non-empty value. This may be used to include null fields in Patch
20210	// requests.
20211	NullFields []string `json:"-"`
20212}
20213
20214func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
20215	type NoMethod InstancesSetMachineResourcesRequest
20216	raw := NoMethod(*s)
20217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20218}
20219
20220type InstancesSetMachineTypeRequest struct {
20221	// MachineType: Full or partial URL of the machine type resource. See
20222	// Machine Types for a full list of machine types. For example:
20223	// zones/us-central1-f/machineTypes/n1-standard-1
20224	MachineType string `json:"machineType,omitempty"`
20225
20226	// ForceSendFields is a list of field names (e.g. "MachineType") to
20227	// unconditionally include in API requests. By default, fields with
20228	// empty or default values are omitted from API requests. However, any
20229	// non-pointer, non-interface field appearing in ForceSendFields will be
20230	// sent to the server regardless of whether the field is empty or not.
20231	// This may be used to include empty fields in Patch requests.
20232	ForceSendFields []string `json:"-"`
20233
20234	// NullFields is a list of field names (e.g. "MachineType") to include
20235	// in API requests with the JSON null value. By default, fields with
20236	// empty values are omitted from API requests. However, any field with
20237	// an empty value appearing in NullFields will be sent to the server as
20238	// null. It is an error if a field in this list has a non-empty value.
20239	// This may be used to include null fields in Patch requests.
20240	NullFields []string `json:"-"`
20241}
20242
20243func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
20244	type NoMethod InstancesSetMachineTypeRequest
20245	raw := NoMethod(*s)
20246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20247}
20248
20249type InstancesSetMinCpuPlatformRequest struct {
20250	// MinCpuPlatform: Minimum cpu/platform this instance should be started
20251	// at.
20252	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
20253
20254	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
20255	// unconditionally include in API requests. By default, fields with
20256	// empty or default values are omitted from API requests. However, any
20257	// non-pointer, non-interface field appearing in ForceSendFields will be
20258	// sent to the server regardless of whether the field is empty or not.
20259	// This may be used to include empty fields in Patch requests.
20260	ForceSendFields []string `json:"-"`
20261
20262	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
20263	// include in API requests with the JSON null value. By default, fields
20264	// with empty values are omitted from API requests. However, any field
20265	// with an empty value appearing in NullFields will be sent to the
20266	// server as null. It is an error if a field in this list has a
20267	// non-empty value. This may be used to include null fields in Patch
20268	// requests.
20269	NullFields []string `json:"-"`
20270}
20271
20272func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
20273	type NoMethod InstancesSetMinCpuPlatformRequest
20274	raw := NoMethod(*s)
20275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20276}
20277
20278type InstancesSetServiceAccountRequest struct {
20279	// Email: Email address of the service account.
20280	Email string `json:"email,omitempty"`
20281
20282	// Scopes: The list of scopes to be made available for this service
20283	// account.
20284	Scopes []string `json:"scopes,omitempty"`
20285
20286	// ForceSendFields is a list of field names (e.g. "Email") to
20287	// unconditionally include in API requests. By default, fields with
20288	// empty or default values are omitted from API requests. However, any
20289	// non-pointer, non-interface field appearing in ForceSendFields will be
20290	// sent to the server regardless of whether the field is empty or not.
20291	// This may be used to include empty fields in Patch requests.
20292	ForceSendFields []string `json:"-"`
20293
20294	// NullFields is a list of field names (e.g. "Email") to include in API
20295	// requests with the JSON null value. By default, fields with empty
20296	// values are omitted from API requests. However, any field with an
20297	// empty value appearing in NullFields will be sent to the server as
20298	// null. It is an error if a field in this list has a non-empty value.
20299	// This may be used to include null fields in Patch requests.
20300	NullFields []string `json:"-"`
20301}
20302
20303func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
20304	type NoMethod InstancesSetServiceAccountRequest
20305	raw := NoMethod(*s)
20306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20307}
20308
20309type InstancesStartWithEncryptionKeyRequest struct {
20310	// Disks: Array of disks associated with this instance that are
20311	// protected with a customer-supplied encryption key. In order to start
20312	// the instance, the disk url and its corresponding key must be
20313	// provided. If the disk is not protected with a customer-supplied
20314	// encryption key it should not be specified.
20315	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
20316
20317	// ForceSendFields is a list of field names (e.g. "Disks") to
20318	// unconditionally include in API requests. By default, fields with
20319	// empty or default values are omitted from API requests. However, any
20320	// non-pointer, non-interface field appearing in ForceSendFields will be
20321	// sent to the server regardless of whether the field is empty or not.
20322	// This may be used to include empty fields in Patch requests.
20323	ForceSendFields []string `json:"-"`
20324
20325	// NullFields is a list of field names (e.g. "Disks") to include in API
20326	// requests with the JSON null value. By default, fields with empty
20327	// values are omitted from API requests. However, any field with an
20328	// empty value appearing in NullFields will be sent to the server as
20329	// null. It is an error if a field in this list has a non-empty value.
20330	// This may be used to include null fields in Patch requests.
20331	NullFields []string `json:"-"`
20332}
20333
20334func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
20335	type NoMethod InstancesStartWithEncryptionKeyRequest
20336	raw := NoMethod(*s)
20337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20338}
20339
20340// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
20341// must stay within the specified integer range.
20342type Int64RangeMatch struct {
20343	// RangeEnd: The end of the range (exclusive) in signed long integer
20344	// format.
20345	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
20346
20347	// RangeStart: The start of the range (inclusive) in signed long integer
20348	// format.
20349	RangeStart int64 `json:"rangeStart,omitempty,string"`
20350
20351	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
20352	// unconditionally include in API requests. By default, fields with
20353	// empty or default values are omitted from API requests. However, any
20354	// non-pointer, non-interface field appearing in ForceSendFields will be
20355	// sent to the server regardless of whether the field is empty or not.
20356	// This may be used to include empty fields in Patch requests.
20357	ForceSendFields []string `json:"-"`
20358
20359	// NullFields is a list of field names (e.g. "RangeEnd") to include in
20360	// API requests with the JSON null value. By default, fields with empty
20361	// values are omitted from API requests. However, any field with an
20362	// empty value appearing in NullFields will be sent to the server as
20363	// null. It is an error if a field in this list has a non-empty value.
20364	// This may be used to include null fields in Patch requests.
20365	NullFields []string `json:"-"`
20366}
20367
20368func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
20369	type NoMethod Int64RangeMatch
20370	raw := NoMethod(*s)
20371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20372}
20373
20374// Interconnect: Represents an Interconnect resource. An Interconnect
20375// resource is a dedicated connection between the GCP network and your
20376// on-premises network. For more information, read the Dedicated
20377// Interconnect Overview.
20378type Interconnect struct {
20379	// AdminEnabled: Administrative status of the interconnect. When this is
20380	// set to true, the Interconnect is functional and can carry traffic.
20381	// When set to false, no packets can be carried over the interconnect
20382	// and no BGP routes are exchanged over it. By default, the status is
20383	// set to true.
20384	AdminEnabled bool `json:"adminEnabled,omitempty"`
20385
20386	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
20387	// describe the individual circuits in this LAG.
20388	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
20389
20390	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20391	// format.
20392	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20393
20394	// CustomerName: Customer name, to put in the Letter of Authorization as
20395	// the party authorized to request a crossconnect.
20396	CustomerName string `json:"customerName,omitempty"`
20397
20398	// Description: An optional description of this resource. Provide this
20399	// property when you create the resource.
20400	Description string `json:"description,omitempty"`
20401
20402	// ExpectedOutages: [Output Only] A list of outages expected for this
20403	// Interconnect.
20404	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
20405
20406	// GoogleIpAddress: [Output Only] IP address configured on the Google
20407	// side of the Interconnect link. This can be used only for ping tests.
20408	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
20409
20410	// GoogleReferenceId: [Output Only] Google reference ID to be used when
20411	// raising support tickets with Google or otherwise to debug backend
20412	// connectivity issues.
20413	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20414
20415	// Id: [Output Only] The unique identifier for the resource. This
20416	// identifier is defined by the server.
20417	Id uint64 `json:"id,omitempty,string"`
20418
20419	// InterconnectAttachments: [Output Only] A list of the URLs of all
20420	// InterconnectAttachments configured to use this Interconnect.
20421	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
20422
20423	// InterconnectType: Type of interconnect, which can take one of the
20424	// following values: - PARTNER: A partner-managed interconnection shared
20425	// between customers though a partner. - DEDICATED: A dedicated physical
20426	// interconnection with the customer. Note that a value IT_PRIVATE has
20427	// been deprecated in favor of DEDICATED.
20428	//
20429	// Possible values:
20430	//   "DEDICATED" - A dedicated physical interconnection with the
20431	// customer.
20432	//   "IT_PRIVATE" - [Deprecated] A private, physical interconnection
20433	// with the customer.
20434	//   "PARTNER" - A partner-managed interconnection shared between
20435	// customers via partner.
20436	InterconnectType string `json:"interconnectType,omitempty"`
20437
20438	// Kind: [Output Only] Type of the resource. Always compute#interconnect
20439	// for interconnects.
20440	Kind string `json:"kind,omitempty"`
20441
20442	// LinkType: Type of link requested, which can take one of the following
20443	// values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
20444	// LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that
20445	// this field indicates the speed of each of the links in the bundle,
20446	// not the speed of the entire bundle.
20447	//
20448	// Possible values:
20449	//   "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics.
20450	//   "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps)
20451	// = 10000000000];
20452	LinkType string `json:"linkType,omitempty"`
20453
20454	// Location: URL of the InterconnectLocation object that represents
20455	// where this connection is to be provisioned.
20456	Location string `json:"location,omitempty"`
20457
20458	// Name: Name of the resource. Provided by the client when the resource
20459	// is created. The name must be 1-63 characters long, and comply with
20460	// RFC1035. Specifically, the name must be 1-63 characters long and
20461	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20462	// the first character must be a lowercase letter, and all following
20463	// characters must be a dash, lowercase letter, or digit, except the
20464	// last character, which cannot be a dash.
20465	Name string `json:"name,omitempty"`
20466
20467	// NocContactEmail: Email address to contact the customer NOC for
20468	// operations and maintenance notifications regarding this Interconnect.
20469	// If specified, this will be used for notifications in addition to all
20470	// other forms described, such as Stackdriver logs alerting and Cloud
20471	// Notifications.
20472	NocContactEmail string `json:"nocContactEmail,omitempty"`
20473
20474	// OperationalStatus: [Output Only] The current status of this
20475	// Interconnect's functionality, which can take one of the following
20476	// values: - OS_ACTIVE: A valid Interconnect, which is turned up and is
20477	// ready to use. Attachments may be provisioned on this Interconnect. -
20478	// OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
20479	// attachments may be provisioned on this Interconnect. -
20480	// OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
20481	// maintenance. No attachments may be provisioned or updated on this
20482	// Interconnect.
20483	//
20484	// Possible values:
20485	//   "OS_ACTIVE" - The interconnect is valid, turned up, and ready to
20486	// use. Attachments may be provisioned on this interconnect.
20487	//   "OS_UNPROVISIONED" - The interconnect has not completed turnup. No
20488	// attachments may be provisioned on this interconnect.
20489	OperationalStatus string `json:"operationalStatus,omitempty"`
20490
20491	// PeerIpAddress: [Output Only] IP address configured on the customer
20492	// side of the Interconnect link. The customer should configure this IP
20493	// address during turnup when prompted by Google NOC. This can be used
20494	// only for ping tests.
20495	PeerIpAddress string `json:"peerIpAddress,omitempty"`
20496
20497	// ProvisionedLinkCount: [Output Only] Number of links actually
20498	// provisioned in this interconnect.
20499	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
20500
20501	// RequestedLinkCount: Target number of physical links in the link
20502	// bundle, as requested by the customer.
20503	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
20504
20505	// SelfLink: [Output Only] Server-defined URL for the resource.
20506	SelfLink string `json:"selfLink,omitempty"`
20507
20508	// State: [Output Only] The current state of Interconnect functionality,
20509	// which can take one of the following values: - ACTIVE: The
20510	// Interconnect is valid, turned up and ready to use. Attachments may be
20511	// provisioned on this Interconnect. - UNPROVISIONED: The Interconnect
20512	// has not completed turnup. No attachments may be provisioned on this
20513	// Interconnect. - UNDER_MAINTENANCE: The Interconnect is undergoing
20514	// internal maintenance. No attachments may be provisioned or updated on
20515	// this Interconnect.
20516	//
20517	// Possible values:
20518	//   "ACTIVE" - The interconnect is valid, turned up, and ready to use.
20519	// Attachments may be provisioned on this interconnect.
20520	//   "UNPROVISIONED" - The interconnect has not completed turnup. No
20521	// attachments may be provisioned on this interconnect.
20522	State string `json:"state,omitempty"`
20523
20524	// ServerResponse contains the HTTP response code and headers from the
20525	// server.
20526	googleapi.ServerResponse `json:"-"`
20527
20528	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20529	// unconditionally include in API requests. By default, fields with
20530	// empty or default values are omitted from API requests. However, any
20531	// non-pointer, non-interface field appearing in ForceSendFields will be
20532	// sent to the server regardless of whether the field is empty or not.
20533	// This may be used to include empty fields in Patch requests.
20534	ForceSendFields []string `json:"-"`
20535
20536	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20537	// in API requests with the JSON null value. By default, fields with
20538	// empty values are omitted from API requests. However, any field with
20539	// an empty value appearing in NullFields will be sent to the server as
20540	// null. It is an error if a field in this list has a non-empty value.
20541	// This may be used to include null fields in Patch requests.
20542	NullFields []string `json:"-"`
20543}
20544
20545func (s *Interconnect) MarshalJSON() ([]byte, error) {
20546	type NoMethod Interconnect
20547	raw := NoMethod(*s)
20548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20549}
20550
20551// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
20552// resource. You can use Interconnect attachments (VLANS) to connect
20553// your Virtual Private Cloud networks to your on-premises networks
20554// through an Interconnect. For more information, read Creating VLAN
20555// Attachments.
20556type InterconnectAttachment struct {
20557	// AdminEnabled: Determines whether this Attachment will carry packets.
20558	// Not present for PARTNER_PROVIDER.
20559	AdminEnabled bool `json:"adminEnabled,omitempty"`
20560
20561	// Bandwidth: Provisioned bandwidth capacity for the interconnect
20562	// attachment. For attachments of type DEDICATED, the user can set the
20563	// bandwidth. For attachments of type PARTNER, the Google Partner that
20564	// is operating the interconnect must set the bandwidth. Output only for
20565	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
20566	// take one of the following values: - BPS_50M: 50 Mbit/s - BPS_100M:
20567	// 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M:
20568	// 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2
20569	// Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s -
20570	// BPS_50G: 50 Gbit/s
20571	//
20572	// Possible values:
20573	//   "BPS_100M" - 100 Mbit/s
20574	//   "BPS_10G" - 10 Gbit/s
20575	//   "BPS_1G" - 1 Gbit/s
20576	//   "BPS_200M" - 200 Mbit/s
20577	//   "BPS_20G" - 20 Gbit/s
20578	//   "BPS_2G" - 2 Gbit/s
20579	//   "BPS_300M" - 300 Mbit/s
20580	//   "BPS_400M" - 400 Mbit/s
20581	//   "BPS_500M" - 500 Mbit/s
20582	//   "BPS_50G" - 50 Gbit/s
20583	//   "BPS_50M" - 50 Mbit/s
20584	//   "BPS_5G" - 5 Gbit/s
20585	Bandwidth string `json:"bandwidth,omitempty"`
20586
20587	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
20588	// restrict the allocation of cloudRouterIpAddress and
20589	// customerRouterIpAddress for this attachment. All prefixes must be
20590	// within link-local address space (169.254.0.0/16) and must be /29 or
20591	// shorter (/28, /27, etc). Google will attempt to select an unused /29
20592	// from the supplied candidate prefix(es). The request will fail if all
20593	// possible /29s are in use on Google's edge. If not supplied, Google
20594	// will randomly select an unused /29 from all of link-local space.
20595	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
20596
20597	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
20598	// be configured on Cloud Router Interface for this interconnect
20599	// attachment.
20600	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
20601
20602	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20603	// format.
20604	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20605
20606	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
20607	// to be configured on the customer router subinterface for this
20608	// interconnect attachment.
20609	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
20610
20611	// DataplaneVersion: [Output Only] Dataplane version for this
20612	// InterconnectAttachment.
20613	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
20614
20615	// Description: An optional description of this resource.
20616	Description string `json:"description,omitempty"`
20617
20618	// EdgeAvailabilityDomain: Desired availability domain for the
20619	// attachment. Only available for type PARTNER, at creation time, and
20620	// can take one of the following values: - AVAILABILITY_DOMAIN_ANY -
20621	// AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For improved
20622	// reliability, customers should configure a pair of attachments, one
20623	// per availability domain. The selected availability domain will be
20624	// provided to the Partner via the pairing key, so that the provisioned
20625	// circuit will lie in the specified domain. If not specified, the value
20626	// will default to AVAILABILITY_DOMAIN_ANY.
20627	//
20628	// Possible values:
20629	//   "AVAILABILITY_DOMAIN_1"
20630	//   "AVAILABILITY_DOMAIN_2"
20631	//   "AVAILABILITY_DOMAIN_ANY"
20632	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
20633
20634	// Encryption: Indicates the user-supplied encryption option of this
20635	// VLAN attachment (interconnectAttachment). Can only be specified at
20636	// attachment creation for PARTNER or DEDICATED attachments. Possible
20637	// values are: - NONE - This is the default value, which means that the
20638	// VLAN attachment carries unencrypted traffic. VMs are able to send
20639	// traffic to, or receive traffic from, such a VLAN attachment. - IPSEC
20640	// - The VLAN attachment carries only encrypted traffic that is
20641	// encrypted by an IPsec device, such as an HA VPN gateway or
20642	// third-party IPsec VPN. VMs cannot directly send traffic to, or
20643	// receive traffic from, such a VLAN attachment. To use *IPsec-encrypted
20644	// Cloud Interconnect*, the VLAN attachment must be created with this
20645	// option. Not currently available publicly.
20646	//
20647	// Possible values:
20648	//   "IPSEC" - The interconnect attachment will carry only encrypted
20649	// traffic that is encrypted by an IPsec device such as HA VPN gateway;
20650	// VMs cannot directly send traffic to or receive traffic from such an
20651	// interconnect attachment. To use IPsec-encrypted Cloud Interconnect,
20652	// the interconnect attachment must be created with this option.
20653	//   "NONE" - This is the default value, which means the Interconnect
20654	// Attachment will carry unencrypted traffic. VMs will be able to send
20655	// traffic to or receive traffic from such interconnect attachment.
20656	Encryption string `json:"encryption,omitempty"`
20657
20658	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
20659	// raising support tickets with Google or otherwise to debug backend
20660	// connectivity issues. [Deprecated] This field is not used.
20661	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20662
20663	// Id: [Output Only] The unique identifier for the resource. This
20664	// identifier is defined by the server.
20665	Id uint64 `json:"id,omitempty,string"`
20666
20667	// Interconnect: URL of the underlying Interconnect object that this
20668	// attachment's traffic will traverse through.
20669	Interconnect string `json:"interconnect,omitempty"`
20670
20671	// IpsecInternalAddresses: A list of URLs of addresses that have been
20672	// reserved for the VLAN attachment. Used only for the VLAN attachment
20673	// that has the encryption option as IPSEC. The addresses must be
20674	// regional internal IP address ranges. When creating an HA VPN gateway
20675	// over the VLAN attachment, if the attachment is configured to use a
20676	// regional internal IP address, then the VPN gateway's IP address is
20677	// allocated from the IP address range specified here. For example, if
20678	// the HA VPN gateway's interface 0 is paired to this VLAN attachment,
20679	// then a regional internal IP address for the VPN gateway interface 0
20680	// will be allocated from the IP address specified for this VLAN
20681	// attachment. If this field is not specified when creating the VLAN
20682	// attachment, then later on when creating an HA VPN gateway on this
20683	// VLAN attachment, the HA VPN gateway's IP address is allocated from
20684	// the regional external IP address pool. Not currently available
20685	// publicly.
20686	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
20687
20688	// Kind: [Output Only] Type of the resource. Always
20689	// compute#interconnectAttachment for interconnect attachments.
20690	Kind string `json:"kind,omitempty"`
20691
20692	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
20693	// through this interconnect attachment. Only 1440 and 1500 are allowed.
20694	// If not specified, the value will default to 1440.
20695	Mtu int64 `json:"mtu,omitempty"`
20696
20697	// Name: Name of the resource. Provided by the client when the resource
20698	// is created. The name must be 1-63 characters long, and comply with
20699	// RFC1035. Specifically, the name must be 1-63 characters long and
20700	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20701	// the first character must be a lowercase letter, and all following
20702	// characters must be a dash, lowercase letter, or digit, except the
20703	// last character, which cannot be a dash.
20704	Name string `json:"name,omitempty"`
20705
20706	// OperationalStatus: [Output Only] The current status of whether or not
20707	// this interconnect attachment is functional, which can take one of the
20708	// following values: - OS_ACTIVE: The attachment has been turned up and
20709	// is ready to use. - OS_UNPROVISIONED: The attachment is not ready to
20710	// use yet, because turnup is not complete.
20711	//
20712	// Possible values:
20713	//   "OS_ACTIVE" - Indicates that attachment has been turned up and is
20714	// ready to use.
20715	//   "OS_UNPROVISIONED" - Indicates that attachment is not ready to use
20716	// yet, because turnup is not complete.
20717	OperationalStatus string `json:"operationalStatus,omitempty"`
20718
20719	// PairingKey: [Output only for type PARTNER. Input only for
20720	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
20721	// of an PARTNER attachment used to initiate provisioning with a
20722	// selected partner. Of the form "XXXXX/region/domain"
20723	PairingKey string `json:"pairingKey,omitempty"`
20724
20725	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
20726	// Partner if they configured BGP on behalf of the customer. Output only
20727	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
20728	// DEDICATED.
20729	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
20730
20731	// PartnerMetadata: Informational metadata about Partner attachments
20732	// from Partners to display to customers. Output only for for PARTNER
20733	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
20734	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
20735
20736	// PrivateInterconnectInfo: [Output Only] Information specific to an
20737	// InterconnectAttachment. This property is populated if the
20738	// interconnect that this is attached to is of type DEDICATED.
20739	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
20740
20741	// Region: [Output Only] URL of the region where the regional
20742	// interconnect attachment resides. You must specify this field as part
20743	// of the HTTP request URL. It is not settable as a field in the request
20744	// body.
20745	Region string `json:"region,omitempty"`
20746
20747	// Router: URL of the Cloud Router to be used for dynamic routing. This
20748	// router must be in the same region as this InterconnectAttachment. The
20749	// InterconnectAttachment will automatically connect the Interconnect to
20750	// the network & region within which the Cloud Router is configured.
20751	Router string `json:"router,omitempty"`
20752
20753	// SelfLink: [Output Only] Server-defined URL for the resource.
20754	SelfLink string `json:"selfLink,omitempty"`
20755
20756	// State: [Output Only] The current state of this attachment's
20757	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
20758	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
20759	// attachments, while enum values PENDING_PARTNER,
20760	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
20761	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
20762	// take one of the following values: - ACTIVE: The attachment has been
20763	// turned up and is ready to use. - UNPROVISIONED: The attachment is not
20764	// ready to use yet, because turnup is not complete. - PENDING_PARTNER:
20765	// A newly-created PARTNER attachment that has not yet been configured
20766	// on the Partner side. - PARTNER_REQUEST_RECEIVED: A PARTNER attachment
20767	// is in the process of provisioning after a PARTNER_PROVIDER attachment
20768	// was created that references it. - PENDING_CUSTOMER: A PARTNER or
20769	// PARTNER_PROVIDER attachment that is waiting for a customer to
20770	// activate it. - DEFUNCT: The attachment was deleted externally and is
20771	// no longer functional. This could be because the associated
20772	// Interconnect was removed, or because the other side of a Partner
20773	// attachment was deleted.
20774	//
20775	// Possible values:
20776	//   "ACTIVE" - Indicates that attachment has been turned up and is
20777	// ready to use.
20778	//   "DEFUNCT" - The attachment was deleted externally and is no longer
20779	// functional. This could be because the associated Interconnect was
20780	// wiped out, or because the other side of a Partner attachment was
20781	// deleted.
20782	//   "PARTNER_REQUEST_RECEIVED" - A PARTNER attachment is in the process
20783	// of provisioning after a PARTNER_PROVIDER attachment was created that
20784	// references it.
20785	//   "PENDING_CUSTOMER" - PARTNER or PARTNER_PROVIDER attachment that is
20786	// waiting for the customer to activate.
20787	//   "PENDING_PARTNER" - A newly created PARTNER attachment that has not
20788	// yet been configured on the Partner side.
20789	//   "STATE_UNSPECIFIED"
20790	//   "UNPROVISIONED" - Indicates that attachment is not ready to use
20791	// yet, because turnup is not complete.
20792	State string `json:"state,omitempty"`
20793
20794	// Type: The type of interconnect attachment this is, which can take one
20795	// of the following values: - DEDICATED: an attachment to a Dedicated
20796	// Interconnect. - PARTNER: an attachment to a Partner Interconnect,
20797	// created by the customer. - PARTNER_PROVIDER: an attachment to a
20798	// Partner Interconnect, created by the partner.
20799	//
20800	// Possible values:
20801	//   "DEDICATED" - Attachment to a dedicated interconnect.
20802	//   "PARTNER" - Attachment to a partner interconnect, created by the
20803	// customer.
20804	//   "PARTNER_PROVIDER" - Attachment to a partner interconnect, created
20805	// by the partner.
20806	Type string `json:"type,omitempty"`
20807
20808	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
20809	// range 2-4094. Only specified at creation time.
20810	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
20811
20812	// ServerResponse contains the HTTP response code and headers from the
20813	// server.
20814	googleapi.ServerResponse `json:"-"`
20815
20816	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20817	// unconditionally include in API requests. By default, fields with
20818	// empty or default values are omitted from API requests. However, any
20819	// non-pointer, non-interface field appearing in ForceSendFields will be
20820	// sent to the server regardless of whether the field is empty or not.
20821	// This may be used to include empty fields in Patch requests.
20822	ForceSendFields []string `json:"-"`
20823
20824	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20825	// in API requests with the JSON null value. By default, fields with
20826	// empty values are omitted from API requests. However, any field with
20827	// an empty value appearing in NullFields will be sent to the server as
20828	// null. It is an error if a field in this list has a non-empty value.
20829	// This may be used to include null fields in Patch requests.
20830	NullFields []string `json:"-"`
20831}
20832
20833func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
20834	type NoMethod InterconnectAttachment
20835	raw := NoMethod(*s)
20836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20837}
20838
20839type InterconnectAttachmentAggregatedList struct {
20840	// Id: [Output Only] Unique identifier for the resource; defined by the
20841	// server.
20842	Id string `json:"id,omitempty"`
20843
20844	// Items: A list of InterconnectAttachmentsScopedList resources.
20845	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
20846
20847	// Kind: [Output Only] Type of resource. Always
20848	// compute#interconnectAttachmentAggregatedList for aggregated lists of
20849	// interconnect attachments.
20850	Kind string `json:"kind,omitempty"`
20851
20852	// NextPageToken: [Output Only] This token allows you to get the next
20853	// page of results for list requests. If the number of results is larger
20854	// than maxResults, use the nextPageToken as a value for the query
20855	// parameter pageToken in the next list request. Subsequent list
20856	// requests will have their own nextPageToken to continue paging through
20857	// the results.
20858	NextPageToken string `json:"nextPageToken,omitempty"`
20859
20860	// SelfLink: [Output Only] Server-defined URL for this resource.
20861	SelfLink string `json:"selfLink,omitempty"`
20862
20863	// Unreachables: [Output Only] Unreachable resources.
20864	Unreachables []string `json:"unreachables,omitempty"`
20865
20866	// Warning: [Output Only] Informational warning message.
20867	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
20868
20869	// ServerResponse contains the HTTP response code and headers from the
20870	// server.
20871	googleapi.ServerResponse `json:"-"`
20872
20873	// ForceSendFields is a list of field names (e.g. "Id") to
20874	// unconditionally include in API requests. By default, fields with
20875	// empty or default values are omitted from API requests. However, any
20876	// non-pointer, non-interface field appearing in ForceSendFields will be
20877	// sent to the server regardless of whether the field is empty or not.
20878	// This may be used to include empty fields in Patch requests.
20879	ForceSendFields []string `json:"-"`
20880
20881	// NullFields is a list of field names (e.g. "Id") to include in API
20882	// requests with the JSON null value. By default, fields with empty
20883	// values are omitted from API requests. However, any field with an
20884	// empty value appearing in NullFields will be sent to the server as
20885	// null. It is an error if a field in this list has a non-empty value.
20886	// This may be used to include null fields in Patch requests.
20887	NullFields []string `json:"-"`
20888}
20889
20890func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
20891	type NoMethod InterconnectAttachmentAggregatedList
20892	raw := NoMethod(*s)
20893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20894}
20895
20896// InterconnectAttachmentAggregatedListWarning: [Output Only]
20897// Informational warning message.
20898type InterconnectAttachmentAggregatedListWarning struct {
20899	// Code: [Output Only] A warning code, if applicable. For example,
20900	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20901	// the response.
20902	//
20903	// Possible values:
20904	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
20905	// changes made by a failed operation.
20906	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
20907	// created.
20908	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
20909	// resources has a type marked as deprecated
20910	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
20911	// that is larger than image size.
20912	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
20913	// resources has a type marked as experimental
20914	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
20915	// call
20916	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
20917	// overridden. Deprecated unused field.
20918	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
20919	// injected kernel, which is deprecated.
20920	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
20921	// exceedingly large number of resources
20922	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
20923	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
20924	// not assigned to an instance on the network.
20925	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
20926	// ip forward.
20927	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
20928	// refers to an instance that does not exist.
20929	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
20930	// URL refers to an instance that is not on the same network as the
20931	// route.
20932	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
20933	// have a status of RUNNING.
20934	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
20935	// continue the process despite the mentioned error.
20936	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
20937	// page.
20938	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
20939	// missing due to errors
20940	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
20941	// that requires a TOS they have not accepted.
20942	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
20943	// resource is in use.
20944	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
20945	// auto-delete could not be deleted because they were in use.
20946	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
20947	// ignored.
20948	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
20949	// instance group manager is valid as such, but its application does not
20950	// make a lot of sense, because it allows only single instance in
20951	// instance group.
20952	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
20953	// are present
20954	//   "UNREACHABLE" - A given scope cannot be reached.
20955	Code string `json:"code,omitempty"`
20956
20957	// Data: [Output Only] Metadata about this warning in key: value format.
20958	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
20959	// }
20960	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
20961
20962	// Message: [Output Only] A human-readable description of the warning
20963	// code.
20964	Message string `json:"message,omitempty"`
20965
20966	// ForceSendFields is a list of field names (e.g. "Code") to
20967	// unconditionally include in API requests. By default, fields with
20968	// empty or default values are omitted from API requests. However, any
20969	// non-pointer, non-interface field appearing in ForceSendFields will be
20970	// sent to the server regardless of whether the field is empty or not.
20971	// This may be used to include empty fields in Patch requests.
20972	ForceSendFields []string `json:"-"`
20973
20974	// NullFields is a list of field names (e.g. "Code") to include in API
20975	// requests with the JSON null value. By default, fields with empty
20976	// values are omitted from API requests. However, any field with an
20977	// empty value appearing in NullFields will be sent to the server as
20978	// null. It is an error if a field in this list has a non-empty value.
20979	// This may be used to include null fields in Patch requests.
20980	NullFields []string `json:"-"`
20981}
20982
20983func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
20984	type NoMethod InterconnectAttachmentAggregatedListWarning
20985	raw := NoMethod(*s)
20986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20987}
20988
20989type InterconnectAttachmentAggregatedListWarningData struct {
20990	// Key: [Output Only] A key that provides more detail on the warning
20991	// being returned. For example, for warnings where there are no results
20992	// in a list request for a particular zone, this key might be scope and
20993	// the key value might be the zone name. Other examples might be a key
20994	// indicating a deprecated resource and a suggested replacement, or a
20995	// warning about invalid network settings (for example, if an instance
20996	// attempts to perform IP forwarding but is not enabled for IP
20997	// forwarding).
20998	Key string `json:"key,omitempty"`
20999
21000	// Value: [Output Only] A warning data value corresponding to the key.
21001	Value string `json:"value,omitempty"`
21002
21003	// ForceSendFields is a list of field names (e.g. "Key") to
21004	// unconditionally include in API requests. By default, fields with
21005	// empty or default values are omitted from API requests. However, any
21006	// non-pointer, non-interface field appearing in ForceSendFields will be
21007	// sent to the server regardless of whether the field is empty or not.
21008	// This may be used to include empty fields in Patch requests.
21009	ForceSendFields []string `json:"-"`
21010
21011	// NullFields is a list of field names (e.g. "Key") to include in API
21012	// requests with the JSON null value. By default, fields with empty
21013	// values are omitted from API requests. However, any field with an
21014	// empty value appearing in NullFields will be sent to the server as
21015	// null. It is an error if a field in this list has a non-empty value.
21016	// This may be used to include null fields in Patch requests.
21017	NullFields []string `json:"-"`
21018}
21019
21020func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21021	type NoMethod InterconnectAttachmentAggregatedListWarningData
21022	raw := NoMethod(*s)
21023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21024}
21025
21026// InterconnectAttachmentList: Response to the list request, and
21027// contains a list of interconnect attachments.
21028type InterconnectAttachmentList struct {
21029	// Id: [Output Only] Unique identifier for the resource; defined by the
21030	// server.
21031	Id string `json:"id,omitempty"`
21032
21033	// Items: A list of InterconnectAttachment resources.
21034	Items []*InterconnectAttachment `json:"items,omitempty"`
21035
21036	// Kind: [Output Only] Type of resource. Always
21037	// compute#interconnectAttachmentList for lists of interconnect
21038	// attachments.
21039	Kind string `json:"kind,omitempty"`
21040
21041	// NextPageToken: [Output Only] This token allows you to get the next
21042	// page of results for list requests. If the number of results is larger
21043	// than maxResults, use the nextPageToken as a value for the query
21044	// parameter pageToken in the next list request. Subsequent list
21045	// requests will have their own nextPageToken to continue paging through
21046	// the results.
21047	NextPageToken string `json:"nextPageToken,omitempty"`
21048
21049	// SelfLink: [Output Only] Server-defined URL for this resource.
21050	SelfLink string `json:"selfLink,omitempty"`
21051
21052	// Warning: [Output Only] Informational warning message.
21053	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
21054
21055	// ServerResponse contains the HTTP response code and headers from the
21056	// server.
21057	googleapi.ServerResponse `json:"-"`
21058
21059	// ForceSendFields is a list of field names (e.g. "Id") to
21060	// unconditionally include in API requests. By default, fields with
21061	// empty or default values are omitted from API requests. However, any
21062	// non-pointer, non-interface field appearing in ForceSendFields will be
21063	// sent to the server regardless of whether the field is empty or not.
21064	// This may be used to include empty fields in Patch requests.
21065	ForceSendFields []string `json:"-"`
21066
21067	// NullFields is a list of field names (e.g. "Id") to include in API
21068	// requests with the JSON null value. By default, fields with empty
21069	// values are omitted from API requests. However, any field with an
21070	// empty value appearing in NullFields will be sent to the server as
21071	// null. It is an error if a field in this list has a non-empty value.
21072	// This may be used to include null fields in Patch requests.
21073	NullFields []string `json:"-"`
21074}
21075
21076func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
21077	type NoMethod InterconnectAttachmentList
21078	raw := NoMethod(*s)
21079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21080}
21081
21082// InterconnectAttachmentListWarning: [Output Only] Informational
21083// warning message.
21084type InterconnectAttachmentListWarning struct {
21085	// Code: [Output Only] A warning code, if applicable. For example,
21086	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21087	// the response.
21088	//
21089	// Possible values:
21090	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21091	// changes made by a failed operation.
21092	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21093	// created.
21094	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21095	// resources has a type marked as deprecated
21096	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21097	// that is larger than image size.
21098	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21099	// resources has a type marked as experimental
21100	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21101	// call
21102	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21103	// overridden. Deprecated unused field.
21104	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21105	// injected kernel, which is deprecated.
21106	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21107	// exceedingly large number of resources
21108	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21109	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21110	// not assigned to an instance on the network.
21111	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21112	// ip forward.
21113	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21114	// refers to an instance that does not exist.
21115	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21116	// URL refers to an instance that is not on the same network as the
21117	// route.
21118	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21119	// have a status of RUNNING.
21120	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21121	// continue the process despite the mentioned error.
21122	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21123	// page.
21124	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21125	// missing due to errors
21126	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21127	// that requires a TOS they have not accepted.
21128	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21129	// resource is in use.
21130	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21131	// auto-delete could not be deleted because they were in use.
21132	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21133	// ignored.
21134	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21135	// instance group manager is valid as such, but its application does not
21136	// make a lot of sense, because it allows only single instance in
21137	// instance group.
21138	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21139	// are present
21140	//   "UNREACHABLE" - A given scope cannot be reached.
21141	Code string `json:"code,omitempty"`
21142
21143	// Data: [Output Only] Metadata about this warning in key: value format.
21144	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21145	// }
21146	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
21147
21148	// Message: [Output Only] A human-readable description of the warning
21149	// code.
21150	Message string `json:"message,omitempty"`
21151
21152	// ForceSendFields is a list of field names (e.g. "Code") to
21153	// unconditionally include in API requests. By default, fields with
21154	// empty or default values are omitted from API requests. However, any
21155	// non-pointer, non-interface field appearing in ForceSendFields will be
21156	// sent to the server regardless of whether the field is empty or not.
21157	// This may be used to include empty fields in Patch requests.
21158	ForceSendFields []string `json:"-"`
21159
21160	// NullFields is a list of field names (e.g. "Code") to include in API
21161	// requests with the JSON null value. By default, fields with empty
21162	// values are omitted from API requests. However, any field with an
21163	// empty value appearing in NullFields will be sent to the server as
21164	// null. It is an error if a field in this list has a non-empty value.
21165	// This may be used to include null fields in Patch requests.
21166	NullFields []string `json:"-"`
21167}
21168
21169func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
21170	type NoMethod InterconnectAttachmentListWarning
21171	raw := NoMethod(*s)
21172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21173}
21174
21175type InterconnectAttachmentListWarningData struct {
21176	// Key: [Output Only] A key that provides more detail on the warning
21177	// being returned. For example, for warnings where there are no results
21178	// in a list request for a particular zone, this key might be scope and
21179	// the key value might be the zone name. Other examples might be a key
21180	// indicating a deprecated resource and a suggested replacement, or a
21181	// warning about invalid network settings (for example, if an instance
21182	// attempts to perform IP forwarding but is not enabled for IP
21183	// forwarding).
21184	Key string `json:"key,omitempty"`
21185
21186	// Value: [Output Only] A warning data value corresponding to the key.
21187	Value string `json:"value,omitempty"`
21188
21189	// ForceSendFields is a list of field names (e.g. "Key") to
21190	// unconditionally include in API requests. By default, fields with
21191	// empty or default values are omitted from API requests. However, any
21192	// non-pointer, non-interface field appearing in ForceSendFields will be
21193	// sent to the server regardless of whether the field is empty or not.
21194	// This may be used to include empty fields in Patch requests.
21195	ForceSendFields []string `json:"-"`
21196
21197	// NullFields is a list of field names (e.g. "Key") to include in API
21198	// requests with the JSON null value. By default, fields with empty
21199	// values are omitted from API requests. However, any field with an
21200	// empty value appearing in NullFields will be sent to the server as
21201	// null. It is an error if a field in this list has a non-empty value.
21202	// This may be used to include null fields in Patch requests.
21203	NullFields []string `json:"-"`
21204}
21205
21206func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
21207	type NoMethod InterconnectAttachmentListWarningData
21208	raw := NoMethod(*s)
21209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21210}
21211
21212// InterconnectAttachmentPartnerMetadata: Informational metadata about
21213// Partner attachments from Partners to display to customers. These
21214// fields are propagated from PARTNER_PROVIDER attachments to their
21215// corresponding PARTNER attachments.
21216type InterconnectAttachmentPartnerMetadata struct {
21217	// InterconnectName: Plain text name of the Interconnect this attachment
21218	// is connected to, as displayed in the Partner's portal. For instance
21219	// "Chicago 1". This value may be validated to match approved Partner
21220	// values.
21221	InterconnectName string `json:"interconnectName,omitempty"`
21222
21223	// PartnerName: Plain text name of the Partner providing this
21224	// attachment. This value may be validated to match approved Partner
21225	// values.
21226	PartnerName string `json:"partnerName,omitempty"`
21227
21228	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
21229	// may customise this to be a deep link to the specific resource on the
21230	// Partner portal. This value may be validated to match approved Partner
21231	// values.
21232	PortalUrl string `json:"portalUrl,omitempty"`
21233
21234	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
21235	// unconditionally include in API requests. By default, fields with
21236	// empty or default values are omitted from API requests. However, any
21237	// non-pointer, non-interface field appearing in ForceSendFields will be
21238	// sent to the server regardless of whether the field is empty or not.
21239	// This may be used to include empty fields in Patch requests.
21240	ForceSendFields []string `json:"-"`
21241
21242	// NullFields is a list of field names (e.g. "InterconnectName") to
21243	// include in API requests with the JSON null value. By default, fields
21244	// with empty values are omitted from API requests. However, any field
21245	// with an empty value appearing in NullFields will be sent to the
21246	// server as null. It is an error if a field in this list has a
21247	// non-empty value. This may be used to include null fields in Patch
21248	// requests.
21249	NullFields []string `json:"-"`
21250}
21251
21252func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
21253	type NoMethod InterconnectAttachmentPartnerMetadata
21254	raw := NoMethod(*s)
21255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21256}
21257
21258// InterconnectAttachmentPrivateInfo: Information for an interconnect
21259// attachment when this belongs to an interconnect of type DEDICATED.
21260type InterconnectAttachmentPrivateInfo struct {
21261	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
21262	// traffic between Google and the customer, going to and from this
21263	// network and region.
21264	Tag8021q int64 `json:"tag8021q,omitempty"`
21265
21266	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
21267	// unconditionally include in API requests. By default, fields with
21268	// empty or default values are omitted from API requests. However, any
21269	// non-pointer, non-interface field appearing in ForceSendFields will be
21270	// sent to the server regardless of whether the field is empty or not.
21271	// This may be used to include empty fields in Patch requests.
21272	ForceSendFields []string `json:"-"`
21273
21274	// NullFields is a list of field names (e.g. "Tag8021q") to include in
21275	// API requests with the JSON null value. By default, fields with empty
21276	// values are omitted from API requests. However, any field with an
21277	// empty value appearing in NullFields will be sent to the server as
21278	// null. It is an error if a field in this list has a non-empty value.
21279	// This may be used to include null fields in Patch requests.
21280	NullFields []string `json:"-"`
21281}
21282
21283func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
21284	type NoMethod InterconnectAttachmentPrivateInfo
21285	raw := NoMethod(*s)
21286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21287}
21288
21289type InterconnectAttachmentsScopedList struct {
21290	// InterconnectAttachments: A list of interconnect attachments contained
21291	// in this scope.
21292	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
21293
21294	// Warning: Informational warning which replaces the list of addresses
21295	// when the list is empty.
21296	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
21297
21298	// ForceSendFields is a list of field names (e.g.
21299	// "InterconnectAttachments") to unconditionally include in API
21300	// requests. By default, fields with empty or default values are omitted
21301	// from API requests. However, any non-pointer, non-interface field
21302	// appearing in ForceSendFields will be sent to the server regardless of
21303	// whether the field is empty or not. This may be used to include empty
21304	// fields in Patch requests.
21305	ForceSendFields []string `json:"-"`
21306
21307	// NullFields is a list of field names (e.g. "InterconnectAttachments")
21308	// to include in API requests with the JSON null value. By default,
21309	// fields with empty values are omitted from API requests. However, any
21310	// field with an empty value appearing in NullFields will be sent to the
21311	// server as null. It is an error if a field in this list has a
21312	// non-empty value. This may be used to include null fields in Patch
21313	// requests.
21314	NullFields []string `json:"-"`
21315}
21316
21317func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
21318	type NoMethod InterconnectAttachmentsScopedList
21319	raw := NoMethod(*s)
21320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21321}
21322
21323// InterconnectAttachmentsScopedListWarning: Informational warning which
21324// replaces the list of addresses when the list is empty.
21325type InterconnectAttachmentsScopedListWarning struct {
21326	// Code: [Output Only] A warning code, if applicable. For example,
21327	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21328	// the response.
21329	//
21330	// Possible values:
21331	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21332	// changes made by a failed operation.
21333	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21334	// created.
21335	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21336	// resources has a type marked as deprecated
21337	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21338	// that is larger than image size.
21339	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21340	// resources has a type marked as experimental
21341	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21342	// call
21343	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21344	// overridden. Deprecated unused field.
21345	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21346	// injected kernel, which is deprecated.
21347	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21348	// exceedingly large number of resources
21349	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21350	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21351	// not assigned to an instance on the network.
21352	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21353	// ip forward.
21354	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21355	// refers to an instance that does not exist.
21356	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21357	// URL refers to an instance that is not on the same network as the
21358	// route.
21359	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21360	// have a status of RUNNING.
21361	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21362	// continue the process despite the mentioned error.
21363	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21364	// page.
21365	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21366	// missing due to errors
21367	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21368	// that requires a TOS they have not accepted.
21369	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21370	// resource is in use.
21371	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21372	// auto-delete could not be deleted because they were in use.
21373	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21374	// ignored.
21375	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21376	// instance group manager is valid as such, but its application does not
21377	// make a lot of sense, because it allows only single instance in
21378	// instance group.
21379	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21380	// are present
21381	//   "UNREACHABLE" - A given scope cannot be reached.
21382	Code string `json:"code,omitempty"`
21383
21384	// Data: [Output Only] Metadata about this warning in key: value format.
21385	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21386	// }
21387	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
21388
21389	// Message: [Output Only] A human-readable description of the warning
21390	// code.
21391	Message string `json:"message,omitempty"`
21392
21393	// ForceSendFields is a list of field names (e.g. "Code") to
21394	// unconditionally include in API requests. By default, fields with
21395	// empty or default values are omitted from API requests. However, any
21396	// non-pointer, non-interface field appearing in ForceSendFields will be
21397	// sent to the server regardless of whether the field is empty or not.
21398	// This may be used to include empty fields in Patch requests.
21399	ForceSendFields []string `json:"-"`
21400
21401	// NullFields is a list of field names (e.g. "Code") to include in API
21402	// requests with the JSON null value. By default, fields with empty
21403	// values are omitted from API requests. However, any field with an
21404	// empty value appearing in NullFields will be sent to the server as
21405	// null. It is an error if a field in this list has a non-empty value.
21406	// This may be used to include null fields in Patch requests.
21407	NullFields []string `json:"-"`
21408}
21409
21410func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
21411	type NoMethod InterconnectAttachmentsScopedListWarning
21412	raw := NoMethod(*s)
21413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21414}
21415
21416type InterconnectAttachmentsScopedListWarningData struct {
21417	// Key: [Output Only] A key that provides more detail on the warning
21418	// being returned. For example, for warnings where there are no results
21419	// in a list request for a particular zone, this key might be scope and
21420	// the key value might be the zone name. Other examples might be a key
21421	// indicating a deprecated resource and a suggested replacement, or a
21422	// warning about invalid network settings (for example, if an instance
21423	// attempts to perform IP forwarding but is not enabled for IP
21424	// forwarding).
21425	Key string `json:"key,omitempty"`
21426
21427	// Value: [Output Only] A warning data value corresponding to the key.
21428	Value string `json:"value,omitempty"`
21429
21430	// ForceSendFields is a list of field names (e.g. "Key") to
21431	// unconditionally include in API requests. By default, fields with
21432	// empty or default values are omitted from API requests. However, any
21433	// non-pointer, non-interface field appearing in ForceSendFields will be
21434	// sent to the server regardless of whether the field is empty or not.
21435	// This may be used to include empty fields in Patch requests.
21436	ForceSendFields []string `json:"-"`
21437
21438	// NullFields is a list of field names (e.g. "Key") to include in API
21439	// requests with the JSON null value. By default, fields with empty
21440	// values are omitted from API requests. However, any field with an
21441	// empty value appearing in NullFields will be sent to the server as
21442	// null. It is an error if a field in this list has a non-empty value.
21443	// This may be used to include null fields in Patch requests.
21444	NullFields []string `json:"-"`
21445}
21446
21447func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
21448	type NoMethod InterconnectAttachmentsScopedListWarningData
21449	raw := NoMethod(*s)
21450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21451}
21452
21453// InterconnectCircuitInfo: Describes a single physical circuit between
21454// the Customer and Google. CircuitInfo objects are created by Google,
21455// so all fields are output only.
21456type InterconnectCircuitInfo struct {
21457	// CustomerDemarcId: Customer-side demarc ID for this circuit.
21458	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
21459
21460	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
21461	// at circuit turn-up.
21462	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
21463
21464	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
21465	// circuit turn-up and provided by Google to the customer in the LOA.
21466	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
21467
21468	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
21469	// unconditionally include in API requests. By default, fields with
21470	// empty or default values are omitted from API requests. However, any
21471	// non-pointer, non-interface field appearing in ForceSendFields will be
21472	// sent to the server regardless of whether the field is empty or not.
21473	// This may be used to include empty fields in Patch requests.
21474	ForceSendFields []string `json:"-"`
21475
21476	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
21477	// include in API requests with the JSON null value. By default, fields
21478	// with empty values are omitted from API requests. However, any field
21479	// with an empty value appearing in NullFields will be sent to the
21480	// server as null. It is an error if a field in this list has a
21481	// non-empty value. This may be used to include null fields in Patch
21482	// requests.
21483	NullFields []string `json:"-"`
21484}
21485
21486func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
21487	type NoMethod InterconnectCircuitInfo
21488	raw := NoMethod(*s)
21489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21490}
21491
21492// InterconnectDiagnostics: Diagnostics information about interconnect,
21493// contains detailed and current technical information about Google's
21494// side of the connection.
21495type InterconnectDiagnostics struct {
21496	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21497	// describing individual neighbors currently seen by the Google router
21498	// in the ARP cache for the Interconnect. This will be empty when the
21499	// Interconnect is not bundled.
21500	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21501
21502	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
21503	// describing the status for each link on the Interconnect.
21504	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
21505
21506	// MacAddress: The MAC address of the Interconnect's bundle interface.
21507	MacAddress string `json:"macAddress,omitempty"`
21508
21509	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21510	// unconditionally include in API requests. By default, fields with
21511	// empty or default values are omitted from API requests. However, any
21512	// non-pointer, non-interface field appearing in ForceSendFields will be
21513	// sent to the server regardless of whether the field is empty or not.
21514	// This may be used to include empty fields in Patch requests.
21515	ForceSendFields []string `json:"-"`
21516
21517	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21518	// API requests with the JSON null value. By default, fields with empty
21519	// values are omitted from API requests. However, any field with an
21520	// empty value appearing in NullFields will be sent to the server as
21521	// null. It is an error if a field in this list has a non-empty value.
21522	// This may be used to include null fields in Patch requests.
21523	NullFields []string `json:"-"`
21524}
21525
21526func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
21527	type NoMethod InterconnectDiagnostics
21528	raw := NoMethod(*s)
21529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21530}
21531
21532// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
21533// seen on this link
21534type InterconnectDiagnosticsARPEntry struct {
21535	// IpAddress: The IP address of this ARP neighbor.
21536	IpAddress string `json:"ipAddress,omitempty"`
21537
21538	// MacAddress: The MAC address of this ARP neighbor.
21539	MacAddress string `json:"macAddress,omitempty"`
21540
21541	// ForceSendFields is a list of field names (e.g. "IpAddress") to
21542	// unconditionally include in API requests. By default, fields with
21543	// empty or default values are omitted from API requests. However, any
21544	// non-pointer, non-interface field appearing in ForceSendFields will be
21545	// sent to the server regardless of whether the field is empty or not.
21546	// This may be used to include empty fields in Patch requests.
21547	ForceSendFields []string `json:"-"`
21548
21549	// NullFields is a list of field names (e.g. "IpAddress") to include in
21550	// API requests with the JSON null value. By default, fields with empty
21551	// values are omitted from API requests. However, any field with an
21552	// empty value appearing in NullFields will be sent to the server as
21553	// null. It is an error if a field in this list has a non-empty value.
21554	// This may be used to include null fields in Patch requests.
21555	NullFields []string `json:"-"`
21556}
21557
21558func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
21559	type NoMethod InterconnectDiagnosticsARPEntry
21560	raw := NoMethod(*s)
21561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21562}
21563
21564type InterconnectDiagnosticsLinkLACPStatus struct {
21565	// GoogleSystemId: System ID of the port on Google's side of the LACP
21566	// exchange.
21567	GoogleSystemId string `json:"googleSystemId,omitempty"`
21568
21569	// NeighborSystemId: System ID of the port on the neighbor's side of the
21570	// LACP exchange.
21571	NeighborSystemId string `json:"neighborSystemId,omitempty"`
21572
21573	// State: The state of a LACP link, which can take one of the following
21574	// values: - ACTIVE: The link is configured and active within the
21575	// bundle. - DETACHED: The link is not configured within the bundle.
21576	// This means that the rest of the object should be empty.
21577	//
21578	// Possible values:
21579	//   "ACTIVE" - The link is configured and active within the bundle.
21580	//   "DETACHED" - The link is not configured within the bundle, this
21581	// means the rest of the object should be empty.
21582	State string `json:"state,omitempty"`
21583
21584	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
21585	// unconditionally include in API requests. By default, fields with
21586	// empty or default values are omitted from API requests. However, any
21587	// non-pointer, non-interface field appearing in ForceSendFields will be
21588	// sent to the server regardless of whether the field is empty or not.
21589	// This may be used to include empty fields in Patch requests.
21590	ForceSendFields []string `json:"-"`
21591
21592	// NullFields is a list of field names (e.g. "GoogleSystemId") to
21593	// include in API requests with the JSON null value. By default, fields
21594	// with empty values are omitted from API requests. However, any field
21595	// with an empty value appearing in NullFields will be sent to the
21596	// server as null. It is an error if a field in this list has a
21597	// non-empty value. This may be used to include null fields in Patch
21598	// requests.
21599	NullFields []string `json:"-"`
21600}
21601
21602func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
21603	type NoMethod InterconnectDiagnosticsLinkLACPStatus
21604	raw := NoMethod(*s)
21605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21606}
21607
21608type InterconnectDiagnosticsLinkOpticalPower struct {
21609	// State: The status of the current value when compared to the warning
21610	// and alarm levels for the receiving or transmitting transceiver.
21611	// Possible states include: - OK: The value has not crossed a warning
21612	// threshold. - LOW_WARNING: The value has crossed below the low warning
21613	// threshold. - HIGH_WARNING: The value has crossed above the high
21614	// warning threshold. - LOW_ALARM: The value has crossed below the low
21615	// alarm threshold. - HIGH_ALARM: The value has crossed above the high
21616	// alarm threshold.
21617	//
21618	// Possible values:
21619	//   "HIGH_ALARM" - The value has crossed above the high alarm
21620	// threshold.
21621	//   "HIGH_WARNING" - The value of the current optical power has crossed
21622	// above the high warning threshold.
21623	//   "LOW_ALARM" - The value of the current optical power has crossed
21624	// below the low alarm threshold.
21625	//   "LOW_WARNING" - The value of the current optical power has crossed
21626	// below the low warning threshold.
21627	//   "OK" - The value of the current optical power has not crossed a
21628	// warning threshold.
21629	State string `json:"state,omitempty"`
21630
21631	// Value: Value of the current receiving or transmitting optical power,
21632	// read in dBm. Take a known good optical value, give it a 10% margin
21633	// and trigger warnings relative to that value. In general, a -7dBm
21634	// warning and a -11dBm alarm are good optical value estimates for most
21635	// links.
21636	Value float64 `json:"value,omitempty"`
21637
21638	// ForceSendFields is a list of field names (e.g. "State") to
21639	// unconditionally include in API requests. By default, fields with
21640	// empty or default values are omitted from API requests. However, any
21641	// non-pointer, non-interface field appearing in ForceSendFields will be
21642	// sent to the server regardless of whether the field is empty or not.
21643	// This may be used to include empty fields in Patch requests.
21644	ForceSendFields []string `json:"-"`
21645
21646	// NullFields is a list of field names (e.g. "State") to include in API
21647	// requests with the JSON null value. By default, fields with empty
21648	// values are omitted from API requests. However, any field with an
21649	// empty value appearing in NullFields will be sent to the server as
21650	// null. It is an error if a field in this list has a non-empty value.
21651	// This may be used to include null fields in Patch requests.
21652	NullFields []string `json:"-"`
21653}
21654
21655func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
21656	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21657	raw := NoMethod(*s)
21658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21659}
21660
21661func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
21662	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21663	var s1 struct {
21664		Value gensupport.JSONFloat64 `json:"value"`
21665		*NoMethod
21666	}
21667	s1.NoMethod = (*NoMethod)(s)
21668	if err := json.Unmarshal(data, &s1); err != nil {
21669		return err
21670	}
21671	s.Value = float64(s1.Value)
21672	return nil
21673}
21674
21675type InterconnectDiagnosticsLinkStatus struct {
21676	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21677	// describing the ARP neighbor entries seen on this link. This will be
21678	// empty if the link is bundled
21679	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21680
21681	// CircuitId: The unique ID for this link assigned during turn up by
21682	// Google.
21683	CircuitId string `json:"circuitId,omitempty"`
21684
21685	// GoogleDemarc: The Demarc address assigned by Google and provided in
21686	// the LoA.
21687	GoogleDemarc string `json:"googleDemarc,omitempty"`
21688
21689	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
21690
21691	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21692	// object, describing the current value and status of the received light
21693	// level.
21694	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
21695
21696	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21697	// object, describing the current value and status of the transmitted
21698	// light level.
21699	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
21700
21701	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21702	// unconditionally include in API requests. By default, fields with
21703	// empty or default values are omitted from API requests. However, any
21704	// non-pointer, non-interface field appearing in ForceSendFields will be
21705	// sent to the server regardless of whether the field is empty or not.
21706	// This may be used to include empty fields in Patch requests.
21707	ForceSendFields []string `json:"-"`
21708
21709	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21710	// API requests with the JSON null value. By default, fields with empty
21711	// values are omitted from API requests. However, any field with an
21712	// empty value appearing in NullFields will be sent to the server as
21713	// null. It is an error if a field in this list has a non-empty value.
21714	// This may be used to include null fields in Patch requests.
21715	NullFields []string `json:"-"`
21716}
21717
21718func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
21719	type NoMethod InterconnectDiagnosticsLinkStatus
21720	raw := NoMethod(*s)
21721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21722}
21723
21724// InterconnectList: Response to the list request, and contains a list
21725// of interconnects.
21726type InterconnectList struct {
21727	// Id: [Output Only] Unique identifier for the resource; defined by the
21728	// server.
21729	Id string `json:"id,omitempty"`
21730
21731	// Items: A list of Interconnect resources.
21732	Items []*Interconnect `json:"items,omitempty"`
21733
21734	// Kind: [Output Only] Type of resource. Always compute#interconnectList
21735	// for lists of interconnects.
21736	Kind string `json:"kind,omitempty"`
21737
21738	// NextPageToken: [Output Only] This token allows you to get the next
21739	// page of results for list requests. If the number of results is larger
21740	// than maxResults, use the nextPageToken as a value for the query
21741	// parameter pageToken in the next list request. Subsequent list
21742	// requests will have their own nextPageToken to continue paging through
21743	// the results.
21744	NextPageToken string `json:"nextPageToken,omitempty"`
21745
21746	// SelfLink: [Output Only] Server-defined URL for this resource.
21747	SelfLink string `json:"selfLink,omitempty"`
21748
21749	// Warning: [Output Only] Informational warning message.
21750	Warning *InterconnectListWarning `json:"warning,omitempty"`
21751
21752	// ServerResponse contains the HTTP response code and headers from the
21753	// server.
21754	googleapi.ServerResponse `json:"-"`
21755
21756	// ForceSendFields is a list of field names (e.g. "Id") to
21757	// unconditionally include in API requests. By default, fields with
21758	// empty or default values are omitted from API requests. However, any
21759	// non-pointer, non-interface field appearing in ForceSendFields will be
21760	// sent to the server regardless of whether the field is empty or not.
21761	// This may be used to include empty fields in Patch requests.
21762	ForceSendFields []string `json:"-"`
21763
21764	// NullFields is a list of field names (e.g. "Id") to include in API
21765	// requests with the JSON null value. By default, fields with empty
21766	// values are omitted from API requests. However, any field with an
21767	// empty value appearing in NullFields will be sent to the server as
21768	// null. It is an error if a field in this list has a non-empty value.
21769	// This may be used to include null fields in Patch requests.
21770	NullFields []string `json:"-"`
21771}
21772
21773func (s *InterconnectList) MarshalJSON() ([]byte, error) {
21774	type NoMethod InterconnectList
21775	raw := NoMethod(*s)
21776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21777}
21778
21779// InterconnectListWarning: [Output Only] Informational warning message.
21780type InterconnectListWarning struct {
21781	// Code: [Output Only] A warning code, if applicable. For example,
21782	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21783	// the response.
21784	//
21785	// Possible values:
21786	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21787	// changes made by a failed operation.
21788	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21789	// created.
21790	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21791	// resources has a type marked as deprecated
21792	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21793	// that is larger than image size.
21794	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21795	// resources has a type marked as experimental
21796	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21797	// call
21798	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21799	// overridden. Deprecated unused field.
21800	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21801	// injected kernel, which is deprecated.
21802	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21803	// exceedingly large number of resources
21804	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21805	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21806	// not assigned to an instance on the network.
21807	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21808	// ip forward.
21809	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21810	// refers to an instance that does not exist.
21811	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21812	// URL refers to an instance that is not on the same network as the
21813	// route.
21814	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21815	// have a status of RUNNING.
21816	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21817	// continue the process despite the mentioned error.
21818	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21819	// page.
21820	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21821	// missing due to errors
21822	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21823	// that requires a TOS they have not accepted.
21824	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21825	// resource is in use.
21826	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21827	// auto-delete could not be deleted because they were in use.
21828	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21829	// ignored.
21830	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21831	// instance group manager is valid as such, but its application does not
21832	// make a lot of sense, because it allows only single instance in
21833	// instance group.
21834	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21835	// are present
21836	//   "UNREACHABLE" - A given scope cannot be reached.
21837	Code string `json:"code,omitempty"`
21838
21839	// Data: [Output Only] Metadata about this warning in key: value format.
21840	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21841	// }
21842	Data []*InterconnectListWarningData `json:"data,omitempty"`
21843
21844	// Message: [Output Only] A human-readable description of the warning
21845	// code.
21846	Message string `json:"message,omitempty"`
21847
21848	// ForceSendFields is a list of field names (e.g. "Code") to
21849	// unconditionally include in API requests. By default, fields with
21850	// empty or default values are omitted from API requests. However, any
21851	// non-pointer, non-interface field appearing in ForceSendFields will be
21852	// sent to the server regardless of whether the field is empty or not.
21853	// This may be used to include empty fields in Patch requests.
21854	ForceSendFields []string `json:"-"`
21855
21856	// NullFields is a list of field names (e.g. "Code") to include in API
21857	// requests with the JSON null value. By default, fields with empty
21858	// values are omitted from API requests. However, any field with an
21859	// empty value appearing in NullFields will be sent to the server as
21860	// null. It is an error if a field in this list has a non-empty value.
21861	// This may be used to include null fields in Patch requests.
21862	NullFields []string `json:"-"`
21863}
21864
21865func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
21866	type NoMethod InterconnectListWarning
21867	raw := NoMethod(*s)
21868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21869}
21870
21871type InterconnectListWarningData struct {
21872	// Key: [Output Only] A key that provides more detail on the warning
21873	// being returned. For example, for warnings where there are no results
21874	// in a list request for a particular zone, this key might be scope and
21875	// the key value might be the zone name. Other examples might be a key
21876	// indicating a deprecated resource and a suggested replacement, or a
21877	// warning about invalid network settings (for example, if an instance
21878	// attempts to perform IP forwarding but is not enabled for IP
21879	// forwarding).
21880	Key string `json:"key,omitempty"`
21881
21882	// Value: [Output Only] A warning data value corresponding to the key.
21883	Value string `json:"value,omitempty"`
21884
21885	// ForceSendFields is a list of field names (e.g. "Key") to
21886	// unconditionally include in API requests. By default, fields with
21887	// empty or default values are omitted from API requests. However, any
21888	// non-pointer, non-interface field appearing in ForceSendFields will be
21889	// sent to the server regardless of whether the field is empty or not.
21890	// This may be used to include empty fields in Patch requests.
21891	ForceSendFields []string `json:"-"`
21892
21893	// NullFields is a list of field names (e.g. "Key") to include in API
21894	// requests with the JSON null value. By default, fields with empty
21895	// values are omitted from API requests. However, any field with an
21896	// empty value appearing in NullFields will be sent to the server as
21897	// null. It is an error if a field in this list has a non-empty value.
21898	// This may be used to include null fields in Patch requests.
21899	NullFields []string `json:"-"`
21900}
21901
21902func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
21903	type NoMethod InterconnectListWarningData
21904	raw := NoMethod(*s)
21905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21906}
21907
21908// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
21909// Location resource. You can use this resource to find location details
21910// about an Interconnect attachment (VLAN). For more information about
21911// interconnect attachments, read Creating VLAN Attachments.
21912type InterconnectLocation struct {
21913	// Address: [Output Only] The postal address of the Point of Presence,
21914	// each line in the address is separated by a newline character.
21915	Address string `json:"address,omitempty"`
21916
21917	// AvailabilityZone: [Output Only] Availability zone for this
21918	// InterconnectLocation. Within a metropolitan area (metro), maintenance
21919	// will not be simultaneously scheduled in more than one availability
21920	// zone. Example: "zone1" or "zone2".
21921	AvailabilityZone string `json:"availabilityZone,omitempty"`
21922
21923	// City: [Output Only] Metropolitan area designator that indicates which
21924	// city an interconnect is located. For example: "Chicago, IL",
21925	// "Amsterdam, Netherlands".
21926	City string `json:"city,omitempty"`
21927
21928	// Continent: [Output Only] Continent for this location, which can take
21929	// one of the following values: - AFRICA - ASIA_PAC - EUROPE -
21930	// NORTH_AMERICA - SOUTH_AMERICA
21931	//
21932	// Possible values:
21933	//   "AFRICA"
21934	//   "ASIA_PAC"
21935	//   "C_AFRICA"
21936	//   "C_ASIA_PAC"
21937	//   "C_EUROPE"
21938	//   "C_NORTH_AMERICA"
21939	//   "C_SOUTH_AMERICA"
21940	//   "EUROPE"
21941	//   "NORTH_AMERICA"
21942	//   "SOUTH_AMERICA"
21943	Continent string `json:"continent,omitempty"`
21944
21945	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21946	// format.
21947	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21948
21949	// Description: [Output Only] An optional description of the resource.
21950	Description string `json:"description,omitempty"`
21951
21952	// FacilityProvider: [Output Only] The name of the provider for this
21953	// facility (e.g., EQUINIX).
21954	FacilityProvider string `json:"facilityProvider,omitempty"`
21955
21956	// FacilityProviderFacilityId: [Output Only] A provider-assigned
21957	// Identifier for this facility (e.g., Ashburn-DC1).
21958	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
21959
21960	// Id: [Output Only] The unique identifier for the resource. This
21961	// identifier is defined by the server.
21962	Id uint64 `json:"id,omitempty,string"`
21963
21964	// Kind: [Output Only] Type of the resource. Always
21965	// compute#interconnectLocation for interconnect locations.
21966	Kind string `json:"kind,omitempty"`
21967
21968	// Name: [Output Only] Name of the resource.
21969	Name string `json:"name,omitempty"`
21970
21971	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
21972	// facility (corresponding with a netfac type in peeringdb).
21973	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
21974
21975	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
21976	// objects, that describe parameters pertaining to the relation between
21977	// this InterconnectLocation and various Google Cloud regions.
21978	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
21979
21980	// SelfLink: [Output Only] Server-defined URL for the resource.
21981	SelfLink string `json:"selfLink,omitempty"`
21982
21983	// Status: [Output Only] The status of this InterconnectLocation, which
21984	// can take one of the following values: - CLOSED: The
21985	// InterconnectLocation is closed and is unavailable for provisioning
21986	// new Interconnects. - AVAILABLE: The InterconnectLocation is available
21987	// for provisioning new Interconnects.
21988	//
21989	// Possible values:
21990	//   "AVAILABLE" - The InterconnectLocation is available for
21991	// provisioning new Interconnects.
21992	//   "CLOSED" - The InterconnectLocation is closed for provisioning new
21993	// Interconnects.
21994	Status string `json:"status,omitempty"`
21995
21996	// ServerResponse contains the HTTP response code and headers from the
21997	// server.
21998	googleapi.ServerResponse `json:"-"`
21999
22000	// ForceSendFields is a list of field names (e.g. "Address") to
22001	// unconditionally include in API requests. By default, fields with
22002	// empty or default values are omitted from API requests. However, any
22003	// non-pointer, non-interface field appearing in ForceSendFields will be
22004	// sent to the server regardless of whether the field is empty or not.
22005	// This may be used to include empty fields in Patch requests.
22006	ForceSendFields []string `json:"-"`
22007
22008	// NullFields is a list of field names (e.g. "Address") to include in
22009	// API requests with the JSON null value. By default, fields with empty
22010	// values are omitted from API requests. However, any field with an
22011	// empty value appearing in NullFields will be sent to the server as
22012	// null. It is an error if a field in this list has a non-empty value.
22013	// This may be used to include null fields in Patch requests.
22014	NullFields []string `json:"-"`
22015}
22016
22017func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
22018	type NoMethod InterconnectLocation
22019	raw := NoMethod(*s)
22020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22021}
22022
22023// InterconnectLocationList: Response to the list request, and contains
22024// a list of interconnect locations.
22025type InterconnectLocationList struct {
22026	// Id: [Output Only] Unique identifier for the resource; defined by the
22027	// server.
22028	Id string `json:"id,omitempty"`
22029
22030	// Items: A list of InterconnectLocation resources.
22031	Items []*InterconnectLocation `json:"items,omitempty"`
22032
22033	// Kind: [Output Only] Type of resource. Always
22034	// compute#interconnectLocationList for lists of interconnect locations.
22035	Kind string `json:"kind,omitempty"`
22036
22037	// NextPageToken: [Output Only] This token allows you to get the next
22038	// page of results for list requests. If the number of results is larger
22039	// than maxResults, use the nextPageToken as a value for the query
22040	// parameter pageToken in the next list request. Subsequent list
22041	// requests will have their own nextPageToken to continue paging through
22042	// the results.
22043	NextPageToken string `json:"nextPageToken,omitempty"`
22044
22045	// SelfLink: [Output Only] Server-defined URL for this resource.
22046	SelfLink string `json:"selfLink,omitempty"`
22047
22048	// Warning: [Output Only] Informational warning message.
22049	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
22050
22051	// ServerResponse contains the HTTP response code and headers from the
22052	// server.
22053	googleapi.ServerResponse `json:"-"`
22054
22055	// ForceSendFields is a list of field names (e.g. "Id") to
22056	// unconditionally include in API requests. By default, fields with
22057	// empty or default values are omitted from API requests. However, any
22058	// non-pointer, non-interface field appearing in ForceSendFields will be
22059	// sent to the server regardless of whether the field is empty or not.
22060	// This may be used to include empty fields in Patch requests.
22061	ForceSendFields []string `json:"-"`
22062
22063	// NullFields is a list of field names (e.g. "Id") to include in API
22064	// requests with the JSON null value. By default, fields with empty
22065	// values are omitted from API requests. However, any field with an
22066	// empty value appearing in NullFields will be sent to the server as
22067	// null. It is an error if a field in this list has a non-empty value.
22068	// This may be used to include null fields in Patch requests.
22069	NullFields []string `json:"-"`
22070}
22071
22072func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
22073	type NoMethod InterconnectLocationList
22074	raw := NoMethod(*s)
22075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22076}
22077
22078// InterconnectLocationListWarning: [Output Only] Informational warning
22079// message.
22080type InterconnectLocationListWarning struct {
22081	// Code: [Output Only] A warning code, if applicable. For example,
22082	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22083	// the response.
22084	//
22085	// Possible values:
22086	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
22087	// changes made by a failed operation.
22088	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
22089	// created.
22090	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
22091	// resources has a type marked as deprecated
22092	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
22093	// that is larger than image size.
22094	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
22095	// resources has a type marked as experimental
22096	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
22097	// call
22098	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
22099	// overridden. Deprecated unused field.
22100	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
22101	// injected kernel, which is deprecated.
22102	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
22103	// exceedingly large number of resources
22104	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
22105	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
22106	// not assigned to an instance on the network.
22107	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
22108	// ip forward.
22109	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
22110	// refers to an instance that does not exist.
22111	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
22112	// URL refers to an instance that is not on the same network as the
22113	// route.
22114	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
22115	// have a status of RUNNING.
22116	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
22117	// continue the process despite the mentioned error.
22118	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
22119	// page.
22120	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
22121	// missing due to errors
22122	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
22123	// that requires a TOS they have not accepted.
22124	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
22125	// resource is in use.
22126	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
22127	// auto-delete could not be deleted because they were in use.
22128	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
22129	// ignored.
22130	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
22131	// instance group manager is valid as such, but its application does not
22132	// make a lot of sense, because it allows only single instance in
22133	// instance group.
22134	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
22135	// are present
22136	//   "UNREACHABLE" - A given scope cannot be reached.
22137	Code string `json:"code,omitempty"`
22138
22139	// Data: [Output Only] Metadata about this warning in key: value format.
22140	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
22141	// }
22142	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
22143
22144	// Message: [Output Only] A human-readable description of the warning
22145	// code.
22146	Message string `json:"message,omitempty"`
22147
22148	// ForceSendFields is a list of field names (e.g. "Code") to
22149	// unconditionally include in API requests. By default, fields with
22150	// empty or default values are omitted from API requests. However, any
22151	// non-pointer, non-interface field appearing in ForceSendFields will be
22152	// sent to the server regardless of whether the field is empty or not.
22153	// This may be used to include empty fields in Patch requests.
22154	ForceSendFields []string `json:"-"`
22155
22156	// NullFields is a list of field names (e.g. "Code") to include in API
22157	// requests with the JSON null value. By default, fields with empty
22158	// values are omitted from API requests. However, any field with an
22159	// empty value appearing in NullFields will be sent to the server as
22160	// null. It is an error if a field in this list has a non-empty value.
22161	// This may be used to include null fields in Patch requests.
22162	NullFields []string `json:"-"`
22163}
22164
22165func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
22166	type NoMethod InterconnectLocationListWarning
22167	raw := NoMethod(*s)
22168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22169}
22170
22171type InterconnectLocationListWarningData struct {
22172	// Key: [Output Only] A key that provides more detail on the warning
22173	// being returned. For example, for warnings where there are no results
22174	// in a list request for a particular zone, this key might be scope and
22175	// the key value might be the zone name. Other examples might be a key
22176	// indicating a deprecated resource and a suggested replacement, or a
22177	// warning about invalid network settings (for example, if an instance
22178	// attempts to perform IP forwarding but is not enabled for IP
22179	// forwarding).
22180	Key string `json:"key,omitempty"`
22181
22182	// Value: [Output Only] A warning data value corresponding to the key.
22183	Value string `json:"value,omitempty"`
22184
22185	// ForceSendFields is a list of field names (e.g. "Key") to
22186	// unconditionally include in API requests. By default, fields with
22187	// empty or default values are omitted from API requests. However, any
22188	// non-pointer, non-interface field appearing in ForceSendFields will be
22189	// sent to the server regardless of whether the field is empty or not.
22190	// This may be used to include empty fields in Patch requests.
22191	ForceSendFields []string `json:"-"`
22192
22193	// NullFields is a list of field names (e.g. "Key") to include in API
22194	// requests with the JSON null value. By default, fields with empty
22195	// values are omitted from API requests. However, any field with an
22196	// empty value appearing in NullFields will be sent to the server as
22197	// null. It is an error if a field in this list has a non-empty value.
22198	// This may be used to include null fields in Patch requests.
22199	NullFields []string `json:"-"`
22200}
22201
22202func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
22203	type NoMethod InterconnectLocationListWarningData
22204	raw := NoMethod(*s)
22205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22206}
22207
22208// InterconnectLocationRegionInfo: Information about any potential
22209// InterconnectAttachments between an Interconnect at a specific
22210// InterconnectLocation, and a specific Cloud Region.
22211type InterconnectLocationRegionInfo struct {
22212	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
22213	// InterconnectLocation to a VM in this region.
22214	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
22215
22216	// LocationPresence: Identifies the network presence of this location.
22217	//
22218	// Possible values:
22219	//   "GLOBAL" - This region is not in any common network presence with
22220	// this InterconnectLocation.
22221	//   "LOCAL_REGION" - This region shares the same regional network
22222	// presence as this InterconnectLocation.
22223	//   "LP_GLOBAL" - [Deprecated] This region is not in any common network
22224	// presence with this InterconnectLocation.
22225	//   "LP_LOCAL_REGION" - [Deprecated] This region shares the same
22226	// regional network presence as this InterconnectLocation.
22227	LocationPresence string `json:"locationPresence,omitempty"`
22228
22229	// Region: URL for the region of this location.
22230	Region string `json:"region,omitempty"`
22231
22232	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
22233	// unconditionally include in API requests. By default, fields with
22234	// empty or default values are omitted from API requests. However, any
22235	// non-pointer, non-interface field appearing in ForceSendFields will be
22236	// sent to the server regardless of whether the field is empty or not.
22237	// This may be used to include empty fields in Patch requests.
22238	ForceSendFields []string `json:"-"`
22239
22240	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
22241	// in API requests with the JSON null value. By default, fields with
22242	// empty values are omitted from API requests. However, any field with
22243	// an empty value appearing in NullFields will be sent to the server as
22244	// null. It is an error if a field in this list has a non-empty value.
22245	// This may be used to include null fields in Patch requests.
22246	NullFields []string `json:"-"`
22247}
22248
22249func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
22250	type NoMethod InterconnectLocationRegionInfo
22251	raw := NoMethod(*s)
22252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22253}
22254
22255// InterconnectOutageNotification: Description of a planned outage on
22256// this Interconnect.
22257type InterconnectOutageNotification struct {
22258	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
22259	// Google-side circuit IDs that will be affected.
22260	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
22261
22262	// Description: A description about the purpose of the outage.
22263	Description string `json:"description,omitempty"`
22264
22265	// EndTime: Scheduled end time for the outage (milliseconds since Unix
22266	// epoch).
22267	EndTime int64 `json:"endTime,omitempty,string"`
22268
22269	// IssueType: Form this outage is expected to take, which can take one
22270	// of the following values: - OUTAGE: The Interconnect may be completely
22271	// out of service for some or all of the specified window. -
22272	// PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole
22273	// should remain up, but with reduced bandwidth. Note that the versions
22274	// of this enum prefixed with "IT_" have been deprecated in favor of the
22275	// unprefixed values.
22276	//
22277	// Possible values:
22278	//   "IT_OUTAGE" - [Deprecated] The Interconnect may be completely out
22279	// of service for some or all of the specified window.
22280	//   "IT_PARTIAL_OUTAGE" - [Deprecated] Some circuits comprising the
22281	// Interconnect will be out of service during the expected window. The
22282	// interconnect as a whole should remain up, albeit with reduced
22283	// bandwidth.
22284	//   "OUTAGE" - The Interconnect may be completely out of service for
22285	// some or all of the specified window.
22286	//   "PARTIAL_OUTAGE" - Some circuits comprising the Interconnect will
22287	// be out of service during the expected window. The interconnect as a
22288	// whole should remain up, albeit with reduced bandwidth.
22289	IssueType string `json:"issueType,omitempty"`
22290
22291	// Name: Unique identifier for this outage notification.
22292	Name string `json:"name,omitempty"`
22293
22294	// Source: The party that generated this notification, which can take
22295	// the following value: - GOOGLE: this notification as generated by
22296	// Google. Note that the value of NSRC_GOOGLE has been deprecated in
22297	// favor of GOOGLE.
22298	//
22299	// Possible values:
22300	//   "GOOGLE" - This notification was generated by Google.
22301	//   "NSRC_GOOGLE" - [Deprecated] This notification was generated by
22302	// Google.
22303	Source string `json:"source,omitempty"`
22304
22305	// StartTime: Scheduled start time for the outage (milliseconds since
22306	// Unix epoch).
22307	StartTime int64 `json:"startTime,omitempty,string"`
22308
22309	// State: State of this notification, which can take one of the
22310	// following values: - ACTIVE: This outage notification is active. The
22311	// event could be in the past, present, or future. See start_time and
22312	// end_time for scheduling. - CANCELLED: The outage associated with this
22313	// notification was cancelled before the outage was due to start. -
22314	// COMPLETED: The outage associated with this notification is complete.
22315	// Note that the versions of this enum prefixed with "NS_" have been
22316	// deprecated in favor of the unprefixed values.
22317	//
22318	// Possible values:
22319	//   "ACTIVE" - This outage notification is active. The event could be
22320	// in the future, present, or past. See start_time and end_time for
22321	// scheduling.
22322	//   "CANCELLED" - The outage associated with this notification was
22323	// cancelled before the outage was due to start.
22324	//   "COMPLETED" - The outage associated with this notification is
22325	// complete.
22326	//   "NS_ACTIVE" - [Deprecated] This outage notification is active. The
22327	// event could be in the future, present, or past. See start_time and
22328	// end_time for scheduling.
22329	//   "NS_CANCELED" - [Deprecated] The outage associated with this
22330	// notification was canceled before the outage was due to start.
22331	State string `json:"state,omitempty"`
22332
22333	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
22334	// unconditionally include in API requests. By default, fields with
22335	// empty or default values are omitted from API requests. However, any
22336	// non-pointer, non-interface field appearing in ForceSendFields will be
22337	// sent to the server regardless of whether the field is empty or not.
22338	// This may be used to include empty fields in Patch requests.
22339	ForceSendFields []string `json:"-"`
22340
22341	// NullFields is a list of field names (e.g. "AffectedCircuits") to
22342	// include in API requests with the JSON null value. By default, fields
22343	// with empty values are omitted from API requests. However, any field
22344	// with an empty value appearing in NullFields will be sent to the
22345	// server as null. It is an error if a field in this list has a
22346	// non-empty value. This may be used to include null fields in Patch
22347	// requests.
22348	NullFields []string `json:"-"`
22349}
22350
22351func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
22352	type NoMethod InterconnectOutageNotification
22353	raw := NoMethod(*s)
22354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22355}
22356
22357// InterconnectsGetDiagnosticsResponse: Response for the
22358// InterconnectsGetDiagnosticsRequest.
22359type InterconnectsGetDiagnosticsResponse struct {
22360	Result *InterconnectDiagnostics `json:"result,omitempty"`
22361
22362	// ServerResponse contains the HTTP response code and headers from the
22363	// server.
22364	googleapi.ServerResponse `json:"-"`
22365
22366	// ForceSendFields is a list of field names (e.g. "Result") to
22367	// unconditionally include in API requests. By default, fields with
22368	// empty or default values are omitted from API requests. However, any
22369	// non-pointer, non-interface field appearing in ForceSendFields will be
22370	// sent to the server regardless of whether the field is empty or not.
22371	// This may be used to include empty fields in Patch requests.
22372	ForceSendFields []string `json:"-"`
22373
22374	// NullFields is a list of field names (e.g. "Result") to include in API
22375	// requests with the JSON null value. By default, fields with empty
22376	// values are omitted from API requests. However, any field with an
22377	// empty value appearing in NullFields will be sent to the server as
22378	// null. It is an error if a field in this list has a non-empty value.
22379	// This may be used to include null fields in Patch requests.
22380	NullFields []string `json:"-"`
22381}
22382
22383func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
22384	type NoMethod InterconnectsGetDiagnosticsResponse
22385	raw := NoMethod(*s)
22386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22387}
22388
22389// License: Represents a License resource. A License represents billing
22390// and aggregate usage data for public and marketplace images. *Caution*
22391// This resource is intended for use only by third-party partners who
22392// are creating Cloud Marketplace images.
22393type License struct {
22394	// ChargesUseFee: [Output Only] Deprecated. This field no longer
22395	// reflects whether a license charges a usage fee.
22396	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
22397
22398	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22399	// format.
22400	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22401
22402	// Description: An optional textual description of the resource;
22403	// provided by the client when the resource is created.
22404	Description string `json:"description,omitempty"`
22405
22406	// Id: [Output Only] The unique identifier for the resource. This
22407	// identifier is defined by the server.
22408	Id uint64 `json:"id,omitempty,string"`
22409
22410	// Kind: [Output Only] Type of resource. Always compute#license for
22411	// licenses.
22412	Kind string `json:"kind,omitempty"`
22413
22414	// LicenseCode: [Output Only] The unique code used to attach this
22415	// license to images, snapshots, and disks.
22416	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
22417
22418	// Name: Name of the resource. The name must be 1-63 characters long and
22419	// comply with RFC1035.
22420	Name string `json:"name,omitempty"`
22421
22422	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
22423
22424	// SelfLink: [Output Only] Server-defined URL for the resource.
22425	SelfLink string `json:"selfLink,omitempty"`
22426
22427	// Transferable: If false, licenses will not be copied from the source
22428	// resource when creating an image from a disk, disk from snapshot, or
22429	// snapshot from disk.
22430	Transferable bool `json:"transferable,omitempty"`
22431
22432	// ServerResponse contains the HTTP response code and headers from the
22433	// server.
22434	googleapi.ServerResponse `json:"-"`
22435
22436	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
22437	// unconditionally include in API requests. By default, fields with
22438	// empty or default values are omitted from API requests. However, any
22439	// non-pointer, non-interface field appearing in ForceSendFields will be
22440	// sent to the server regardless of whether the field is empty or not.
22441	// This may be used to include empty fields in Patch requests.
22442	ForceSendFields []string `json:"-"`
22443
22444	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
22445	// in API requests with the JSON null value. By default, fields with
22446	// empty values are omitted from API requests. However, any field with
22447	// an empty value appearing in NullFields will be sent to the server as
22448	// null. It is an error if a field in this list has a non-empty value.
22449	// This may be used to include null fields in Patch requests.
22450	NullFields []string `json:"-"`
22451}
22452
22453func (s *License) MarshalJSON() ([]byte, error) {
22454	type NoMethod License
22455	raw := NoMethod(*s)
22456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22457}
22458
22459// LicenseCode: Represents a License Code resource. A License Code is a
22460// unique identifier used to represent a license resource. *Caution*
22461// This resource is intended for use only by third-party partners who
22462// are creating Cloud Marketplace images.
22463type LicenseCode struct {
22464	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22465	// format.
22466	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22467
22468	// Description: [Output Only] Description of this License Code.
22469	Description string `json:"description,omitempty"`
22470
22471	// Id: [Output Only] The unique identifier for the resource. This
22472	// identifier is defined by the server.
22473	Id uint64 `json:"id,omitempty,string"`
22474
22475	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
22476	// licenses.
22477	Kind string `json:"kind,omitempty"`
22478
22479	// LicenseAlias: [Output Only] URL and description aliases of Licenses
22480	// with the same License Code.
22481	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
22482
22483	// Name: [Output Only] Name of the resource. The name is 1-20 characters
22484	// long and must be a valid 64 bit integer.
22485	Name string `json:"name,omitempty"`
22486
22487	// SelfLink: [Output Only] Server-defined URL for the resource.
22488	SelfLink string `json:"selfLink,omitempty"`
22489
22490	// State: [Output Only] Current state of this License Code.
22491	//
22492	// Possible values:
22493	//   "DISABLED" - Machines are not allowed to attach boot disks with
22494	// this License Code. Requests to create new resources with this license
22495	// will be rejected.
22496	//   "ENABLED" - Use is allowed for anyone with USE_READ_ONLY access to
22497	// this License Code.
22498	//   "RESTRICTED" - Use of this license is limited to a project
22499	// whitelist.
22500	//   "STATE_UNSPECIFIED"
22501	//   "TERMINATED" - Reserved state.
22502	State string `json:"state,omitempty"`
22503
22504	// Transferable: [Output Only] If true, the license will remain attached
22505	// when creating images or snapshots from disks. Otherwise, the license
22506	// is not transferred.
22507	Transferable bool `json:"transferable,omitempty"`
22508
22509	// ServerResponse contains the HTTP response code and headers from the
22510	// server.
22511	googleapi.ServerResponse `json:"-"`
22512
22513	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22514	// to unconditionally include in API requests. By default, fields with
22515	// empty or default values are omitted from API requests. However, any
22516	// non-pointer, non-interface field appearing in ForceSendFields will be
22517	// sent to the server regardless of whether the field is empty or not.
22518	// This may be used to include empty fields in Patch requests.
22519	ForceSendFields []string `json:"-"`
22520
22521	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22522	// include in API requests with the JSON null value. By default, fields
22523	// with empty values are omitted from API requests. However, any field
22524	// with an empty value appearing in NullFields will be sent to the
22525	// server as null. It is an error if a field in this list has a
22526	// non-empty value. This may be used to include null fields in Patch
22527	// requests.
22528	NullFields []string `json:"-"`
22529}
22530
22531func (s *LicenseCode) MarshalJSON() ([]byte, error) {
22532	type NoMethod LicenseCode
22533	raw := NoMethod(*s)
22534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22535}
22536
22537type LicenseCodeLicenseAlias struct {
22538	// Description: [Output Only] Description of this License Code.
22539	Description string `json:"description,omitempty"`
22540
22541	// SelfLink: [Output Only] URL of license corresponding to this License
22542	// Code.
22543	SelfLink string `json:"selfLink,omitempty"`
22544
22545	// ForceSendFields is a list of field names (e.g. "Description") to
22546	// unconditionally include in API requests. By default, fields with
22547	// empty or default values are omitted from API requests. However, any
22548	// non-pointer, non-interface field appearing in ForceSendFields will be
22549	// sent to the server regardless of whether the field is empty or not.
22550	// This may be used to include empty fields in Patch requests.
22551	ForceSendFields []string `json:"-"`
22552
22553	// NullFields is a list of field names (e.g. "Description") to include
22554	// in API requests with the JSON null value. By default, fields with
22555	// empty values are omitted from API requests. However, any field with
22556	// an empty value appearing in NullFields will be sent to the server as
22557	// null. It is an error if a field in this list has a non-empty value.
22558	// This may be used to include null fields in Patch requests.
22559	NullFields []string `json:"-"`
22560}
22561
22562func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
22563	type NoMethod LicenseCodeLicenseAlias
22564	raw := NoMethod(*s)
22565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22566}
22567
22568// LicenseResourceCommitment: Commitment for a particular license
22569// resource.
22570type LicenseResourceCommitment struct {
22571	// Amount: The number of licenses purchased.
22572	Amount int64 `json:"amount,omitempty,string"`
22573
22574	// CoresPerLicense: Specifies the core range of the instance for which
22575	// this license applies.
22576	CoresPerLicense string `json:"coresPerLicense,omitempty"`
22577
22578	// License: Any applicable license URI.
22579	License string `json:"license,omitempty"`
22580
22581	// ForceSendFields is a list of field names (e.g. "Amount") to
22582	// unconditionally include in API requests. By default, fields with
22583	// empty or default values are omitted from API requests. However, any
22584	// non-pointer, non-interface field appearing in ForceSendFields will be
22585	// sent to the server regardless of whether the field is empty or not.
22586	// This may be used to include empty fields in Patch requests.
22587	ForceSendFields []string `json:"-"`
22588
22589	// NullFields is a list of field names (e.g. "Amount") to include in API
22590	// requests with the JSON null value. By default, fields with empty
22591	// values are omitted from API requests. However, any field with an
22592	// empty value appearing in NullFields will be sent to the server as
22593	// null. It is an error if a field in this list has a non-empty value.
22594	// This may be used to include null fields in Patch requests.
22595	NullFields []string `json:"-"`
22596}
22597
22598func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
22599	type NoMethod LicenseResourceCommitment
22600	raw := NoMethod(*s)
22601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22602}
22603
22604type LicenseResourceRequirements struct {
22605	// MinGuestCpuCount: Minimum number of guest cpus required to use the
22606	// Instance. Enforced at Instance creation and Instance start.
22607	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
22608
22609	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
22610	// Instance creation and Instance start.
22611	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
22612
22613	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
22614	// unconditionally include in API requests. By default, fields with
22615	// empty or default values are omitted from API requests. However, any
22616	// non-pointer, non-interface field appearing in ForceSendFields will be
22617	// sent to the server regardless of whether the field is empty or not.
22618	// This may be used to include empty fields in Patch requests.
22619	ForceSendFields []string `json:"-"`
22620
22621	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
22622	// include in API requests with the JSON null value. By default, fields
22623	// with empty values are omitted from API requests. However, any field
22624	// with an empty value appearing in NullFields will be sent to the
22625	// server as null. It is an error if a field in this list has a
22626	// non-empty value. This may be used to include null fields in Patch
22627	// requests.
22628	NullFields []string `json:"-"`
22629}
22630
22631func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
22632	type NoMethod LicenseResourceRequirements
22633	raw := NoMethod(*s)
22634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22635}
22636
22637type LicensesListResponse struct {
22638	// Id: [Output Only] Unique identifier for the resource; defined by the
22639	// server.
22640	Id string `json:"id,omitempty"`
22641
22642	// Items: A list of License resources.
22643	Items []*License `json:"items,omitempty"`
22644
22645	// NextPageToken: [Output Only] This token allows you to get the next
22646	// page of results for list requests. If the number of results is larger
22647	// than maxResults, use the nextPageToken as a value for the query
22648	// parameter pageToken in the next list request. Subsequent list
22649	// requests will have their own nextPageToken to continue paging through
22650	// the results.
22651	NextPageToken string `json:"nextPageToken,omitempty"`
22652
22653	// SelfLink: [Output Only] Server-defined URL for this resource.
22654	SelfLink string `json:"selfLink,omitempty"`
22655
22656	// Warning: [Output Only] Informational warning message.
22657	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
22658
22659	// ServerResponse contains the HTTP response code and headers from the
22660	// server.
22661	googleapi.ServerResponse `json:"-"`
22662
22663	// ForceSendFields is a list of field names (e.g. "Id") to
22664	// unconditionally include in API requests. By default, fields with
22665	// empty or default values are omitted from API requests. However, any
22666	// non-pointer, non-interface field appearing in ForceSendFields will be
22667	// sent to the server regardless of whether the field is empty or not.
22668	// This may be used to include empty fields in Patch requests.
22669	ForceSendFields []string `json:"-"`
22670
22671	// NullFields is a list of field names (e.g. "Id") to include in API
22672	// requests with the JSON null value. By default, fields with empty
22673	// values are omitted from API requests. However, any field with an
22674	// empty value appearing in NullFields will be sent to the server as
22675	// null. It is an error if a field in this list has a non-empty value.
22676	// This may be used to include null fields in Patch requests.
22677	NullFields []string `json:"-"`
22678}
22679
22680func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
22681	type NoMethod LicensesListResponse
22682	raw := NoMethod(*s)
22683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22684}
22685
22686// LicensesListResponseWarning: [Output Only] Informational warning
22687// message.
22688type LicensesListResponseWarning struct {
22689	// Code: [Output Only] A warning code, if applicable. For example,
22690	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22691	// the response.
22692	//
22693	// Possible values:
22694	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
22695	// changes made by a failed operation.
22696	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
22697	// created.
22698	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
22699	// resources has a type marked as deprecated
22700	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
22701	// that is larger than image size.
22702	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
22703	// resources has a type marked as experimental
22704	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
22705	// call
22706	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
22707	// overridden. Deprecated unused field.
22708	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
22709	// injected kernel, which is deprecated.
22710	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
22711	// exceedingly large number of resources
22712	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
22713	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
22714	// not assigned to an instance on the network.
22715	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
22716	// ip forward.
22717	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
22718	// refers to an instance that does not exist.
22719	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
22720	// URL refers to an instance that is not on the same network as the
22721	// route.
22722	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
22723	// have a status of RUNNING.
22724	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
22725	// continue the process despite the mentioned error.
22726	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
22727	// page.
22728	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
22729	// missing due to errors
22730	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
22731	// that requires a TOS they have not accepted.
22732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
22733	// resource is in use.
22734	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
22735	// auto-delete could not be deleted because they were in use.
22736	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
22737	// ignored.
22738	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
22739	// instance group manager is valid as such, but its application does not
22740	// make a lot of sense, because it allows only single instance in
22741	// instance group.
22742	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
22743	// are present
22744	//   "UNREACHABLE" - A given scope cannot be reached.
22745	Code string `json:"code,omitempty"`
22746
22747	// Data: [Output Only] Metadata about this warning in key: value format.
22748	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
22749	// }
22750	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
22751
22752	// Message: [Output Only] A human-readable description of the warning
22753	// code.
22754	Message string `json:"message,omitempty"`
22755
22756	// ForceSendFields is a list of field names (e.g. "Code") to
22757	// unconditionally include in API requests. By default, fields with
22758	// empty or default values are omitted from API requests. However, any
22759	// non-pointer, non-interface field appearing in ForceSendFields will be
22760	// sent to the server regardless of whether the field is empty or not.
22761	// This may be used to include empty fields in Patch requests.
22762	ForceSendFields []string `json:"-"`
22763
22764	// NullFields is a list of field names (e.g. "Code") to include in API
22765	// requests with the JSON null value. By default, fields with empty
22766	// values are omitted from API requests. However, any field with an
22767	// empty value appearing in NullFields will be sent to the server as
22768	// null. It is an error if a field in this list has a non-empty value.
22769	// This may be used to include null fields in Patch requests.
22770	NullFields []string `json:"-"`
22771}
22772
22773func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
22774	type NoMethod LicensesListResponseWarning
22775	raw := NoMethod(*s)
22776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22777}
22778
22779type LicensesListResponseWarningData struct {
22780	// Key: [Output Only] A key that provides more detail on the warning
22781	// being returned. For example, for warnings where there are no results
22782	// in a list request for a particular zone, this key might be scope and
22783	// the key value might be the zone name. Other examples might be a key
22784	// indicating a deprecated resource and a suggested replacement, or a
22785	// warning about invalid network settings (for example, if an instance
22786	// attempts to perform IP forwarding but is not enabled for IP
22787	// forwarding).
22788	Key string `json:"key,omitempty"`
22789
22790	// Value: [Output Only] A warning data value corresponding to the key.
22791	Value string `json:"value,omitempty"`
22792
22793	// ForceSendFields is a list of field names (e.g. "Key") to
22794	// unconditionally include in API requests. By default, fields with
22795	// empty or default values are omitted from API requests. However, any
22796	// non-pointer, non-interface field appearing in ForceSendFields will be
22797	// sent to the server regardless of whether the field is empty or not.
22798	// This may be used to include empty fields in Patch requests.
22799	ForceSendFields []string `json:"-"`
22800
22801	// NullFields is a list of field names (e.g. "Key") to include in API
22802	// requests with the JSON null value. By default, fields with empty
22803	// values are omitted from API requests. However, any field with an
22804	// empty value appearing in NullFields will be sent to the server as
22805	// null. It is an error if a field in this list has a non-empty value.
22806	// This may be used to include null fields in Patch requests.
22807	NullFields []string `json:"-"`
22808}
22809
22810func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
22811	type NoMethod LicensesListResponseWarningData
22812	raw := NoMethod(*s)
22813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22814}
22815
22816type LocalDisk struct {
22817	// DiskCount: Specifies the number of such disks.
22818	DiskCount int64 `json:"diskCount,omitempty"`
22819
22820	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
22821	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
22822
22823	// DiskType: Specifies the desired disk type on the node. This disk type
22824	// must be a local storage type (e.g.: local-ssd). Note that for
22825	// nodeTemplates, this should be the name of the disk type and not its
22826	// URL.
22827	DiskType string `json:"diskType,omitempty"`
22828
22829	// ForceSendFields is a list of field names (e.g. "DiskCount") to
22830	// unconditionally include in API requests. By default, fields with
22831	// empty or default values are omitted from API requests. However, any
22832	// non-pointer, non-interface field appearing in ForceSendFields will be
22833	// sent to the server regardless of whether the field is empty or not.
22834	// This may be used to include empty fields in Patch requests.
22835	ForceSendFields []string `json:"-"`
22836
22837	// NullFields is a list of field names (e.g. "DiskCount") to include in
22838	// API requests with the JSON null value. By default, fields with empty
22839	// values are omitted from API requests. However, any field with an
22840	// empty value appearing in NullFields will be sent to the server as
22841	// null. It is an error if a field in this list has a non-empty value.
22842	// This may be used to include null fields in Patch requests.
22843	NullFields []string `json:"-"`
22844}
22845
22846func (s *LocalDisk) MarshalJSON() ([]byte, error) {
22847	type NoMethod LocalDisk
22848	raw := NoMethod(*s)
22849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22850}
22851
22852// LocationPolicy: Configuration for location policy among multiple
22853// possible locations (e.g. preferences for zone selection among zones
22854// in a single region).
22855type LocationPolicy struct {
22856	// Locations: Location configurations mapped by location name. Currently
22857	// only zone names are supported and must be represented as valid
22858	// internal URLs, such as zones/us-central1-a.
22859	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
22860
22861	// ForceSendFields is a list of field names (e.g. "Locations") to
22862	// unconditionally include in API requests. By default, fields with
22863	// empty or default values are omitted from API requests. However, any
22864	// non-pointer, non-interface field appearing in ForceSendFields will be
22865	// sent to the server regardless of whether the field is empty or not.
22866	// This may be used to include empty fields in Patch requests.
22867	ForceSendFields []string `json:"-"`
22868
22869	// NullFields is a list of field names (e.g. "Locations") to include in
22870	// API requests with the JSON null value. By default, fields with empty
22871	// values are omitted from API requests. However, any field with an
22872	// empty value appearing in NullFields will be sent to the server as
22873	// null. It is an error if a field in this list has a non-empty value.
22874	// This may be used to include null fields in Patch requests.
22875	NullFields []string `json:"-"`
22876}
22877
22878func (s *LocationPolicy) MarshalJSON() ([]byte, error) {
22879	type NoMethod LocationPolicy
22880	raw := NoMethod(*s)
22881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22882}
22883
22884type LocationPolicyLocation struct {
22885	// Preference: Preference for a given location: ALLOW or DENY.
22886	//
22887	// Possible values:
22888	//   "ALLOW" - Location is allowed for use.
22889	//   "DENY" - Location is prohibited.
22890	//   "PREFERENCE_UNSPECIFIED" - Default value, unused.
22891	Preference string `json:"preference,omitempty"`
22892
22893	// ForceSendFields is a list of field names (e.g. "Preference") to
22894	// unconditionally include in API requests. By default, fields with
22895	// empty or default values are omitted from API requests. However, any
22896	// non-pointer, non-interface field appearing in ForceSendFields will be
22897	// sent to the server regardless of whether the field is empty or not.
22898	// This may be used to include empty fields in Patch requests.
22899	ForceSendFields []string `json:"-"`
22900
22901	// NullFields is a list of field names (e.g. "Preference") to include in
22902	// API requests with the JSON null value. By default, fields with empty
22903	// values are omitted from API requests. However, any field with an
22904	// empty value appearing in NullFields will be sent to the server as
22905	// null. It is an error if a field in this list has a non-empty value.
22906	// This may be used to include null fields in Patch requests.
22907	NullFields []string `json:"-"`
22908}
22909
22910func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) {
22911	type NoMethod LocationPolicyLocation
22912	raw := NoMethod(*s)
22913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22914}
22915
22916// LogConfig: This is deprecated and has no effect. Do not use.
22917type LogConfig struct {
22918	// CloudAudit: This is deprecated and has no effect. Do not use.
22919	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
22920
22921	// Counter: This is deprecated and has no effect. Do not use.
22922	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
22923
22924	// DataAccess: This is deprecated and has no effect. Do not use.
22925	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
22926
22927	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
22928	// unconditionally include in API requests. By default, fields with
22929	// empty or default values are omitted from API requests. However, any
22930	// non-pointer, non-interface field appearing in ForceSendFields will be
22931	// sent to the server regardless of whether the field is empty or not.
22932	// This may be used to include empty fields in Patch requests.
22933	ForceSendFields []string `json:"-"`
22934
22935	// NullFields is a list of field names (e.g. "CloudAudit") to include in
22936	// API requests with the JSON null value. By default, fields with empty
22937	// values are omitted from API requests. However, any field with an
22938	// empty value appearing in NullFields will be sent to the server as
22939	// null. It is an error if a field in this list has a non-empty value.
22940	// This may be used to include null fields in Patch requests.
22941	NullFields []string `json:"-"`
22942}
22943
22944func (s *LogConfig) MarshalJSON() ([]byte, error) {
22945	type NoMethod LogConfig
22946	raw := NoMethod(*s)
22947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22948}
22949
22950// LogConfigCloudAuditOptions: This is deprecated and has no effect. Do
22951// not use.
22952type LogConfigCloudAuditOptions struct {
22953	// AuthorizationLoggingOptions: This is deprecated and has no effect. Do
22954	// not use.
22955	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
22956
22957	// LogName: This is deprecated and has no effect. Do not use.
22958	//
22959	// Possible values:
22960	//   "ADMIN_ACTIVITY" - This is deprecated and has no effect. Do not
22961	// use.
22962	//   "DATA_ACCESS" - This is deprecated and has no effect. Do not use.
22963	//   "UNSPECIFIED_LOG_NAME" - This is deprecated and has no effect. Do
22964	// not use.
22965	LogName string `json:"logName,omitempty"`
22966
22967	// ForceSendFields is a list of field names (e.g.
22968	// "AuthorizationLoggingOptions") to unconditionally include in API
22969	// requests. By default, fields with empty or default values are omitted
22970	// from API requests. However, any non-pointer, non-interface field
22971	// appearing in ForceSendFields will be sent to the server regardless of
22972	// whether the field is empty or not. This may be used to include empty
22973	// fields in Patch requests.
22974	ForceSendFields []string `json:"-"`
22975
22976	// NullFields is a list of field names (e.g.
22977	// "AuthorizationLoggingOptions") to include in API requests with the
22978	// JSON null value. By default, fields with empty values are omitted
22979	// from API requests. However, any field with an empty value appearing
22980	// in NullFields will be sent to the server as null. It is an error if a
22981	// field in this list has a non-empty value. This may be used to include
22982	// null fields in Patch requests.
22983	NullFields []string `json:"-"`
22984}
22985
22986func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
22987	type NoMethod LogConfigCloudAuditOptions
22988	raw := NoMethod(*s)
22989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22990}
22991
22992// LogConfigCounterOptions: This is deprecated and has no effect. Do not
22993// use.
22994type LogConfigCounterOptions struct {
22995	// CustomFields: This is deprecated and has no effect. Do not use.
22996	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
22997
22998	// Field: This is deprecated and has no effect. Do not use.
22999	Field string `json:"field,omitempty"`
23000
23001	// Metric: This is deprecated and has no effect. Do not use.
23002	Metric string `json:"metric,omitempty"`
23003
23004	// ForceSendFields is a list of field names (e.g. "CustomFields") to
23005	// unconditionally include in API requests. By default, fields with
23006	// empty or default values are omitted from API requests. However, any
23007	// non-pointer, non-interface field appearing in ForceSendFields will be
23008	// sent to the server regardless of whether the field is empty or not.
23009	// This may be used to include empty fields in Patch requests.
23010	ForceSendFields []string `json:"-"`
23011
23012	// NullFields is a list of field names (e.g. "CustomFields") to include
23013	// in API requests with the JSON null value. By default, fields with
23014	// empty values are omitted from API requests. However, any field with
23015	// an empty value appearing in NullFields will be sent to the server as
23016	// null. It is an error if a field in this list has a non-empty value.
23017	// This may be used to include null fields in Patch requests.
23018	NullFields []string `json:"-"`
23019}
23020
23021func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
23022	type NoMethod LogConfigCounterOptions
23023	raw := NoMethod(*s)
23024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23025}
23026
23027// LogConfigCounterOptionsCustomField: This is deprecated and has no
23028// effect. Do not use.
23029type LogConfigCounterOptionsCustomField struct {
23030	// Name: This is deprecated and has no effect. Do not use.
23031	Name string `json:"name,omitempty"`
23032
23033	// Value: This is deprecated and has no effect. Do not use.
23034	Value string `json:"value,omitempty"`
23035
23036	// ForceSendFields is a list of field names (e.g. "Name") to
23037	// unconditionally include in API requests. By default, fields with
23038	// empty or default values are omitted from API requests. However, any
23039	// non-pointer, non-interface field appearing in ForceSendFields will be
23040	// sent to the server regardless of whether the field is empty or not.
23041	// This may be used to include empty fields in Patch requests.
23042	ForceSendFields []string `json:"-"`
23043
23044	// NullFields is a list of field names (e.g. "Name") to include in API
23045	// requests with the JSON null value. By default, fields with empty
23046	// values are omitted from API requests. However, any field with an
23047	// empty value appearing in NullFields will be sent to the server as
23048	// null. It is an error if a field in this list has a non-empty value.
23049	// This may be used to include null fields in Patch requests.
23050	NullFields []string `json:"-"`
23051}
23052
23053func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
23054	type NoMethod LogConfigCounterOptionsCustomField
23055	raw := NoMethod(*s)
23056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23057}
23058
23059// LogConfigDataAccessOptions: This is deprecated and has no effect. Do
23060// not use.
23061type LogConfigDataAccessOptions struct {
23062	// LogMode: This is deprecated and has no effect. Do not use.
23063	//
23064	// Possible values:
23065	//   "LOG_FAIL_CLOSED" - This is deprecated and has no effect. Do not
23066	// use.
23067	//   "LOG_MODE_UNSPECIFIED" - This is deprecated and has no effect. Do
23068	// not use.
23069	LogMode string `json:"logMode,omitempty"`
23070
23071	// ForceSendFields is a list of field names (e.g. "LogMode") to
23072	// unconditionally include in API requests. By default, fields with
23073	// empty or default values are omitted from API requests. However, any
23074	// non-pointer, non-interface field appearing in ForceSendFields will be
23075	// sent to the server regardless of whether the field is empty or not.
23076	// This may be used to include empty fields in Patch requests.
23077	ForceSendFields []string `json:"-"`
23078
23079	// NullFields is a list of field names (e.g. "LogMode") to include in
23080	// API requests with the JSON null value. By default, fields with empty
23081	// values are omitted from API requests. However, any field with an
23082	// empty value appearing in NullFields will be sent to the server as
23083	// null. It is an error if a field in this list has a non-empty value.
23084	// This may be used to include null fields in Patch requests.
23085	NullFields []string `json:"-"`
23086}
23087
23088func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
23089	type NoMethod LogConfigDataAccessOptions
23090	raw := NoMethod(*s)
23091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23092}
23093
23094// MachineType: Represents a Machine Type resource. You can use specific
23095// machine types for your VM instances based on performance and pricing
23096// requirements. For more information, read Machine Types.
23097type MachineType struct {
23098	// Accelerators: [Output Only] A list of accelerator configurations
23099	// assigned to this machine type.
23100	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
23101
23102	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23103	// format.
23104	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23105
23106	// Deprecated -- [Output Only] The deprecation status associated with
23107	// this machine type. Only applicable if the machine type is
23108	// unavailable.
23109	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
23110
23111	// Description: [Output Only] An optional textual description of the
23112	// resource.
23113	Description string `json:"description,omitempty"`
23114
23115	// GuestCpus: [Output Only] The number of virtual CPUs that are
23116	// available to the instance.
23117	GuestCpus int64 `json:"guestCpus,omitempty"`
23118
23119	// Id: [Output Only] The unique identifier for the resource. This
23120	// identifier is defined by the server.
23121	Id uint64 `json:"id,omitempty,string"`
23122
23123	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
23124	// be populated with any relevant values.
23125	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
23126
23127	// IsSharedCpu: [Output Only] Whether this machine type has a shared
23128	// CPU. See Shared-core machine types for more information.
23129	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
23130
23131	// Kind: [Output Only] The type of the resource. Always
23132	// compute#machineType for machine types.
23133	Kind string `json:"kind,omitempty"`
23134
23135	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
23136	// allowed.
23137	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
23138
23139	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
23140	// disks size (GB) allowed.
23141	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
23142
23143	// MemoryMb: [Output Only] The amount of physical memory available to
23144	// the instance, defined in MB.
23145	MemoryMb int64 `json:"memoryMb,omitempty"`
23146
23147	// Name: [Output Only] Name of the resource.
23148	Name string `json:"name,omitempty"`
23149
23150	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
23151	// to the instance.
23152	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
23153
23154	// SelfLink: [Output Only] Server-defined URL for the resource.
23155	SelfLink string `json:"selfLink,omitempty"`
23156
23157	// Zone: [Output Only] The name of the zone where the machine type
23158	// resides, such as us-central1-a.
23159	Zone string `json:"zone,omitempty"`
23160
23161	// ServerResponse contains the HTTP response code and headers from the
23162	// server.
23163	googleapi.ServerResponse `json:"-"`
23164
23165	// ForceSendFields is a list of field names (e.g. "Accelerators") to
23166	// unconditionally include in API requests. By default, fields with
23167	// empty or default values are omitted from API requests. However, any
23168	// non-pointer, non-interface field appearing in ForceSendFields will be
23169	// sent to the server regardless of whether the field is empty or not.
23170	// This may be used to include empty fields in Patch requests.
23171	ForceSendFields []string `json:"-"`
23172
23173	// NullFields is a list of field names (e.g. "Accelerators") to include
23174	// in API requests with the JSON null value. By default, fields with
23175	// empty values are omitted from API requests. However, any field with
23176	// an empty value appearing in NullFields will be sent to the server as
23177	// null. It is an error if a field in this list has a non-empty value.
23178	// This may be used to include null fields in Patch requests.
23179	NullFields []string `json:"-"`
23180}
23181
23182func (s *MachineType) MarshalJSON() ([]byte, error) {
23183	type NoMethod MachineType
23184	raw := NoMethod(*s)
23185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23186}
23187
23188type MachineTypeAccelerators struct {
23189	// GuestAcceleratorCount: Number of accelerator cards exposed to the
23190	// guest.
23191	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
23192
23193	// GuestAcceleratorType: The accelerator type resource name, not a full
23194	// URL, e.g. 'nvidia-tesla-k80'.
23195	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
23196
23197	// ForceSendFields is a list of field names (e.g.
23198	// "GuestAcceleratorCount") to unconditionally include in API requests.
23199	// By default, fields with empty or default values are omitted from API
23200	// requests. However, any non-pointer, non-interface field appearing in
23201	// ForceSendFields will be sent to the server regardless of whether the
23202	// field is empty or not. This may be used to include empty fields in
23203	// Patch requests.
23204	ForceSendFields []string `json:"-"`
23205
23206	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
23207	// include in API requests with the JSON null value. By default, fields
23208	// with empty values are omitted from API requests. However, any field
23209	// with an empty value appearing in NullFields will be sent to the
23210	// server as null. It is an error if a field in this list has a
23211	// non-empty value. This may be used to include null fields in Patch
23212	// requests.
23213	NullFields []string `json:"-"`
23214}
23215
23216func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
23217	type NoMethod MachineTypeAccelerators
23218	raw := NoMethod(*s)
23219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23220}
23221
23222type MachineTypeScratchDisks struct {
23223	// DiskGb: Size of the scratch disk, defined in GB.
23224	DiskGb int64 `json:"diskGb,omitempty"`
23225
23226	// ForceSendFields is a list of field names (e.g. "DiskGb") to
23227	// unconditionally include in API requests. By default, fields with
23228	// empty or default values are omitted from API requests. However, any
23229	// non-pointer, non-interface field appearing in ForceSendFields will be
23230	// sent to the server regardless of whether the field is empty or not.
23231	// This may be used to include empty fields in Patch requests.
23232	ForceSendFields []string `json:"-"`
23233
23234	// NullFields is a list of field names (e.g. "DiskGb") to include in API
23235	// requests with the JSON null value. By default, fields with empty
23236	// values are omitted from API requests. However, any field with an
23237	// empty value appearing in NullFields will be sent to the server as
23238	// null. It is an error if a field in this list has a non-empty value.
23239	// This may be used to include null fields in Patch requests.
23240	NullFields []string `json:"-"`
23241}
23242
23243func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
23244	type NoMethod MachineTypeScratchDisks
23245	raw := NoMethod(*s)
23246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23247}
23248
23249type MachineTypeAggregatedList struct {
23250	// Id: [Output Only] Unique identifier for the resource; defined by the
23251	// server.
23252	Id string `json:"id,omitempty"`
23253
23254	// Items: A list of MachineTypesScopedList resources.
23255	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
23256
23257	// Kind: [Output Only] Type of resource. Always
23258	// compute#machineTypeAggregatedList for aggregated lists of machine
23259	// types.
23260	Kind string `json:"kind,omitempty"`
23261
23262	// NextPageToken: [Output Only] This token allows you to get the next
23263	// page of results for list requests. If the number of results is larger
23264	// than maxResults, use the nextPageToken as a value for the query
23265	// parameter pageToken in the next list request. Subsequent list
23266	// requests will have their own nextPageToken to continue paging through
23267	// the results.
23268	NextPageToken string `json:"nextPageToken,omitempty"`
23269
23270	// SelfLink: [Output Only] Server-defined URL for this resource.
23271	SelfLink string `json:"selfLink,omitempty"`
23272
23273	// Unreachables: [Output Only] Unreachable resources.
23274	Unreachables []string `json:"unreachables,omitempty"`
23275
23276	// Warning: [Output Only] Informational warning message.
23277	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
23278
23279	// ServerResponse contains the HTTP response code and headers from the
23280	// server.
23281	googleapi.ServerResponse `json:"-"`
23282
23283	// ForceSendFields is a list of field names (e.g. "Id") to
23284	// unconditionally include in API requests. By default, fields with
23285	// empty or default values are omitted from API requests. However, any
23286	// non-pointer, non-interface field appearing in ForceSendFields will be
23287	// sent to the server regardless of whether the field is empty or not.
23288	// This may be used to include empty fields in Patch requests.
23289	ForceSendFields []string `json:"-"`
23290
23291	// NullFields is a list of field names (e.g. "Id") to include in API
23292	// requests with the JSON null value. By default, fields with empty
23293	// values are omitted from API requests. However, any field with an
23294	// empty value appearing in NullFields will be sent to the server as
23295	// null. It is an error if a field in this list has a non-empty value.
23296	// This may be used to include null fields in Patch requests.
23297	NullFields []string `json:"-"`
23298}
23299
23300func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
23301	type NoMethod MachineTypeAggregatedList
23302	raw := NoMethod(*s)
23303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23304}
23305
23306// MachineTypeAggregatedListWarning: [Output Only] Informational warning
23307// message.
23308type MachineTypeAggregatedListWarning struct {
23309	// Code: [Output Only] A warning code, if applicable. For example,
23310	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23311	// the response.
23312	//
23313	// Possible values:
23314	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23315	// changes made by a failed operation.
23316	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23317	// created.
23318	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23319	// resources has a type marked as deprecated
23320	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23321	// that is larger than image size.
23322	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23323	// resources has a type marked as experimental
23324	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23325	// call
23326	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23327	// overridden. Deprecated unused field.
23328	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23329	// injected kernel, which is deprecated.
23330	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23331	// exceedingly large number of resources
23332	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23333	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23334	// not assigned to an instance on the network.
23335	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23336	// ip forward.
23337	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23338	// refers to an instance that does not exist.
23339	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23340	// URL refers to an instance that is not on the same network as the
23341	// route.
23342	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23343	// have a status of RUNNING.
23344	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23345	// continue the process despite the mentioned error.
23346	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23347	// page.
23348	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23349	// missing due to errors
23350	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23351	// that requires a TOS they have not accepted.
23352	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23353	// resource is in use.
23354	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23355	// auto-delete could not be deleted because they were in use.
23356	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23357	// ignored.
23358	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23359	// instance group manager is valid as such, but its application does not
23360	// make a lot of sense, because it allows only single instance in
23361	// instance group.
23362	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23363	// are present
23364	//   "UNREACHABLE" - A given scope cannot be reached.
23365	Code string `json:"code,omitempty"`
23366
23367	// Data: [Output Only] Metadata about this warning in key: value format.
23368	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23369	// }
23370	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
23371
23372	// Message: [Output Only] A human-readable description of the warning
23373	// code.
23374	Message string `json:"message,omitempty"`
23375
23376	// ForceSendFields is a list of field names (e.g. "Code") to
23377	// unconditionally include in API requests. By default, fields with
23378	// empty or default values are omitted from API requests. However, any
23379	// non-pointer, non-interface field appearing in ForceSendFields will be
23380	// sent to the server regardless of whether the field is empty or not.
23381	// This may be used to include empty fields in Patch requests.
23382	ForceSendFields []string `json:"-"`
23383
23384	// NullFields is a list of field names (e.g. "Code") to include in API
23385	// requests with the JSON null value. By default, fields with empty
23386	// values are omitted from API requests. However, any field with an
23387	// empty value appearing in NullFields will be sent to the server as
23388	// null. It is an error if a field in this list has a non-empty value.
23389	// This may be used to include null fields in Patch requests.
23390	NullFields []string `json:"-"`
23391}
23392
23393func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23394	type NoMethod MachineTypeAggregatedListWarning
23395	raw := NoMethod(*s)
23396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23397}
23398
23399type MachineTypeAggregatedListWarningData struct {
23400	// Key: [Output Only] A key that provides more detail on the warning
23401	// being returned. For example, for warnings where there are no results
23402	// in a list request for a particular zone, this key might be scope and
23403	// the key value might be the zone name. Other examples might be a key
23404	// indicating a deprecated resource and a suggested replacement, or a
23405	// warning about invalid network settings (for example, if an instance
23406	// attempts to perform IP forwarding but is not enabled for IP
23407	// forwarding).
23408	Key string `json:"key,omitempty"`
23409
23410	// Value: [Output Only] A warning data value corresponding to the key.
23411	Value string `json:"value,omitempty"`
23412
23413	// ForceSendFields is a list of field names (e.g. "Key") to
23414	// unconditionally include in API requests. By default, fields with
23415	// empty or default values are omitted from API requests. However, any
23416	// non-pointer, non-interface field appearing in ForceSendFields will be
23417	// sent to the server regardless of whether the field is empty or not.
23418	// This may be used to include empty fields in Patch requests.
23419	ForceSendFields []string `json:"-"`
23420
23421	// NullFields is a list of field names (e.g. "Key") to include in API
23422	// requests with the JSON null value. By default, fields with empty
23423	// values are omitted from API requests. However, any field with an
23424	// empty value appearing in NullFields will be sent to the server as
23425	// null. It is an error if a field in this list has a non-empty value.
23426	// This may be used to include null fields in Patch requests.
23427	NullFields []string `json:"-"`
23428}
23429
23430func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23431	type NoMethod MachineTypeAggregatedListWarningData
23432	raw := NoMethod(*s)
23433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23434}
23435
23436// MachineTypeList: Contains a list of machine types.
23437type MachineTypeList struct {
23438	// Id: [Output Only] Unique identifier for the resource; defined by the
23439	// server.
23440	Id string `json:"id,omitempty"`
23441
23442	// Items: A list of MachineType resources.
23443	Items []*MachineType `json:"items,omitempty"`
23444
23445	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
23446	// for lists of machine types.
23447	Kind string `json:"kind,omitempty"`
23448
23449	// NextPageToken: [Output Only] This token allows you to get the next
23450	// page of results for list requests. If the number of results is larger
23451	// than maxResults, use the nextPageToken as a value for the query
23452	// parameter pageToken in the next list request. Subsequent list
23453	// requests will have their own nextPageToken to continue paging through
23454	// the results.
23455	NextPageToken string `json:"nextPageToken,omitempty"`
23456
23457	// SelfLink: [Output Only] Server-defined URL for this resource.
23458	SelfLink string `json:"selfLink,omitempty"`
23459
23460	// Warning: [Output Only] Informational warning message.
23461	Warning *MachineTypeListWarning `json:"warning,omitempty"`
23462
23463	// ServerResponse contains the HTTP response code and headers from the
23464	// server.
23465	googleapi.ServerResponse `json:"-"`
23466
23467	// ForceSendFields is a list of field names (e.g. "Id") to
23468	// unconditionally include in API requests. By default, fields with
23469	// empty or default values are omitted from API requests. However, any
23470	// non-pointer, non-interface field appearing in ForceSendFields will be
23471	// sent to the server regardless of whether the field is empty or not.
23472	// This may be used to include empty fields in Patch requests.
23473	ForceSendFields []string `json:"-"`
23474
23475	// NullFields is a list of field names (e.g. "Id") to include in API
23476	// requests with the JSON null value. By default, fields with empty
23477	// values are omitted from API requests. However, any field with an
23478	// empty value appearing in NullFields will be sent to the server as
23479	// null. It is an error if a field in this list has a non-empty value.
23480	// This may be used to include null fields in Patch requests.
23481	NullFields []string `json:"-"`
23482}
23483
23484func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
23485	type NoMethod MachineTypeList
23486	raw := NoMethod(*s)
23487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23488}
23489
23490// MachineTypeListWarning: [Output Only] Informational warning message.
23491type MachineTypeListWarning struct {
23492	// Code: [Output Only] A warning code, if applicable. For example,
23493	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23494	// the response.
23495	//
23496	// Possible values:
23497	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23498	// changes made by a failed operation.
23499	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23500	// created.
23501	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23502	// resources has a type marked as deprecated
23503	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23504	// that is larger than image size.
23505	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23506	// resources has a type marked as experimental
23507	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23508	// call
23509	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23510	// overridden. Deprecated unused field.
23511	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23512	// injected kernel, which is deprecated.
23513	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23514	// exceedingly large number of resources
23515	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23516	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23517	// not assigned to an instance on the network.
23518	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23519	// ip forward.
23520	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23521	// refers to an instance that does not exist.
23522	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23523	// URL refers to an instance that is not on the same network as the
23524	// route.
23525	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23526	// have a status of RUNNING.
23527	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23528	// continue the process despite the mentioned error.
23529	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23530	// page.
23531	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23532	// missing due to errors
23533	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23534	// that requires a TOS they have not accepted.
23535	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23536	// resource is in use.
23537	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23538	// auto-delete could not be deleted because they were in use.
23539	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23540	// ignored.
23541	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23542	// instance group manager is valid as such, but its application does not
23543	// make a lot of sense, because it allows only single instance in
23544	// instance group.
23545	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23546	// are present
23547	//   "UNREACHABLE" - A given scope cannot be reached.
23548	Code string `json:"code,omitempty"`
23549
23550	// Data: [Output Only] Metadata about this warning in key: value format.
23551	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23552	// }
23553	Data []*MachineTypeListWarningData `json:"data,omitempty"`
23554
23555	// Message: [Output Only] A human-readable description of the warning
23556	// code.
23557	Message string `json:"message,omitempty"`
23558
23559	// ForceSendFields is a list of field names (e.g. "Code") to
23560	// unconditionally include in API requests. By default, fields with
23561	// empty or default values are omitted from API requests. However, any
23562	// non-pointer, non-interface field appearing in ForceSendFields will be
23563	// sent to the server regardless of whether the field is empty or not.
23564	// This may be used to include empty fields in Patch requests.
23565	ForceSendFields []string `json:"-"`
23566
23567	// NullFields is a list of field names (e.g. "Code") to include in API
23568	// requests with the JSON null value. By default, fields with empty
23569	// values are omitted from API requests. However, any field with an
23570	// empty value appearing in NullFields will be sent to the server as
23571	// null. It is an error if a field in this list has a non-empty value.
23572	// This may be used to include null fields in Patch requests.
23573	NullFields []string `json:"-"`
23574}
23575
23576func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
23577	type NoMethod MachineTypeListWarning
23578	raw := NoMethod(*s)
23579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23580}
23581
23582type MachineTypeListWarningData struct {
23583	// Key: [Output Only] A key that provides more detail on the warning
23584	// being returned. For example, for warnings where there are no results
23585	// in a list request for a particular zone, this key might be scope and
23586	// the key value might be the zone name. Other examples might be a key
23587	// indicating a deprecated resource and a suggested replacement, or a
23588	// warning about invalid network settings (for example, if an instance
23589	// attempts to perform IP forwarding but is not enabled for IP
23590	// forwarding).
23591	Key string `json:"key,omitempty"`
23592
23593	// Value: [Output Only] A warning data value corresponding to the key.
23594	Value string `json:"value,omitempty"`
23595
23596	// ForceSendFields is a list of field names (e.g. "Key") to
23597	// unconditionally include in API requests. By default, fields with
23598	// empty or default values are omitted from API requests. However, any
23599	// non-pointer, non-interface field appearing in ForceSendFields will be
23600	// sent to the server regardless of whether the field is empty or not.
23601	// This may be used to include empty fields in Patch requests.
23602	ForceSendFields []string `json:"-"`
23603
23604	// NullFields is a list of field names (e.g. "Key") to include in API
23605	// requests with the JSON null value. By default, fields with empty
23606	// values are omitted from API requests. However, any field with an
23607	// empty value appearing in NullFields will be sent to the server as
23608	// null. It is an error if a field in this list has a non-empty value.
23609	// This may be used to include null fields in Patch requests.
23610	NullFields []string `json:"-"`
23611}
23612
23613func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
23614	type NoMethod MachineTypeListWarningData
23615	raw := NoMethod(*s)
23616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23617}
23618
23619type MachineTypesScopedList struct {
23620	// MachineTypes: [Output Only] A list of machine types contained in this
23621	// scope.
23622	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
23623
23624	// Warning: [Output Only] An informational warning that appears when the
23625	// machine types list is empty.
23626	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
23627
23628	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
23629	// unconditionally include in API requests. By default, fields with
23630	// empty or default values are omitted from API requests. However, any
23631	// non-pointer, non-interface field appearing in ForceSendFields will be
23632	// sent to the server regardless of whether the field is empty or not.
23633	// This may be used to include empty fields in Patch requests.
23634	ForceSendFields []string `json:"-"`
23635
23636	// NullFields is a list of field names (e.g. "MachineTypes") to include
23637	// in API requests with the JSON null value. By default, fields with
23638	// empty values are omitted from API requests. However, any field with
23639	// an empty value appearing in NullFields will be sent to the server as
23640	// null. It is an error if a field in this list has a non-empty value.
23641	// This may be used to include null fields in Patch requests.
23642	NullFields []string `json:"-"`
23643}
23644
23645func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
23646	type NoMethod MachineTypesScopedList
23647	raw := NoMethod(*s)
23648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23649}
23650
23651// MachineTypesScopedListWarning: [Output Only] An informational warning
23652// that appears when the machine types list is empty.
23653type MachineTypesScopedListWarning struct {
23654	// Code: [Output Only] A warning code, if applicable. For example,
23655	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23656	// the response.
23657	//
23658	// Possible values:
23659	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23660	// changes made by a failed operation.
23661	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23662	// created.
23663	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23664	// resources has a type marked as deprecated
23665	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23666	// that is larger than image size.
23667	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23668	// resources has a type marked as experimental
23669	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23670	// call
23671	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23672	// overridden. Deprecated unused field.
23673	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23674	// injected kernel, which is deprecated.
23675	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23676	// exceedingly large number of resources
23677	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23678	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23679	// not assigned to an instance on the network.
23680	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23681	// ip forward.
23682	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23683	// refers to an instance that does not exist.
23684	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23685	// URL refers to an instance that is not on the same network as the
23686	// route.
23687	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23688	// have a status of RUNNING.
23689	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23690	// continue the process despite the mentioned error.
23691	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23692	// page.
23693	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23694	// missing due to errors
23695	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23696	// that requires a TOS they have not accepted.
23697	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23698	// resource is in use.
23699	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23700	// auto-delete could not be deleted because they were in use.
23701	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23702	// ignored.
23703	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23704	// instance group manager is valid as such, but its application does not
23705	// make a lot of sense, because it allows only single instance in
23706	// instance group.
23707	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23708	// are present
23709	//   "UNREACHABLE" - A given scope cannot be reached.
23710	Code string `json:"code,omitempty"`
23711
23712	// Data: [Output Only] Metadata about this warning in key: value format.
23713	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23714	// }
23715	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
23716
23717	// Message: [Output Only] A human-readable description of the warning
23718	// code.
23719	Message string `json:"message,omitempty"`
23720
23721	// ForceSendFields is a list of field names (e.g. "Code") to
23722	// unconditionally include in API requests. By default, fields with
23723	// empty or default values are omitted from API requests. However, any
23724	// non-pointer, non-interface field appearing in ForceSendFields will be
23725	// sent to the server regardless of whether the field is empty or not.
23726	// This may be used to include empty fields in Patch requests.
23727	ForceSendFields []string `json:"-"`
23728
23729	// NullFields is a list of field names (e.g. "Code") to include in API
23730	// requests with the JSON null value. By default, fields with empty
23731	// values are omitted from API requests. However, any field with an
23732	// empty value appearing in NullFields will be sent to the server as
23733	// null. It is an error if a field in this list has a non-empty value.
23734	// This may be used to include null fields in Patch requests.
23735	NullFields []string `json:"-"`
23736}
23737
23738func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23739	type NoMethod MachineTypesScopedListWarning
23740	raw := NoMethod(*s)
23741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23742}
23743
23744type MachineTypesScopedListWarningData struct {
23745	// Key: [Output Only] A key that provides more detail on the warning
23746	// being returned. For example, for warnings where there are no results
23747	// in a list request for a particular zone, this key might be scope and
23748	// the key value might be the zone name. Other examples might be a key
23749	// indicating a deprecated resource and a suggested replacement, or a
23750	// warning about invalid network settings (for example, if an instance
23751	// attempts to perform IP forwarding but is not enabled for IP
23752	// forwarding).
23753	Key string `json:"key,omitempty"`
23754
23755	// Value: [Output Only] A warning data value corresponding to the key.
23756	Value string `json:"value,omitempty"`
23757
23758	// ForceSendFields is a list of field names (e.g. "Key") to
23759	// unconditionally include in API requests. By default, fields with
23760	// empty or default values are omitted from API requests. However, any
23761	// non-pointer, non-interface field appearing in ForceSendFields will be
23762	// sent to the server regardless of whether the field is empty or not.
23763	// This may be used to include empty fields in Patch requests.
23764	ForceSendFields []string `json:"-"`
23765
23766	// NullFields is a list of field names (e.g. "Key") to include in API
23767	// requests with the JSON null value. By default, fields with empty
23768	// values are omitted from API requests. However, any field with an
23769	// empty value appearing in NullFields will be sent to the server as
23770	// null. It is an error if a field in this list has a non-empty value.
23771	// This may be used to include null fields in Patch requests.
23772	NullFields []string `json:"-"`
23773}
23774
23775func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23776	type NoMethod MachineTypesScopedListWarningData
23777	raw := NoMethod(*s)
23778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23779}
23780
23781// ManagedInstance: A Managed Instance resource.
23782type ManagedInstance struct {
23783	// CurrentAction: [Output Only] The current action that the managed
23784	// instance group has scheduled for the instance. Possible values: -
23785	// NONE The instance is running, and the managed instance group does not
23786	// have any scheduled actions for this instance. - CREATING The managed
23787	// instance group is creating this instance. If the group fails to
23788	// create this instance, it will try again until it is successful. -
23789	// CREATING_WITHOUT_RETRIES The managed instance group is attempting to
23790	// create this instance only once. If the group fails to create this
23791	// instance, it does not try again and the group's targetSize value is
23792	// decreased instead. - RECREATING The managed instance group is
23793	// recreating this instance. - DELETING The managed instance group is
23794	// permanently deleting this instance. - ABANDONING The managed instance
23795	// group is abandoning this instance. The instance will be removed from
23796	// the instance group and from any target pools that are associated with
23797	// this group. - RESTARTING The managed instance group is restarting the
23798	// instance. - REFRESHING The managed instance group is applying
23799	// configuration changes to the instance without stopping it. For
23800	// example, the group can update the target pool list for an instance
23801	// without stopping that instance. - VERIFYING The managed instance
23802	// group has created the instance and it is in the process of being
23803	// verified.
23804	//
23805	// Possible values:
23806	//   "ABANDONING" - The managed instance group is abandoning this
23807	// instance. The instance will be removed from the instance group and
23808	// from any target pools that are associated with this group.
23809	//   "CREATING" - The managed instance group is creating this instance.
23810	// If the group fails to create this instance, it will try again until
23811	// it is successful.
23812	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is
23813	// attempting to create this instance only once. If the group fails to
23814	// create this instance, it does not try again and the group's
23815	// targetSize value is decreased.
23816	//   "DELETING" - The managed instance group is permanently deleting
23817	// this instance.
23818	//   "NONE" - The managed instance group has not scheduled any actions
23819	// for this instance.
23820	//   "RECREATING" - The managed instance group is recreating this
23821	// instance.
23822	//   "REFRESHING" - The managed instance group is applying configuration
23823	// changes to the instance without stopping it. For example, the group
23824	// can update the target pool list for an instance without stopping that
23825	// instance.
23826	//   "RESTARTING" - The managed instance group is restarting this
23827	// instance.
23828	//   "VERIFYING" - The managed instance group is verifying this already
23829	// created instance. Verification happens every time the instance is
23830	// (re)created or restarted and consists of: 1. Waiting until health
23831	// check specified as part of this managed instance group's autohealing
23832	// policy reports HEALTHY. Note: Applies only if autohealing policy has
23833	// a health check specified 2. Waiting for addition verification steps
23834	// performed as post-instance creation (subject to future extensions).
23835	CurrentAction string `json:"currentAction,omitempty"`
23836
23837	// Id: [Output only] The unique identifier for this resource. This field
23838	// is empty when instance does not exist.
23839	Id uint64 `json:"id,omitempty,string"`
23840
23841	// Instance: [Output Only] The URL of the instance. The URL can exist
23842	// even if the instance has not yet been created.
23843	Instance string `json:"instance,omitempty"`
23844
23845	// InstanceHealth: [Output Only] Health state of the instance per
23846	// health-check.
23847	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
23848
23849	// InstanceStatus: [Output Only] The status of the instance. This field
23850	// is empty when the instance does not exist.
23851	//
23852	// Possible values:
23853	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
23854	// down tasks like network deprogramming, releasing quota, IP, tearing
23855	// down disks etc.
23856	//   "PROVISIONING" - Resources are being allocated for the instance.
23857	//   "REPAIRING" - The instance is in repair.
23858	//   "RUNNING" - The instance is running.
23859	//   "STAGING" - All required resources have been allocated and the
23860	// instance is being started.
23861	//   "STOPPED" - The instance has stopped successfully.
23862	//   "STOPPING" - The instance is currently stopping (either being
23863	// deleted or killed).
23864	//   "SUSPENDED" - The instance has suspended.
23865	//   "SUSPENDING" - The instance is suspending.
23866	//   "TERMINATED" - The instance has stopped (either by explicit action
23867	// or underlying failure).
23868	InstanceStatus string `json:"instanceStatus,omitempty"`
23869
23870	// LastAttempt: [Output Only] Information about the last attempt to
23871	// create or delete the instance.
23872	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
23873
23874	// PreservedStateFromConfig: [Output Only] Preserved state applied from
23875	// per-instance config for this instance.
23876	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
23877
23878	// PreservedStateFromPolicy: [Output Only] Preserved state generated
23879	// based on stateful policy for this instance.
23880	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
23881
23882	// Version: [Output Only] Intended version of this instance.
23883	Version *ManagedInstanceVersion `json:"version,omitempty"`
23884
23885	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
23886	// unconditionally include in API requests. By default, fields with
23887	// empty or default values are omitted from API requests. However, any
23888	// non-pointer, non-interface field appearing in ForceSendFields will be
23889	// sent to the server regardless of whether the field is empty or not.
23890	// This may be used to include empty fields in Patch requests.
23891	ForceSendFields []string `json:"-"`
23892
23893	// NullFields is a list of field names (e.g. "CurrentAction") to include
23894	// in API requests with the JSON null value. By default, fields with
23895	// empty values are omitted from API requests. However, any field with
23896	// an empty value appearing in NullFields will be sent to the server as
23897	// null. It is an error if a field in this list has a non-empty value.
23898	// This may be used to include null fields in Patch requests.
23899	NullFields []string `json:"-"`
23900}
23901
23902func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
23903	type NoMethod ManagedInstance
23904	raw := NoMethod(*s)
23905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23906}
23907
23908type ManagedInstanceInstanceHealth struct {
23909	// DetailedHealthState: [Output Only] The current detailed instance
23910	// health state.
23911	//
23912	// Possible values:
23913	//   "DRAINING" - The instance is being drained. The existing
23914	// connections to the instance have time to complete, but the new ones
23915	// are being refused.
23916	//   "HEALTHY" - The instance is reachable i.e. a connection to the
23917	// application health checking endpoint can be established, and conforms
23918	// to the requirements defined by the health check.
23919	//   "TIMEOUT" - The instance is unreachable i.e. a connection to the
23920	// application health checking endpoint cannot be established, or the
23921	// server does not respond within the specified timeout.
23922	//   "UNHEALTHY" - The instance is reachable, but does not conform to
23923	// the requirements defined by the health check.
23924	//   "UNKNOWN" - The health checking system is aware of the instance but
23925	// its health is not known at the moment.
23926	DetailedHealthState string `json:"detailedHealthState,omitempty"`
23927
23928	// HealthCheck: [Output Only] The URL for the health check that verifies
23929	// whether the instance is healthy.
23930	HealthCheck string `json:"healthCheck,omitempty"`
23931
23932	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
23933	// to unconditionally include in API requests. By default, fields with
23934	// empty or default values are omitted from API requests. However, any
23935	// non-pointer, non-interface field appearing in ForceSendFields will be
23936	// sent to the server regardless of whether the field is empty or not.
23937	// This may be used to include empty fields in Patch requests.
23938	ForceSendFields []string `json:"-"`
23939
23940	// NullFields is a list of field names (e.g. "DetailedHealthState") to
23941	// include in API requests with the JSON null value. By default, fields
23942	// with empty values are omitted from API requests. However, any field
23943	// with an empty value appearing in NullFields will be sent to the
23944	// server as null. It is an error if a field in this list has a
23945	// non-empty value. This may be used to include null fields in Patch
23946	// requests.
23947	NullFields []string `json:"-"`
23948}
23949
23950func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
23951	type NoMethod ManagedInstanceInstanceHealth
23952	raw := NoMethod(*s)
23953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23954}
23955
23956type ManagedInstanceLastAttempt struct {
23957	// Errors: [Output Only] Encountered errors during the last attempt to
23958	// create or delete the instance.
23959	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
23960
23961	// ForceSendFields is a list of field names (e.g. "Errors") to
23962	// unconditionally include in API requests. By default, fields with
23963	// empty or default values are omitted from API requests. However, any
23964	// non-pointer, non-interface field appearing in ForceSendFields will be
23965	// sent to the server regardless of whether the field is empty or not.
23966	// This may be used to include empty fields in Patch requests.
23967	ForceSendFields []string `json:"-"`
23968
23969	// NullFields is a list of field names (e.g. "Errors") to include in API
23970	// requests with the JSON null value. By default, fields with empty
23971	// values are omitted from API requests. However, any field with an
23972	// empty value appearing in NullFields will be sent to the server as
23973	// null. It is an error if a field in this list has a non-empty value.
23974	// This may be used to include null fields in Patch requests.
23975	NullFields []string `json:"-"`
23976}
23977
23978func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
23979	type NoMethod ManagedInstanceLastAttempt
23980	raw := NoMethod(*s)
23981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23982}
23983
23984// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
23985// during the last attempt to create or delete the instance.
23986type ManagedInstanceLastAttemptErrors struct {
23987	// Errors: [Output Only] The array of errors encountered while
23988	// processing this operation.
23989	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
23990
23991	// ForceSendFields is a list of field names (e.g. "Errors") to
23992	// unconditionally include in API requests. By default, fields with
23993	// empty or default values are omitted from API requests. However, any
23994	// non-pointer, non-interface field appearing in ForceSendFields will be
23995	// sent to the server regardless of whether the field is empty or not.
23996	// This may be used to include empty fields in Patch requests.
23997	ForceSendFields []string `json:"-"`
23998
23999	// NullFields is a list of field names (e.g. "Errors") to include in API
24000	// requests with the JSON null value. By default, fields with empty
24001	// values are omitted from API requests. However, any field with an
24002	// empty value appearing in NullFields will be sent to the server as
24003	// null. It is an error if a field in this list has a non-empty value.
24004	// This may be used to include null fields in Patch requests.
24005	NullFields []string `json:"-"`
24006}
24007
24008func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
24009	type NoMethod ManagedInstanceLastAttemptErrors
24010	raw := NoMethod(*s)
24011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24012}
24013
24014type ManagedInstanceLastAttemptErrorsErrors struct {
24015	// Code: [Output Only] The error type identifier for this error.
24016	Code string `json:"code,omitempty"`
24017
24018	// Location: [Output Only] Indicates the field in the request that
24019	// caused the error. This property is optional.
24020	Location string `json:"location,omitempty"`
24021
24022	// Message: [Output Only] An optional, human-readable error message.
24023	Message string `json:"message,omitempty"`
24024
24025	// ForceSendFields is a list of field names (e.g. "Code") to
24026	// unconditionally include in API requests. By default, fields with
24027	// empty or default values are omitted from API requests. However, any
24028	// non-pointer, non-interface field appearing in ForceSendFields will be
24029	// sent to the server regardless of whether the field is empty or not.
24030	// This may be used to include empty fields in Patch requests.
24031	ForceSendFields []string `json:"-"`
24032
24033	// NullFields is a list of field names (e.g. "Code") to include in API
24034	// requests with the JSON null value. By default, fields with empty
24035	// values are omitted from API requests. However, any field with an
24036	// empty value appearing in NullFields will be sent to the server as
24037	// null. It is an error if a field in this list has a non-empty value.
24038	// This may be used to include null fields in Patch requests.
24039	NullFields []string `json:"-"`
24040}
24041
24042func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
24043	type NoMethod ManagedInstanceLastAttemptErrorsErrors
24044	raw := NoMethod(*s)
24045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24046}
24047
24048type ManagedInstanceVersion struct {
24049	// InstanceTemplate: [Output Only] The intended template of the
24050	// instance. This field is empty when current_action is one of {
24051	// DELETING, ABANDONING }.
24052	InstanceTemplate string `json:"instanceTemplate,omitempty"`
24053
24054	// Name: [Output Only] Name of the version.
24055	Name string `json:"name,omitempty"`
24056
24057	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
24058	// unconditionally include in API requests. By default, fields with
24059	// empty or default values are omitted from API requests. However, any
24060	// non-pointer, non-interface field appearing in ForceSendFields will be
24061	// sent to the server regardless of whether the field is empty or not.
24062	// This may be used to include empty fields in Patch requests.
24063	ForceSendFields []string `json:"-"`
24064
24065	// NullFields is a list of field names (e.g. "InstanceTemplate") to
24066	// include in API requests with the JSON null value. By default, fields
24067	// with empty values are omitted from API requests. However, any field
24068	// with an empty value appearing in NullFields will be sent to the
24069	// server as null. It is an error if a field in this list has a
24070	// non-empty value. This may be used to include null fields in Patch
24071	// requests.
24072	NullFields []string `json:"-"`
24073}
24074
24075func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
24076	type NoMethod ManagedInstanceVersion
24077	raw := NoMethod(*s)
24078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24079}
24080
24081// Metadata: A metadata key/value entry.
24082type Metadata struct {
24083	// Fingerprint: Specifies a fingerprint for this request, which is
24084	// essentially a hash of the metadata's contents and used for optimistic
24085	// locking. The fingerprint is initially generated by Compute Engine and
24086	// changes after every request to modify or update metadata. You must
24087	// always provide an up-to-date fingerprint hash in order to update or
24088	// change metadata, otherwise the request will fail with error 412
24089	// conditionNotMet. To see the latest fingerprint, make a get() request
24090	// to retrieve the resource.
24091	Fingerprint string `json:"fingerprint,omitempty"`
24092
24093	// Items: Array of key/value pairs. The total size of all keys and
24094	// values must be less than 512 KB.
24095	Items []*MetadataItems `json:"items,omitempty"`
24096
24097	// Kind: [Output Only] Type of the resource. Always compute#metadata for
24098	// metadata.
24099	Kind string `json:"kind,omitempty"`
24100
24101	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
24102	// unconditionally include in API requests. By default, fields with
24103	// empty or default values are omitted from API requests. However, any
24104	// non-pointer, non-interface field appearing in ForceSendFields will be
24105	// sent to the server regardless of whether the field is empty or not.
24106	// This may be used to include empty fields in Patch requests.
24107	ForceSendFields []string `json:"-"`
24108
24109	// NullFields is a list of field names (e.g. "Fingerprint") to include
24110	// in API requests with the JSON null value. By default, fields with
24111	// empty values are omitted from API requests. However, any field with
24112	// an empty value appearing in NullFields will be sent to the server as
24113	// null. It is an error if a field in this list has a non-empty value.
24114	// This may be used to include null fields in Patch requests.
24115	NullFields []string `json:"-"`
24116}
24117
24118func (s *Metadata) MarshalJSON() ([]byte, error) {
24119	type NoMethod Metadata
24120	raw := NoMethod(*s)
24121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24122}
24123
24124// MetadataItems: Metadata
24125type MetadataItems struct {
24126	// Key: Key for the metadata entry. Keys must conform to the following
24127	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
24128	// reflected as part of a URL in the metadata server. Additionally, to
24129	// avoid ambiguity, keys must not conflict with any other metadata keys
24130	// for the project.
24131	Key string `json:"key,omitempty"`
24132
24133	// Value: Value for the metadata entry. These are free-form strings, and
24134	// only have meaning as interpreted by the image running in the
24135	// instance. The only restriction placed on values is that their size
24136	// must be less than or equal to 262144 bytes (256 KiB).
24137	Value *string `json:"value,omitempty"`
24138
24139	// ForceSendFields is a list of field names (e.g. "Key") to
24140	// unconditionally include in API requests. By default, fields with
24141	// empty or default values are omitted from API requests. However, any
24142	// non-pointer, non-interface field appearing in ForceSendFields will be
24143	// sent to the server regardless of whether the field is empty or not.
24144	// This may be used to include empty fields in Patch requests.
24145	ForceSendFields []string `json:"-"`
24146
24147	// NullFields is a list of field names (e.g. "Key") to include in API
24148	// requests with the JSON null value. By default, fields with empty
24149	// values are omitted from API requests. However, any field with an
24150	// empty value appearing in NullFields will be sent to the server as
24151	// null. It is an error if a field in this list has a non-empty value.
24152	// This may be used to include null fields in Patch requests.
24153	NullFields []string `json:"-"`
24154}
24155
24156func (s *MetadataItems) MarshalJSON() ([]byte, error) {
24157	type NoMethod MetadataItems
24158	raw := NoMethod(*s)
24159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24160}
24161
24162// MetadataFilter: Opaque filter criteria used by loadbalancers to
24163// restrict routing configuration to a limited set of loadbalancing
24164// proxies. Proxies and sidecars involved in loadbalancing would
24165// typically present metadata to the loadbalancers which need to match
24166// criteria specified here. If a match takes place, the relevant
24167// configuration is made available to those proxies. For each
24168// metadataFilter in this list, if its filterMatchCriteria is set to
24169// MATCH_ANY, at least one of the filterLabels must match the
24170// corresponding label provided in the metadata. If its
24171// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
24172// must match with corresponding labels provided in the metadata. An
24173// example for using metadataFilters would be: if loadbalancing involves
24174// Envoys, they will only receive routing configuration when values in
24175// metadataFilters match values supplied in of their XDS requests to
24176// loadbalancers.
24177type MetadataFilter struct {
24178	// FilterLabels: The list of label value pairs that must match labels in
24179	// the provided metadata based on filterMatchCriteria This list must not
24180	// be empty and can have at the most 64 entries.
24181	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
24182
24183	// FilterMatchCriteria: Specifies how individual filterLabel matches
24184	// within the list of filterLabels contribute towards the overall
24185	// metadataFilter match. Supported values are: - MATCH_ANY: At least one
24186	// of the filterLabels must have a matching label in the provided
24187	// metadata. - MATCH_ALL: All filterLabels must have matching labels in
24188	// the provided metadata.
24189	//
24190	// Possible values:
24191	//   "MATCH_ALL" - Specifies that all filterLabels must match for the
24192	// metadataFilter to be considered a match.
24193	//   "MATCH_ANY" - Specifies that any filterLabel must match for the
24194	// metadataFilter to be considered a match.
24195	//   "NOT_SET" - Indicates that the match criteria was not set. A
24196	// metadataFilter must never be created with this value.
24197	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
24198
24199	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
24200	// unconditionally include in API requests. By default, fields with
24201	// empty or default values are omitted from API requests. However, any
24202	// non-pointer, non-interface field appearing in ForceSendFields will be
24203	// sent to the server regardless of whether the field is empty or not.
24204	// This may be used to include empty fields in Patch requests.
24205	ForceSendFields []string `json:"-"`
24206
24207	// NullFields is a list of field names (e.g. "FilterLabels") to include
24208	// in API requests with the JSON null value. By default, fields with
24209	// empty values are omitted from API requests. However, any field with
24210	// an empty value appearing in NullFields will be sent to the server as
24211	// null. It is an error if a field in this list has a non-empty value.
24212	// This may be used to include null fields in Patch requests.
24213	NullFields []string `json:"-"`
24214}
24215
24216func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
24217	type NoMethod MetadataFilter
24218	raw := NoMethod(*s)
24219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24220}
24221
24222// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
24223// are expected to match corresponding labels presented as metadata to
24224// the loadbalancer.
24225type MetadataFilterLabelMatch struct {
24226	// Name: Name of metadata label. The name can have a maximum length of
24227	// 1024 characters and must be at least 1 character long.
24228	Name string `json:"name,omitempty"`
24229
24230	// Value: The value of the label must match the specified value. value
24231	// can have a maximum length of 1024 characters.
24232	Value string `json:"value,omitempty"`
24233
24234	// ForceSendFields is a list of field names (e.g. "Name") to
24235	// unconditionally include in API requests. By default, fields with
24236	// empty or default values are omitted from API requests. However, any
24237	// non-pointer, non-interface field appearing in ForceSendFields will be
24238	// sent to the server regardless of whether the field is empty or not.
24239	// This may be used to include empty fields in Patch requests.
24240	ForceSendFields []string `json:"-"`
24241
24242	// NullFields is a list of field names (e.g. "Name") to include in API
24243	// requests with the JSON null value. By default, fields with empty
24244	// values are omitted from API requests. However, any field with an
24245	// empty value appearing in NullFields will be sent to the server as
24246	// null. It is an error if a field in this list has a non-empty value.
24247	// This may be used to include null fields in Patch requests.
24248	NullFields []string `json:"-"`
24249}
24250
24251func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
24252	type NoMethod MetadataFilterLabelMatch
24253	raw := NoMethod(*s)
24254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24255}
24256
24257// NamedPort: The named port. For example: <"http", 80>.
24258type NamedPort struct {
24259	// Name: The name for this named port. The name must be 1-63 characters
24260	// long, and comply with RFC1035.
24261	Name string `json:"name,omitempty"`
24262
24263	// Port: The port number, which can be a value between 1 and 65535.
24264	Port int64 `json:"port,omitempty"`
24265
24266	// ForceSendFields is a list of field names (e.g. "Name") to
24267	// unconditionally include in API requests. By default, fields with
24268	// empty or default values are omitted from API requests. However, any
24269	// non-pointer, non-interface field appearing in ForceSendFields will be
24270	// sent to the server regardless of whether the field is empty or not.
24271	// This may be used to include empty fields in Patch requests.
24272	ForceSendFields []string `json:"-"`
24273
24274	// NullFields is a list of field names (e.g. "Name") to include in API
24275	// requests with the JSON null value. By default, fields with empty
24276	// values are omitted from API requests. However, any field with an
24277	// empty value appearing in NullFields will be sent to the server as
24278	// null. It is an error if a field in this list has a non-empty value.
24279	// This may be used to include null fields in Patch requests.
24280	NullFields []string `json:"-"`
24281}
24282
24283func (s *NamedPort) MarshalJSON() ([]byte, error) {
24284	type NoMethod NamedPort
24285	raw := NoMethod(*s)
24286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24287}
24288
24289// Network: Represents a VPC Network resource. Networks connect
24290// resources to each other and to the internet. For more information,
24291// read Virtual Private Cloud (VPC) Network.
24292type Network struct {
24293	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
24294	// internal addresses that are legal on this network. This range is a
24295	// CIDR specification, for example: 192.168.0.0/16. Provided by the
24296	// client when the network is created.
24297	IPv4Range string `json:"IPv4Range,omitempty"`
24298
24299	// AutoCreateSubnetworks: Must be set to create a VPC network. If not
24300	// set, a legacy network is created. When set to true, the VPC network
24301	// is created in auto mode. When set to false, the VPC network is
24302	// created in custom mode. An auto mode VPC network starts with one
24303	// subnet per region. Each subnet has a predetermined range as described
24304	// in Auto mode VPC network IP ranges. For custom mode VPC networks, you
24305	// can add subnets using the subnetworks insert method.
24306	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
24307
24308	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24309	// format.
24310	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24311
24312	// Description: An optional description of this resource. Provide this
24313	// field when you create the resource.
24314	Description string `json:"description,omitempty"`
24315
24316	// GatewayIPv4: [Output Only] The gateway address for default routing
24317	// out of the network, selected by GCP.
24318	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
24319
24320	// Id: [Output Only] The unique identifier for the resource. This
24321	// identifier is defined by the server.
24322	Id uint64 `json:"id,omitempty,string"`
24323
24324	// Kind: [Output Only] Type of the resource. Always compute#network for
24325	// networks.
24326	Kind string `json:"kind,omitempty"`
24327
24328	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
24329	// field is 1460 and the maximum value is 1500 bytes. If unspecified,
24330	// defaults to 1460.
24331	Mtu int64 `json:"mtu,omitempty"`
24332
24333	// Name: Name of the resource. Provided by the client when the resource
24334	// is created. The name must be 1-63 characters long, and comply with
24335	// RFC1035. Specifically, the name must be 1-63 characters long and
24336	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
24337	// character must be a lowercase letter, and all following characters
24338	// (except for the last character) must be a dash, lowercase letter, or
24339	// digit. The last character must be a lowercase letter or digit.
24340	Name string `json:"name,omitempty"`
24341
24342	// Peerings: [Output Only] A list of network peerings for the resource.
24343	Peerings []*NetworkPeering `json:"peerings,omitempty"`
24344
24345	// RoutingConfig: The network-level routing configuration for this
24346	// network. Used by Cloud Router to determine what type of network-wide
24347	// routing behavior to enforce.
24348	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
24349
24350	// SelfLink: [Output Only] Server-defined URL for the resource.
24351	SelfLink string `json:"selfLink,omitempty"`
24352
24353	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
24354	// all subnetworks in this VPC network.
24355	Subnetworks []string `json:"subnetworks,omitempty"`
24356
24357	// ServerResponse contains the HTTP response code and headers from the
24358	// server.
24359	googleapi.ServerResponse `json:"-"`
24360
24361	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
24362	// unconditionally include in API requests. By default, fields with
24363	// empty or default values are omitted from API requests. However, any
24364	// non-pointer, non-interface field appearing in ForceSendFields will be
24365	// sent to the server regardless of whether the field is empty or not.
24366	// This may be used to include empty fields in Patch requests.
24367	ForceSendFields []string `json:"-"`
24368
24369	// NullFields is a list of field names (e.g. "IPv4Range") to include in
24370	// API requests with the JSON null value. By default, fields with empty
24371	// values are omitted from API requests. However, any field with an
24372	// empty value appearing in NullFields will be sent to the server as
24373	// null. It is an error if a field in this list has a non-empty value.
24374	// This may be used to include null fields in Patch requests.
24375	NullFields []string `json:"-"`
24376}
24377
24378func (s *Network) MarshalJSON() ([]byte, error) {
24379	type NoMethod Network
24380	raw := NoMethod(*s)
24381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24382}
24383
24384// NetworkEndpoint: The network endpoint.
24385type NetworkEndpoint struct {
24386	// Annotations: Metadata defined as annotations on the network endpoint.
24387	Annotations map[string]string `json:"annotations,omitempty"`
24388
24389	// Fqdn: Optional fully qualified domain name of network endpoint. This
24390	// can only be specified when NetworkEndpointGroup.network_endpoint_type
24391	// is NON_GCP_FQDN_PORT.
24392	Fqdn string `json:"fqdn,omitempty"`
24393
24394	// Instance: The name for a specific VM instance that the IP address
24395	// belongs to. This is required for network endpoints of type
24396	// GCE_VM_IP_PORT. The instance must be in the same zone of network
24397	// endpoint group. The name must be 1-63 characters long, and comply
24398	// with RFC1035.
24399	Instance string `json:"instance,omitempty"`
24400
24401	// IpAddress: Optional IPv4 address of network endpoint. The IP address
24402	// must belong to a VM in Compute Engine (either the primary IP or as
24403	// part of an aliased IP range). If the IP address is not specified,
24404	// then the primary IP address for the VM instance in the network that
24405	// the network endpoint group belongs to will be used.
24406	IpAddress string `json:"ipAddress,omitempty"`
24407
24408	// Port: Optional port number of network endpoint. If not specified, the
24409	// defaultPort for the network endpoint group will be used.
24410	Port int64 `json:"port,omitempty"`
24411
24412	// ForceSendFields is a list of field names (e.g. "Annotations") to
24413	// unconditionally include in API requests. By default, fields with
24414	// empty or default values are omitted from API requests. However, any
24415	// non-pointer, non-interface field appearing in ForceSendFields will be
24416	// sent to the server regardless of whether the field is empty or not.
24417	// This may be used to include empty fields in Patch requests.
24418	ForceSendFields []string `json:"-"`
24419
24420	// NullFields is a list of field names (e.g. "Annotations") to include
24421	// in API requests with the JSON null value. By default, fields with
24422	// empty values are omitted from API requests. However, any field with
24423	// an empty value appearing in NullFields will be sent to the server as
24424	// null. It is an error if a field in this list has a non-empty value.
24425	// This may be used to include null fields in Patch requests.
24426	NullFields []string `json:"-"`
24427}
24428
24429func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
24430	type NoMethod NetworkEndpoint
24431	raw := NoMethod(*s)
24432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24433}
24434
24435// NetworkEndpointGroup: Represents a collection of network endpoints. A
24436// network endpoint group (NEG) defines how a set of endpoints should be
24437// reached, whether they are reachable, and where they are located. For
24438// more information about using NEGs, see Setting up external HTTP(S)
24439// Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting
24440// up external HTTP(S) Load Balancing with serverless NEGs.
24441type NetworkEndpointGroup struct {
24442	// Annotations: Metadata defined as annotations on the network endpoint
24443	// group.
24444	Annotations map[string]string `json:"annotations,omitempty"`
24445
24446	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
24447	// one of cloudRun, appEngine or cloudFunction may be set.
24448	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
24449
24450	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
24451	// Only one of cloudRun, appEngine or cloudFunction may be set.
24452	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
24453
24454	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
24455	// one of cloudRun, appEngine or cloudFunction may be set.
24456	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
24457
24458	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24459	// format.
24460	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24461
24462	// DefaultPort: The default port used if the port number is not
24463	// specified in the network endpoint.
24464	DefaultPort int64 `json:"defaultPort,omitempty"`
24465
24466	// Description: An optional description of this resource. Provide this
24467	// property when you create the resource.
24468	Description string `json:"description,omitempty"`
24469
24470	// Id: [Output Only] The unique identifier for the resource. This
24471	// identifier is defined by the server.
24472	Id uint64 `json:"id,omitempty,string"`
24473
24474	// Kind: [Output Only] Type of the resource. Always
24475	// compute#networkEndpointGroup for network endpoint group.
24476	Kind string `json:"kind,omitempty"`
24477
24478	// Name: Name of the resource; provided by the client when the resource
24479	// is created. The name must be 1-63 characters long, and comply with
24480	// RFC1035. Specifically, the name must be 1-63 characters long and
24481	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24482	// the first character must be a lowercase letter, and all following
24483	// characters must be a dash, lowercase letter, or digit, except the
24484	// last character, which cannot be a dash.
24485	Name string `json:"name,omitempty"`
24486
24487	// Network: The URL of the network to which all network endpoints in the
24488	// NEG belong. Uses "default" project network if unspecified.
24489	Network string `json:"network,omitempty"`
24490
24491	// NetworkEndpointType: Type of network endpoints in this network
24492	// endpoint group. Can be one of GCE_VM_IP_PORT,
24493	// NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT,
24494	// SERVERLESS, PRIVATE_SERVICE_CONNECT.
24495	//
24496	// Possible values:
24497	//   "GCE_VM_IP" - The network endpoint is represented by an IP address.
24498	//   "GCE_VM_IP_PORT" - The network endpoint is represented by IP
24499	// address and port pair.
24500	//   "INTERNET_FQDN_PORT" - The network endpoint is represented by fully
24501	// qualified domain name and port.
24502	//   "INTERNET_IP_PORT" - The network endpoint is represented by an
24503	// internet IP address and port.
24504	//   "NON_GCP_PRIVATE_IP_PORT" - The network endpoint is represented by
24505	// an IP address and port. The endpoint belongs to a VM or pod running
24506	// in a customer's on-premises.
24507	//   "SERVERLESS" - The network endpoint is handled by specified
24508	// serverless infrastructure.
24509	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
24510
24511	// Region: [Output Only] The URL of the region where the network
24512	// endpoint group is located.
24513	Region string `json:"region,omitempty"`
24514
24515	// SelfLink: [Output Only] Server-defined URL for the resource.
24516	SelfLink string `json:"selfLink,omitempty"`
24517
24518	// Size: [Output only] Number of network endpoints in the network
24519	// endpoint group.
24520	Size int64 `json:"size,omitempty"`
24521
24522	// Subnetwork: Optional URL of the subnetwork to which all network
24523	// endpoints in the NEG belong.
24524	Subnetwork string `json:"subnetwork,omitempty"`
24525
24526	// Zone: [Output Only] The URL of the zone where the network endpoint
24527	// group is located.
24528	Zone string `json:"zone,omitempty"`
24529
24530	// ServerResponse contains the HTTP response code and headers from the
24531	// server.
24532	googleapi.ServerResponse `json:"-"`
24533
24534	// ForceSendFields is a list of field names (e.g. "Annotations") to
24535	// unconditionally include in API requests. By default, fields with
24536	// empty or default values are omitted from API requests. However, any
24537	// non-pointer, non-interface field appearing in ForceSendFields will be
24538	// sent to the server regardless of whether the field is empty or not.
24539	// This may be used to include empty fields in Patch requests.
24540	ForceSendFields []string `json:"-"`
24541
24542	// NullFields is a list of field names (e.g. "Annotations") to include
24543	// in API requests with the JSON null value. By default, fields with
24544	// empty values are omitted from API requests. However, any field with
24545	// an empty value appearing in NullFields will be sent to the server as
24546	// null. It is an error if a field in this list has a non-empty value.
24547	// This may be used to include null fields in Patch requests.
24548	NullFields []string `json:"-"`
24549}
24550
24551func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24552	type NoMethod NetworkEndpointGroup
24553	raw := NoMethod(*s)
24554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24555}
24556
24557type NetworkEndpointGroupAggregatedList struct {
24558	// Id: [Output Only] Unique identifier for the resource; defined by the
24559	// server.
24560	Id string `json:"id,omitempty"`
24561
24562	// Items: A list of NetworkEndpointGroupsScopedList resources.
24563	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
24564
24565	// Kind: [Output Only] The resource type, which is always
24566	// compute#networkEndpointGroupAggregatedList for aggregated lists of
24567	// network endpoint groups.
24568	Kind string `json:"kind,omitempty"`
24569
24570	// NextPageToken: [Output Only] This token allows you to get the next
24571	// page of results for list requests. If the number of results is larger
24572	// than maxResults, use the nextPageToken as a value for the query
24573	// parameter pageToken in the next list request. Subsequent list
24574	// requests will have their own nextPageToken to continue paging through
24575	// the results.
24576	NextPageToken string `json:"nextPageToken,omitempty"`
24577
24578	// SelfLink: [Output Only] Server-defined URL for this resource.
24579	SelfLink string `json:"selfLink,omitempty"`
24580
24581	// Unreachables: [Output Only] Unreachable resources.
24582	Unreachables []string `json:"unreachables,omitempty"`
24583
24584	// Warning: [Output Only] Informational warning message.
24585	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
24586
24587	// ServerResponse contains the HTTP response code and headers from the
24588	// server.
24589	googleapi.ServerResponse `json:"-"`
24590
24591	// ForceSendFields is a list of field names (e.g. "Id") to
24592	// unconditionally include in API requests. By default, fields with
24593	// empty or default values are omitted from API requests. However, any
24594	// non-pointer, non-interface field appearing in ForceSendFields will be
24595	// sent to the server regardless of whether the field is empty or not.
24596	// This may be used to include empty fields in Patch requests.
24597	ForceSendFields []string `json:"-"`
24598
24599	// NullFields is a list of field names (e.g. "Id") to include in API
24600	// requests with the JSON null value. By default, fields with empty
24601	// values are omitted from API requests. However, any field with an
24602	// empty value appearing in NullFields will be sent to the server as
24603	// null. It is an error if a field in this list has a non-empty value.
24604	// This may be used to include null fields in Patch requests.
24605	NullFields []string `json:"-"`
24606}
24607
24608func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
24609	type NoMethod NetworkEndpointGroupAggregatedList
24610	raw := NoMethod(*s)
24611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24612}
24613
24614// NetworkEndpointGroupAggregatedListWarning: [Output Only]
24615// Informational warning message.
24616type NetworkEndpointGroupAggregatedListWarning struct {
24617	// Code: [Output Only] A warning code, if applicable. For example,
24618	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24619	// the response.
24620	//
24621	// Possible values:
24622	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
24623	// changes made by a failed operation.
24624	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
24625	// created.
24626	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
24627	// resources has a type marked as deprecated
24628	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
24629	// that is larger than image size.
24630	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
24631	// resources has a type marked as experimental
24632	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
24633	// call
24634	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
24635	// overridden. Deprecated unused field.
24636	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
24637	// injected kernel, which is deprecated.
24638	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
24639	// exceedingly large number of resources
24640	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
24641	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
24642	// not assigned to an instance on the network.
24643	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
24644	// ip forward.
24645	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
24646	// refers to an instance that does not exist.
24647	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
24648	// URL refers to an instance that is not on the same network as the
24649	// route.
24650	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
24651	// have a status of RUNNING.
24652	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
24653	// continue the process despite the mentioned error.
24654	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
24655	// page.
24656	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
24657	// missing due to errors
24658	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
24659	// that requires a TOS they have not accepted.
24660	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
24661	// resource is in use.
24662	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
24663	// auto-delete could not be deleted because they were in use.
24664	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
24665	// ignored.
24666	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
24667	// instance group manager is valid as such, but its application does not
24668	// make a lot of sense, because it allows only single instance in
24669	// instance group.
24670	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
24671	// are present
24672	//   "UNREACHABLE" - A given scope cannot be reached.
24673	Code string `json:"code,omitempty"`
24674
24675	// Data: [Output Only] Metadata about this warning in key: value format.
24676	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
24677	// }
24678	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
24679
24680	// Message: [Output Only] A human-readable description of the warning
24681	// code.
24682	Message string `json:"message,omitempty"`
24683
24684	// ForceSendFields is a list of field names (e.g. "Code") to
24685	// unconditionally include in API requests. By default, fields with
24686	// empty or default values are omitted from API requests. However, any
24687	// non-pointer, non-interface field appearing in ForceSendFields will be
24688	// sent to the server regardless of whether the field is empty or not.
24689	// This may be used to include empty fields in Patch requests.
24690	ForceSendFields []string `json:"-"`
24691
24692	// NullFields is a list of field names (e.g. "Code") to include in API
24693	// requests with the JSON null value. By default, fields with empty
24694	// values are omitted from API requests. However, any field with an
24695	// empty value appearing in NullFields will be sent to the server as
24696	// null. It is an error if a field in this list has a non-empty value.
24697	// This may be used to include null fields in Patch requests.
24698	NullFields []string `json:"-"`
24699}
24700
24701func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24702	type NoMethod NetworkEndpointGroupAggregatedListWarning
24703	raw := NoMethod(*s)
24704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24705}
24706
24707type NetworkEndpointGroupAggregatedListWarningData struct {
24708	// Key: [Output Only] A key that provides more detail on the warning
24709	// being returned. For example, for warnings where there are no results
24710	// in a list request for a particular zone, this key might be scope and
24711	// the key value might be the zone name. Other examples might be a key
24712	// indicating a deprecated resource and a suggested replacement, or a
24713	// warning about invalid network settings (for example, if an instance
24714	// attempts to perform IP forwarding but is not enabled for IP
24715	// forwarding).
24716	Key string `json:"key,omitempty"`
24717
24718	// Value: [Output Only] A warning data value corresponding to the key.
24719	Value string `json:"value,omitempty"`
24720
24721	// ForceSendFields is a list of field names (e.g. "Key") to
24722	// unconditionally include in API requests. By default, fields with
24723	// empty or default values are omitted from API requests. However, any
24724	// non-pointer, non-interface field appearing in ForceSendFields will be
24725	// sent to the server regardless of whether the field is empty or not.
24726	// This may be used to include empty fields in Patch requests.
24727	ForceSendFields []string `json:"-"`
24728
24729	// NullFields is a list of field names (e.g. "Key") to include in API
24730	// requests with the JSON null value. By default, fields with empty
24731	// values are omitted from API requests. However, any field with an
24732	// empty value appearing in NullFields will be sent to the server as
24733	// null. It is an error if a field in this list has a non-empty value.
24734	// This may be used to include null fields in Patch requests.
24735	NullFields []string `json:"-"`
24736}
24737
24738func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24739	type NoMethod NetworkEndpointGroupAggregatedListWarningData
24740	raw := NoMethod(*s)
24741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24742}
24743
24744// NetworkEndpointGroupAppEngine: Configuration for an App Engine
24745// network endpoint group (NEG). The service is optional, may be
24746// provided explicitly or in the URL mask. The version is optional and
24747// can only be provided explicitly or in the URL mask when service is
24748// present. Note: App Engine service must be in the same project and
24749// located in the same region as the Serverless NEG.
24750type NetworkEndpointGroupAppEngine struct {
24751	// Service: Optional serving service. The service name is case-sensitive
24752	// and must be 1-63 characters long. Example value: "default",
24753	// "my-service".
24754	Service string `json:"service,omitempty"`
24755
24756	// UrlMask: A template to parse service and version fields from a
24757	// request URL. URL mask allows for routing to multiple App Engine
24758	// services without having to create multiple Network Endpoint Groups
24759	// and backend services. For example, the request URLs
24760	// "foo1-dot-appname.appspot.com/v1" and
24761	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
24762	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
24763	// mask will parse them to { service = "foo1", version = "v1" } and {
24764	// service = "foo1", version = "v2" } respectively.
24765	UrlMask string `json:"urlMask,omitempty"`
24766
24767	// Version: Optional serving version. The version name is case-sensitive
24768	// and must be 1-100 characters long. Example value: "v1", "v2".
24769	Version string `json:"version,omitempty"`
24770
24771	// ForceSendFields is a list of field names (e.g. "Service") to
24772	// unconditionally include in API requests. By default, fields with
24773	// empty or default values are omitted from API requests. However, any
24774	// non-pointer, non-interface field appearing in ForceSendFields will be
24775	// sent to the server regardless of whether the field is empty or not.
24776	// This may be used to include empty fields in Patch requests.
24777	ForceSendFields []string `json:"-"`
24778
24779	// NullFields is a list of field names (e.g. "Service") to include in
24780	// API requests with the JSON null value. By default, fields with empty
24781	// values are omitted from API requests. However, any field with an
24782	// empty value appearing in NullFields will be sent to the server as
24783	// null. It is an error if a field in this list has a non-empty value.
24784	// This may be used to include null fields in Patch requests.
24785	NullFields []string `json:"-"`
24786}
24787
24788func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
24789	type NoMethod NetworkEndpointGroupAppEngine
24790	raw := NoMethod(*s)
24791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24792}
24793
24794// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
24795// network endpoint group (NEG). The function must be provided
24796// explicitly or in the URL mask. Note: Cloud Function must be in the
24797// same project and located in the same region as the Serverless NEG.
24798type NetworkEndpointGroupCloudFunction struct {
24799	// Function: A user-defined name of the Cloud Function. The function
24800	// name is case-sensitive and must be 1-63 characters long. Example
24801	// value: "func1".
24802	Function string `json:"function,omitempty"`
24803
24804	// UrlMask: A template to parse function field from a request URL. URL
24805	// mask allows for routing to multiple Cloud Functions without having to
24806	// create multiple Network Endpoint Groups and backend services. For
24807	// example, request URLs " mydomain.com/function1" and
24808	// "mydomain.com/function2" can be backed by the same Serverless NEG
24809	// with URL mask "/". The URL mask will parse them to { function =
24810	// "function1" } and { function = "function2" } respectively.
24811	UrlMask string `json:"urlMask,omitempty"`
24812
24813	// ForceSendFields is a list of field names (e.g. "Function") to
24814	// unconditionally include in API requests. By default, fields with
24815	// empty or default values are omitted from API requests. However, any
24816	// non-pointer, non-interface field appearing in ForceSendFields will be
24817	// sent to the server regardless of whether the field is empty or not.
24818	// This may be used to include empty fields in Patch requests.
24819	ForceSendFields []string `json:"-"`
24820
24821	// NullFields is a list of field names (e.g. "Function") to include in
24822	// API requests with the JSON null value. By default, fields with empty
24823	// values are omitted from API requests. However, any field with an
24824	// empty value appearing in NullFields will be sent to the server as
24825	// null. It is an error if a field in this list has a non-empty value.
24826	// This may be used to include null fields in Patch requests.
24827	NullFields []string `json:"-"`
24828}
24829
24830func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
24831	type NoMethod NetworkEndpointGroupCloudFunction
24832	raw := NoMethod(*s)
24833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24834}
24835
24836// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
24837// endpoint group (NEG). The service must be provided explicitly or in
24838// the URL mask. The tag is optional, may be provided explicitly or in
24839// the URL mask. Note: Cloud Run service must be in the same project and
24840// located in the same region as the Serverless NEG.
24841type NetworkEndpointGroupCloudRun struct {
24842	// Service: Cloud Run service is the main resource of Cloud Run. The
24843	// service must be 1-63 characters long, and comply with RFC1035.
24844	// Example value: "run-service".
24845	Service string `json:"service,omitempty"`
24846
24847	// Tag: Optional Cloud Run tag represents the "named-revision" to
24848	// provide additional fine-grained traffic routing information. The tag
24849	// must be 1-63 characters long, and comply with RFC1035. Example value:
24850	// "revision-0010".
24851	Tag string `json:"tag,omitempty"`
24852
24853	// UrlMask: A template to parse service and tag fields from a request
24854	// URL. URL mask allows for routing to multiple Run services without
24855	// having to create multiple network endpoint groups and backend
24856	// services. For example, request URLs "foo1.domain.com/bar1" and
24857	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
24858	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
24859	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
24860	// tag="foo2" } respectively.
24861	UrlMask string `json:"urlMask,omitempty"`
24862
24863	// ForceSendFields is a list of field names (e.g. "Service") to
24864	// unconditionally include in API requests. By default, fields with
24865	// empty or default values are omitted from API requests. However, any
24866	// non-pointer, non-interface field appearing in ForceSendFields will be
24867	// sent to the server regardless of whether the field is empty or not.
24868	// This may be used to include empty fields in Patch requests.
24869	ForceSendFields []string `json:"-"`
24870
24871	// NullFields is a list of field names (e.g. "Service") to include in
24872	// API requests with the JSON null value. By default, fields with empty
24873	// values are omitted from API requests. However, any field with an
24874	// empty value appearing in NullFields will be sent to the server as
24875	// null. It is an error if a field in this list has a non-empty value.
24876	// This may be used to include null fields in Patch requests.
24877	NullFields []string `json:"-"`
24878}
24879
24880func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
24881	type NoMethod NetworkEndpointGroupCloudRun
24882	raw := NoMethod(*s)
24883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24884}
24885
24886type NetworkEndpointGroupList struct {
24887	// Id: [Output Only] Unique identifier for the resource; defined by the
24888	// server.
24889	Id string `json:"id,omitempty"`
24890
24891	// Items: A list of NetworkEndpointGroup resources.
24892	Items []*NetworkEndpointGroup `json:"items,omitempty"`
24893
24894	// Kind: [Output Only] The resource type, which is always
24895	// compute#networkEndpointGroupList for network endpoint group lists.
24896	Kind string `json:"kind,omitempty"`
24897
24898	// NextPageToken: [Output Only] This token allows you to get the next
24899	// page of results for list requests. If the number of results is larger
24900	// than maxResults, use the nextPageToken as a value for the query
24901	// parameter pageToken in the next list request. Subsequent list
24902	// requests will have their own nextPageToken to continue paging through
24903	// the results.
24904	NextPageToken string `json:"nextPageToken,omitempty"`
24905
24906	// SelfLink: [Output Only] Server-defined URL for this resource.
24907	SelfLink string `json:"selfLink,omitempty"`
24908
24909	// Warning: [Output Only] Informational warning message.
24910	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
24911
24912	// ServerResponse contains the HTTP response code and headers from the
24913	// server.
24914	googleapi.ServerResponse `json:"-"`
24915
24916	// ForceSendFields is a list of field names (e.g. "Id") to
24917	// unconditionally include in API requests. By default, fields with
24918	// empty or default values are omitted from API requests. However, any
24919	// non-pointer, non-interface field appearing in ForceSendFields will be
24920	// sent to the server regardless of whether the field is empty or not.
24921	// This may be used to include empty fields in Patch requests.
24922	ForceSendFields []string `json:"-"`
24923
24924	// NullFields is a list of field names (e.g. "Id") to include in API
24925	// requests with the JSON null value. By default, fields with empty
24926	// values are omitted from API requests. However, any field with an
24927	// empty value appearing in NullFields will be sent to the server as
24928	// null. It is an error if a field in this list has a non-empty value.
24929	// This may be used to include null fields in Patch requests.
24930	NullFields []string `json:"-"`
24931}
24932
24933func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
24934	type NoMethod NetworkEndpointGroupList
24935	raw := NoMethod(*s)
24936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24937}
24938
24939// NetworkEndpointGroupListWarning: [Output Only] Informational warning
24940// message.
24941type NetworkEndpointGroupListWarning struct {
24942	// Code: [Output Only] A warning code, if applicable. For example,
24943	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24944	// the response.
24945	//
24946	// Possible values:
24947	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
24948	// changes made by a failed operation.
24949	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
24950	// created.
24951	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
24952	// resources has a type marked as deprecated
24953	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
24954	// that is larger than image size.
24955	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
24956	// resources has a type marked as experimental
24957	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
24958	// call
24959	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
24960	// overridden. Deprecated unused field.
24961	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
24962	// injected kernel, which is deprecated.
24963	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
24964	// exceedingly large number of resources
24965	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
24966	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
24967	// not assigned to an instance on the network.
24968	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
24969	// ip forward.
24970	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
24971	// refers to an instance that does not exist.
24972	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
24973	// URL refers to an instance that is not on the same network as the
24974	// route.
24975	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
24976	// have a status of RUNNING.
24977	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
24978	// continue the process despite the mentioned error.
24979	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
24980	// page.
24981	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
24982	// missing due to errors
24983	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
24984	// that requires a TOS they have not accepted.
24985	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
24986	// resource is in use.
24987	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
24988	// auto-delete could not be deleted because they were in use.
24989	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
24990	// ignored.
24991	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
24992	// instance group manager is valid as such, but its application does not
24993	// make a lot of sense, because it allows only single instance in
24994	// instance group.
24995	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
24996	// are present
24997	//   "UNREACHABLE" - A given scope cannot be reached.
24998	Code string `json:"code,omitempty"`
24999
25000	// Data: [Output Only] Metadata about this warning in key: value format.
25001	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25002	// }
25003	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
25004
25005	// Message: [Output Only] A human-readable description of the warning
25006	// code.
25007	Message string `json:"message,omitempty"`
25008
25009	// ForceSendFields is a list of field names (e.g. "Code") to
25010	// unconditionally include in API requests. By default, fields with
25011	// empty or default values are omitted from API requests. However, any
25012	// non-pointer, non-interface field appearing in ForceSendFields will be
25013	// sent to the server regardless of whether the field is empty or not.
25014	// This may be used to include empty fields in Patch requests.
25015	ForceSendFields []string `json:"-"`
25016
25017	// NullFields is a list of field names (e.g. "Code") to include in API
25018	// requests with the JSON null value. By default, fields with empty
25019	// values are omitted from API requests. However, any field with an
25020	// empty value appearing in NullFields will be sent to the server as
25021	// null. It is an error if a field in this list has a non-empty value.
25022	// This may be used to include null fields in Patch requests.
25023	NullFields []string `json:"-"`
25024}
25025
25026func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
25027	type NoMethod NetworkEndpointGroupListWarning
25028	raw := NoMethod(*s)
25029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25030}
25031
25032type NetworkEndpointGroupListWarningData struct {
25033	// Key: [Output Only] A key that provides more detail on the warning
25034	// being returned. For example, for warnings where there are no results
25035	// in a list request for a particular zone, this key might be scope and
25036	// the key value might be the zone name. Other examples might be a key
25037	// indicating a deprecated resource and a suggested replacement, or a
25038	// warning about invalid network settings (for example, if an instance
25039	// attempts to perform IP forwarding but is not enabled for IP
25040	// forwarding).
25041	Key string `json:"key,omitempty"`
25042
25043	// Value: [Output Only] A warning data value corresponding to the key.
25044	Value string `json:"value,omitempty"`
25045
25046	// ForceSendFields is a list of field names (e.g. "Key") to
25047	// unconditionally include in API requests. By default, fields with
25048	// empty or default values are omitted from API requests. However, any
25049	// non-pointer, non-interface field appearing in ForceSendFields will be
25050	// sent to the server regardless of whether the field is empty or not.
25051	// This may be used to include empty fields in Patch requests.
25052	ForceSendFields []string `json:"-"`
25053
25054	// NullFields is a list of field names (e.g. "Key") to include in API
25055	// requests with the JSON null value. By default, fields with empty
25056	// values are omitted from API requests. However, any field with an
25057	// empty value appearing in NullFields will be sent to the server as
25058	// null. It is an error if a field in this list has a non-empty value.
25059	// This may be used to include null fields in Patch requests.
25060	NullFields []string `json:"-"`
25061}
25062
25063func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
25064	type NoMethod NetworkEndpointGroupListWarningData
25065	raw := NoMethod(*s)
25066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25067}
25068
25069type NetworkEndpointGroupsAttachEndpointsRequest struct {
25070	// NetworkEndpoints: The list of network endpoints to be attached.
25071	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25072
25073	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25074	// unconditionally include in API requests. By default, fields with
25075	// empty or default values are omitted from API requests. However, any
25076	// non-pointer, non-interface field appearing in ForceSendFields will be
25077	// sent to the server regardless of whether the field is empty or not.
25078	// This may be used to include empty fields in Patch requests.
25079	ForceSendFields []string `json:"-"`
25080
25081	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25082	// include in API requests with the JSON null value. By default, fields
25083	// with empty values are omitted from API requests. However, any field
25084	// with an empty value appearing in NullFields will be sent to the
25085	// server as null. It is an error if a field in this list has a
25086	// non-empty value. This may be used to include null fields in Patch
25087	// requests.
25088	NullFields []string `json:"-"`
25089}
25090
25091func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
25092	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
25093	raw := NoMethod(*s)
25094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25095}
25096
25097type NetworkEndpointGroupsDetachEndpointsRequest struct {
25098	// NetworkEndpoints: The list of network endpoints to be detached.
25099	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25100
25101	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25102	// unconditionally include in API requests. By default, fields with
25103	// empty or default values are omitted from API requests. However, any
25104	// non-pointer, non-interface field appearing in ForceSendFields will be
25105	// sent to the server regardless of whether the field is empty or not.
25106	// This may be used to include empty fields in Patch requests.
25107	ForceSendFields []string `json:"-"`
25108
25109	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25110	// include in API requests with the JSON null value. By default, fields
25111	// with empty values are omitted from API requests. However, any field
25112	// with an empty value appearing in NullFields will be sent to the
25113	// server as null. It is an error if a field in this list has a
25114	// non-empty value. This may be used to include null fields in Patch
25115	// requests.
25116	NullFields []string `json:"-"`
25117}
25118
25119func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
25120	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
25121	raw := NoMethod(*s)
25122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25123}
25124
25125type NetworkEndpointGroupsListEndpointsRequest struct {
25126	// HealthStatus: Optional query parameter for showing the health status
25127	// of each network endpoint. Valid options are SKIP or SHOW. If you
25128	// don't specify this parameter, the health status of network endpoints
25129	// will not be provided.
25130	//
25131	// Possible values:
25132	//   "SHOW" - Show the health status for each network endpoint. Impacts
25133	// latency of the call.
25134	//   "SKIP" - Health status for network endpoints will not be provided.
25135	HealthStatus string `json:"healthStatus,omitempty"`
25136
25137	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
25138	// unconditionally include in API requests. By default, fields with
25139	// empty or default values are omitted from API requests. However, any
25140	// non-pointer, non-interface field appearing in ForceSendFields will be
25141	// sent to the server regardless of whether the field is empty or not.
25142	// This may be used to include empty fields in Patch requests.
25143	ForceSendFields []string `json:"-"`
25144
25145	// NullFields is a list of field names (e.g. "HealthStatus") to include
25146	// in API requests with the JSON null value. By default, fields with
25147	// empty values are omitted from API requests. However, any field with
25148	// an empty value appearing in NullFields will be sent to the server as
25149	// null. It is an error if a field in this list has a non-empty value.
25150	// This may be used to include null fields in Patch requests.
25151	NullFields []string `json:"-"`
25152}
25153
25154func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
25155	type NoMethod NetworkEndpointGroupsListEndpointsRequest
25156	raw := NoMethod(*s)
25157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25158}
25159
25160type NetworkEndpointGroupsListNetworkEndpoints struct {
25161	// Id: [Output Only] Unique identifier for the resource; defined by the
25162	// server.
25163	Id string `json:"id,omitempty"`
25164
25165	// Items: A list of NetworkEndpointWithHealthStatus resources.
25166	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
25167
25168	// Kind: [Output Only] The resource type, which is always
25169	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
25170	// network endpoints in the specified network endpoint group.
25171	Kind string `json:"kind,omitempty"`
25172
25173	// NextPageToken: [Output Only] This token allows you to get the next
25174	// page of results for list requests. If the number of results is larger
25175	// than maxResults, use the nextPageToken as a value for the query
25176	// parameter pageToken in the next list request. Subsequent list
25177	// requests will have their own nextPageToken to continue paging through
25178	// the results.
25179	NextPageToken string `json:"nextPageToken,omitempty"`
25180
25181	// Warning: [Output Only] Informational warning message.
25182	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
25183
25184	// ServerResponse contains the HTTP response code and headers from the
25185	// server.
25186	googleapi.ServerResponse `json:"-"`
25187
25188	// ForceSendFields is a list of field names (e.g. "Id") to
25189	// unconditionally include in API requests. By default, fields with
25190	// empty or default values are omitted from API requests. However, any
25191	// non-pointer, non-interface field appearing in ForceSendFields will be
25192	// sent to the server regardless of whether the field is empty or not.
25193	// This may be used to include empty fields in Patch requests.
25194	ForceSendFields []string `json:"-"`
25195
25196	// NullFields is a list of field names (e.g. "Id") to include in API
25197	// requests with the JSON null value. By default, fields with empty
25198	// values are omitted from API requests. However, any field with an
25199	// empty value appearing in NullFields will be sent to the server as
25200	// null. It is an error if a field in this list has a non-empty value.
25201	// This may be used to include null fields in Patch requests.
25202	NullFields []string `json:"-"`
25203}
25204
25205func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
25206	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
25207	raw := NoMethod(*s)
25208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25209}
25210
25211// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
25212// Informational warning message.
25213type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
25214	// Code: [Output Only] A warning code, if applicable. For example,
25215	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25216	// the response.
25217	//
25218	// Possible values:
25219	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25220	// changes made by a failed operation.
25221	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25222	// created.
25223	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25224	// resources has a type marked as deprecated
25225	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25226	// that is larger than image size.
25227	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25228	// resources has a type marked as experimental
25229	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25230	// call
25231	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25232	// overridden. Deprecated unused field.
25233	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25234	// injected kernel, which is deprecated.
25235	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25236	// exceedingly large number of resources
25237	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25238	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25239	// not assigned to an instance on the network.
25240	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25241	// ip forward.
25242	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25243	// refers to an instance that does not exist.
25244	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25245	// URL refers to an instance that is not on the same network as the
25246	// route.
25247	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25248	// have a status of RUNNING.
25249	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25250	// continue the process despite the mentioned error.
25251	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25252	// page.
25253	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25254	// missing due to errors
25255	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25256	// that requires a TOS they have not accepted.
25257	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25258	// resource is in use.
25259	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25260	// auto-delete could not be deleted because they were in use.
25261	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25262	// ignored.
25263	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25264	// instance group manager is valid as such, but its application does not
25265	// make a lot of sense, because it allows only single instance in
25266	// instance group.
25267	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25268	// are present
25269	//   "UNREACHABLE" - A given scope cannot be reached.
25270	Code string `json:"code,omitempty"`
25271
25272	// Data: [Output Only] Metadata about this warning in key: value format.
25273	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25274	// }
25275	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
25276
25277	// Message: [Output Only] A human-readable description of the warning
25278	// code.
25279	Message string `json:"message,omitempty"`
25280
25281	// ForceSendFields is a list of field names (e.g. "Code") to
25282	// unconditionally include in API requests. By default, fields with
25283	// empty or default values are omitted from API requests. However, any
25284	// non-pointer, non-interface field appearing in ForceSendFields will be
25285	// sent to the server regardless of whether the field is empty or not.
25286	// This may be used to include empty fields in Patch requests.
25287	ForceSendFields []string `json:"-"`
25288
25289	// NullFields is a list of field names (e.g. "Code") to include in API
25290	// requests with the JSON null value. By default, fields with empty
25291	// values are omitted from API requests. However, any field with an
25292	// empty value appearing in NullFields will be sent to the server as
25293	// null. It is an error if a field in this list has a non-empty value.
25294	// This may be used to include null fields in Patch requests.
25295	NullFields []string `json:"-"`
25296}
25297
25298func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
25299	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
25300	raw := NoMethod(*s)
25301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25302}
25303
25304type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
25305	// Key: [Output Only] A key that provides more detail on the warning
25306	// being returned. For example, for warnings where there are no results
25307	// in a list request for a particular zone, this key might be scope and
25308	// the key value might be the zone name. Other examples might be a key
25309	// indicating a deprecated resource and a suggested replacement, or a
25310	// warning about invalid network settings (for example, if an instance
25311	// attempts to perform IP forwarding but is not enabled for IP
25312	// forwarding).
25313	Key string `json:"key,omitempty"`
25314
25315	// Value: [Output Only] A warning data value corresponding to the key.
25316	Value string `json:"value,omitempty"`
25317
25318	// ForceSendFields is a list of field names (e.g. "Key") to
25319	// unconditionally include in API requests. By default, fields with
25320	// empty or default values are omitted from API requests. However, any
25321	// non-pointer, non-interface field appearing in ForceSendFields will be
25322	// sent to the server regardless of whether the field is empty or not.
25323	// This may be used to include empty fields in Patch requests.
25324	ForceSendFields []string `json:"-"`
25325
25326	// NullFields is a list of field names (e.g. "Key") to include in API
25327	// requests with the JSON null value. By default, fields with empty
25328	// values are omitted from API requests. However, any field with an
25329	// empty value appearing in NullFields will be sent to the server as
25330	// null. It is an error if a field in this list has a non-empty value.
25331	// This may be used to include null fields in Patch requests.
25332	NullFields []string `json:"-"`
25333}
25334
25335func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
25336	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
25337	raw := NoMethod(*s)
25338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25339}
25340
25341type NetworkEndpointGroupsScopedList struct {
25342	// NetworkEndpointGroups: [Output Only] The list of network endpoint
25343	// groups that are contained in this scope.
25344	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
25345
25346	// Warning: [Output Only] An informational warning that replaces the
25347	// list of network endpoint groups when the list is empty.
25348	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
25349
25350	// ForceSendFields is a list of field names (e.g.
25351	// "NetworkEndpointGroups") to unconditionally include in API requests.
25352	// By default, fields with empty or default values are omitted from API
25353	// requests. However, any non-pointer, non-interface field appearing in
25354	// ForceSendFields will be sent to the server regardless of whether the
25355	// field is empty or not. This may be used to include empty fields in
25356	// Patch requests.
25357	ForceSendFields []string `json:"-"`
25358
25359	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
25360	// include in API requests with the JSON null value. By default, fields
25361	// with empty values are omitted from API requests. However, any field
25362	// with an empty value appearing in NullFields will be sent to the
25363	// server as null. It is an error if a field in this list has a
25364	// non-empty value. This may be used to include null fields in Patch
25365	// requests.
25366	NullFields []string `json:"-"`
25367}
25368
25369func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
25370	type NoMethod NetworkEndpointGroupsScopedList
25371	raw := NoMethod(*s)
25372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25373}
25374
25375// NetworkEndpointGroupsScopedListWarning: [Output Only] An
25376// informational warning that replaces the list of network endpoint
25377// groups when the list is empty.
25378type NetworkEndpointGroupsScopedListWarning struct {
25379	// Code: [Output Only] A warning code, if applicable. For example,
25380	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25381	// the response.
25382	//
25383	// Possible values:
25384	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25385	// changes made by a failed operation.
25386	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25387	// created.
25388	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25389	// resources has a type marked as deprecated
25390	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25391	// that is larger than image size.
25392	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25393	// resources has a type marked as experimental
25394	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25395	// call
25396	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25397	// overridden. Deprecated unused field.
25398	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25399	// injected kernel, which is deprecated.
25400	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25401	// exceedingly large number of resources
25402	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25403	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25404	// not assigned to an instance on the network.
25405	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25406	// ip forward.
25407	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25408	// refers to an instance that does not exist.
25409	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25410	// URL refers to an instance that is not on the same network as the
25411	// route.
25412	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25413	// have a status of RUNNING.
25414	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25415	// continue the process despite the mentioned error.
25416	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25417	// page.
25418	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25419	// missing due to errors
25420	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25421	// that requires a TOS they have not accepted.
25422	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25423	// resource is in use.
25424	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25425	// auto-delete could not be deleted because they were in use.
25426	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25427	// ignored.
25428	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25429	// instance group manager is valid as such, but its application does not
25430	// make a lot of sense, because it allows only single instance in
25431	// instance group.
25432	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25433	// are present
25434	//   "UNREACHABLE" - A given scope cannot be reached.
25435	Code string `json:"code,omitempty"`
25436
25437	// Data: [Output Only] Metadata about this warning in key: value format.
25438	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25439	// }
25440	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
25441
25442	// Message: [Output Only] A human-readable description of the warning
25443	// code.
25444	Message string `json:"message,omitempty"`
25445
25446	// ForceSendFields is a list of field names (e.g. "Code") to
25447	// unconditionally include in API requests. By default, fields with
25448	// empty or default values are omitted from API requests. However, any
25449	// non-pointer, non-interface field appearing in ForceSendFields will be
25450	// sent to the server regardless of whether the field is empty or not.
25451	// This may be used to include empty fields in Patch requests.
25452	ForceSendFields []string `json:"-"`
25453
25454	// NullFields is a list of field names (e.g. "Code") to include in API
25455	// requests with the JSON null value. By default, fields with empty
25456	// values are omitted from API requests. However, any field with an
25457	// empty value appearing in NullFields will be sent to the server as
25458	// null. It is an error if a field in this list has a non-empty value.
25459	// This may be used to include null fields in Patch requests.
25460	NullFields []string `json:"-"`
25461}
25462
25463func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25464	type NoMethod NetworkEndpointGroupsScopedListWarning
25465	raw := NoMethod(*s)
25466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25467}
25468
25469type NetworkEndpointGroupsScopedListWarningData struct {
25470	// Key: [Output Only] A key that provides more detail on the warning
25471	// being returned. For example, for warnings where there are no results
25472	// in a list request for a particular zone, this key might be scope and
25473	// the key value might be the zone name. Other examples might be a key
25474	// indicating a deprecated resource and a suggested replacement, or a
25475	// warning about invalid network settings (for example, if an instance
25476	// attempts to perform IP forwarding but is not enabled for IP
25477	// forwarding).
25478	Key string `json:"key,omitempty"`
25479
25480	// Value: [Output Only] A warning data value corresponding to the key.
25481	Value string `json:"value,omitempty"`
25482
25483	// ForceSendFields is a list of field names (e.g. "Key") to
25484	// unconditionally include in API requests. By default, fields with
25485	// empty or default values are omitted from API requests. However, any
25486	// non-pointer, non-interface field appearing in ForceSendFields will be
25487	// sent to the server regardless of whether the field is empty or not.
25488	// This may be used to include empty fields in Patch requests.
25489	ForceSendFields []string `json:"-"`
25490
25491	// NullFields is a list of field names (e.g. "Key") to include in API
25492	// requests with the JSON null value. By default, fields with empty
25493	// values are omitted from API requests. However, any field with an
25494	// empty value appearing in NullFields will be sent to the server as
25495	// null. It is an error if a field in this list has a non-empty value.
25496	// This may be used to include null fields in Patch requests.
25497	NullFields []string `json:"-"`
25498}
25499
25500func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25501	type NoMethod NetworkEndpointGroupsScopedListWarningData
25502	raw := NoMethod(*s)
25503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25504}
25505
25506type NetworkEndpointWithHealthStatus struct {
25507	// Healths: [Output only] The health status of network endpoint;
25508	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
25509
25510	// NetworkEndpoint: [Output only] The network endpoint;
25511	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25512
25513	// ForceSendFields is a list of field names (e.g. "Healths") to
25514	// unconditionally include in API requests. By default, fields with
25515	// empty or default values are omitted from API requests. However, any
25516	// non-pointer, non-interface field appearing in ForceSendFields will be
25517	// sent to the server regardless of whether the field is empty or not.
25518	// This may be used to include empty fields in Patch requests.
25519	ForceSendFields []string `json:"-"`
25520
25521	// NullFields is a list of field names (e.g. "Healths") to include in
25522	// API requests with the JSON null value. By default, fields with empty
25523	// values are omitted from API requests. However, any field with an
25524	// empty value appearing in NullFields will be sent to the server as
25525	// null. It is an error if a field in this list has a non-empty value.
25526	// This may be used to include null fields in Patch requests.
25527	NullFields []string `json:"-"`
25528}
25529
25530func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
25531	type NoMethod NetworkEndpointWithHealthStatus
25532	raw := NoMethod(*s)
25533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25534}
25535
25536// NetworkInterface: A network interface resource attached to an
25537// instance.
25538type NetworkInterface struct {
25539	// AccessConfigs: An array of configurations for this interface.
25540	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
25541	// there are no accessConfigs specified, then this instance will have no
25542	// external internet access.
25543	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
25544
25545	// AliasIpRanges: An array of alias IP ranges for this network
25546	// interface. You can only specify this field for network interfaces in
25547	// VPC networks.
25548	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
25549
25550	// Fingerprint: Fingerprint hash of contents stored in this network
25551	// interface. This field will be ignored when inserting an Instance or
25552	// adding a NetworkInterface. An up-to-date fingerprint must be provided
25553	// in order to update the NetworkInterface. The request will fail with
25554	// error 400 Bad Request if the fingerprint is not provided, or 412
25555	// Precondition Failed if the fingerprint is out of date.
25556	Fingerprint string `json:"fingerprint,omitempty"`
25557
25558	// Ipv6AccessConfigs: An array of IPv6 access configurations for this
25559	// interface. Currently, only one IPv6 access config, DIRECT_IPV6, is
25560	// supported. If there is no ipv6AccessConfig specified, then this
25561	// instance will have no external IPv6 Internet access.
25562	Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"`
25563
25564	// Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate
25565	// whether the IP can be accessed from the Internet. This field is
25566	// always inherited from its subnetwork. Valid only if stackType is
25567	// IPV4_IPV6.
25568	//
25569	// Possible values:
25570	//   "EXTERNAL" - This network interface can have external IPv6.
25571	//   "UNSPECIFIED_IPV6_ACCESS_TYPE" - IPv6 access type not set. Means
25572	// this network interface hasn't been turned on IPv6 yet.
25573	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
25574
25575	// Ipv6Address: [Output Only] An IPv6 internal network address for this
25576	// network interface.
25577	Ipv6Address string `json:"ipv6Address,omitempty"`
25578
25579	// Kind: [Output Only] Type of the resource. Always
25580	// compute#networkInterface for network interfaces.
25581	Kind string `json:"kind,omitempty"`
25582
25583	// Name: [Output Only] The name of the network interface, which is
25584	// generated by the server. For network devices, these are eth0, eth1,
25585	// etc.
25586	Name string `json:"name,omitempty"`
25587
25588	// Network: URL of the network resource for this instance. When creating
25589	// an instance, if neither the network nor the subnetwork is specified,
25590	// the default network global/networks/default is used; if the network
25591	// is not specified but the subnetwork is specified, the network is
25592	// inferred. If you specify this property, you can specify the network
25593	// as a full or partial URL. For example, the following are all valid
25594	// URLs: -
25595	// https://www.googleapis.com/compute/v1/projects/project/global/networks/
25596	// network - projects/project/global/networks/network -
25597	// global/networks/default
25598	Network string `json:"network,omitempty"`
25599
25600	// NetworkIP: An IPv4 internal IP address to assign to the instance for
25601	// this network interface. If not specified by the user, an unused
25602	// internal IP is assigned by the system.
25603	NetworkIP string `json:"networkIP,omitempty"`
25604
25605	// NicType: The type of vNIC to be used on this interface. This may be
25606	// gVNIC or VirtioNet.
25607	//
25608	// Possible values:
25609	//   "GVNIC" - GVNIC
25610	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
25611	//   "VIRTIO_NET" - VIRTIO
25612	NicType string `json:"nicType,omitempty"`
25613
25614	// QueueCount: The networking queue count that's specified by users for
25615	// the network interface. Both Rx and Tx queues will be set to this
25616	// number. It'll be empty if not specified by the users.
25617	QueueCount int64 `json:"queueCount,omitempty"`
25618
25619	// StackType: The stack type for this network interface to identify
25620	// whether the IPv6 feature is enabled or not. If not specified,
25621	// IPV4_ONLY will be used. This field can be both set at instance
25622	// creation and update network interface operations.
25623	//
25624	// Possible values:
25625	//   "IPV4_IPV6" - The network interface can have both IPv4 and IPv6
25626	// addresses.
25627	//   "IPV4_ONLY" - The network interface will be assigned IPv4 address.
25628	//   "UNSPECIFIED_STACK_TYPE"
25629	StackType string `json:"stackType,omitempty"`
25630
25631	// Subnetwork: The URL of the Subnetwork resource for this instance. If
25632	// the network resource is in legacy mode, do not specify this field. If
25633	// the network is in auto subnet mode, specifying the subnetwork is
25634	// optional. If the network is in custom subnet mode, specifying the
25635	// subnetwork is required. If you specify this field, you can specify
25636	// the subnetwork as a full or partial URL. For example, the following
25637	// are all valid URLs: -
25638	// https://www.googleapis.com/compute/v1/projects/project/regions/region
25639	// /subnetworks/subnetwork - regions/region/subnetworks/subnetwork
25640	Subnetwork string `json:"subnetwork,omitempty"`
25641
25642	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
25643	// unconditionally include in API requests. By default, fields with
25644	// empty or default values are omitted from API requests. However, any
25645	// non-pointer, non-interface field appearing in ForceSendFields will be
25646	// sent to the server regardless of whether the field is empty or not.
25647	// This may be used to include empty fields in Patch requests.
25648	ForceSendFields []string `json:"-"`
25649
25650	// NullFields is a list of field names (e.g. "AccessConfigs") to include
25651	// in API requests with the JSON null value. By default, fields with
25652	// empty values are omitted from API requests. However, any field with
25653	// an empty value appearing in NullFields will be sent to the server as
25654	// null. It is an error if a field in this list has a non-empty value.
25655	// This may be used to include null fields in Patch requests.
25656	NullFields []string `json:"-"`
25657}
25658
25659func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
25660	type NoMethod NetworkInterface
25661	raw := NoMethod(*s)
25662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25663}
25664
25665// NetworkList: Contains a list of networks.
25666type NetworkList struct {
25667	// Id: [Output Only] Unique identifier for the resource; defined by the
25668	// server.
25669	Id string `json:"id,omitempty"`
25670
25671	// Items: A list of Network resources.
25672	Items []*Network `json:"items,omitempty"`
25673
25674	// Kind: [Output Only] Type of resource. Always compute#networkList for
25675	// lists of networks.
25676	Kind string `json:"kind,omitempty"`
25677
25678	// NextPageToken: [Output Only] This token allows you to get the next
25679	// page of results for list requests. If the number of results is larger
25680	// than maxResults, use the nextPageToken as a value for the query
25681	// parameter pageToken in the next list request. Subsequent list
25682	// requests will have their own nextPageToken to continue paging through
25683	// the results.
25684	NextPageToken string `json:"nextPageToken,omitempty"`
25685
25686	// SelfLink: [Output Only] Server-defined URL for this resource.
25687	SelfLink string `json:"selfLink,omitempty"`
25688
25689	// Warning: [Output Only] Informational warning message.
25690	Warning *NetworkListWarning `json:"warning,omitempty"`
25691
25692	// ServerResponse contains the HTTP response code and headers from the
25693	// server.
25694	googleapi.ServerResponse `json:"-"`
25695
25696	// ForceSendFields is a list of field names (e.g. "Id") to
25697	// unconditionally include in API requests. By default, fields with
25698	// empty or default values are omitted from API requests. However, any
25699	// non-pointer, non-interface field appearing in ForceSendFields will be
25700	// sent to the server regardless of whether the field is empty or not.
25701	// This may be used to include empty fields in Patch requests.
25702	ForceSendFields []string `json:"-"`
25703
25704	// NullFields is a list of field names (e.g. "Id") to include in API
25705	// requests with the JSON null value. By default, fields with empty
25706	// values are omitted from API requests. However, any field with an
25707	// empty value appearing in NullFields will be sent to the server as
25708	// null. It is an error if a field in this list has a non-empty value.
25709	// This may be used to include null fields in Patch requests.
25710	NullFields []string `json:"-"`
25711}
25712
25713func (s *NetworkList) MarshalJSON() ([]byte, error) {
25714	type NoMethod NetworkList
25715	raw := NoMethod(*s)
25716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25717}
25718
25719// NetworkListWarning: [Output Only] Informational warning message.
25720type NetworkListWarning struct {
25721	// Code: [Output Only] A warning code, if applicable. For example,
25722	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25723	// the response.
25724	//
25725	// Possible values:
25726	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25727	// changes made by a failed operation.
25728	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25729	// created.
25730	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25731	// resources has a type marked as deprecated
25732	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25733	// that is larger than image size.
25734	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25735	// resources has a type marked as experimental
25736	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25737	// call
25738	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25739	// overridden. Deprecated unused field.
25740	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25741	// injected kernel, which is deprecated.
25742	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25743	// exceedingly large number of resources
25744	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25745	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25746	// not assigned to an instance on the network.
25747	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25748	// ip forward.
25749	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25750	// refers to an instance that does not exist.
25751	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25752	// URL refers to an instance that is not on the same network as the
25753	// route.
25754	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25755	// have a status of RUNNING.
25756	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25757	// continue the process despite the mentioned error.
25758	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25759	// page.
25760	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25761	// missing due to errors
25762	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25763	// that requires a TOS they have not accepted.
25764	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25765	// resource is in use.
25766	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25767	// auto-delete could not be deleted because they were in use.
25768	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25769	// ignored.
25770	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25771	// instance group manager is valid as such, but its application does not
25772	// make a lot of sense, because it allows only single instance in
25773	// instance group.
25774	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25775	// are present
25776	//   "UNREACHABLE" - A given scope cannot be reached.
25777	Code string `json:"code,omitempty"`
25778
25779	// Data: [Output Only] Metadata about this warning in key: value format.
25780	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25781	// }
25782	Data []*NetworkListWarningData `json:"data,omitempty"`
25783
25784	// Message: [Output Only] A human-readable description of the warning
25785	// code.
25786	Message string `json:"message,omitempty"`
25787
25788	// ForceSendFields is a list of field names (e.g. "Code") to
25789	// unconditionally include in API requests. By default, fields with
25790	// empty or default values are omitted from API requests. However, any
25791	// non-pointer, non-interface field appearing in ForceSendFields will be
25792	// sent to the server regardless of whether the field is empty or not.
25793	// This may be used to include empty fields in Patch requests.
25794	ForceSendFields []string `json:"-"`
25795
25796	// NullFields is a list of field names (e.g. "Code") to include in API
25797	// requests with the JSON null value. By default, fields with empty
25798	// values are omitted from API requests. However, any field with an
25799	// empty value appearing in NullFields will be sent to the server as
25800	// null. It is an error if a field in this list has a non-empty value.
25801	// This may be used to include null fields in Patch requests.
25802	NullFields []string `json:"-"`
25803}
25804
25805func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
25806	type NoMethod NetworkListWarning
25807	raw := NoMethod(*s)
25808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25809}
25810
25811type NetworkListWarningData struct {
25812	// Key: [Output Only] A key that provides more detail on the warning
25813	// being returned. For example, for warnings where there are no results
25814	// in a list request for a particular zone, this key might be scope and
25815	// the key value might be the zone name. Other examples might be a key
25816	// indicating a deprecated resource and a suggested replacement, or a
25817	// warning about invalid network settings (for example, if an instance
25818	// attempts to perform IP forwarding but is not enabled for IP
25819	// forwarding).
25820	Key string `json:"key,omitempty"`
25821
25822	// Value: [Output Only] A warning data value corresponding to the key.
25823	Value string `json:"value,omitempty"`
25824
25825	// ForceSendFields is a list of field names (e.g. "Key") to
25826	// unconditionally include in API requests. By default, fields with
25827	// empty or default values are omitted from API requests. However, any
25828	// non-pointer, non-interface field appearing in ForceSendFields will be
25829	// sent to the server regardless of whether the field is empty or not.
25830	// This may be used to include empty fields in Patch requests.
25831	ForceSendFields []string `json:"-"`
25832
25833	// NullFields is a list of field names (e.g. "Key") to include in API
25834	// requests with the JSON null value. By default, fields with empty
25835	// values are omitted from API requests. However, any field with an
25836	// empty value appearing in NullFields will be sent to the server as
25837	// null. It is an error if a field in this list has a non-empty value.
25838	// This may be used to include null fields in Patch requests.
25839	NullFields []string `json:"-"`
25840}
25841
25842func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
25843	type NoMethod NetworkListWarningData
25844	raw := NoMethod(*s)
25845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25846}
25847
25848// NetworkPeering: A network peering attached to a network resource. The
25849// message includes the peering name, peer network, peering state, and a
25850// flag indicating whether Google Compute Engine should automatically
25851// create routes for the peering.
25852type NetworkPeering struct {
25853	// AutoCreateRoutes: This field will be deprecated soon. Use the
25854	// exchange_subnet_routes field instead. Indicates whether full mesh
25855	// connectivity is created and managed automatically between peered
25856	// networks. Currently this field should always be true since Google
25857	// Compute Engine will automatically create and manage subnetwork routes
25858	// between two networks when peering state is ACTIVE.
25859	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25860
25861	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
25862	// created and managed automatically between peered networks. Currently
25863	// this field should always be true since Google Compute Engine will
25864	// automatically create and manage subnetwork routes between two
25865	// networks when peering state is ACTIVE.
25866	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
25867
25868	// ExportCustomRoutes: Whether to export the custom routes to peer
25869	// network.
25870	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25871
25872	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25873	// range are exported. The default value is true, all subnet routes are
25874	// exported. IPv4 special-use ranges are always exported to peers and
25875	// are not controlled by this field.
25876	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
25877
25878	// ImportCustomRoutes: Whether to import the custom routes from peer
25879	// network.
25880	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25881
25882	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25883	// range are imported. The default value is false. IPv4 special-use
25884	// ranges are always imported from peers and are not controlled by this
25885	// field.
25886	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
25887
25888	// Name: Name of this peering. Provided by the client when the peering
25889	// is created. The name must comply with RFC1035. Specifically, the name
25890	// must be 1-63 characters long and match regular expression
25891	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
25892	// letter, and all the following characters must be a dash, lowercase
25893	// letter, or digit, except the last character, which cannot be a dash.
25894	Name string `json:"name,omitempty"`
25895
25896	// Network: The URL of the peer network. It can be either full URL or
25897	// partial URL. The peer network may belong to a different project. If
25898	// the partial URL does not contain project, it is assumed that the peer
25899	// network is in the same project as the current network.
25900	Network string `json:"network,omitempty"`
25901
25902	// PeerMtu: Maximum Transmission Unit in bytes.
25903	PeerMtu int64 `json:"peerMtu,omitempty"`
25904
25905	// State: [Output Only] State for the peering, either `ACTIVE` or
25906	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
25907	// configuration in the peer network.
25908	//
25909	// Possible values:
25910	//   "ACTIVE" - Matching configuration exists on the peer.
25911	//   "INACTIVE" - There is no matching configuration on the peer,
25912	// including the case when peer does not exist.
25913	State string `json:"state,omitempty"`
25914
25915	// StateDetails: [Output Only] Details about the current state of the
25916	// peering.
25917	StateDetails string `json:"stateDetails,omitempty"`
25918
25919	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25920	// unconditionally include in API requests. By default, fields with
25921	// empty or default values are omitted from API requests. However, any
25922	// non-pointer, non-interface field appearing in ForceSendFields will be
25923	// sent to the server regardless of whether the field is empty or not.
25924	// This may be used to include empty fields in Patch requests.
25925	ForceSendFields []string `json:"-"`
25926
25927	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25928	// include in API requests with the JSON null value. By default, fields
25929	// with empty values are omitted from API requests. However, any field
25930	// with an empty value appearing in NullFields will be sent to the
25931	// server as null. It is an error if a field in this list has a
25932	// non-empty value. This may be used to include null fields in Patch
25933	// requests.
25934	NullFields []string `json:"-"`
25935}
25936
25937func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
25938	type NoMethod NetworkPeering
25939	raw := NoMethod(*s)
25940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25941}
25942
25943// NetworkRoutingConfig: A routing configuration attached to a network
25944// resource. The message includes the list of routers associated with
25945// the network, and a flag indicating the type of routing behavior to
25946// enforce network-wide.
25947type NetworkRoutingConfig struct {
25948	// RoutingMode: The network-wide routing mode to use. If set to
25949	// REGIONAL, this network's Cloud Routers will only advertise routes
25950	// with subnets of this network in the same region as the router. If set
25951	// to GLOBAL, this network's Cloud Routers will advertise routes with
25952	// all subnets of this network, across regions.
25953	//
25954	// Possible values:
25955	//   "GLOBAL"
25956	//   "REGIONAL"
25957	RoutingMode string `json:"routingMode,omitempty"`
25958
25959	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
25960	// unconditionally include in API requests. By default, fields with
25961	// empty or default values are omitted from API requests. However, any
25962	// non-pointer, non-interface field appearing in ForceSendFields will be
25963	// sent to the server regardless of whether the field is empty or not.
25964	// This may be used to include empty fields in Patch requests.
25965	ForceSendFields []string `json:"-"`
25966
25967	// NullFields is a list of field names (e.g. "RoutingMode") to include
25968	// in API requests with the JSON null value. By default, fields with
25969	// empty values are omitted from API requests. However, any field with
25970	// an empty value appearing in NullFields will be sent to the server as
25971	// null. It is an error if a field in this list has a non-empty value.
25972	// This may be used to include null fields in Patch requests.
25973	NullFields []string `json:"-"`
25974}
25975
25976func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
25977	type NoMethod NetworkRoutingConfig
25978	raw := NoMethod(*s)
25979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25980}
25981
25982type NetworksAddPeeringRequest struct {
25983	// AutoCreateRoutes: This field will be deprecated soon. Use
25984	// exchange_subnet_routes in network_peering instead. Indicates whether
25985	// full mesh connectivity is created and managed automatically between
25986	// peered networks. Currently this field should always be true since
25987	// Google Compute Engine will automatically create and manage subnetwork
25988	// routes between two networks when peering state is ACTIVE.
25989	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25990
25991	// Name: Name of the peering, which should conform to RFC1035.
25992	Name string `json:"name,omitempty"`
25993
25994	// NetworkPeering: Network peering parameters. In order to specify route
25995	// policies for peering using import and export custom routes, you must
25996	// specify all peering related parameters (name, peer network,
25997	// exchange_subnet_routes) in the network_peering field. The
25998	// corresponding fields in NetworksAddPeeringRequest will be deprecated
25999	// soon.
26000	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
26001
26002	// PeerNetwork: URL of the peer network. It can be either full URL or
26003	// partial URL. The peer network may belong to a different project. If
26004	// the partial URL does not contain project, it is assumed that the peer
26005	// network is in the same project as the current network.
26006	PeerNetwork string `json:"peerNetwork,omitempty"`
26007
26008	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
26009	// unconditionally include in API requests. By default, fields with
26010	// empty or default values are omitted from API requests. However, any
26011	// non-pointer, non-interface field appearing in ForceSendFields will be
26012	// sent to the server regardless of whether the field is empty or not.
26013	// This may be used to include empty fields in Patch requests.
26014	ForceSendFields []string `json:"-"`
26015
26016	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
26017	// include in API requests with the JSON null value. By default, fields
26018	// with empty values are omitted from API requests. However, any field
26019	// with an empty value appearing in NullFields will be sent to the
26020	// server as null. It is an error if a field in this list has a
26021	// non-empty value. This may be used to include null fields in Patch
26022	// requests.
26023	NullFields []string `json:"-"`
26024}
26025
26026func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
26027	type NoMethod NetworksAddPeeringRequest
26028	raw := NoMethod(*s)
26029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26030}
26031
26032type NetworksGetEffectiveFirewallsResponse struct {
26033	// FirewallPolicys: Effective firewalls from firewall policy.
26034	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
26035
26036	// Firewalls: Effective firewalls on the network.
26037	Firewalls []*Firewall `json:"firewalls,omitempty"`
26038
26039	// ServerResponse contains the HTTP response code and headers from the
26040	// server.
26041	googleapi.ServerResponse `json:"-"`
26042
26043	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
26044	// unconditionally include in API requests. By default, fields with
26045	// empty or default values are omitted from API requests. However, any
26046	// non-pointer, non-interface field appearing in ForceSendFields will be
26047	// sent to the server regardless of whether the field is empty or not.
26048	// This may be used to include empty fields in Patch requests.
26049	ForceSendFields []string `json:"-"`
26050
26051	// NullFields is a list of field names (e.g. "FirewallPolicys") to
26052	// include in API requests with the JSON null value. By default, fields
26053	// with empty values are omitted from API requests. However, any field
26054	// with an empty value appearing in NullFields will be sent to the
26055	// server as null. It is an error if a field in this list has a
26056	// non-empty value. This may be used to include null fields in Patch
26057	// requests.
26058	NullFields []string `json:"-"`
26059}
26060
26061func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
26062	type NoMethod NetworksGetEffectiveFirewallsResponse
26063	raw := NoMethod(*s)
26064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26065}
26066
26067type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
26068	// DisplayName: [Output Only] Deprecated, please use short name instead.
26069	// The display name of the firewall policy.
26070	DisplayName string `json:"displayName,omitempty"`
26071
26072	// Name: [Output Only] The name of the firewall policy.
26073	Name string `json:"name,omitempty"`
26074
26075	// Rules: The rules that apply to the network.
26076	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
26077
26078	// ShortName: [Output Only] The short name of the firewall policy.
26079	ShortName string `json:"shortName,omitempty"`
26080
26081	// Type: [Output Only] The type of the firewall policy.
26082	//
26083	// Possible values:
26084	//   "HIERARCHY"
26085	//   "NETWORK"
26086	//   "UNSPECIFIED"
26087	Type string `json:"type,omitempty"`
26088
26089	// ForceSendFields is a list of field names (e.g. "DisplayName") to
26090	// unconditionally include in API requests. By default, fields with
26091	// empty or default values are omitted from API requests. However, any
26092	// non-pointer, non-interface field appearing in ForceSendFields will be
26093	// sent to the server regardless of whether the field is empty or not.
26094	// This may be used to include empty fields in Patch requests.
26095	ForceSendFields []string `json:"-"`
26096
26097	// NullFields is a list of field names (e.g. "DisplayName") to include
26098	// in API requests with the JSON null value. By default, fields with
26099	// empty values are omitted from API requests. However, any field with
26100	// an empty value appearing in NullFields will be sent to the server as
26101	// null. It is an error if a field in this list has a non-empty value.
26102	// This may be used to include null fields in Patch requests.
26103	NullFields []string `json:"-"`
26104}
26105
26106func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
26107	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
26108	raw := NoMethod(*s)
26109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26110}
26111
26112type NetworksRemovePeeringRequest struct {
26113	// Name: Name of the peering, which should conform to RFC1035.
26114	Name string `json:"name,omitempty"`
26115
26116	// ForceSendFields is a list of field names (e.g. "Name") to
26117	// unconditionally include in API requests. By default, fields with
26118	// empty or default values are omitted from API requests. However, any
26119	// non-pointer, non-interface field appearing in ForceSendFields will be
26120	// sent to the server regardless of whether the field is empty or not.
26121	// This may be used to include empty fields in Patch requests.
26122	ForceSendFields []string `json:"-"`
26123
26124	// NullFields is a list of field names (e.g. "Name") to include in API
26125	// requests with the JSON null value. By default, fields with empty
26126	// values are omitted from API requests. However, any field with an
26127	// empty value appearing in NullFields will be sent to the server as
26128	// null. It is an error if a field in this list has a non-empty value.
26129	// This may be used to include null fields in Patch requests.
26130	NullFields []string `json:"-"`
26131}
26132
26133func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
26134	type NoMethod NetworksRemovePeeringRequest
26135	raw := NoMethod(*s)
26136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26137}
26138
26139type NetworksUpdatePeeringRequest struct {
26140	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
26141
26142	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
26143	// unconditionally include in API requests. By default, fields with
26144	// empty or default values are omitted from API requests. However, any
26145	// non-pointer, non-interface field appearing in ForceSendFields will be
26146	// sent to the server regardless of whether the field is empty or not.
26147	// This may be used to include empty fields in Patch requests.
26148	ForceSendFields []string `json:"-"`
26149
26150	// NullFields is a list of field names (e.g. "NetworkPeering") to
26151	// include in API requests with the JSON null value. By default, fields
26152	// with empty values are omitted from API requests. However, any field
26153	// with an empty value appearing in NullFields will be sent to the
26154	// server as null. It is an error if a field in this list has a
26155	// non-empty value. This may be used to include null fields in Patch
26156	// requests.
26157	NullFields []string `json:"-"`
26158}
26159
26160func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
26161	type NoMethod NetworksUpdatePeeringRequest
26162	raw := NoMethod(*s)
26163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26164}
26165
26166// NodeGroup: Represents a sole-tenant Node Group resource. A
26167// sole-tenant node is a physical server that is dedicated to hosting VM
26168// instances only for your specific project. Use sole-tenant nodes to
26169// keep your instances physically separated from instances in other
26170// projects, or to group your instances together on the same host
26171// hardware. For more information, read Sole-tenant nodes.
26172type NodeGroup struct {
26173	// AutoscalingPolicy: Specifies how autoscaling should behave.
26174	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
26175
26176	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26177	// format.
26178	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26179
26180	// Description: An optional description of this resource. Provide this
26181	// property when you create the resource.
26182	Description string `json:"description,omitempty"`
26183
26184	Fingerprint string `json:"fingerprint,omitempty"`
26185
26186	// Id: [Output Only] The unique identifier for the resource. This
26187	// identifier is defined by the server.
26188	Id uint64 `json:"id,omitempty,string"`
26189
26190	// Kind: [Output Only] The type of the resource. Always
26191	// compute#nodeGroup for node group.
26192	Kind string `json:"kind,omitempty"`
26193
26194	// LocationHint: An opaque location hint used to place the Node close to
26195	// other resources. This field is for use by internal tools that use the
26196	// public API. The location hint here on the NodeGroup overrides any
26197	// location_hint present in the NodeTemplate.
26198	LocationHint string `json:"locationHint,omitempty"`
26199
26200	// MaintenancePolicy: Specifies how to handle instances when a node in
26201	// the group undergoes maintenance. Set to one of: DEFAULT,
26202	// RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is
26203	// DEFAULT. For more information, see Maintenance policies.
26204	//
26205	// Possible values:
26206	//   "DEFAULT" - Allow the node and corresponding instances to retain
26207	// default maintenance behavior.
26208	//   "MAINTENANCE_POLICY_UNSPECIFIED"
26209	//   "MIGRATE_WITHIN_NODE_GROUP" - When maintenance must be done on a
26210	// node, the instances on that node will be moved to other nodes in the
26211	// group. Instances with onHostMaintenance = MIGRATE will live migrate
26212	// to their destinations while instances with onHostMaintenance =
26213	// TERMINATE will terminate and then restart on their destination nodes
26214	// if automaticRestart = true.
26215	//   "RESTART_IN_PLACE" - Instances in this group will restart on the
26216	// same node when maintenance has completed. Instances must have
26217	// onHostMaintenance = TERMINATE, and they will only restart if
26218	// automaticRestart = true.
26219	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
26220
26221	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
26222
26223	// Name: The name of the resource, provided by the client when initially
26224	// creating the resource. The resource name must be 1-63 characters
26225	// long, and comply with RFC1035. Specifically, the name must be 1-63
26226	// characters long and match the regular expression
26227	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
26228	// a lowercase letter, and all following characters must be a dash,
26229	// lowercase letter, or digit, except the last character, which cannot
26230	// be a dash.
26231	Name string `json:"name,omitempty"`
26232
26233	// NodeTemplate: URL of the node template to create the node group from.
26234	NodeTemplate string `json:"nodeTemplate,omitempty"`
26235
26236	// SelfLink: [Output Only] Server-defined URL for the resource.
26237	SelfLink string `json:"selfLink,omitempty"`
26238
26239	// Size: [Output Only] The total number of nodes in the node group.
26240	Size int64 `json:"size,omitempty"`
26241
26242	// Possible values:
26243	//   "CREATING"
26244	//   "DELETING"
26245	//   "INVALID"
26246	//   "READY"
26247	Status string `json:"status,omitempty"`
26248
26249	// Zone: [Output Only] The name of the zone where the node group
26250	// resides, such as us-central1-a.
26251	Zone string `json:"zone,omitempty"`
26252
26253	// ServerResponse contains the HTTP response code and headers from the
26254	// server.
26255	googleapi.ServerResponse `json:"-"`
26256
26257	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
26258	// to unconditionally include in API requests. By default, fields with
26259	// empty or default values are omitted from API requests. However, any
26260	// non-pointer, non-interface field appearing in ForceSendFields will be
26261	// sent to the server regardless of whether the field is empty or not.
26262	// This may be used to include empty fields in Patch requests.
26263	ForceSendFields []string `json:"-"`
26264
26265	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
26266	// include in API requests with the JSON null value. By default, fields
26267	// with empty values are omitted from API requests. However, any field
26268	// with an empty value appearing in NullFields will be sent to the
26269	// server as null. It is an error if a field in this list has a
26270	// non-empty value. This may be used to include null fields in Patch
26271	// requests.
26272	NullFields []string `json:"-"`
26273}
26274
26275func (s *NodeGroup) MarshalJSON() ([]byte, error) {
26276	type NoMethod NodeGroup
26277	raw := NoMethod(*s)
26278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26279}
26280
26281type NodeGroupAggregatedList struct {
26282	// Id: [Output Only] Unique identifier for the resource; defined by the
26283	// server.
26284	Id string `json:"id,omitempty"`
26285
26286	// Items: A list of NodeGroupsScopedList resources.
26287	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
26288
26289	// Kind: [Output Only] Type of resource.Always
26290	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
26291	Kind string `json:"kind,omitempty"`
26292
26293	// NextPageToken: [Output Only] This token allows you to get the next
26294	// page of results for list requests. If the number of results is larger
26295	// than maxResults, use the nextPageToken as a value for the query
26296	// parameter pageToken in the next list request. Subsequent list
26297	// requests will have their own nextPageToken to continue paging through
26298	// the results.
26299	NextPageToken string `json:"nextPageToken,omitempty"`
26300
26301	// SelfLink: [Output Only] Server-defined URL for this resource.
26302	SelfLink string `json:"selfLink,omitempty"`
26303
26304	// Unreachables: [Output Only] Unreachable resources.
26305	Unreachables []string `json:"unreachables,omitempty"`
26306
26307	// Warning: [Output Only] Informational warning message.
26308	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
26309
26310	// ServerResponse contains the HTTP response code and headers from the
26311	// server.
26312	googleapi.ServerResponse `json:"-"`
26313
26314	// ForceSendFields is a list of field names (e.g. "Id") to
26315	// unconditionally include in API requests. By default, fields with
26316	// empty or default values are omitted from API requests. However, any
26317	// non-pointer, non-interface field appearing in ForceSendFields will be
26318	// sent to the server regardless of whether the field is empty or not.
26319	// This may be used to include empty fields in Patch requests.
26320	ForceSendFields []string `json:"-"`
26321
26322	// NullFields is a list of field names (e.g. "Id") to include in API
26323	// requests with the JSON null value. By default, fields with empty
26324	// values are omitted from API requests. However, any field with an
26325	// empty value appearing in NullFields will be sent to the server as
26326	// null. It is an error if a field in this list has a non-empty value.
26327	// This may be used to include null fields in Patch requests.
26328	NullFields []string `json:"-"`
26329}
26330
26331func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
26332	type NoMethod NodeGroupAggregatedList
26333	raw := NoMethod(*s)
26334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26335}
26336
26337// NodeGroupAggregatedListWarning: [Output Only] Informational warning
26338// message.
26339type NodeGroupAggregatedListWarning struct {
26340	// Code: [Output Only] A warning code, if applicable. For example,
26341	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26342	// the response.
26343	//
26344	// Possible values:
26345	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26346	// changes made by a failed operation.
26347	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26348	// created.
26349	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26350	// resources has a type marked as deprecated
26351	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26352	// that is larger than image size.
26353	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26354	// resources has a type marked as experimental
26355	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26356	// call
26357	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26358	// overridden. Deprecated unused field.
26359	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26360	// injected kernel, which is deprecated.
26361	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26362	// exceedingly large number of resources
26363	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26364	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26365	// not assigned to an instance on the network.
26366	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26367	// ip forward.
26368	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26369	// refers to an instance that does not exist.
26370	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26371	// URL refers to an instance that is not on the same network as the
26372	// route.
26373	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26374	// have a status of RUNNING.
26375	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26376	// continue the process despite the mentioned error.
26377	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26378	// page.
26379	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26380	// missing due to errors
26381	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26382	// that requires a TOS they have not accepted.
26383	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26384	// resource is in use.
26385	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26386	// auto-delete could not be deleted because they were in use.
26387	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26388	// ignored.
26389	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26390	// instance group manager is valid as such, but its application does not
26391	// make a lot of sense, because it allows only single instance in
26392	// instance group.
26393	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
26394	// are present
26395	//   "UNREACHABLE" - A given scope cannot be reached.
26396	Code string `json:"code,omitempty"`
26397
26398	// Data: [Output Only] Metadata about this warning in key: value format.
26399	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
26400	// }
26401	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
26402
26403	// Message: [Output Only] A human-readable description of the warning
26404	// code.
26405	Message string `json:"message,omitempty"`
26406
26407	// ForceSendFields is a list of field names (e.g. "Code") to
26408	// unconditionally include in API requests. By default, fields with
26409	// empty or default values are omitted from API requests. However, any
26410	// non-pointer, non-interface field appearing in ForceSendFields will be
26411	// sent to the server regardless of whether the field is empty or not.
26412	// This may be used to include empty fields in Patch requests.
26413	ForceSendFields []string `json:"-"`
26414
26415	// NullFields is a list of field names (e.g. "Code") to include in API
26416	// requests with the JSON null value. By default, fields with empty
26417	// values are omitted from API requests. However, any field with an
26418	// empty value appearing in NullFields will be sent to the server as
26419	// null. It is an error if a field in this list has a non-empty value.
26420	// This may be used to include null fields in Patch requests.
26421	NullFields []string `json:"-"`
26422}
26423
26424func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
26425	type NoMethod NodeGroupAggregatedListWarning
26426	raw := NoMethod(*s)
26427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26428}
26429
26430type NodeGroupAggregatedListWarningData struct {
26431	// Key: [Output Only] A key that provides more detail on the warning
26432	// being returned. For example, for warnings where there are no results
26433	// in a list request for a particular zone, this key might be scope and
26434	// the key value might be the zone name. Other examples might be a key
26435	// indicating a deprecated resource and a suggested replacement, or a
26436	// warning about invalid network settings (for example, if an instance
26437	// attempts to perform IP forwarding but is not enabled for IP
26438	// forwarding).
26439	Key string `json:"key,omitempty"`
26440
26441	// Value: [Output Only] A warning data value corresponding to the key.
26442	Value string `json:"value,omitempty"`
26443
26444	// ForceSendFields is a list of field names (e.g. "Key") to
26445	// unconditionally include in API requests. By default, fields with
26446	// empty or default values are omitted from API requests. However, any
26447	// non-pointer, non-interface field appearing in ForceSendFields will be
26448	// sent to the server regardless of whether the field is empty or not.
26449	// This may be used to include empty fields in Patch requests.
26450	ForceSendFields []string `json:"-"`
26451
26452	// NullFields is a list of field names (e.g. "Key") to include in API
26453	// requests with the JSON null value. By default, fields with empty
26454	// values are omitted from API requests. However, any field with an
26455	// empty value appearing in NullFields will be sent to the server as
26456	// null. It is an error if a field in this list has a non-empty value.
26457	// This may be used to include null fields in Patch requests.
26458	NullFields []string `json:"-"`
26459}
26460
26461func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26462	type NoMethod NodeGroupAggregatedListWarningData
26463	raw := NoMethod(*s)
26464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26465}
26466
26467type NodeGroupAutoscalingPolicy struct {
26468	// MaxNodes: The maximum number of nodes that the group should have.
26469	// Must be set if autoscaling is enabled. Maximum value allowed is 100.
26470	MaxNodes int64 `json:"maxNodes,omitempty"`
26471
26472	// MinNodes: The minimum number of nodes that the group should have.
26473	MinNodes int64 `json:"minNodes,omitempty"`
26474
26475	// Mode: The autoscaling mode. Set to one of: ON, OFF, or
26476	// ONLY_SCALE_OUT. For more information, see Autoscaler modes.
26477	//
26478	// Possible values:
26479	//   "MODE_UNSPECIFIED"
26480	//   "OFF" - Autoscaling is disabled.
26481	//   "ON" - Autocaling is fully enabled.
26482	//   "ONLY_SCALE_OUT" - Autoscaling will only scale out and will not
26483	// remove nodes.
26484	Mode string `json:"mode,omitempty"`
26485
26486	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
26487	// unconditionally include in API requests. By default, fields with
26488	// empty or default values are omitted from API requests. However, any
26489	// non-pointer, non-interface field appearing in ForceSendFields will be
26490	// sent to the server regardless of whether the field is empty or not.
26491	// This may be used to include empty fields in Patch requests.
26492	ForceSendFields []string `json:"-"`
26493
26494	// NullFields is a list of field names (e.g. "MaxNodes") to include in
26495	// API requests with the JSON null value. By default, fields with empty
26496	// values are omitted from API requests. However, any field with an
26497	// empty value appearing in NullFields will be sent to the server as
26498	// null. It is an error if a field in this list has a non-empty value.
26499	// This may be used to include null fields in Patch requests.
26500	NullFields []string `json:"-"`
26501}
26502
26503func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
26504	type NoMethod NodeGroupAutoscalingPolicy
26505	raw := NoMethod(*s)
26506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26507}
26508
26509// NodeGroupList: Contains a list of nodeGroups.
26510type NodeGroupList struct {
26511	// Id: [Output Only] Unique identifier for the resource; defined by the
26512	// server.
26513	Id string `json:"id,omitempty"`
26514
26515	// Items: A list of NodeGroup resources.
26516	Items []*NodeGroup `json:"items,omitempty"`
26517
26518	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
26519	// lists of node groups.
26520	Kind string `json:"kind,omitempty"`
26521
26522	// NextPageToken: [Output Only] This token allows you to get the next
26523	// page of results for list requests. If the number of results is larger
26524	// than maxResults, use the nextPageToken as a value for the query
26525	// parameter pageToken in the next list request. Subsequent list
26526	// requests will have their own nextPageToken to continue paging through
26527	// the results.
26528	NextPageToken string `json:"nextPageToken,omitempty"`
26529
26530	// SelfLink: [Output Only] Server-defined URL for this resource.
26531	SelfLink string `json:"selfLink,omitempty"`
26532
26533	// Warning: [Output Only] Informational warning message.
26534	Warning *NodeGroupListWarning `json:"warning,omitempty"`
26535
26536	// ServerResponse contains the HTTP response code and headers from the
26537	// server.
26538	googleapi.ServerResponse `json:"-"`
26539
26540	// ForceSendFields is a list of field names (e.g. "Id") to
26541	// unconditionally include in API requests. By default, fields with
26542	// empty or default values are omitted from API requests. However, any
26543	// non-pointer, non-interface field appearing in ForceSendFields will be
26544	// sent to the server regardless of whether the field is empty or not.
26545	// This may be used to include empty fields in Patch requests.
26546	ForceSendFields []string `json:"-"`
26547
26548	// NullFields is a list of field names (e.g. "Id") to include in API
26549	// requests with the JSON null value. By default, fields with empty
26550	// values are omitted from API requests. However, any field with an
26551	// empty value appearing in NullFields will be sent to the server as
26552	// null. It is an error if a field in this list has a non-empty value.
26553	// This may be used to include null fields in Patch requests.
26554	NullFields []string `json:"-"`
26555}
26556
26557func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
26558	type NoMethod NodeGroupList
26559	raw := NoMethod(*s)
26560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26561}
26562
26563// NodeGroupListWarning: [Output Only] Informational warning message.
26564type NodeGroupListWarning struct {
26565	// Code: [Output Only] A warning code, if applicable. For example,
26566	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26567	// the response.
26568	//
26569	// Possible values:
26570	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26571	// changes made by a failed operation.
26572	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26573	// created.
26574	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26575	// resources has a type marked as deprecated
26576	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26577	// that is larger than image size.
26578	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26579	// resources has a type marked as experimental
26580	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26581	// call
26582	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26583	// overridden. Deprecated unused field.
26584	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26585	// injected kernel, which is deprecated.
26586	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26587	// exceedingly large number of resources
26588	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26589	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26590	// not assigned to an instance on the network.
26591	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26592	// ip forward.
26593	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26594	// refers to an instance that does not exist.
26595	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26596	// URL refers to an instance that is not on the same network as the
26597	// route.
26598	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26599	// have a status of RUNNING.
26600	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26601	// continue the process despite the mentioned error.
26602	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26603	// page.
26604	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26605	// missing due to errors
26606	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26607	// that requires a TOS they have not accepted.
26608	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26609	// resource is in use.
26610	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26611	// auto-delete could not be deleted because they were in use.
26612	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26613	// ignored.
26614	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26615	// instance group manager is valid as such, but its application does not
26616	// make a lot of sense, because it allows only single instance in
26617	// instance group.
26618	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
26619	// are present
26620	//   "UNREACHABLE" - A given scope cannot be reached.
26621	Code string `json:"code,omitempty"`
26622
26623	// Data: [Output Only] Metadata about this warning in key: value format.
26624	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
26625	// }
26626	Data []*NodeGroupListWarningData `json:"data,omitempty"`
26627
26628	// Message: [Output Only] A human-readable description of the warning
26629	// code.
26630	Message string `json:"message,omitempty"`
26631
26632	// ForceSendFields is a list of field names (e.g. "Code") to
26633	// unconditionally include in API requests. By default, fields with
26634	// empty or default values are omitted from API requests. However, any
26635	// non-pointer, non-interface field appearing in ForceSendFields will be
26636	// sent to the server regardless of whether the field is empty or not.
26637	// This may be used to include empty fields in Patch requests.
26638	ForceSendFields []string `json:"-"`
26639
26640	// NullFields is a list of field names (e.g. "Code") to include in API
26641	// requests with the JSON null value. By default, fields with empty
26642	// values are omitted from API requests. However, any field with an
26643	// empty value appearing in NullFields will be sent to the server as
26644	// null. It is an error if a field in this list has a non-empty value.
26645	// This may be used to include null fields in Patch requests.
26646	NullFields []string `json:"-"`
26647}
26648
26649func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
26650	type NoMethod NodeGroupListWarning
26651	raw := NoMethod(*s)
26652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26653}
26654
26655type NodeGroupListWarningData struct {
26656	// Key: [Output Only] A key that provides more detail on the warning
26657	// being returned. For example, for warnings where there are no results
26658	// in a list request for a particular zone, this key might be scope and
26659	// the key value might be the zone name. Other examples might be a key
26660	// indicating a deprecated resource and a suggested replacement, or a
26661	// warning about invalid network settings (for example, if an instance
26662	// attempts to perform IP forwarding but is not enabled for IP
26663	// forwarding).
26664	Key string `json:"key,omitempty"`
26665
26666	// Value: [Output Only] A warning data value corresponding to the key.
26667	Value string `json:"value,omitempty"`
26668
26669	// ForceSendFields is a list of field names (e.g. "Key") to
26670	// unconditionally include in API requests. By default, fields with
26671	// empty or default values are omitted from API requests. However, any
26672	// non-pointer, non-interface field appearing in ForceSendFields will be
26673	// sent to the server regardless of whether the field is empty or not.
26674	// This may be used to include empty fields in Patch requests.
26675	ForceSendFields []string `json:"-"`
26676
26677	// NullFields is a list of field names (e.g. "Key") to include in API
26678	// requests with the JSON null value. By default, fields with empty
26679	// values are omitted from API requests. However, any field with an
26680	// empty value appearing in NullFields will be sent to the server as
26681	// null. It is an error if a field in this list has a non-empty value.
26682	// This may be used to include null fields in Patch requests.
26683	NullFields []string `json:"-"`
26684}
26685
26686func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
26687	type NoMethod NodeGroupListWarningData
26688	raw := NoMethod(*s)
26689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26690}
26691
26692// NodeGroupMaintenanceWindow: Time window specified for daily
26693// maintenance operations. GCE's internal maintenance will be performed
26694// within this window.
26695type NodeGroupMaintenanceWindow struct {
26696	// MaintenanceDuration: [Output only] A predetermined duration for the
26697	// window, automatically chosen to be the smallest possible in the given
26698	// scenario.
26699	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
26700
26701	// StartTime: Start time of the window. This must be in UTC format that
26702	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
26703	// example, both 13:00-5 and 08:00 are valid.
26704	StartTime string `json:"startTime,omitempty"`
26705
26706	// ForceSendFields is a list of field names (e.g. "MaintenanceDuration")
26707	// to unconditionally include in API requests. By default, fields with
26708	// empty or default values are omitted from API requests. However, any
26709	// non-pointer, non-interface field appearing in ForceSendFields will be
26710	// sent to the server regardless of whether the field is empty or not.
26711	// This may be used to include empty fields in Patch requests.
26712	ForceSendFields []string `json:"-"`
26713
26714	// NullFields is a list of field names (e.g. "MaintenanceDuration") to
26715	// include in API requests with the JSON null value. By default, fields
26716	// with empty values are omitted from API requests. However, any field
26717	// with an empty value appearing in NullFields will be sent to the
26718	// server as null. It is an error if a field in this list has a
26719	// non-empty value. This may be used to include null fields in Patch
26720	// requests.
26721	NullFields []string `json:"-"`
26722}
26723
26724func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
26725	type NoMethod NodeGroupMaintenanceWindow
26726	raw := NoMethod(*s)
26727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26728}
26729
26730type NodeGroupNode struct {
26731	// Accelerators: Accelerators for this node.
26732	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26733
26734	// CpuOvercommitType: CPU overcommit.
26735	//
26736	// Possible values:
26737	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26738	//   "ENABLED"
26739	//   "NONE"
26740	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26741
26742	// Disks: Local disk configurations.
26743	Disks []*LocalDisk `json:"disks,omitempty"`
26744
26745	// Instances: Instances scheduled on this node.
26746	Instances []string `json:"instances,omitempty"`
26747
26748	// Name: The name of the node.
26749	Name string `json:"name,omitempty"`
26750
26751	// NodeType: The type of this node.
26752	NodeType string `json:"nodeType,omitempty"`
26753
26754	// SatisfiesPzs: [Output Only] Reserved for future use.
26755	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
26756
26757	// ServerBinding: Binding properties for the physical server.
26758	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26759
26760	// ServerId: Server ID associated with this node.
26761	ServerId string `json:"serverId,omitempty"`
26762
26763	// Possible values:
26764	//   "CREATING"
26765	//   "DELETING"
26766	//   "INVALID"
26767	//   "READY"
26768	//   "REPAIRING"
26769	Status string `json:"status,omitempty"`
26770
26771	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26772	// unconditionally include in API requests. By default, fields with
26773	// empty or default values are omitted from API requests. However, any
26774	// non-pointer, non-interface field appearing in ForceSendFields will be
26775	// sent to the server regardless of whether the field is empty or not.
26776	// This may be used to include empty fields in Patch requests.
26777	ForceSendFields []string `json:"-"`
26778
26779	// NullFields is a list of field names (e.g. "Accelerators") to include
26780	// in API requests with the JSON null value. By default, fields with
26781	// empty values are omitted from API requests. However, any field with
26782	// an empty value appearing in NullFields will be sent to the server as
26783	// null. It is an error if a field in this list has a non-empty value.
26784	// This may be used to include null fields in Patch requests.
26785	NullFields []string `json:"-"`
26786}
26787
26788func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
26789	type NoMethod NodeGroupNode
26790	raw := NoMethod(*s)
26791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26792}
26793
26794type NodeGroupsAddNodesRequest struct {
26795	// AdditionalNodeCount: Count of additional nodes to be added to the
26796	// node group.
26797	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
26798
26799	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
26800	// to unconditionally include in API requests. By default, fields with
26801	// empty or default values are omitted from API requests. However, any
26802	// non-pointer, non-interface field appearing in ForceSendFields will be
26803	// sent to the server regardless of whether the field is empty or not.
26804	// This may be used to include empty fields in Patch requests.
26805	ForceSendFields []string `json:"-"`
26806
26807	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
26808	// include in API requests with the JSON null value. By default, fields
26809	// with empty values are omitted from API requests. However, any field
26810	// with an empty value appearing in NullFields will be sent to the
26811	// server as null. It is an error if a field in this list has a
26812	// non-empty value. This may be used to include null fields in Patch
26813	// requests.
26814	NullFields []string `json:"-"`
26815}
26816
26817func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
26818	type NoMethod NodeGroupsAddNodesRequest
26819	raw := NoMethod(*s)
26820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26821}
26822
26823type NodeGroupsDeleteNodesRequest struct {
26824	// Nodes: Names of the nodes to delete.
26825	Nodes []string `json:"nodes,omitempty"`
26826
26827	// ForceSendFields is a list of field names (e.g. "Nodes") to
26828	// unconditionally include in API requests. By default, fields with
26829	// empty or default values are omitted from API requests. However, any
26830	// non-pointer, non-interface field appearing in ForceSendFields will be
26831	// sent to the server regardless of whether the field is empty or not.
26832	// This may be used to include empty fields in Patch requests.
26833	ForceSendFields []string `json:"-"`
26834
26835	// NullFields is a list of field names (e.g. "Nodes") to include in API
26836	// requests with the JSON null value. By default, fields with empty
26837	// values are omitted from API requests. However, any field with an
26838	// empty value appearing in NullFields will be sent to the server as
26839	// null. It is an error if a field in this list has a non-empty value.
26840	// This may be used to include null fields in Patch requests.
26841	NullFields []string `json:"-"`
26842}
26843
26844func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
26845	type NoMethod NodeGroupsDeleteNodesRequest
26846	raw := NoMethod(*s)
26847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26848}
26849
26850type NodeGroupsListNodes struct {
26851	// Id: [Output Only] Unique identifier for the resource; defined by the
26852	// server.
26853	Id string `json:"id,omitempty"`
26854
26855	// Items: A list of Node resources.
26856	Items []*NodeGroupNode `json:"items,omitempty"`
26857
26858	// Kind: [Output Only] The resource type, which is always
26859	// compute.nodeGroupsListNodes for the list of nodes in the specified
26860	// node group.
26861	Kind string `json:"kind,omitempty"`
26862
26863	// NextPageToken: [Output Only] This token allows you to get the next
26864	// page of results for list requests. If the number of results is larger
26865	// than maxResults, use the nextPageToken as a value for the query
26866	// parameter pageToken in the next list request. Subsequent list
26867	// requests will have their own nextPageToken to continue paging through
26868	// the results.
26869	NextPageToken string `json:"nextPageToken,omitempty"`
26870
26871	// SelfLink: [Output Only] Server-defined URL for this resource.
26872	SelfLink string `json:"selfLink,omitempty"`
26873
26874	// Warning: [Output Only] Informational warning message.
26875	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
26876
26877	// ServerResponse contains the HTTP response code and headers from the
26878	// server.
26879	googleapi.ServerResponse `json:"-"`
26880
26881	// ForceSendFields is a list of field names (e.g. "Id") to
26882	// unconditionally include in API requests. By default, fields with
26883	// empty or default values are omitted from API requests. However, any
26884	// non-pointer, non-interface field appearing in ForceSendFields will be
26885	// sent to the server regardless of whether the field is empty or not.
26886	// This may be used to include empty fields in Patch requests.
26887	ForceSendFields []string `json:"-"`
26888
26889	// NullFields is a list of field names (e.g. "Id") to include in API
26890	// requests with the JSON null value. By default, fields with empty
26891	// values are omitted from API requests. However, any field with an
26892	// empty value appearing in NullFields will be sent to the server as
26893	// null. It is an error if a field in this list has a non-empty value.
26894	// This may be used to include null fields in Patch requests.
26895	NullFields []string `json:"-"`
26896}
26897
26898func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
26899	type NoMethod NodeGroupsListNodes
26900	raw := NoMethod(*s)
26901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26902}
26903
26904// NodeGroupsListNodesWarning: [Output Only] Informational warning
26905// message.
26906type NodeGroupsListNodesWarning struct {
26907	// Code: [Output Only] A warning code, if applicable. For example,
26908	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26909	// the response.
26910	//
26911	// Possible values:
26912	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26913	// changes made by a failed operation.
26914	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26915	// created.
26916	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26917	// resources has a type marked as deprecated
26918	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26919	// that is larger than image size.
26920	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26921	// resources has a type marked as experimental
26922	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26923	// call
26924	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26925	// overridden. Deprecated unused field.
26926	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26927	// injected kernel, which is deprecated.
26928	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26929	// exceedingly large number of resources
26930	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26931	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26932	// not assigned to an instance on the network.
26933	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26934	// ip forward.
26935	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26936	// refers to an instance that does not exist.
26937	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26938	// URL refers to an instance that is not on the same network as the
26939	// route.
26940	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26941	// have a status of RUNNING.
26942	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26943	// continue the process despite the mentioned error.
26944	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26945	// page.
26946	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26947	// missing due to errors
26948	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26949	// that requires a TOS they have not accepted.
26950	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26951	// resource is in use.
26952	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26953	// auto-delete could not be deleted because they were in use.
26954	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26955	// ignored.
26956	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26957	// instance group manager is valid as such, but its application does not
26958	// make a lot of sense, because it allows only single instance in
26959	// instance group.
26960	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
26961	// are present
26962	//   "UNREACHABLE" - A given scope cannot be reached.
26963	Code string `json:"code,omitempty"`
26964
26965	// Data: [Output Only] Metadata about this warning in key: value format.
26966	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
26967	// }
26968	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
26969
26970	// Message: [Output Only] A human-readable description of the warning
26971	// code.
26972	Message string `json:"message,omitempty"`
26973
26974	// ForceSendFields is a list of field names (e.g. "Code") to
26975	// unconditionally include in API requests. By default, fields with
26976	// empty or default values are omitted from API requests. However, any
26977	// non-pointer, non-interface field appearing in ForceSendFields will be
26978	// sent to the server regardless of whether the field is empty or not.
26979	// This may be used to include empty fields in Patch requests.
26980	ForceSendFields []string `json:"-"`
26981
26982	// NullFields is a list of field names (e.g. "Code") to include in API
26983	// requests with the JSON null value. By default, fields with empty
26984	// values are omitted from API requests. However, any field with an
26985	// empty value appearing in NullFields will be sent to the server as
26986	// null. It is an error if a field in this list has a non-empty value.
26987	// This may be used to include null fields in Patch requests.
26988	NullFields []string `json:"-"`
26989}
26990
26991func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
26992	type NoMethod NodeGroupsListNodesWarning
26993	raw := NoMethod(*s)
26994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26995}
26996
26997type NodeGroupsListNodesWarningData struct {
26998	// Key: [Output Only] A key that provides more detail on the warning
26999	// being returned. For example, for warnings where there are no results
27000	// in a list request for a particular zone, this key might be scope and
27001	// the key value might be the zone name. Other examples might be a key
27002	// indicating a deprecated resource and a suggested replacement, or a
27003	// warning about invalid network settings (for example, if an instance
27004	// attempts to perform IP forwarding but is not enabled for IP
27005	// forwarding).
27006	Key string `json:"key,omitempty"`
27007
27008	// Value: [Output Only] A warning data value corresponding to the key.
27009	Value string `json:"value,omitempty"`
27010
27011	// ForceSendFields is a list of field names (e.g. "Key") to
27012	// unconditionally include in API requests. By default, fields with
27013	// empty or default values are omitted from API requests. However, any
27014	// non-pointer, non-interface field appearing in ForceSendFields will be
27015	// sent to the server regardless of whether the field is empty or not.
27016	// This may be used to include empty fields in Patch requests.
27017	ForceSendFields []string `json:"-"`
27018
27019	// NullFields is a list of field names (e.g. "Key") to include in API
27020	// requests with the JSON null value. By default, fields with empty
27021	// values are omitted from API requests. However, any field with an
27022	// empty value appearing in NullFields will be sent to the server as
27023	// null. It is an error if a field in this list has a non-empty value.
27024	// This may be used to include null fields in Patch requests.
27025	NullFields []string `json:"-"`
27026}
27027
27028func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
27029	type NoMethod NodeGroupsListNodesWarningData
27030	raw := NoMethod(*s)
27031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27032}
27033
27034type NodeGroupsScopedList struct {
27035	// NodeGroups: [Output Only] A list of node groups contained in this
27036	// scope.
27037	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
27038
27039	// Warning: [Output Only] An informational warning that appears when the
27040	// nodeGroup list is empty.
27041	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
27042
27043	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
27044	// unconditionally include in API requests. By default, fields with
27045	// empty or default values are omitted from API requests. However, any
27046	// non-pointer, non-interface field appearing in ForceSendFields will be
27047	// sent to the server regardless of whether the field is empty or not.
27048	// This may be used to include empty fields in Patch requests.
27049	ForceSendFields []string `json:"-"`
27050
27051	// NullFields is a list of field names (e.g. "NodeGroups") to include in
27052	// API requests with the JSON null value. By default, fields with empty
27053	// values are omitted from API requests. However, any field with an
27054	// empty value appearing in NullFields will be sent to the server as
27055	// null. It is an error if a field in this list has a non-empty value.
27056	// This may be used to include null fields in Patch requests.
27057	NullFields []string `json:"-"`
27058}
27059
27060func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
27061	type NoMethod NodeGroupsScopedList
27062	raw := NoMethod(*s)
27063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27064}
27065
27066// NodeGroupsScopedListWarning: [Output Only] An informational warning
27067// that appears when the nodeGroup list is empty.
27068type NodeGroupsScopedListWarning struct {
27069	// Code: [Output Only] A warning code, if applicable. For example,
27070	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27071	// the response.
27072	//
27073	// Possible values:
27074	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27075	// changes made by a failed operation.
27076	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27077	// created.
27078	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27079	// resources has a type marked as deprecated
27080	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27081	// that is larger than image size.
27082	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27083	// resources has a type marked as experimental
27084	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27085	// call
27086	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27087	// overridden. Deprecated unused field.
27088	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27089	// injected kernel, which is deprecated.
27090	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27091	// exceedingly large number of resources
27092	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27093	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27094	// not assigned to an instance on the network.
27095	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27096	// ip forward.
27097	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27098	// refers to an instance that does not exist.
27099	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27100	// URL refers to an instance that is not on the same network as the
27101	// route.
27102	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27103	// have a status of RUNNING.
27104	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27105	// continue the process despite the mentioned error.
27106	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27107	// page.
27108	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27109	// missing due to errors
27110	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27111	// that requires a TOS they have not accepted.
27112	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27113	// resource is in use.
27114	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27115	// auto-delete could not be deleted because they were in use.
27116	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27117	// ignored.
27118	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27119	// instance group manager is valid as such, but its application does not
27120	// make a lot of sense, because it allows only single instance in
27121	// instance group.
27122	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27123	// are present
27124	//   "UNREACHABLE" - A given scope cannot be reached.
27125	Code string `json:"code,omitempty"`
27126
27127	// Data: [Output Only] Metadata about this warning in key: value format.
27128	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27129	// }
27130	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
27131
27132	// Message: [Output Only] A human-readable description of the warning
27133	// code.
27134	Message string `json:"message,omitempty"`
27135
27136	// ForceSendFields is a list of field names (e.g. "Code") to
27137	// unconditionally include in API requests. By default, fields with
27138	// empty or default values are omitted from API requests. However, any
27139	// non-pointer, non-interface field appearing in ForceSendFields will be
27140	// sent to the server regardless of whether the field is empty or not.
27141	// This may be used to include empty fields in Patch requests.
27142	ForceSendFields []string `json:"-"`
27143
27144	// NullFields is a list of field names (e.g. "Code") to include in API
27145	// requests with the JSON null value. By default, fields with empty
27146	// values are omitted from API requests. However, any field with an
27147	// empty value appearing in NullFields will be sent to the server as
27148	// null. It is an error if a field in this list has a non-empty value.
27149	// This may be used to include null fields in Patch requests.
27150	NullFields []string `json:"-"`
27151}
27152
27153func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
27154	type NoMethod NodeGroupsScopedListWarning
27155	raw := NoMethod(*s)
27156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27157}
27158
27159type NodeGroupsScopedListWarningData struct {
27160	// Key: [Output Only] A key that provides more detail on the warning
27161	// being returned. For example, for warnings where there are no results
27162	// in a list request for a particular zone, this key might be scope and
27163	// the key value might be the zone name. Other examples might be a key
27164	// indicating a deprecated resource and a suggested replacement, or a
27165	// warning about invalid network settings (for example, if an instance
27166	// attempts to perform IP forwarding but is not enabled for IP
27167	// forwarding).
27168	Key string `json:"key,omitempty"`
27169
27170	// Value: [Output Only] A warning data value corresponding to the key.
27171	Value string `json:"value,omitempty"`
27172
27173	// ForceSendFields is a list of field names (e.g. "Key") to
27174	// unconditionally include in API requests. By default, fields with
27175	// empty or default values are omitted from API requests. However, any
27176	// non-pointer, non-interface field appearing in ForceSendFields will be
27177	// sent to the server regardless of whether the field is empty or not.
27178	// This may be used to include empty fields in Patch requests.
27179	ForceSendFields []string `json:"-"`
27180
27181	// NullFields is a list of field names (e.g. "Key") to include in API
27182	// requests with the JSON null value. By default, fields with empty
27183	// values are omitted from API requests. However, any field with an
27184	// empty value appearing in NullFields will be sent to the server as
27185	// null. It is an error if a field in this list has a non-empty value.
27186	// This may be used to include null fields in Patch requests.
27187	NullFields []string `json:"-"`
27188}
27189
27190func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
27191	type NoMethod NodeGroupsScopedListWarningData
27192	raw := NoMethod(*s)
27193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27194}
27195
27196type NodeGroupsSetNodeTemplateRequest struct {
27197	// NodeTemplate: Full or partial URL of the node template resource to be
27198	// updated for this node group.
27199	NodeTemplate string `json:"nodeTemplate,omitempty"`
27200
27201	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
27202	// unconditionally include in API requests. By default, fields with
27203	// empty or default values are omitted from API requests. However, any
27204	// non-pointer, non-interface field appearing in ForceSendFields will be
27205	// sent to the server regardless of whether the field is empty or not.
27206	// This may be used to include empty fields in Patch requests.
27207	ForceSendFields []string `json:"-"`
27208
27209	// NullFields is a list of field names (e.g. "NodeTemplate") to include
27210	// in API requests with the JSON null value. By default, fields with
27211	// empty values are omitted from API requests. However, any field with
27212	// an empty value appearing in NullFields will be sent to the server as
27213	// null. It is an error if a field in this list has a non-empty value.
27214	// This may be used to include null fields in Patch requests.
27215	NullFields []string `json:"-"`
27216}
27217
27218func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
27219	type NoMethod NodeGroupsSetNodeTemplateRequest
27220	raw := NoMethod(*s)
27221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27222}
27223
27224// NodeTemplate: Represent a sole-tenant Node Template resource. You can
27225// use a template to define properties for nodes in a node group. For
27226// more information, read Creating node groups and instances.
27227type NodeTemplate struct {
27228	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
27229
27230	// CpuOvercommitType: CPU overcommit.
27231	//
27232	// Possible values:
27233	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
27234	//   "ENABLED"
27235	//   "NONE"
27236	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
27237
27238	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27239	// format.
27240	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27241
27242	// Description: An optional description of this resource. Provide this
27243	// property when you create the resource.
27244	Description string `json:"description,omitempty"`
27245
27246	Disks []*LocalDisk `json:"disks,omitempty"`
27247
27248	// Id: [Output Only] The unique identifier for the resource. This
27249	// identifier is defined by the server.
27250	Id uint64 `json:"id,omitempty,string"`
27251
27252	// Kind: [Output Only] The type of the resource. Always
27253	// compute#nodeTemplate for node templates.
27254	Kind string `json:"kind,omitempty"`
27255
27256	// Name: The name of the resource, provided by the client when initially
27257	// creating the resource. The resource name must be 1-63 characters
27258	// long, and comply with RFC1035. Specifically, the name must be 1-63
27259	// characters long and match the regular expression
27260	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
27261	// a lowercase letter, and all following characters must be a dash,
27262	// lowercase letter, or digit, except the last character, which cannot
27263	// be a dash.
27264	Name string `json:"name,omitempty"`
27265
27266	// NodeAffinityLabels: Labels to use for node affinity, which will be
27267	// used in instance scheduling.
27268	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
27269
27270	// NodeType: The node type to use for nodes group that are created from
27271	// this template.
27272	NodeType string `json:"nodeType,omitempty"`
27273
27274	// NodeTypeFlexibility: The flexible properties of the desired node
27275	// type. Node groups that use this node template will create nodes of a
27276	// type that matches these properties. This field is mutually exclusive
27277	// with the node_type property; you can only define one or the other,
27278	// but not both.
27279	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
27280
27281	// Region: [Output Only] The name of the region where the node template
27282	// resides, such as us-central1.
27283	Region string `json:"region,omitempty"`
27284
27285	// SelfLink: [Output Only] Server-defined URL for the resource.
27286	SelfLink string `json:"selfLink,omitempty"`
27287
27288	// ServerBinding: Sets the binding properties for the physical server.
27289	// Valid values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER:
27290	// Restarts VMs on any available physical server -
27291	// RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
27292	// server whenever possible See Sole-tenant node options for more
27293	// information.
27294	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
27295
27296	// Status: [Output Only] The status of the node template. One of the
27297	// following values: CREATING, READY, and DELETING.
27298	//
27299	// Possible values:
27300	//   "CREATING" - Resources are being allocated.
27301	//   "DELETING" - The node template is currently being deleted.
27302	//   "INVALID" - Invalid status.
27303	//   "READY" - The node template is ready.
27304	Status string `json:"status,omitempty"`
27305
27306	// StatusMessage: [Output Only] An optional, human-readable explanation
27307	// of the status.
27308	StatusMessage string `json:"statusMessage,omitempty"`
27309
27310	// ServerResponse contains the HTTP response code and headers from the
27311	// server.
27312	googleapi.ServerResponse `json:"-"`
27313
27314	// ForceSendFields is a list of field names (e.g. "Accelerators") to
27315	// unconditionally include in API requests. By default, fields with
27316	// empty or default values are omitted from API requests. However, any
27317	// non-pointer, non-interface field appearing in ForceSendFields will be
27318	// sent to the server regardless of whether the field is empty or not.
27319	// This may be used to include empty fields in Patch requests.
27320	ForceSendFields []string `json:"-"`
27321
27322	// NullFields is a list of field names (e.g. "Accelerators") to include
27323	// in API requests with the JSON null value. By default, fields with
27324	// empty values are omitted from API requests. However, any field with
27325	// an empty value appearing in NullFields will be sent to the server as
27326	// null. It is an error if a field in this list has a non-empty value.
27327	// This may be used to include null fields in Patch requests.
27328	NullFields []string `json:"-"`
27329}
27330
27331func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
27332	type NoMethod NodeTemplate
27333	raw := NoMethod(*s)
27334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27335}
27336
27337type NodeTemplateAggregatedList struct {
27338	// Id: [Output Only] Unique identifier for the resource; defined by the
27339	// server.
27340	Id string `json:"id,omitempty"`
27341
27342	// Items: A list of NodeTemplatesScopedList resources.
27343	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
27344
27345	// Kind: [Output Only] Type of resource.Always
27346	// compute#nodeTemplateAggregatedList for aggregated lists of node
27347	// templates.
27348	Kind string `json:"kind,omitempty"`
27349
27350	// NextPageToken: [Output Only] This token allows you to get the next
27351	// page of results for list requests. If the number of results is larger
27352	// than maxResults, use the nextPageToken as a value for the query
27353	// parameter pageToken in the next list request. Subsequent list
27354	// requests will have their own nextPageToken to continue paging through
27355	// the results.
27356	NextPageToken string `json:"nextPageToken,omitempty"`
27357
27358	// SelfLink: [Output Only] Server-defined URL for this resource.
27359	SelfLink string `json:"selfLink,omitempty"`
27360
27361	// Unreachables: [Output Only] Unreachable resources.
27362	Unreachables []string `json:"unreachables,omitempty"`
27363
27364	// Warning: [Output Only] Informational warning message.
27365	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
27366
27367	// ServerResponse contains the HTTP response code and headers from the
27368	// server.
27369	googleapi.ServerResponse `json:"-"`
27370
27371	// ForceSendFields is a list of field names (e.g. "Id") to
27372	// unconditionally include in API requests. By default, fields with
27373	// empty or default values are omitted from API requests. However, any
27374	// non-pointer, non-interface field appearing in ForceSendFields will be
27375	// sent to the server regardless of whether the field is empty or not.
27376	// This may be used to include empty fields in Patch requests.
27377	ForceSendFields []string `json:"-"`
27378
27379	// NullFields is a list of field names (e.g. "Id") to include in API
27380	// requests with the JSON null value. By default, fields with empty
27381	// values are omitted from API requests. However, any field with an
27382	// empty value appearing in NullFields will be sent to the server as
27383	// null. It is an error if a field in this list has a non-empty value.
27384	// This may be used to include null fields in Patch requests.
27385	NullFields []string `json:"-"`
27386}
27387
27388func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
27389	type NoMethod NodeTemplateAggregatedList
27390	raw := NoMethod(*s)
27391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27392}
27393
27394// NodeTemplateAggregatedListWarning: [Output Only] Informational
27395// warning message.
27396type NodeTemplateAggregatedListWarning struct {
27397	// Code: [Output Only] A warning code, if applicable. For example,
27398	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27399	// the response.
27400	//
27401	// Possible values:
27402	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27403	// changes made by a failed operation.
27404	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27405	// created.
27406	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27407	// resources has a type marked as deprecated
27408	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27409	// that is larger than image size.
27410	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27411	// resources has a type marked as experimental
27412	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27413	// call
27414	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27415	// overridden. Deprecated unused field.
27416	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27417	// injected kernel, which is deprecated.
27418	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27419	// exceedingly large number of resources
27420	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27421	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27422	// not assigned to an instance on the network.
27423	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27424	// ip forward.
27425	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27426	// refers to an instance that does not exist.
27427	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27428	// URL refers to an instance that is not on the same network as the
27429	// route.
27430	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27431	// have a status of RUNNING.
27432	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27433	// continue the process despite the mentioned error.
27434	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27435	// page.
27436	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27437	// missing due to errors
27438	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27439	// that requires a TOS they have not accepted.
27440	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27441	// resource is in use.
27442	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27443	// auto-delete could not be deleted because they were in use.
27444	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27445	// ignored.
27446	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27447	// instance group manager is valid as such, but its application does not
27448	// make a lot of sense, because it allows only single instance in
27449	// instance group.
27450	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27451	// are present
27452	//   "UNREACHABLE" - A given scope cannot be reached.
27453	Code string `json:"code,omitempty"`
27454
27455	// Data: [Output Only] Metadata about this warning in key: value format.
27456	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27457	// }
27458	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
27459
27460	// Message: [Output Only] A human-readable description of the warning
27461	// code.
27462	Message string `json:"message,omitempty"`
27463
27464	// ForceSendFields is a list of field names (e.g. "Code") to
27465	// unconditionally include in API requests. By default, fields with
27466	// empty or default values are omitted from API requests. However, any
27467	// non-pointer, non-interface field appearing in ForceSendFields will be
27468	// sent to the server regardless of whether the field is empty or not.
27469	// This may be used to include empty fields in Patch requests.
27470	ForceSendFields []string `json:"-"`
27471
27472	// NullFields is a list of field names (e.g. "Code") to include in API
27473	// requests with the JSON null value. By default, fields with empty
27474	// values are omitted from API requests. However, any field with an
27475	// empty value appearing in NullFields will be sent to the server as
27476	// null. It is an error if a field in this list has a non-empty value.
27477	// This may be used to include null fields in Patch requests.
27478	NullFields []string `json:"-"`
27479}
27480
27481func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
27482	type NoMethod NodeTemplateAggregatedListWarning
27483	raw := NoMethod(*s)
27484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27485}
27486
27487type NodeTemplateAggregatedListWarningData struct {
27488	// Key: [Output Only] A key that provides more detail on the warning
27489	// being returned. For example, for warnings where there are no results
27490	// in a list request for a particular zone, this key might be scope and
27491	// the key value might be the zone name. Other examples might be a key
27492	// indicating a deprecated resource and a suggested replacement, or a
27493	// warning about invalid network settings (for example, if an instance
27494	// attempts to perform IP forwarding but is not enabled for IP
27495	// forwarding).
27496	Key string `json:"key,omitempty"`
27497
27498	// Value: [Output Only] A warning data value corresponding to the key.
27499	Value string `json:"value,omitempty"`
27500
27501	// ForceSendFields is a list of field names (e.g. "Key") to
27502	// unconditionally include in API requests. By default, fields with
27503	// empty or default values are omitted from API requests. However, any
27504	// non-pointer, non-interface field appearing in ForceSendFields will be
27505	// sent to the server regardless of whether the field is empty or not.
27506	// This may be used to include empty fields in Patch requests.
27507	ForceSendFields []string `json:"-"`
27508
27509	// NullFields is a list of field names (e.g. "Key") to include in API
27510	// requests with the JSON null value. By default, fields with empty
27511	// values are omitted from API requests. However, any field with an
27512	// empty value appearing in NullFields will be sent to the server as
27513	// null. It is an error if a field in this list has a non-empty value.
27514	// This may be used to include null fields in Patch requests.
27515	NullFields []string `json:"-"`
27516}
27517
27518func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27519	type NoMethod NodeTemplateAggregatedListWarningData
27520	raw := NoMethod(*s)
27521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27522}
27523
27524// NodeTemplateList: Contains a list of node templates.
27525type NodeTemplateList struct {
27526	// Id: [Output Only] Unique identifier for the resource; defined by the
27527	// server.
27528	Id string `json:"id,omitempty"`
27529
27530	// Items: A list of NodeTemplate resources.
27531	Items []*NodeTemplate `json:"items,omitempty"`
27532
27533	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
27534	// for lists of node templates.
27535	Kind string `json:"kind,omitempty"`
27536
27537	// NextPageToken: [Output Only] This token allows you to get the next
27538	// page of results for list requests. If the number of results is larger
27539	// than maxResults, use the nextPageToken as a value for the query
27540	// parameter pageToken in the next list request. Subsequent list
27541	// requests will have their own nextPageToken to continue paging through
27542	// the results.
27543	NextPageToken string `json:"nextPageToken,omitempty"`
27544
27545	// SelfLink: [Output Only] Server-defined URL for this resource.
27546	SelfLink string `json:"selfLink,omitempty"`
27547
27548	// Warning: [Output Only] Informational warning message.
27549	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
27550
27551	// ServerResponse contains the HTTP response code and headers from the
27552	// server.
27553	googleapi.ServerResponse `json:"-"`
27554
27555	// ForceSendFields is a list of field names (e.g. "Id") to
27556	// unconditionally include in API requests. By default, fields with
27557	// empty or default values are omitted from API requests. However, any
27558	// non-pointer, non-interface field appearing in ForceSendFields will be
27559	// sent to the server regardless of whether the field is empty or not.
27560	// This may be used to include empty fields in Patch requests.
27561	ForceSendFields []string `json:"-"`
27562
27563	// NullFields is a list of field names (e.g. "Id") to include in API
27564	// requests with the JSON null value. By default, fields with empty
27565	// values are omitted from API requests. However, any field with an
27566	// empty value appearing in NullFields will be sent to the server as
27567	// null. It is an error if a field in this list has a non-empty value.
27568	// This may be used to include null fields in Patch requests.
27569	NullFields []string `json:"-"`
27570}
27571
27572func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
27573	type NoMethod NodeTemplateList
27574	raw := NoMethod(*s)
27575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27576}
27577
27578// NodeTemplateListWarning: [Output Only] Informational warning message.
27579type NodeTemplateListWarning struct {
27580	// Code: [Output Only] A warning code, if applicable. For example,
27581	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27582	// the response.
27583	//
27584	// Possible values:
27585	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27586	// changes made by a failed operation.
27587	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27588	// created.
27589	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27590	// resources has a type marked as deprecated
27591	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27592	// that is larger than image size.
27593	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27594	// resources has a type marked as experimental
27595	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27596	// call
27597	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27598	// overridden. Deprecated unused field.
27599	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27600	// injected kernel, which is deprecated.
27601	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27602	// exceedingly large number of resources
27603	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27604	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27605	// not assigned to an instance on the network.
27606	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27607	// ip forward.
27608	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27609	// refers to an instance that does not exist.
27610	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27611	// URL refers to an instance that is not on the same network as the
27612	// route.
27613	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27614	// have a status of RUNNING.
27615	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27616	// continue the process despite the mentioned error.
27617	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27618	// page.
27619	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27620	// missing due to errors
27621	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27622	// that requires a TOS they have not accepted.
27623	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27624	// resource is in use.
27625	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27626	// auto-delete could not be deleted because they were in use.
27627	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27628	// ignored.
27629	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27630	// instance group manager is valid as such, but its application does not
27631	// make a lot of sense, because it allows only single instance in
27632	// instance group.
27633	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27634	// are present
27635	//   "UNREACHABLE" - A given scope cannot be reached.
27636	Code string `json:"code,omitempty"`
27637
27638	// Data: [Output Only] Metadata about this warning in key: value format.
27639	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27640	// }
27641	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
27642
27643	// Message: [Output Only] A human-readable description of the warning
27644	// code.
27645	Message string `json:"message,omitempty"`
27646
27647	// ForceSendFields is a list of field names (e.g. "Code") to
27648	// unconditionally include in API requests. By default, fields with
27649	// empty or default values are omitted from API requests. However, any
27650	// non-pointer, non-interface field appearing in ForceSendFields will be
27651	// sent to the server regardless of whether the field is empty or not.
27652	// This may be used to include empty fields in Patch requests.
27653	ForceSendFields []string `json:"-"`
27654
27655	// NullFields is a list of field names (e.g. "Code") to include in API
27656	// requests with the JSON null value. By default, fields with empty
27657	// values are omitted from API requests. However, any field with an
27658	// empty value appearing in NullFields will be sent to the server as
27659	// null. It is an error if a field in this list has a non-empty value.
27660	// This may be used to include null fields in Patch requests.
27661	NullFields []string `json:"-"`
27662}
27663
27664func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
27665	type NoMethod NodeTemplateListWarning
27666	raw := NoMethod(*s)
27667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27668}
27669
27670type NodeTemplateListWarningData struct {
27671	// Key: [Output Only] A key that provides more detail on the warning
27672	// being returned. For example, for warnings where there are no results
27673	// in a list request for a particular zone, this key might be scope and
27674	// the key value might be the zone name. Other examples might be a key
27675	// indicating a deprecated resource and a suggested replacement, or a
27676	// warning about invalid network settings (for example, if an instance
27677	// attempts to perform IP forwarding but is not enabled for IP
27678	// forwarding).
27679	Key string `json:"key,omitempty"`
27680
27681	// Value: [Output Only] A warning data value corresponding to the key.
27682	Value string `json:"value,omitempty"`
27683
27684	// ForceSendFields is a list of field names (e.g. "Key") to
27685	// unconditionally include in API requests. By default, fields with
27686	// empty or default values are omitted from API requests. However, any
27687	// non-pointer, non-interface field appearing in ForceSendFields will be
27688	// sent to the server regardless of whether the field is empty or not.
27689	// This may be used to include empty fields in Patch requests.
27690	ForceSendFields []string `json:"-"`
27691
27692	// NullFields is a list of field names (e.g. "Key") to include in API
27693	// requests with the JSON null value. By default, fields with empty
27694	// values are omitted from API requests. However, any field with an
27695	// empty value appearing in NullFields will be sent to the server as
27696	// null. It is an error if a field in this list has a non-empty value.
27697	// This may be used to include null fields in Patch requests.
27698	NullFields []string `json:"-"`
27699}
27700
27701func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
27702	type NoMethod NodeTemplateListWarningData
27703	raw := NoMethod(*s)
27704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27705}
27706
27707type NodeTemplateNodeTypeFlexibility struct {
27708	Cpus string `json:"cpus,omitempty"`
27709
27710	LocalSsd string `json:"localSsd,omitempty"`
27711
27712	Memory string `json:"memory,omitempty"`
27713
27714	// ForceSendFields is a list of field names (e.g. "Cpus") to
27715	// unconditionally include in API requests. By default, fields with
27716	// empty or default values are omitted from API requests. However, any
27717	// non-pointer, non-interface field appearing in ForceSendFields will be
27718	// sent to the server regardless of whether the field is empty or not.
27719	// This may be used to include empty fields in Patch requests.
27720	ForceSendFields []string `json:"-"`
27721
27722	// NullFields is a list of field names (e.g. "Cpus") to include in API
27723	// requests with the JSON null value. By default, fields with empty
27724	// values are omitted from API requests. However, any field with an
27725	// empty value appearing in NullFields will be sent to the server as
27726	// null. It is an error if a field in this list has a non-empty value.
27727	// This may be used to include null fields in Patch requests.
27728	NullFields []string `json:"-"`
27729}
27730
27731func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
27732	type NoMethod NodeTemplateNodeTypeFlexibility
27733	raw := NoMethod(*s)
27734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27735}
27736
27737type NodeTemplatesScopedList struct {
27738	// NodeTemplates: [Output Only] A list of node templates contained in
27739	// this scope.
27740	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
27741
27742	// Warning: [Output Only] An informational warning that appears when the
27743	// node templates list is empty.
27744	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
27745
27746	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
27747	// unconditionally include in API requests. By default, fields with
27748	// empty or default values are omitted from API requests. However, any
27749	// non-pointer, non-interface field appearing in ForceSendFields will be
27750	// sent to the server regardless of whether the field is empty or not.
27751	// This may be used to include empty fields in Patch requests.
27752	ForceSendFields []string `json:"-"`
27753
27754	// NullFields is a list of field names (e.g. "NodeTemplates") to include
27755	// in API requests with the JSON null value. By default, fields with
27756	// empty values are omitted from API requests. However, any field with
27757	// an empty value appearing in NullFields will be sent to the server as
27758	// null. It is an error if a field in this list has a non-empty value.
27759	// This may be used to include null fields in Patch requests.
27760	NullFields []string `json:"-"`
27761}
27762
27763func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
27764	type NoMethod NodeTemplatesScopedList
27765	raw := NoMethod(*s)
27766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27767}
27768
27769// NodeTemplatesScopedListWarning: [Output Only] An informational
27770// warning that appears when the node templates list is empty.
27771type NodeTemplatesScopedListWarning struct {
27772	// Code: [Output Only] A warning code, if applicable. For example,
27773	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27774	// the response.
27775	//
27776	// Possible values:
27777	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27778	// changes made by a failed operation.
27779	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27780	// created.
27781	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27782	// resources has a type marked as deprecated
27783	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27784	// that is larger than image size.
27785	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27786	// resources has a type marked as experimental
27787	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27788	// call
27789	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27790	// overridden. Deprecated unused field.
27791	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27792	// injected kernel, which is deprecated.
27793	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27794	// exceedingly large number of resources
27795	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27796	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27797	// not assigned to an instance on the network.
27798	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27799	// ip forward.
27800	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27801	// refers to an instance that does not exist.
27802	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27803	// URL refers to an instance that is not on the same network as the
27804	// route.
27805	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27806	// have a status of RUNNING.
27807	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27808	// continue the process despite the mentioned error.
27809	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27810	// page.
27811	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27812	// missing due to errors
27813	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27814	// that requires a TOS they have not accepted.
27815	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27816	// resource is in use.
27817	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27818	// auto-delete could not be deleted because they were in use.
27819	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27820	// ignored.
27821	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27822	// instance group manager is valid as such, but its application does not
27823	// make a lot of sense, because it allows only single instance in
27824	// instance group.
27825	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27826	// are present
27827	//   "UNREACHABLE" - A given scope cannot be reached.
27828	Code string `json:"code,omitempty"`
27829
27830	// Data: [Output Only] Metadata about this warning in key: value format.
27831	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27832	// }
27833	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
27834
27835	// Message: [Output Only] A human-readable description of the warning
27836	// code.
27837	Message string `json:"message,omitempty"`
27838
27839	// ForceSendFields is a list of field names (e.g. "Code") to
27840	// unconditionally include in API requests. By default, fields with
27841	// empty or default values are omitted from API requests. However, any
27842	// non-pointer, non-interface field appearing in ForceSendFields will be
27843	// sent to the server regardless of whether the field is empty or not.
27844	// This may be used to include empty fields in Patch requests.
27845	ForceSendFields []string `json:"-"`
27846
27847	// NullFields is a list of field names (e.g. "Code") to include in API
27848	// requests with the JSON null value. By default, fields with empty
27849	// values are omitted from API requests. However, any field with an
27850	// empty value appearing in NullFields will be sent to the server as
27851	// null. It is an error if a field in this list has a non-empty value.
27852	// This may be used to include null fields in Patch requests.
27853	NullFields []string `json:"-"`
27854}
27855
27856func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
27857	type NoMethod NodeTemplatesScopedListWarning
27858	raw := NoMethod(*s)
27859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27860}
27861
27862type NodeTemplatesScopedListWarningData struct {
27863	// Key: [Output Only] A key that provides more detail on the warning
27864	// being returned. For example, for warnings where there are no results
27865	// in a list request for a particular zone, this key might be scope and
27866	// the key value might be the zone name. Other examples might be a key
27867	// indicating a deprecated resource and a suggested replacement, or a
27868	// warning about invalid network settings (for example, if an instance
27869	// attempts to perform IP forwarding but is not enabled for IP
27870	// forwarding).
27871	Key string `json:"key,omitempty"`
27872
27873	// Value: [Output Only] A warning data value corresponding to the key.
27874	Value string `json:"value,omitempty"`
27875
27876	// ForceSendFields is a list of field names (e.g. "Key") to
27877	// unconditionally include in API requests. By default, fields with
27878	// empty or default values are omitted from API requests. However, any
27879	// non-pointer, non-interface field appearing in ForceSendFields will be
27880	// sent to the server regardless of whether the field is empty or not.
27881	// This may be used to include empty fields in Patch requests.
27882	ForceSendFields []string `json:"-"`
27883
27884	// NullFields is a list of field names (e.g. "Key") to include in API
27885	// requests with the JSON null value. By default, fields with empty
27886	// values are omitted from API requests. However, any field with an
27887	// empty value appearing in NullFields will be sent to the server as
27888	// null. It is an error if a field in this list has a non-empty value.
27889	// This may be used to include null fields in Patch requests.
27890	NullFields []string `json:"-"`
27891}
27892
27893func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
27894	type NoMethod NodeTemplatesScopedListWarningData
27895	raw := NoMethod(*s)
27896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27897}
27898
27899// NodeType: Represent a sole-tenant Node Type resource. Each node
27900// within a node group must have a node type. A node type specifies the
27901// total amount of cores and memory for that node. Currently, the only
27902// available node type is n1-node-96-624 node type that has 96 vCPUs and
27903// 624 GB of memory, available in multiple zones. For more information
27904// read Node types.
27905type NodeType struct {
27906	// CpuPlatform: [Output Only] The CPU platform used by this node type.
27907	CpuPlatform string `json:"cpuPlatform,omitempty"`
27908
27909	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27910	// format.
27911	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27912
27913	// Deprecated -- [Output Only] The deprecation status associated with
27914	// this node type.
27915	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27916
27917	// Description: [Output Only] An optional textual description of the
27918	// resource.
27919	Description string `json:"description,omitempty"`
27920
27921	// GuestCpus: [Output Only] The number of virtual CPUs that are
27922	// available to the node type.
27923	GuestCpus int64 `json:"guestCpus,omitempty"`
27924
27925	// Id: [Output Only] The unique identifier for the resource. This
27926	// identifier is defined by the server.
27927	Id uint64 `json:"id,omitempty,string"`
27928
27929	// Kind: [Output Only] The type of the resource. Always compute#nodeType
27930	// for node types.
27931	Kind string `json:"kind,omitempty"`
27932
27933	// LocalSsdGb: [Output Only] Local SSD available to the node type,
27934	// defined in GB.
27935	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
27936
27937	// MemoryMb: [Output Only] The amount of physical memory available to
27938	// the node type, defined in MB.
27939	MemoryMb int64 `json:"memoryMb,omitempty"`
27940
27941	// Name: [Output Only] Name of the resource.
27942	Name string `json:"name,omitempty"`
27943
27944	// SelfLink: [Output Only] Server-defined URL for the resource.
27945	SelfLink string `json:"selfLink,omitempty"`
27946
27947	// Zone: [Output Only] The name of the zone where the node type resides,
27948	// such as us-central1-a.
27949	Zone string `json:"zone,omitempty"`
27950
27951	// ServerResponse contains the HTTP response code and headers from the
27952	// server.
27953	googleapi.ServerResponse `json:"-"`
27954
27955	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
27956	// unconditionally include in API requests. By default, fields with
27957	// empty or default values are omitted from API requests. However, any
27958	// non-pointer, non-interface field appearing in ForceSendFields will be
27959	// sent to the server regardless of whether the field is empty or not.
27960	// This may be used to include empty fields in Patch requests.
27961	ForceSendFields []string `json:"-"`
27962
27963	// NullFields is a list of field names (e.g. "CpuPlatform") to include
27964	// in API requests with the JSON null value. By default, fields with
27965	// empty values are omitted from API requests. However, any field with
27966	// an empty value appearing in NullFields will be sent to the server as
27967	// null. It is an error if a field in this list has a non-empty value.
27968	// This may be used to include null fields in Patch requests.
27969	NullFields []string `json:"-"`
27970}
27971
27972func (s *NodeType) MarshalJSON() ([]byte, error) {
27973	type NoMethod NodeType
27974	raw := NoMethod(*s)
27975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27976}
27977
27978type NodeTypeAggregatedList struct {
27979	// Id: [Output Only] Unique identifier for the resource; defined by the
27980	// server.
27981	Id string `json:"id,omitempty"`
27982
27983	// Items: A list of NodeTypesScopedList resources.
27984	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
27985
27986	// Kind: [Output Only] Type of resource.Always
27987	// compute#nodeTypeAggregatedList for aggregated lists of node types.
27988	Kind string `json:"kind,omitempty"`
27989
27990	// NextPageToken: [Output Only] This token allows you to get the next
27991	// page of results for list requests. If the number of results is larger
27992	// than maxResults, use the nextPageToken as a value for the query
27993	// parameter pageToken in the next list request. Subsequent list
27994	// requests will have their own nextPageToken to continue paging through
27995	// the results.
27996	NextPageToken string `json:"nextPageToken,omitempty"`
27997
27998	// SelfLink: [Output Only] Server-defined URL for this resource.
27999	SelfLink string `json:"selfLink,omitempty"`
28000
28001	// Unreachables: [Output Only] Unreachable resources.
28002	Unreachables []string `json:"unreachables,omitempty"`
28003
28004	// Warning: [Output Only] Informational warning message.
28005	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
28006
28007	// ServerResponse contains the HTTP response code and headers from the
28008	// server.
28009	googleapi.ServerResponse `json:"-"`
28010
28011	// ForceSendFields is a list of field names (e.g. "Id") to
28012	// unconditionally include in API requests. By default, fields with
28013	// empty or default values are omitted from API requests. However, any
28014	// non-pointer, non-interface field appearing in ForceSendFields will be
28015	// sent to the server regardless of whether the field is empty or not.
28016	// This may be used to include empty fields in Patch requests.
28017	ForceSendFields []string `json:"-"`
28018
28019	// NullFields is a list of field names (e.g. "Id") to include in API
28020	// requests with the JSON null value. By default, fields with empty
28021	// values are omitted from API requests. However, any field with an
28022	// empty value appearing in NullFields will be sent to the server as
28023	// null. It is an error if a field in this list has a non-empty value.
28024	// This may be used to include null fields in Patch requests.
28025	NullFields []string `json:"-"`
28026}
28027
28028func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
28029	type NoMethod NodeTypeAggregatedList
28030	raw := NoMethod(*s)
28031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28032}
28033
28034// NodeTypeAggregatedListWarning: [Output Only] Informational warning
28035// message.
28036type NodeTypeAggregatedListWarning struct {
28037	// Code: [Output Only] A warning code, if applicable. For example,
28038	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28039	// the response.
28040	//
28041	// Possible values:
28042	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28043	// changes made by a failed operation.
28044	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28045	// created.
28046	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28047	// resources has a type marked as deprecated
28048	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28049	// that is larger than image size.
28050	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28051	// resources has a type marked as experimental
28052	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28053	// call
28054	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28055	// overridden. Deprecated unused field.
28056	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28057	// injected kernel, which is deprecated.
28058	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28059	// exceedingly large number of resources
28060	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28061	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28062	// not assigned to an instance on the network.
28063	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28064	// ip forward.
28065	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28066	// refers to an instance that does not exist.
28067	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28068	// URL refers to an instance that is not on the same network as the
28069	// route.
28070	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28071	// have a status of RUNNING.
28072	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28073	// continue the process despite the mentioned error.
28074	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28075	// page.
28076	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28077	// missing due to errors
28078	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28079	// that requires a TOS they have not accepted.
28080	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28081	// resource is in use.
28082	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28083	// auto-delete could not be deleted because they were in use.
28084	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28085	// ignored.
28086	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28087	// instance group manager is valid as such, but its application does not
28088	// make a lot of sense, because it allows only single instance in
28089	// instance group.
28090	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28091	// are present
28092	//   "UNREACHABLE" - A given scope cannot be reached.
28093	Code string `json:"code,omitempty"`
28094
28095	// Data: [Output Only] Metadata about this warning in key: value format.
28096	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28097	// }
28098	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
28099
28100	// Message: [Output Only] A human-readable description of the warning
28101	// code.
28102	Message string `json:"message,omitempty"`
28103
28104	// ForceSendFields is a list of field names (e.g. "Code") to
28105	// unconditionally include in API requests. By default, fields with
28106	// empty or default values are omitted from API requests. However, any
28107	// non-pointer, non-interface field appearing in ForceSendFields will be
28108	// sent to the server regardless of whether the field is empty or not.
28109	// This may be used to include empty fields in Patch requests.
28110	ForceSendFields []string `json:"-"`
28111
28112	// NullFields is a list of field names (e.g. "Code") to include in API
28113	// requests with the JSON null value. By default, fields with empty
28114	// values are omitted from API requests. However, any field with an
28115	// empty value appearing in NullFields will be sent to the server as
28116	// null. It is an error if a field in this list has a non-empty value.
28117	// This may be used to include null fields in Patch requests.
28118	NullFields []string `json:"-"`
28119}
28120
28121func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
28122	type NoMethod NodeTypeAggregatedListWarning
28123	raw := NoMethod(*s)
28124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28125}
28126
28127type NodeTypeAggregatedListWarningData struct {
28128	// Key: [Output Only] A key that provides more detail on the warning
28129	// being returned. For example, for warnings where there are no results
28130	// in a list request for a particular zone, this key might be scope and
28131	// the key value might be the zone name. Other examples might be a key
28132	// indicating a deprecated resource and a suggested replacement, or a
28133	// warning about invalid network settings (for example, if an instance
28134	// attempts to perform IP forwarding but is not enabled for IP
28135	// forwarding).
28136	Key string `json:"key,omitempty"`
28137
28138	// Value: [Output Only] A warning data value corresponding to the key.
28139	Value string `json:"value,omitempty"`
28140
28141	// ForceSendFields is a list of field names (e.g. "Key") to
28142	// unconditionally include in API requests. By default, fields with
28143	// empty or default values are omitted from API requests. However, any
28144	// non-pointer, non-interface field appearing in ForceSendFields will be
28145	// sent to the server regardless of whether the field is empty or not.
28146	// This may be used to include empty fields in Patch requests.
28147	ForceSendFields []string `json:"-"`
28148
28149	// NullFields is a list of field names (e.g. "Key") to include in API
28150	// requests with the JSON null value. By default, fields with empty
28151	// values are omitted from API requests. However, any field with an
28152	// empty value appearing in NullFields will be sent to the server as
28153	// null. It is an error if a field in this list has a non-empty value.
28154	// This may be used to include null fields in Patch requests.
28155	NullFields []string `json:"-"`
28156}
28157
28158func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28159	type NoMethod NodeTypeAggregatedListWarningData
28160	raw := NoMethod(*s)
28161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28162}
28163
28164// NodeTypeList: Contains a list of node types.
28165type NodeTypeList struct {
28166	// Id: [Output Only] Unique identifier for the resource; defined by the
28167	// server.
28168	Id string `json:"id,omitempty"`
28169
28170	// Items: A list of NodeType resources.
28171	Items []*NodeType `json:"items,omitempty"`
28172
28173	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
28174	// lists of node types.
28175	Kind string `json:"kind,omitempty"`
28176
28177	// NextPageToken: [Output Only] This token allows you to get the next
28178	// page of results for list requests. If the number of results is larger
28179	// than maxResults, use the nextPageToken as a value for the query
28180	// parameter pageToken in the next list request. Subsequent list
28181	// requests will have their own nextPageToken to continue paging through
28182	// the results.
28183	NextPageToken string `json:"nextPageToken,omitempty"`
28184
28185	// SelfLink: [Output Only] Server-defined URL for this resource.
28186	SelfLink string `json:"selfLink,omitempty"`
28187
28188	// Warning: [Output Only] Informational warning message.
28189	Warning *NodeTypeListWarning `json:"warning,omitempty"`
28190
28191	// ServerResponse contains the HTTP response code and headers from the
28192	// server.
28193	googleapi.ServerResponse `json:"-"`
28194
28195	// ForceSendFields is a list of field names (e.g. "Id") to
28196	// unconditionally include in API requests. By default, fields with
28197	// empty or default values are omitted from API requests. However, any
28198	// non-pointer, non-interface field appearing in ForceSendFields will be
28199	// sent to the server regardless of whether the field is empty or not.
28200	// This may be used to include empty fields in Patch requests.
28201	ForceSendFields []string `json:"-"`
28202
28203	// NullFields is a list of field names (e.g. "Id") to include in API
28204	// requests with the JSON null value. By default, fields with empty
28205	// values are omitted from API requests. However, any field with an
28206	// empty value appearing in NullFields will be sent to the server as
28207	// null. It is an error if a field in this list has a non-empty value.
28208	// This may be used to include null fields in Patch requests.
28209	NullFields []string `json:"-"`
28210}
28211
28212func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
28213	type NoMethod NodeTypeList
28214	raw := NoMethod(*s)
28215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28216}
28217
28218// NodeTypeListWarning: [Output Only] Informational warning message.
28219type NodeTypeListWarning struct {
28220	// Code: [Output Only] A warning code, if applicable. For example,
28221	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28222	// the response.
28223	//
28224	// Possible values:
28225	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28226	// changes made by a failed operation.
28227	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28228	// created.
28229	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28230	// resources has a type marked as deprecated
28231	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28232	// that is larger than image size.
28233	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28234	// resources has a type marked as experimental
28235	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28236	// call
28237	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28238	// overridden. Deprecated unused field.
28239	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28240	// injected kernel, which is deprecated.
28241	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28242	// exceedingly large number of resources
28243	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28244	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28245	// not assigned to an instance on the network.
28246	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28247	// ip forward.
28248	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28249	// refers to an instance that does not exist.
28250	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28251	// URL refers to an instance that is not on the same network as the
28252	// route.
28253	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28254	// have a status of RUNNING.
28255	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28256	// continue the process despite the mentioned error.
28257	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28258	// page.
28259	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28260	// missing due to errors
28261	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28262	// that requires a TOS they have not accepted.
28263	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28264	// resource is in use.
28265	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28266	// auto-delete could not be deleted because they were in use.
28267	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28268	// ignored.
28269	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28270	// instance group manager is valid as such, but its application does not
28271	// make a lot of sense, because it allows only single instance in
28272	// instance group.
28273	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28274	// are present
28275	//   "UNREACHABLE" - A given scope cannot be reached.
28276	Code string `json:"code,omitempty"`
28277
28278	// Data: [Output Only] Metadata about this warning in key: value format.
28279	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28280	// }
28281	Data []*NodeTypeListWarningData `json:"data,omitempty"`
28282
28283	// Message: [Output Only] A human-readable description of the warning
28284	// code.
28285	Message string `json:"message,omitempty"`
28286
28287	// ForceSendFields is a list of field names (e.g. "Code") to
28288	// unconditionally include in API requests. By default, fields with
28289	// empty or default values are omitted from API requests. However, any
28290	// non-pointer, non-interface field appearing in ForceSendFields will be
28291	// sent to the server regardless of whether the field is empty or not.
28292	// This may be used to include empty fields in Patch requests.
28293	ForceSendFields []string `json:"-"`
28294
28295	// NullFields is a list of field names (e.g. "Code") to include in API
28296	// requests with the JSON null value. By default, fields with empty
28297	// values are omitted from API requests. However, any field with an
28298	// empty value appearing in NullFields will be sent to the server as
28299	// null. It is an error if a field in this list has a non-empty value.
28300	// This may be used to include null fields in Patch requests.
28301	NullFields []string `json:"-"`
28302}
28303
28304func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
28305	type NoMethod NodeTypeListWarning
28306	raw := NoMethod(*s)
28307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28308}
28309
28310type NodeTypeListWarningData struct {
28311	// Key: [Output Only] A key that provides more detail on the warning
28312	// being returned. For example, for warnings where there are no results
28313	// in a list request for a particular zone, this key might be scope and
28314	// the key value might be the zone name. Other examples might be a key
28315	// indicating a deprecated resource and a suggested replacement, or a
28316	// warning about invalid network settings (for example, if an instance
28317	// attempts to perform IP forwarding but is not enabled for IP
28318	// forwarding).
28319	Key string `json:"key,omitempty"`
28320
28321	// Value: [Output Only] A warning data value corresponding to the key.
28322	Value string `json:"value,omitempty"`
28323
28324	// ForceSendFields is a list of field names (e.g. "Key") to
28325	// unconditionally include in API requests. By default, fields with
28326	// empty or default values are omitted from API requests. However, any
28327	// non-pointer, non-interface field appearing in ForceSendFields will be
28328	// sent to the server regardless of whether the field is empty or not.
28329	// This may be used to include empty fields in Patch requests.
28330	ForceSendFields []string `json:"-"`
28331
28332	// NullFields is a list of field names (e.g. "Key") to include in API
28333	// requests with the JSON null value. By default, fields with empty
28334	// values are omitted from API requests. However, any field with an
28335	// empty value appearing in NullFields will be sent to the server as
28336	// null. It is an error if a field in this list has a non-empty value.
28337	// This may be used to include null fields in Patch requests.
28338	NullFields []string `json:"-"`
28339}
28340
28341func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
28342	type NoMethod NodeTypeListWarningData
28343	raw := NoMethod(*s)
28344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28345}
28346
28347type NodeTypesScopedList struct {
28348	// NodeTypes: [Output Only] A list of node types contained in this
28349	// scope.
28350	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
28351
28352	// Warning: [Output Only] An informational warning that appears when the
28353	// node types list is empty.
28354	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
28355
28356	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
28357	// unconditionally include in API requests. By default, fields with
28358	// empty or default values are omitted from API requests. However, any
28359	// non-pointer, non-interface field appearing in ForceSendFields will be
28360	// sent to the server regardless of whether the field is empty or not.
28361	// This may be used to include empty fields in Patch requests.
28362	ForceSendFields []string `json:"-"`
28363
28364	// NullFields is a list of field names (e.g. "NodeTypes") to include in
28365	// API requests with the JSON null value. By default, fields with empty
28366	// values are omitted from API requests. However, any field with an
28367	// empty value appearing in NullFields will be sent to the server as
28368	// null. It is an error if a field in this list has a non-empty value.
28369	// This may be used to include null fields in Patch requests.
28370	NullFields []string `json:"-"`
28371}
28372
28373func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
28374	type NoMethod NodeTypesScopedList
28375	raw := NoMethod(*s)
28376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28377}
28378
28379// NodeTypesScopedListWarning: [Output Only] An informational warning
28380// that appears when the node types list is empty.
28381type NodeTypesScopedListWarning struct {
28382	// Code: [Output Only] A warning code, if applicable. For example,
28383	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28384	// the response.
28385	//
28386	// Possible values:
28387	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28388	// changes made by a failed operation.
28389	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28390	// created.
28391	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28392	// resources has a type marked as deprecated
28393	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28394	// that is larger than image size.
28395	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28396	// resources has a type marked as experimental
28397	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28398	// call
28399	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28400	// overridden. Deprecated unused field.
28401	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28402	// injected kernel, which is deprecated.
28403	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28404	// exceedingly large number of resources
28405	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28406	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28407	// not assigned to an instance on the network.
28408	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28409	// ip forward.
28410	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28411	// refers to an instance that does not exist.
28412	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28413	// URL refers to an instance that is not on the same network as the
28414	// route.
28415	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28416	// have a status of RUNNING.
28417	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28418	// continue the process despite the mentioned error.
28419	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28420	// page.
28421	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28422	// missing due to errors
28423	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28424	// that requires a TOS they have not accepted.
28425	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28426	// resource is in use.
28427	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28428	// auto-delete could not be deleted because they were in use.
28429	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28430	// ignored.
28431	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28432	// instance group manager is valid as such, but its application does not
28433	// make a lot of sense, because it allows only single instance in
28434	// instance group.
28435	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28436	// are present
28437	//   "UNREACHABLE" - A given scope cannot be reached.
28438	Code string `json:"code,omitempty"`
28439
28440	// Data: [Output Only] Metadata about this warning in key: value format.
28441	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28442	// }
28443	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
28444
28445	// Message: [Output Only] A human-readable description of the warning
28446	// code.
28447	Message string `json:"message,omitempty"`
28448
28449	// ForceSendFields is a list of field names (e.g. "Code") to
28450	// unconditionally include in API requests. By default, fields with
28451	// empty or default values are omitted from API requests. However, any
28452	// non-pointer, non-interface field appearing in ForceSendFields will be
28453	// sent to the server regardless of whether the field is empty or not.
28454	// This may be used to include empty fields in Patch requests.
28455	ForceSendFields []string `json:"-"`
28456
28457	// NullFields is a list of field names (e.g. "Code") to include in API
28458	// requests with the JSON null value. By default, fields with empty
28459	// values are omitted from API requests. However, any field with an
28460	// empty value appearing in NullFields will be sent to the server as
28461	// null. It is an error if a field in this list has a non-empty value.
28462	// This may be used to include null fields in Patch requests.
28463	NullFields []string `json:"-"`
28464}
28465
28466func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
28467	type NoMethod NodeTypesScopedListWarning
28468	raw := NoMethod(*s)
28469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28470}
28471
28472type NodeTypesScopedListWarningData struct {
28473	// Key: [Output Only] A key that provides more detail on the warning
28474	// being returned. For example, for warnings where there are no results
28475	// in a list request for a particular zone, this key might be scope and
28476	// the key value might be the zone name. Other examples might be a key
28477	// indicating a deprecated resource and a suggested replacement, or a
28478	// warning about invalid network settings (for example, if an instance
28479	// attempts to perform IP forwarding but is not enabled for IP
28480	// forwarding).
28481	Key string `json:"key,omitempty"`
28482
28483	// Value: [Output Only] A warning data value corresponding to the key.
28484	Value string `json:"value,omitempty"`
28485
28486	// ForceSendFields is a list of field names (e.g. "Key") to
28487	// unconditionally include in API requests. By default, fields with
28488	// empty or default values are omitted from API requests. However, any
28489	// non-pointer, non-interface field appearing in ForceSendFields will be
28490	// sent to the server regardless of whether the field is empty or not.
28491	// This may be used to include empty fields in Patch requests.
28492	ForceSendFields []string `json:"-"`
28493
28494	// NullFields is a list of field names (e.g. "Key") to include in API
28495	// requests with the JSON null value. By default, fields with empty
28496	// values are omitted from API requests. However, any field with an
28497	// empty value appearing in NullFields will be sent to the server as
28498	// null. It is an error if a field in this list has a non-empty value.
28499	// This may be used to include null fields in Patch requests.
28500	NullFields []string `json:"-"`
28501}
28502
28503func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
28504	type NoMethod NodeTypesScopedListWarningData
28505	raw := NoMethod(*s)
28506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28507}
28508
28509// NotificationEndpoint: Represents a notification endpoint. A
28510// notification endpoint resource defines an endpoint to receive
28511// notifications when there are status changes detected by the
28512// associated health check service. For more information, see Health
28513// checks overview.
28514type NotificationEndpoint struct {
28515	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28516	// format.
28517	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28518
28519	// Description: An optional description of this resource. Provide this
28520	// property when you create the resource.
28521	Description string `json:"description,omitempty"`
28522
28523	// GrpcSettings: Settings of the gRPC notification endpoint including
28524	// the endpoint URL and the retry duration.
28525	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
28526
28527	// Id: [Output Only] A unique identifier for this resource type. The
28528	// server generates this identifier.
28529	Id uint64 `json:"id,omitempty,string"`
28530
28531	// Kind: [Output Only] Type of the resource. Always
28532	// compute#notificationEndpoint for notification endpoints.
28533	Kind string `json:"kind,omitempty"`
28534
28535	// Name: Name of the resource. Provided by the client when the resource
28536	// is created. The name must be 1-63 characters long, and comply with
28537	// RFC1035. Specifically, the name must be 1-63 characters long and
28538	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28539	// the first character must be a lowercase letter, and all following
28540	// characters must be a dash, lowercase letter, or digit, except the
28541	// last character, which cannot be a dash.
28542	Name string `json:"name,omitempty"`
28543
28544	// Region: [Output Only] URL of the region where the notification
28545	// endpoint resides. This field applies only to the regional resource.
28546	// You must specify this field as part of the HTTP request URL. It is
28547	// not settable as a field in the request body.
28548	Region string `json:"region,omitempty"`
28549
28550	// SelfLink: [Output Only] Server-defined URL for the resource.
28551	SelfLink string `json:"selfLink,omitempty"`
28552
28553	// ServerResponse contains the HTTP response code and headers from the
28554	// server.
28555	googleapi.ServerResponse `json:"-"`
28556
28557	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28558	// to unconditionally include in API requests. By default, fields with
28559	// empty or default values are omitted from API requests. However, any
28560	// non-pointer, non-interface field appearing in ForceSendFields will be
28561	// sent to the server regardless of whether the field is empty or not.
28562	// This may be used to include empty fields in Patch requests.
28563	ForceSendFields []string `json:"-"`
28564
28565	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28566	// include in API requests with the JSON null value. By default, fields
28567	// with empty values are omitted from API requests. However, any field
28568	// with an empty value appearing in NullFields will be sent to the
28569	// server as null. It is an error if a field in this list has a
28570	// non-empty value. This may be used to include null fields in Patch
28571	// requests.
28572	NullFields []string `json:"-"`
28573}
28574
28575func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
28576	type NoMethod NotificationEndpoint
28577	raw := NoMethod(*s)
28578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28579}
28580
28581// NotificationEndpointGrpcSettings: Represents a gRPC setting that
28582// describes one gRPC notification endpoint and the retry duration
28583// attempting to send notification to this endpoint.
28584type NotificationEndpointGrpcSettings struct {
28585	// Authority: Optional. If specified, this field is used to set the
28586	// authority header by the sender of notifications. See
28587	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
28588	Authority string `json:"authority,omitempty"`
28589
28590	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
28591	// a valid gRPCLB DNS name.
28592	Endpoint string `json:"endpoint,omitempty"`
28593
28594	// PayloadName: Optional. If specified, this field is used to populate
28595	// the "name" field in gRPC requests.
28596	PayloadName string `json:"payloadName,omitempty"`
28597
28598	// ResendInterval: Optional. This field is used to configure how often
28599	// to send a full update of all non-healthy backends. If unspecified,
28600	// full updates are not sent. If specified, must be in the range between
28601	// 600 seconds to 3600 seconds. Nanos are disallowed.
28602	ResendInterval *Duration `json:"resendInterval,omitempty"`
28603
28604	// RetryDurationSec: How much time (in seconds) is spent attempting
28605	// notification retries until a successful response is received. Default
28606	// is 30s. Limit is 20m (1200s). Must be a positive number.
28607	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
28608
28609	// ForceSendFields is a list of field names (e.g. "Authority") to
28610	// unconditionally include in API requests. By default, fields with
28611	// empty or default values are omitted from API requests. However, any
28612	// non-pointer, non-interface field appearing in ForceSendFields will be
28613	// sent to the server regardless of whether the field is empty or not.
28614	// This may be used to include empty fields in Patch requests.
28615	ForceSendFields []string `json:"-"`
28616
28617	// NullFields is a list of field names (e.g. "Authority") to include in
28618	// API requests with the JSON null value. By default, fields with empty
28619	// values are omitted from API requests. However, any field with an
28620	// empty value appearing in NullFields will be sent to the server as
28621	// null. It is an error if a field in this list has a non-empty value.
28622	// This may be used to include null fields in Patch requests.
28623	NullFields []string `json:"-"`
28624}
28625
28626func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
28627	type NoMethod NotificationEndpointGrpcSettings
28628	raw := NoMethod(*s)
28629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28630}
28631
28632type NotificationEndpointList struct {
28633	// Id: [Output Only] Unique identifier for the resource; defined by the
28634	// server.
28635	Id string `json:"id,omitempty"`
28636
28637	// Items: A list of NotificationEndpoint resources.
28638	Items []*NotificationEndpoint `json:"items,omitempty"`
28639
28640	// Kind: [Output Only] Type of the resource. Always
28641	// compute#notificationEndpoint for notification endpoints.
28642	Kind string `json:"kind,omitempty"`
28643
28644	// NextPageToken: [Output Only] This token allows you to get the next
28645	// page of results for list requests. If the number of results is larger
28646	// than maxResults, use the nextPageToken as a value for the query
28647	// parameter pageToken in the next list request. Subsequent list
28648	// requests will have their own nextPageToken to continue paging through
28649	// the results.
28650	NextPageToken string `json:"nextPageToken,omitempty"`
28651
28652	// SelfLink: [Output Only] Server-defined URL for this resource.
28653	SelfLink string `json:"selfLink,omitempty"`
28654
28655	// Warning: [Output Only] Informational warning message.
28656	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
28657
28658	// ServerResponse contains the HTTP response code and headers from the
28659	// server.
28660	googleapi.ServerResponse `json:"-"`
28661
28662	// ForceSendFields is a list of field names (e.g. "Id") to
28663	// unconditionally include in API requests. By default, fields with
28664	// empty or default values are omitted from API requests. However, any
28665	// non-pointer, non-interface field appearing in ForceSendFields will be
28666	// sent to the server regardless of whether the field is empty or not.
28667	// This may be used to include empty fields in Patch requests.
28668	ForceSendFields []string `json:"-"`
28669
28670	// NullFields is a list of field names (e.g. "Id") to include in API
28671	// requests with the JSON null value. By default, fields with empty
28672	// values are omitted from API requests. However, any field with an
28673	// empty value appearing in NullFields will be sent to the server as
28674	// null. It is an error if a field in this list has a non-empty value.
28675	// This may be used to include null fields in Patch requests.
28676	NullFields []string `json:"-"`
28677}
28678
28679func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
28680	type NoMethod NotificationEndpointList
28681	raw := NoMethod(*s)
28682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28683}
28684
28685// NotificationEndpointListWarning: [Output Only] Informational warning
28686// message.
28687type NotificationEndpointListWarning struct {
28688	// Code: [Output Only] A warning code, if applicable. For example,
28689	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28690	// the response.
28691	//
28692	// Possible values:
28693	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28694	// changes made by a failed operation.
28695	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28696	// created.
28697	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28698	// resources has a type marked as deprecated
28699	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28700	// that is larger than image size.
28701	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28702	// resources has a type marked as experimental
28703	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28704	// call
28705	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28706	// overridden. Deprecated unused field.
28707	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28708	// injected kernel, which is deprecated.
28709	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28710	// exceedingly large number of resources
28711	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28712	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28713	// not assigned to an instance on the network.
28714	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28715	// ip forward.
28716	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28717	// refers to an instance that does not exist.
28718	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28719	// URL refers to an instance that is not on the same network as the
28720	// route.
28721	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28722	// have a status of RUNNING.
28723	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28724	// continue the process despite the mentioned error.
28725	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28726	// page.
28727	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28728	// missing due to errors
28729	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28730	// that requires a TOS they have not accepted.
28731	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28732	// resource is in use.
28733	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28734	// auto-delete could not be deleted because they were in use.
28735	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28736	// ignored.
28737	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28738	// instance group manager is valid as such, but its application does not
28739	// make a lot of sense, because it allows only single instance in
28740	// instance group.
28741	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28742	// are present
28743	//   "UNREACHABLE" - A given scope cannot be reached.
28744	Code string `json:"code,omitempty"`
28745
28746	// Data: [Output Only] Metadata about this warning in key: value format.
28747	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28748	// }
28749	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
28750
28751	// Message: [Output Only] A human-readable description of the warning
28752	// code.
28753	Message string `json:"message,omitempty"`
28754
28755	// ForceSendFields is a list of field names (e.g. "Code") to
28756	// unconditionally include in API requests. By default, fields with
28757	// empty or default values are omitted from API requests. However, any
28758	// non-pointer, non-interface field appearing in ForceSendFields will be
28759	// sent to the server regardless of whether the field is empty or not.
28760	// This may be used to include empty fields in Patch requests.
28761	ForceSendFields []string `json:"-"`
28762
28763	// NullFields is a list of field names (e.g. "Code") to include in API
28764	// requests with the JSON null value. By default, fields with empty
28765	// values are omitted from API requests. However, any field with an
28766	// empty value appearing in NullFields will be sent to the server as
28767	// null. It is an error if a field in this list has a non-empty value.
28768	// This may be used to include null fields in Patch requests.
28769	NullFields []string `json:"-"`
28770}
28771
28772func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
28773	type NoMethod NotificationEndpointListWarning
28774	raw := NoMethod(*s)
28775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28776}
28777
28778type NotificationEndpointListWarningData struct {
28779	// Key: [Output Only] A key that provides more detail on the warning
28780	// being returned. For example, for warnings where there are no results
28781	// in a list request for a particular zone, this key might be scope and
28782	// the key value might be the zone name. Other examples might be a key
28783	// indicating a deprecated resource and a suggested replacement, or a
28784	// warning about invalid network settings (for example, if an instance
28785	// attempts to perform IP forwarding but is not enabled for IP
28786	// forwarding).
28787	Key string `json:"key,omitempty"`
28788
28789	// Value: [Output Only] A warning data value corresponding to the key.
28790	Value string `json:"value,omitempty"`
28791
28792	// ForceSendFields is a list of field names (e.g. "Key") to
28793	// unconditionally include in API requests. By default, fields with
28794	// empty or default values are omitted from API requests. However, any
28795	// non-pointer, non-interface field appearing in ForceSendFields will be
28796	// sent to the server regardless of whether the field is empty or not.
28797	// This may be used to include empty fields in Patch requests.
28798	ForceSendFields []string `json:"-"`
28799
28800	// NullFields is a list of field names (e.g. "Key") to include in API
28801	// requests with the JSON null value. By default, fields with empty
28802	// values are omitted from API requests. However, any field with an
28803	// empty value appearing in NullFields will be sent to the server as
28804	// null. It is an error if a field in this list has a non-empty value.
28805	// This may be used to include null fields in Patch requests.
28806	NullFields []string `json:"-"`
28807}
28808
28809func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
28810	type NoMethod NotificationEndpointListWarningData
28811	raw := NoMethod(*s)
28812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28813}
28814
28815// Operation: Represents an Operation resource. Google Compute Engine
28816// has three Operation resources: * Global
28817// (/compute/docs/reference/rest/v1/globalOperations) * Regional
28818// (/compute/docs/reference/rest/v1/regionOperations) * Zonal
28819// (/compute/docs/reference/rest/v1/zoneOperations) You can use an
28820// operation resource to manage asynchronous API requests. For more
28821// information, read Handling API responses. Operations can be global,
28822// regional or zonal. - For global operations, use the
28823// `globalOperations` resource. - For regional operations, use the
28824// `regionOperations` resource. - For zonal operations, use the
28825// `zonalOperations` resource. For more information, read Global,
28826// Regional, and Zonal Resources.
28827type Operation struct {
28828	// ClientOperationId: [Output Only] The value of `requestId` if you
28829	// provided it in the request. Not present otherwise.
28830	ClientOperationId string `json:"clientOperationId,omitempty"`
28831
28832	// CreationTimestamp: [Deprecated] This field is deprecated.
28833	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28834
28835	// Description: [Output Only] A textual description of the operation,
28836	// which is set when the operation is created.
28837	Description string `json:"description,omitempty"`
28838
28839	// EndTime: [Output Only] The time that this operation was completed.
28840	// This value is in RFC3339 text format.
28841	EndTime string `json:"endTime,omitempty"`
28842
28843	// Error: [Output Only] If errors are generated during processing of the
28844	// operation, this field will be populated.
28845	Error *OperationError `json:"error,omitempty"`
28846
28847	// HttpErrorMessage: [Output Only] If the operation fails, this field
28848	// contains the HTTP error message that was returned, such as `NOT
28849	// FOUND`.
28850	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
28851
28852	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
28853	// contains the HTTP error status code that was returned. For example, a
28854	// `404` means the resource was not found.
28855	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
28856
28857	// Id: [Output Only] The unique identifier for the operation. This
28858	// identifier is defined by the server.
28859	Id uint64 `json:"id,omitempty,string"`
28860
28861	// InsertTime: [Output Only] The time that this operation was requested.
28862	// This value is in RFC3339 text format.
28863	InsertTime string `json:"insertTime,omitempty"`
28864
28865	// Kind: [Output Only] Type of the resource. Always `compute#operation`
28866	// for Operation resources.
28867	Kind string `json:"kind,omitempty"`
28868
28869	// Name: [Output Only] Name of the operation.
28870	Name string `json:"name,omitempty"`
28871
28872	// OperationGroupId: [Output Only] An ID that represents a group of
28873	// operations, such as when a group of operations results from a
28874	// `bulkInsert` API request.
28875	OperationGroupId string `json:"operationGroupId,omitempty"`
28876
28877	// OperationType: [Output Only] The type of operation, such as `insert`,
28878	// `update`, or `delete`, and so on.
28879	OperationType string `json:"operationType,omitempty"`
28880
28881	// Progress: [Output Only] An optional progress indicator that ranges
28882	// from 0 to 100. There is no requirement that this be linear or support
28883	// any granularity of operations. This should not be used to guess when
28884	// the operation will be complete. This number should monotonically
28885	// increase as the operation progresses.
28886	Progress int64 `json:"progress,omitempty"`
28887
28888	// Region: [Output Only] The URL of the region where the operation
28889	// resides. Only applicable when performing regional operations.
28890	Region string `json:"region,omitempty"`
28891
28892	// SelfLink: [Output Only] Server-defined URL for the resource.
28893	SelfLink string `json:"selfLink,omitempty"`
28894
28895	// StartTime: [Output Only] The time that this operation was started by
28896	// the server. This value is in RFC3339 text format.
28897	StartTime string `json:"startTime,omitempty"`
28898
28899	// Status: [Output Only] The status of the operation, which can be one
28900	// of the following: `PENDING`, `RUNNING`, or `DONE`.
28901	//
28902	// Possible values:
28903	//   "DONE"
28904	//   "PENDING"
28905	//   "RUNNING"
28906	Status string `json:"status,omitempty"`
28907
28908	// StatusMessage: [Output Only] An optional textual description of the
28909	// current status of the operation.
28910	StatusMessage string `json:"statusMessage,omitempty"`
28911
28912	// TargetId: [Output Only] The unique target ID, which identifies a
28913	// specific incarnation of the target resource.
28914	TargetId uint64 `json:"targetId,omitempty,string"`
28915
28916	// TargetLink: [Output Only] The URL of the resource that the operation
28917	// modifies. For operations related to creating a snapshot, this points
28918	// to the persistent disk that the snapshot was created from.
28919	TargetLink string `json:"targetLink,omitempty"`
28920
28921	// User: [Output Only] User who requested the operation, for example:
28922	// `user@example.com`.
28923	User string `json:"user,omitempty"`
28924
28925	// Warnings: [Output Only] If warning messages are generated during
28926	// processing of the operation, this field will be populated.
28927	Warnings []*OperationWarnings `json:"warnings,omitempty"`
28928
28929	// Zone: [Output Only] The URL of the zone where the operation resides.
28930	// Only applicable when performing per-zone operations.
28931	Zone string `json:"zone,omitempty"`
28932
28933	// ServerResponse contains the HTTP response code and headers from the
28934	// server.
28935	googleapi.ServerResponse `json:"-"`
28936
28937	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
28938	// to unconditionally include in API requests. By default, fields with
28939	// empty or default values are omitted from API requests. However, any
28940	// non-pointer, non-interface field appearing in ForceSendFields will be
28941	// sent to the server regardless of whether the field is empty or not.
28942	// This may be used to include empty fields in Patch requests.
28943	ForceSendFields []string `json:"-"`
28944
28945	// NullFields is a list of field names (e.g. "ClientOperationId") to
28946	// include in API requests with the JSON null value. By default, fields
28947	// with empty values are omitted from API requests. However, any field
28948	// with an empty value appearing in NullFields will be sent to the
28949	// server as null. It is an error if a field in this list has a
28950	// non-empty value. This may be used to include null fields in Patch
28951	// requests.
28952	NullFields []string `json:"-"`
28953}
28954
28955func (s *Operation) MarshalJSON() ([]byte, error) {
28956	type NoMethod Operation
28957	raw := NoMethod(*s)
28958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28959}
28960
28961// OperationError: [Output Only] If errors are generated during
28962// processing of the operation, this field will be populated.
28963type OperationError struct {
28964	// Errors: [Output Only] The array of errors encountered while
28965	// processing this operation.
28966	Errors []*OperationErrorErrors `json:"errors,omitempty"`
28967
28968	// ForceSendFields is a list of field names (e.g. "Errors") to
28969	// unconditionally include in API requests. By default, fields with
28970	// empty or default values are omitted from API requests. However, any
28971	// non-pointer, non-interface field appearing in ForceSendFields will be
28972	// sent to the server regardless of whether the field is empty or not.
28973	// This may be used to include empty fields in Patch requests.
28974	ForceSendFields []string `json:"-"`
28975
28976	// NullFields is a list of field names (e.g. "Errors") to include in API
28977	// requests with the JSON null value. By default, fields with empty
28978	// values are omitted from API requests. However, any field with an
28979	// empty value appearing in NullFields will be sent to the server as
28980	// null. It is an error if a field in this list has a non-empty value.
28981	// This may be used to include null fields in Patch requests.
28982	NullFields []string `json:"-"`
28983}
28984
28985func (s *OperationError) MarshalJSON() ([]byte, error) {
28986	type NoMethod OperationError
28987	raw := NoMethod(*s)
28988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28989}
28990
28991type OperationErrorErrors struct {
28992	// Code: [Output Only] The error type identifier for this error.
28993	Code string `json:"code,omitempty"`
28994
28995	// Location: [Output Only] Indicates the field in the request that
28996	// caused the error. This property is optional.
28997	Location string `json:"location,omitempty"`
28998
28999	// Message: [Output Only] An optional, human-readable error message.
29000	Message string `json:"message,omitempty"`
29001
29002	// ForceSendFields is a list of field names (e.g. "Code") to
29003	// unconditionally include in API requests. By default, fields with
29004	// empty or default values are omitted from API requests. However, any
29005	// non-pointer, non-interface field appearing in ForceSendFields will be
29006	// sent to the server regardless of whether the field is empty or not.
29007	// This may be used to include empty fields in Patch requests.
29008	ForceSendFields []string `json:"-"`
29009
29010	// NullFields is a list of field names (e.g. "Code") to include in API
29011	// requests with the JSON null value. By default, fields with empty
29012	// values are omitted from API requests. However, any field with an
29013	// empty value appearing in NullFields will be sent to the server as
29014	// null. It is an error if a field in this list has a non-empty value.
29015	// This may be used to include null fields in Patch requests.
29016	NullFields []string `json:"-"`
29017}
29018
29019func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
29020	type NoMethod OperationErrorErrors
29021	raw := NoMethod(*s)
29022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29023}
29024
29025type OperationWarnings struct {
29026	// Code: [Output Only] A warning code, if applicable. For example,
29027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29028	// the response.
29029	//
29030	// Possible values:
29031	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29032	// changes made by a failed operation.
29033	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29034	// created.
29035	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29036	// resources has a type marked as deprecated
29037	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29038	// that is larger than image size.
29039	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29040	// resources has a type marked as experimental
29041	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29042	// call
29043	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29044	// overridden. Deprecated unused field.
29045	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29046	// injected kernel, which is deprecated.
29047	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29048	// exceedingly large number of resources
29049	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29050	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29051	// not assigned to an instance on the network.
29052	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29053	// ip forward.
29054	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29055	// refers to an instance that does not exist.
29056	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29057	// URL refers to an instance that is not on the same network as the
29058	// route.
29059	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29060	// have a status of RUNNING.
29061	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29062	// continue the process despite the mentioned error.
29063	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29064	// page.
29065	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29066	// missing due to errors
29067	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29068	// that requires a TOS they have not accepted.
29069	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29070	// resource is in use.
29071	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29072	// auto-delete could not be deleted because they were in use.
29073	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29074	// ignored.
29075	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29076	// instance group manager is valid as such, but its application does not
29077	// make a lot of sense, because it allows only single instance in
29078	// instance group.
29079	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29080	// are present
29081	//   "UNREACHABLE" - A given scope cannot be reached.
29082	Code string `json:"code,omitempty"`
29083
29084	// Data: [Output Only] Metadata about this warning in key: value format.
29085	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29086	// }
29087	Data []*OperationWarningsData `json:"data,omitempty"`
29088
29089	// Message: [Output Only] A human-readable description of the warning
29090	// code.
29091	Message string `json:"message,omitempty"`
29092
29093	// ForceSendFields is a list of field names (e.g. "Code") to
29094	// unconditionally include in API requests. By default, fields with
29095	// empty or default values are omitted from API requests. However, any
29096	// non-pointer, non-interface field appearing in ForceSendFields will be
29097	// sent to the server regardless of whether the field is empty or not.
29098	// This may be used to include empty fields in Patch requests.
29099	ForceSendFields []string `json:"-"`
29100
29101	// NullFields is a list of field names (e.g. "Code") to include in API
29102	// requests with the JSON null value. By default, fields with empty
29103	// values are omitted from API requests. However, any field with an
29104	// empty value appearing in NullFields will be sent to the server as
29105	// null. It is an error if a field in this list has a non-empty value.
29106	// This may be used to include null fields in Patch requests.
29107	NullFields []string `json:"-"`
29108}
29109
29110func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
29111	type NoMethod OperationWarnings
29112	raw := NoMethod(*s)
29113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29114}
29115
29116type OperationWarningsData struct {
29117	// Key: [Output Only] A key that provides more detail on the warning
29118	// being returned. For example, for warnings where there are no results
29119	// in a list request for a particular zone, this key might be scope and
29120	// the key value might be the zone name. Other examples might be a key
29121	// indicating a deprecated resource and a suggested replacement, or a
29122	// warning about invalid network settings (for example, if an instance
29123	// attempts to perform IP forwarding but is not enabled for IP
29124	// forwarding).
29125	Key string `json:"key,omitempty"`
29126
29127	// Value: [Output Only] A warning data value corresponding to the key.
29128	Value string `json:"value,omitempty"`
29129
29130	// ForceSendFields is a list of field names (e.g. "Key") to
29131	// unconditionally include in API requests. By default, fields with
29132	// empty or default values are omitted from API requests. However, any
29133	// non-pointer, non-interface field appearing in ForceSendFields will be
29134	// sent to the server regardless of whether the field is empty or not.
29135	// This may be used to include empty fields in Patch requests.
29136	ForceSendFields []string `json:"-"`
29137
29138	// NullFields is a list of field names (e.g. "Key") to include in API
29139	// requests with the JSON null value. By default, fields with empty
29140	// values are omitted from API requests. However, any field with an
29141	// empty value appearing in NullFields will be sent to the server as
29142	// null. It is an error if a field in this list has a non-empty value.
29143	// This may be used to include null fields in Patch requests.
29144	NullFields []string `json:"-"`
29145}
29146
29147func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
29148	type NoMethod OperationWarningsData
29149	raw := NoMethod(*s)
29150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29151}
29152
29153type OperationAggregatedList struct {
29154	// Id: [Output Only] The unique identifier for the resource. This
29155	// identifier is defined by the server.
29156	Id string `json:"id,omitempty"`
29157
29158	// Items: [Output Only] A map of scoped operation lists.
29159	Items map[string]OperationsScopedList `json:"items,omitempty"`
29160
29161	// Kind: [Output Only] Type of resource. Always
29162	// `compute#operationAggregatedList` for aggregated lists of operations.
29163	Kind string `json:"kind,omitempty"`
29164
29165	// NextPageToken: [Output Only] This token allows you to get the next
29166	// page of results for list requests. If the number of results is larger
29167	// than `maxResults`, use the `nextPageToken` as a value for the query
29168	// parameter `pageToken` in the next list request. Subsequent list
29169	// requests will have their own `nextPageToken` to continue paging
29170	// through the results.
29171	NextPageToken string `json:"nextPageToken,omitempty"`
29172
29173	// SelfLink: [Output Only] Server-defined URL for this resource.
29174	SelfLink string `json:"selfLink,omitempty"`
29175
29176	// Unreachables: [Output Only] Unreachable resources.
29177	Unreachables []string `json:"unreachables,omitempty"`
29178
29179	// Warning: [Output Only] Informational warning message.
29180	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
29181
29182	// ServerResponse contains the HTTP response code and headers from the
29183	// server.
29184	googleapi.ServerResponse `json:"-"`
29185
29186	// ForceSendFields is a list of field names (e.g. "Id") to
29187	// unconditionally include in API requests. By default, fields with
29188	// empty or default values are omitted from API requests. However, any
29189	// non-pointer, non-interface field appearing in ForceSendFields will be
29190	// sent to the server regardless of whether the field is empty or not.
29191	// This may be used to include empty fields in Patch requests.
29192	ForceSendFields []string `json:"-"`
29193
29194	// NullFields is a list of field names (e.g. "Id") to include in API
29195	// requests with the JSON null value. By default, fields with empty
29196	// values are omitted from API requests. However, any field with an
29197	// empty value appearing in NullFields will be sent to the server as
29198	// null. It is an error if a field in this list has a non-empty value.
29199	// This may be used to include null fields in Patch requests.
29200	NullFields []string `json:"-"`
29201}
29202
29203func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
29204	type NoMethod OperationAggregatedList
29205	raw := NoMethod(*s)
29206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29207}
29208
29209// OperationAggregatedListWarning: [Output Only] Informational warning
29210// message.
29211type OperationAggregatedListWarning struct {
29212	// Code: [Output Only] A warning code, if applicable. For example,
29213	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29214	// the response.
29215	//
29216	// Possible values:
29217	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29218	// changes made by a failed operation.
29219	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29220	// created.
29221	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29222	// resources has a type marked as deprecated
29223	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29224	// that is larger than image size.
29225	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29226	// resources has a type marked as experimental
29227	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29228	// call
29229	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29230	// overridden. Deprecated unused field.
29231	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29232	// injected kernel, which is deprecated.
29233	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29234	// exceedingly large number of resources
29235	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29236	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29237	// not assigned to an instance on the network.
29238	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29239	// ip forward.
29240	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29241	// refers to an instance that does not exist.
29242	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29243	// URL refers to an instance that is not on the same network as the
29244	// route.
29245	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29246	// have a status of RUNNING.
29247	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29248	// continue the process despite the mentioned error.
29249	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29250	// page.
29251	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29252	// missing due to errors
29253	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29254	// that requires a TOS they have not accepted.
29255	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29256	// resource is in use.
29257	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29258	// auto-delete could not be deleted because they were in use.
29259	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29260	// ignored.
29261	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29262	// instance group manager is valid as such, but its application does not
29263	// make a lot of sense, because it allows only single instance in
29264	// instance group.
29265	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29266	// are present
29267	//   "UNREACHABLE" - A given scope cannot be reached.
29268	Code string `json:"code,omitempty"`
29269
29270	// Data: [Output Only] Metadata about this warning in key: value format.
29271	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29272	// }
29273	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
29274
29275	// Message: [Output Only] A human-readable description of the warning
29276	// code.
29277	Message string `json:"message,omitempty"`
29278
29279	// ForceSendFields is a list of field names (e.g. "Code") to
29280	// unconditionally include in API requests. By default, fields with
29281	// empty or default values are omitted from API requests. However, any
29282	// non-pointer, non-interface field appearing in ForceSendFields will be
29283	// sent to the server regardless of whether the field is empty or not.
29284	// This may be used to include empty fields in Patch requests.
29285	ForceSendFields []string `json:"-"`
29286
29287	// NullFields is a list of field names (e.g. "Code") to include in API
29288	// requests with the JSON null value. By default, fields with empty
29289	// values are omitted from API requests. However, any field with an
29290	// empty value appearing in NullFields will be sent to the server as
29291	// null. It is an error if a field in this list has a non-empty value.
29292	// This may be used to include null fields in Patch requests.
29293	NullFields []string `json:"-"`
29294}
29295
29296func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
29297	type NoMethod OperationAggregatedListWarning
29298	raw := NoMethod(*s)
29299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29300}
29301
29302type OperationAggregatedListWarningData struct {
29303	// Key: [Output Only] A key that provides more detail on the warning
29304	// being returned. For example, for warnings where there are no results
29305	// in a list request for a particular zone, this key might be scope and
29306	// the key value might be the zone name. Other examples might be a key
29307	// indicating a deprecated resource and a suggested replacement, or a
29308	// warning about invalid network settings (for example, if an instance
29309	// attempts to perform IP forwarding but is not enabled for IP
29310	// forwarding).
29311	Key string `json:"key,omitempty"`
29312
29313	// Value: [Output Only] A warning data value corresponding to the key.
29314	Value string `json:"value,omitempty"`
29315
29316	// ForceSendFields is a list of field names (e.g. "Key") to
29317	// unconditionally include in API requests. By default, fields with
29318	// empty or default values are omitted from API requests. However, any
29319	// non-pointer, non-interface field appearing in ForceSendFields will be
29320	// sent to the server regardless of whether the field is empty or not.
29321	// This may be used to include empty fields in Patch requests.
29322	ForceSendFields []string `json:"-"`
29323
29324	// NullFields is a list of field names (e.g. "Key") to include in API
29325	// requests with the JSON null value. By default, fields with empty
29326	// values are omitted from API requests. However, any field with an
29327	// empty value appearing in NullFields will be sent to the server as
29328	// null. It is an error if a field in this list has a non-empty value.
29329	// This may be used to include null fields in Patch requests.
29330	NullFields []string `json:"-"`
29331}
29332
29333func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29334	type NoMethod OperationAggregatedListWarningData
29335	raw := NoMethod(*s)
29336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29337}
29338
29339// OperationList: Contains a list of Operation resources.
29340type OperationList struct {
29341	// Id: [Output Only] The unique identifier for the resource. This
29342	// identifier is defined by the server.
29343	Id string `json:"id,omitempty"`
29344
29345	// Items: [Output Only] A list of Operation resources.
29346	Items []*Operation `json:"items,omitempty"`
29347
29348	// Kind: [Output Only] Type of resource. Always `compute#operations` for
29349	// Operations resource.
29350	Kind string `json:"kind,omitempty"`
29351
29352	// NextPageToken: [Output Only] This token allows you to get the next
29353	// page of results for list requests. If the number of results is larger
29354	// than `maxResults`, use the `nextPageToken` as a value for the query
29355	// parameter `pageToken` in the next list request. Subsequent list
29356	// requests will have their own `nextPageToken` to continue paging
29357	// through the results.
29358	NextPageToken string `json:"nextPageToken,omitempty"`
29359
29360	// SelfLink: [Output Only] Server-defined URL for this resource.
29361	SelfLink string `json:"selfLink,omitempty"`
29362
29363	// Warning: [Output Only] Informational warning message.
29364	Warning *OperationListWarning `json:"warning,omitempty"`
29365
29366	// ServerResponse contains the HTTP response code and headers from the
29367	// server.
29368	googleapi.ServerResponse `json:"-"`
29369
29370	// ForceSendFields is a list of field names (e.g. "Id") to
29371	// unconditionally include in API requests. By default, fields with
29372	// empty or default values are omitted from API requests. However, any
29373	// non-pointer, non-interface field appearing in ForceSendFields will be
29374	// sent to the server regardless of whether the field is empty or not.
29375	// This may be used to include empty fields in Patch requests.
29376	ForceSendFields []string `json:"-"`
29377
29378	// NullFields is a list of field names (e.g. "Id") to include in API
29379	// requests with the JSON null value. By default, fields with empty
29380	// values are omitted from API requests. However, any field with an
29381	// empty value appearing in NullFields will be sent to the server as
29382	// null. It is an error if a field in this list has a non-empty value.
29383	// This may be used to include null fields in Patch requests.
29384	NullFields []string `json:"-"`
29385}
29386
29387func (s *OperationList) MarshalJSON() ([]byte, error) {
29388	type NoMethod OperationList
29389	raw := NoMethod(*s)
29390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29391}
29392
29393// OperationListWarning: [Output Only] Informational warning message.
29394type OperationListWarning struct {
29395	// Code: [Output Only] A warning code, if applicable. For example,
29396	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29397	// the response.
29398	//
29399	// Possible values:
29400	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29401	// changes made by a failed operation.
29402	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29403	// created.
29404	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29405	// resources has a type marked as deprecated
29406	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29407	// that is larger than image size.
29408	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29409	// resources has a type marked as experimental
29410	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29411	// call
29412	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29413	// overridden. Deprecated unused field.
29414	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29415	// injected kernel, which is deprecated.
29416	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29417	// exceedingly large number of resources
29418	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29419	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29420	// not assigned to an instance on the network.
29421	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29422	// ip forward.
29423	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29424	// refers to an instance that does not exist.
29425	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29426	// URL refers to an instance that is not on the same network as the
29427	// route.
29428	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29429	// have a status of RUNNING.
29430	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29431	// continue the process despite the mentioned error.
29432	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29433	// page.
29434	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29435	// missing due to errors
29436	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29437	// that requires a TOS they have not accepted.
29438	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29439	// resource is in use.
29440	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29441	// auto-delete could not be deleted because they were in use.
29442	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29443	// ignored.
29444	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29445	// instance group manager is valid as such, but its application does not
29446	// make a lot of sense, because it allows only single instance in
29447	// instance group.
29448	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29449	// are present
29450	//   "UNREACHABLE" - A given scope cannot be reached.
29451	Code string `json:"code,omitempty"`
29452
29453	// Data: [Output Only] Metadata about this warning in key: value format.
29454	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29455	// }
29456	Data []*OperationListWarningData `json:"data,omitempty"`
29457
29458	// Message: [Output Only] A human-readable description of the warning
29459	// code.
29460	Message string `json:"message,omitempty"`
29461
29462	// ForceSendFields is a list of field names (e.g. "Code") to
29463	// unconditionally include in API requests. By default, fields with
29464	// empty or default values are omitted from API requests. However, any
29465	// non-pointer, non-interface field appearing in ForceSendFields will be
29466	// sent to the server regardless of whether the field is empty or not.
29467	// This may be used to include empty fields in Patch requests.
29468	ForceSendFields []string `json:"-"`
29469
29470	// NullFields is a list of field names (e.g. "Code") to include in API
29471	// requests with the JSON null value. By default, fields with empty
29472	// values are omitted from API requests. However, any field with an
29473	// empty value appearing in NullFields will be sent to the server as
29474	// null. It is an error if a field in this list has a non-empty value.
29475	// This may be used to include null fields in Patch requests.
29476	NullFields []string `json:"-"`
29477}
29478
29479func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
29480	type NoMethod OperationListWarning
29481	raw := NoMethod(*s)
29482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29483}
29484
29485type OperationListWarningData struct {
29486	// Key: [Output Only] A key that provides more detail on the warning
29487	// being returned. For example, for warnings where there are no results
29488	// in a list request for a particular zone, this key might be scope and
29489	// the key value might be the zone name. Other examples might be a key
29490	// indicating a deprecated resource and a suggested replacement, or a
29491	// warning about invalid network settings (for example, if an instance
29492	// attempts to perform IP forwarding but is not enabled for IP
29493	// forwarding).
29494	Key string `json:"key,omitempty"`
29495
29496	// Value: [Output Only] A warning data value corresponding to the key.
29497	Value string `json:"value,omitempty"`
29498
29499	// ForceSendFields is a list of field names (e.g. "Key") to
29500	// unconditionally include in API requests. By default, fields with
29501	// empty or default values are omitted from API requests. However, any
29502	// non-pointer, non-interface field appearing in ForceSendFields will be
29503	// sent to the server regardless of whether the field is empty or not.
29504	// This may be used to include empty fields in Patch requests.
29505	ForceSendFields []string `json:"-"`
29506
29507	// NullFields is a list of field names (e.g. "Key") to include in API
29508	// requests with the JSON null value. By default, fields with empty
29509	// values are omitted from API requests. However, any field with an
29510	// empty value appearing in NullFields will be sent to the server as
29511	// null. It is an error if a field in this list has a non-empty value.
29512	// This may be used to include null fields in Patch requests.
29513	NullFields []string `json:"-"`
29514}
29515
29516func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
29517	type NoMethod OperationListWarningData
29518	raw := NoMethod(*s)
29519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29520}
29521
29522type OperationsScopedList struct {
29523	// Operations: [Output Only] A list of operations contained in this
29524	// scope.
29525	Operations []*Operation `json:"operations,omitempty"`
29526
29527	// Warning: [Output Only] Informational warning which replaces the list
29528	// of operations when the list is empty.
29529	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
29530
29531	// ForceSendFields is a list of field names (e.g. "Operations") to
29532	// unconditionally include in API requests. By default, fields with
29533	// empty or default values are omitted from API requests. However, any
29534	// non-pointer, non-interface field appearing in ForceSendFields will be
29535	// sent to the server regardless of whether the field is empty or not.
29536	// This may be used to include empty fields in Patch requests.
29537	ForceSendFields []string `json:"-"`
29538
29539	// NullFields is a list of field names (e.g. "Operations") to include in
29540	// API requests with the JSON null value. By default, fields with empty
29541	// values are omitted from API requests. However, any field with an
29542	// empty value appearing in NullFields will be sent to the server as
29543	// null. It is an error if a field in this list has a non-empty value.
29544	// This may be used to include null fields in Patch requests.
29545	NullFields []string `json:"-"`
29546}
29547
29548func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
29549	type NoMethod OperationsScopedList
29550	raw := NoMethod(*s)
29551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29552}
29553
29554// OperationsScopedListWarning: [Output Only] Informational warning
29555// which replaces the list of operations when the list is empty.
29556type OperationsScopedListWarning struct {
29557	// Code: [Output Only] A warning code, if applicable. For example,
29558	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29559	// the response.
29560	//
29561	// Possible values:
29562	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29563	// changes made by a failed operation.
29564	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29565	// created.
29566	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29567	// resources has a type marked as deprecated
29568	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29569	// that is larger than image size.
29570	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29571	// resources has a type marked as experimental
29572	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29573	// call
29574	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29575	// overridden. Deprecated unused field.
29576	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29577	// injected kernel, which is deprecated.
29578	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29579	// exceedingly large number of resources
29580	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29581	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29582	// not assigned to an instance on the network.
29583	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29584	// ip forward.
29585	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29586	// refers to an instance that does not exist.
29587	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29588	// URL refers to an instance that is not on the same network as the
29589	// route.
29590	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29591	// have a status of RUNNING.
29592	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29593	// continue the process despite the mentioned error.
29594	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29595	// page.
29596	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29597	// missing due to errors
29598	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29599	// that requires a TOS they have not accepted.
29600	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29601	// resource is in use.
29602	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29603	// auto-delete could not be deleted because they were in use.
29604	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29605	// ignored.
29606	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29607	// instance group manager is valid as such, but its application does not
29608	// make a lot of sense, because it allows only single instance in
29609	// instance group.
29610	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29611	// are present
29612	//   "UNREACHABLE" - A given scope cannot be reached.
29613	Code string `json:"code,omitempty"`
29614
29615	// Data: [Output Only] Metadata about this warning in key: value format.
29616	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29617	// }
29618	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
29619
29620	// Message: [Output Only] A human-readable description of the warning
29621	// code.
29622	Message string `json:"message,omitempty"`
29623
29624	// ForceSendFields is a list of field names (e.g. "Code") to
29625	// unconditionally include in API requests. By default, fields with
29626	// empty or default values are omitted from API requests. However, any
29627	// non-pointer, non-interface field appearing in ForceSendFields will be
29628	// sent to the server regardless of whether the field is empty or not.
29629	// This may be used to include empty fields in Patch requests.
29630	ForceSendFields []string `json:"-"`
29631
29632	// NullFields is a list of field names (e.g. "Code") to include in API
29633	// requests with the JSON null value. By default, fields with empty
29634	// values are omitted from API requests. However, any field with an
29635	// empty value appearing in NullFields will be sent to the server as
29636	// null. It is an error if a field in this list has a non-empty value.
29637	// This may be used to include null fields in Patch requests.
29638	NullFields []string `json:"-"`
29639}
29640
29641func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
29642	type NoMethod OperationsScopedListWarning
29643	raw := NoMethod(*s)
29644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29645}
29646
29647type OperationsScopedListWarningData struct {
29648	// Key: [Output Only] A key that provides more detail on the warning
29649	// being returned. For example, for warnings where there are no results
29650	// in a list request for a particular zone, this key might be scope and
29651	// the key value might be the zone name. Other examples might be a key
29652	// indicating a deprecated resource and a suggested replacement, or a
29653	// warning about invalid network settings (for example, if an instance
29654	// attempts to perform IP forwarding but is not enabled for IP
29655	// forwarding).
29656	Key string `json:"key,omitempty"`
29657
29658	// Value: [Output Only] A warning data value corresponding to the key.
29659	Value string `json:"value,omitempty"`
29660
29661	// ForceSendFields is a list of field names (e.g. "Key") to
29662	// unconditionally include in API requests. By default, fields with
29663	// empty or default values are omitted from API requests. However, any
29664	// non-pointer, non-interface field appearing in ForceSendFields will be
29665	// sent to the server regardless of whether the field is empty or not.
29666	// This may be used to include empty fields in Patch requests.
29667	ForceSendFields []string `json:"-"`
29668
29669	// NullFields is a list of field names (e.g. "Key") to include in API
29670	// requests with the JSON null value. By default, fields with empty
29671	// values are omitted from API requests. However, any field with an
29672	// empty value appearing in NullFields will be sent to the server as
29673	// null. It is an error if a field in this list has a non-empty value.
29674	// This may be used to include null fields in Patch requests.
29675	NullFields []string `json:"-"`
29676}
29677
29678func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
29679	type NoMethod OperationsScopedListWarningData
29680	raw := NoMethod(*s)
29681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29682}
29683
29684// OutlierDetection: Settings controlling the eviction of unhealthy
29685// hosts from the load balancing pool for the backend service.
29686type OutlierDetection struct {
29687	// BaseEjectionTime: The base time that a host is ejected for. The real
29688	// ejection time is equal to the base ejection time multiplied by the
29689	// number of times the host has been ejected. Defaults to 30000ms or
29690	// 30s.
29691	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
29692
29693	// ConsecutiveErrors: Number of errors before a host is ejected from the
29694	// connection pool. When the backend host is accessed over HTTP, a 5xx
29695	// return code qualifies as an error. Defaults to 5.
29696	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
29697
29698	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
29699	// (502, 503, 504 status or connection errors that are mapped to one of
29700	// those status codes) before a consecutive gateway failure ejection
29701	// occurs. Defaults to 3.
29702	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
29703
29704	// EnforcingConsecutiveErrors: The percentage chance that a host will be
29705	// actually ejected when an outlier status is detected through
29706	// consecutive 5xx. This setting can be used to disable ejection or to
29707	// ramp it up slowly. Defaults to 0.
29708	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
29709
29710	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
29711	// will be actually ejected when an outlier status is detected through
29712	// consecutive gateway failures. This setting can be used to disable
29713	// ejection or to ramp it up slowly. Defaults to 100.
29714	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
29715
29716	// EnforcingSuccessRate: The percentage chance that a host will be
29717	// actually ejected when an outlier status is detected through success
29718	// rate statistics. This setting can be used to disable ejection or to
29719	// ramp it up slowly. Defaults to 100.
29720	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
29721
29722	// Interval: Time interval between ejection analysis sweeps. This can
29723	// result in both new ejections as well as hosts being returned to
29724	// service. Defaults to 1 second.
29725	Interval *Duration `json:"interval,omitempty"`
29726
29727	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
29728	// pool for the backend service that can be ejected. Defaults to 50%.
29729	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
29730
29731	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
29732	// have enough request volume to detect success rate outliers. If the
29733	// number of hosts is less than this setting, outlier detection via
29734	// success rate statistics is not performed for any host in the cluster.
29735	// Defaults to 5.
29736	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
29737
29738	// SuccessRateRequestVolume: The minimum number of total requests that
29739	// must be collected in one interval (as defined by the interval
29740	// duration above) to include this host in success rate based outlier
29741	// detection. If the volume is lower than this setting, outlier
29742	// detection via success rate statistics is not performed for that host.
29743	// Defaults to 100.
29744	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
29745
29746	// SuccessRateStdevFactor: This factor is used to determine the ejection
29747	// threshold for success rate outlier ejection. The ejection threshold
29748	// is the difference between the mean success rate, and the product of
29749	// this factor and the standard deviation of the mean success rate: mean
29750	// - (stdev * success_rate_stdev_factor). This factor is divided by a
29751	// thousand to get a double. That is, if the desired factor is 1.9, the
29752	// runtime value should be 1900. Defaults to 1900.
29753	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
29754
29755	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
29756	// unconditionally include in API requests. By default, fields with
29757	// empty or default values are omitted from API requests. However, any
29758	// non-pointer, non-interface field appearing in ForceSendFields will be
29759	// sent to the server regardless of whether the field is empty or not.
29760	// This may be used to include empty fields in Patch requests.
29761	ForceSendFields []string `json:"-"`
29762
29763	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
29764	// include in API requests with the JSON null value. By default, fields
29765	// with empty values are omitted from API requests. However, any field
29766	// with an empty value appearing in NullFields will be sent to the
29767	// server as null. It is an error if a field in this list has a
29768	// non-empty value. This may be used to include null fields in Patch
29769	// requests.
29770	NullFields []string `json:"-"`
29771}
29772
29773func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
29774	type NoMethod OutlierDetection
29775	raw := NoMethod(*s)
29776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29777}
29778
29779// PacketMirroring: Represents a Packet Mirroring resource. Packet
29780// Mirroring clones the traffic of specified instances in your Virtual
29781// Private Cloud (VPC) network and forwards it to a collector
29782// destination, such as an instance group of an internal TCP/UDP load
29783// balancer, for analysis or examination. For more information about
29784// setting up Packet Mirroring, see Using Packet Mirroring.
29785type PacketMirroring struct {
29786	// CollectorIlb: The Forwarding Rule resource of type
29787	// loadBalancingScheme=INTERNAL that will be used as collector for
29788	// mirrored traffic. The specified forwarding rule must have
29789	// isMirroringCollector set to true.
29790	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
29791
29792	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29793	// format.
29794	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29795
29796	// Description: An optional description of this resource. Provide this
29797	// property when you create the resource.
29798	Description string `json:"description,omitempty"`
29799
29800	// Enable: Indicates whether or not this packet mirroring takes effect.
29801	// If set to FALSE, this packet mirroring policy will not be enforced on
29802	// the network. The default is TRUE.
29803	//
29804	// Possible values:
29805	//   "FALSE"
29806	//   "TRUE"
29807	Enable string `json:"enable,omitempty"`
29808
29809	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
29810	// mirrored.
29811	Filter *PacketMirroringFilter `json:"filter,omitempty"`
29812
29813	// Id: [Output Only] The unique identifier for the resource. This
29814	// identifier is defined by the server.
29815	Id uint64 `json:"id,omitempty,string"`
29816
29817	// Kind: [Output Only] Type of the resource. Always
29818	// compute#packetMirroring for packet mirrorings.
29819	Kind string `json:"kind,omitempty"`
29820
29821	// MirroredResources: PacketMirroring mirroredResourceInfos.
29822	// MirroredResourceInfo specifies a set of mirrored VM instances,
29823	// subnetworks and/or tags for which traffic from/to all VM instances
29824	// will be mirrored.
29825	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
29826
29827	// Name: Name of the resource; provided by the client when the resource
29828	// is created. The name must be 1-63 characters long, and comply with
29829	// RFC1035. Specifically, the name must be 1-63 characters long and
29830	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29831	// the first character must be a lowercase letter, and all following
29832	// characters must be a dash, lowercase letter, or digit, except the
29833	// last character, which cannot be a dash.
29834	Name string `json:"name,omitempty"`
29835
29836	// Network: Specifies the mirrored VPC network. Only packets in this
29837	// network will be mirrored. All mirrored VMs should have a NIC in the
29838	// given network. All mirrored subnetworks should belong to the given
29839	// network.
29840	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
29841
29842	// Priority: The priority of applying this configuration. Priority is
29843	// used to break ties in cases where there is more than one matching
29844	// rule. In the case of two rules that apply for a given Instance, the
29845	// one with the lowest-numbered priority value wins. Default value is
29846	// 1000. Valid range is 0 through 65535.
29847	Priority int64 `json:"priority,omitempty"`
29848
29849	// Region: [Output Only] URI of the region where the packetMirroring
29850	// resides.
29851	Region string `json:"region,omitempty"`
29852
29853	// SelfLink: [Output Only] Server-defined URL for the resource.
29854	SelfLink string `json:"selfLink,omitempty"`
29855
29856	// ServerResponse contains the HTTP response code and headers from the
29857	// server.
29858	googleapi.ServerResponse `json:"-"`
29859
29860	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
29861	// unconditionally include in API requests. By default, fields with
29862	// empty or default values are omitted from API requests. However, any
29863	// non-pointer, non-interface field appearing in ForceSendFields will be
29864	// sent to the server regardless of whether the field is empty or not.
29865	// This may be used to include empty fields in Patch requests.
29866	ForceSendFields []string `json:"-"`
29867
29868	// NullFields is a list of field names (e.g. "CollectorIlb") to include
29869	// in API requests with the JSON null value. By default, fields with
29870	// empty values are omitted from API requests. However, any field with
29871	// an empty value appearing in NullFields will be sent to the server as
29872	// null. It is an error if a field in this list has a non-empty value.
29873	// This may be used to include null fields in Patch requests.
29874	NullFields []string `json:"-"`
29875}
29876
29877func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
29878	type NoMethod PacketMirroring
29879	raw := NoMethod(*s)
29880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29881}
29882
29883// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
29884type PacketMirroringAggregatedList struct {
29885	// Id: [Output Only] Unique identifier for the resource; defined by the
29886	// server.
29887	Id string `json:"id,omitempty"`
29888
29889	// Items: A list of PacketMirroring resources.
29890	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
29891
29892	// Kind: Type of resource.
29893	Kind string `json:"kind,omitempty"`
29894
29895	// NextPageToken: [Output Only] This token allows you to get the next
29896	// page of results for list requests. If the number of results is larger
29897	// than maxResults, use the nextPageToken as a value for the query
29898	// parameter pageToken in the next list request. Subsequent list
29899	// requests will have their own nextPageToken to continue paging through
29900	// the results.
29901	NextPageToken string `json:"nextPageToken,omitempty"`
29902
29903	// SelfLink: [Output Only] Server-defined URL for this resource.
29904	SelfLink string `json:"selfLink,omitempty"`
29905
29906	// Unreachables: [Output Only] Unreachable resources.
29907	Unreachables []string `json:"unreachables,omitempty"`
29908
29909	// Warning: [Output Only] Informational warning message.
29910	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
29911
29912	// ServerResponse contains the HTTP response code and headers from the
29913	// server.
29914	googleapi.ServerResponse `json:"-"`
29915
29916	// ForceSendFields is a list of field names (e.g. "Id") to
29917	// unconditionally include in API requests. By default, fields with
29918	// empty or default values are omitted from API requests. However, any
29919	// non-pointer, non-interface field appearing in ForceSendFields will be
29920	// sent to the server regardless of whether the field is empty or not.
29921	// This may be used to include empty fields in Patch requests.
29922	ForceSendFields []string `json:"-"`
29923
29924	// NullFields is a list of field names (e.g. "Id") to include in API
29925	// requests with the JSON null value. By default, fields with empty
29926	// values are omitted from API requests. However, any field with an
29927	// empty value appearing in NullFields will be sent to the server as
29928	// null. It is an error if a field in this list has a non-empty value.
29929	// This may be used to include null fields in Patch requests.
29930	NullFields []string `json:"-"`
29931}
29932
29933func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
29934	type NoMethod PacketMirroringAggregatedList
29935	raw := NoMethod(*s)
29936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29937}
29938
29939// PacketMirroringAggregatedListWarning: [Output Only] Informational
29940// warning message.
29941type PacketMirroringAggregatedListWarning struct {
29942	// Code: [Output Only] A warning code, if applicable. For example,
29943	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29944	// the response.
29945	//
29946	// Possible values:
29947	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29948	// changes made by a failed operation.
29949	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29950	// created.
29951	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29952	// resources has a type marked as deprecated
29953	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29954	// that is larger than image size.
29955	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29956	// resources has a type marked as experimental
29957	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29958	// call
29959	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29960	// overridden. Deprecated unused field.
29961	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29962	// injected kernel, which is deprecated.
29963	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29964	// exceedingly large number of resources
29965	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29966	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29967	// not assigned to an instance on the network.
29968	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29969	// ip forward.
29970	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29971	// refers to an instance that does not exist.
29972	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29973	// URL refers to an instance that is not on the same network as the
29974	// route.
29975	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29976	// have a status of RUNNING.
29977	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29978	// continue the process despite the mentioned error.
29979	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29980	// page.
29981	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29982	// missing due to errors
29983	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29984	// that requires a TOS they have not accepted.
29985	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29986	// resource is in use.
29987	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29988	// auto-delete could not be deleted because they were in use.
29989	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29990	// ignored.
29991	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29992	// instance group manager is valid as such, but its application does not
29993	// make a lot of sense, because it allows only single instance in
29994	// instance group.
29995	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29996	// are present
29997	//   "UNREACHABLE" - A given scope cannot be reached.
29998	Code string `json:"code,omitempty"`
29999
30000	// Data: [Output Only] Metadata about this warning in key: value format.
30001	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30002	// }
30003	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
30004
30005	// Message: [Output Only] A human-readable description of the warning
30006	// code.
30007	Message string `json:"message,omitempty"`
30008
30009	// ForceSendFields is a list of field names (e.g. "Code") to
30010	// unconditionally include in API requests. By default, fields with
30011	// empty or default values are omitted from API requests. However, any
30012	// non-pointer, non-interface field appearing in ForceSendFields will be
30013	// sent to the server regardless of whether the field is empty or not.
30014	// This may be used to include empty fields in Patch requests.
30015	ForceSendFields []string `json:"-"`
30016
30017	// NullFields is a list of field names (e.g. "Code") to include in API
30018	// requests with the JSON null value. By default, fields with empty
30019	// values are omitted from API requests. However, any field with an
30020	// empty value appearing in NullFields will be sent to the server as
30021	// null. It is an error if a field in this list has a non-empty value.
30022	// This may be used to include null fields in Patch requests.
30023	NullFields []string `json:"-"`
30024}
30025
30026func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
30027	type NoMethod PacketMirroringAggregatedListWarning
30028	raw := NoMethod(*s)
30029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30030}
30031
30032type PacketMirroringAggregatedListWarningData struct {
30033	// Key: [Output Only] A key that provides more detail on the warning
30034	// being returned. For example, for warnings where there are no results
30035	// in a list request for a particular zone, this key might be scope and
30036	// the key value might be the zone name. Other examples might be a key
30037	// indicating a deprecated resource and a suggested replacement, or a
30038	// warning about invalid network settings (for example, if an instance
30039	// attempts to perform IP forwarding but is not enabled for IP
30040	// forwarding).
30041	Key string `json:"key,omitempty"`
30042
30043	// Value: [Output Only] A warning data value corresponding to the key.
30044	Value string `json:"value,omitempty"`
30045
30046	// ForceSendFields is a list of field names (e.g. "Key") to
30047	// unconditionally include in API requests. By default, fields with
30048	// empty or default values are omitted from API requests. However, any
30049	// non-pointer, non-interface field appearing in ForceSendFields will be
30050	// sent to the server regardless of whether the field is empty or not.
30051	// This may be used to include empty fields in Patch requests.
30052	ForceSendFields []string `json:"-"`
30053
30054	// NullFields is a list of field names (e.g. "Key") to include in API
30055	// requests with the JSON null value. By default, fields with empty
30056	// values are omitted from API requests. However, any field with an
30057	// empty value appearing in NullFields will be sent to the server as
30058	// null. It is an error if a field in this list has a non-empty value.
30059	// This may be used to include null fields in Patch requests.
30060	NullFields []string `json:"-"`
30061}
30062
30063func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30064	type NoMethod PacketMirroringAggregatedListWarningData
30065	raw := NoMethod(*s)
30066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30067}
30068
30069type PacketMirroringFilter struct {
30070	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
30071	// no protocols are specified, all traffic that matches the specified
30072	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
30073	// specified, all traffic is mirrored.
30074	IPProtocols []string `json:"IPProtocols,omitempty"`
30075
30076	// CidrRanges: IP CIDR ranges that apply as filter on the source
30077	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
30078	// supported. If no ranges are specified, all traffic that matches the
30079	// specified IPProtocols is mirrored. If neither cidrRanges nor
30080	// IPProtocols is specified, all traffic is mirrored.
30081	CidrRanges []string `json:"cidrRanges,omitempty"`
30082
30083	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or
30084	// BOTH. The default is BOTH.
30085	//
30086	// Possible values:
30087	//   "BOTH" - Default, both directions are mirrored.
30088	//   "EGRESS" - Only egress traffic is mirrored.
30089	//   "INGRESS" - Only ingress traffic is mirrored.
30090	Direction string `json:"direction,omitempty"`
30091
30092	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
30093	// unconditionally include in API requests. By default, fields with
30094	// empty or default values are omitted from API requests. However, any
30095	// non-pointer, non-interface field appearing in ForceSendFields will be
30096	// sent to the server regardless of whether the field is empty or not.
30097	// This may be used to include empty fields in Patch requests.
30098	ForceSendFields []string `json:"-"`
30099
30100	// NullFields is a list of field names (e.g. "IPProtocols") to include
30101	// in API requests with the JSON null value. By default, fields with
30102	// empty values are omitted from API requests. However, any field with
30103	// an empty value appearing in NullFields will be sent to the server as
30104	// null. It is an error if a field in this list has a non-empty value.
30105	// This may be used to include null fields in Patch requests.
30106	NullFields []string `json:"-"`
30107}
30108
30109func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
30110	type NoMethod PacketMirroringFilter
30111	raw := NoMethod(*s)
30112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30113}
30114
30115type PacketMirroringForwardingRuleInfo struct {
30116	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
30117	// rule; defined by the server.
30118	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30119
30120	// Url: Resource URL to the forwarding rule representing the ILB
30121	// configured as destination of the mirrored traffic.
30122	Url string `json:"url,omitempty"`
30123
30124	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30125	// unconditionally include in API requests. By default, fields with
30126	// empty or default values are omitted from API requests. However, any
30127	// non-pointer, non-interface field appearing in ForceSendFields will be
30128	// sent to the server regardless of whether the field is empty or not.
30129	// This may be used to include empty fields in Patch requests.
30130	ForceSendFields []string `json:"-"`
30131
30132	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30133	// in API requests with the JSON null value. By default, fields with
30134	// empty values are omitted from API requests. However, any field with
30135	// an 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 *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
30142	type NoMethod PacketMirroringForwardingRuleInfo
30143	raw := NoMethod(*s)
30144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30145}
30146
30147// PacketMirroringList: Contains a list of PacketMirroring resources.
30148type PacketMirroringList struct {
30149	// Id: [Output Only] Unique identifier for the resource; defined by the
30150	// server.
30151	Id string `json:"id,omitempty"`
30152
30153	// Items: A list of PacketMirroring resources.
30154	Items []*PacketMirroring `json:"items,omitempty"`
30155
30156	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
30157	// for packetMirrorings.
30158	Kind string `json:"kind,omitempty"`
30159
30160	// NextPageToken: [Output Only] This token allows you to get the next
30161	// page of results for list requests. If the number of results is larger
30162	// than maxResults, use the nextPageToken as a value for the query
30163	// parameter pageToken in the next list request. Subsequent list
30164	// requests will have their own nextPageToken to continue paging through
30165	// the results.
30166	NextPageToken string `json:"nextPageToken,omitempty"`
30167
30168	// SelfLink: [Output Only] Server-defined URL for this resource.
30169	SelfLink string `json:"selfLink,omitempty"`
30170
30171	// Warning: [Output Only] Informational warning message.
30172	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
30173
30174	// ServerResponse contains the HTTP response code and headers from the
30175	// server.
30176	googleapi.ServerResponse `json:"-"`
30177
30178	// ForceSendFields is a list of field names (e.g. "Id") to
30179	// unconditionally include in API requests. By default, fields with
30180	// empty or default values are omitted from API requests. However, any
30181	// non-pointer, non-interface field appearing in ForceSendFields will be
30182	// sent to the server regardless of whether the field is empty or not.
30183	// This may be used to include empty fields in Patch requests.
30184	ForceSendFields []string `json:"-"`
30185
30186	// NullFields is a list of field names (e.g. "Id") to include in API
30187	// requests with the JSON null value. By default, fields with empty
30188	// values are omitted from API requests. However, any field with an
30189	// empty value appearing in NullFields will be sent to the server as
30190	// null. It is an error if a field in this list has a non-empty value.
30191	// This may be used to include null fields in Patch requests.
30192	NullFields []string `json:"-"`
30193}
30194
30195func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
30196	type NoMethod PacketMirroringList
30197	raw := NoMethod(*s)
30198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30199}
30200
30201// PacketMirroringListWarning: [Output Only] Informational warning
30202// message.
30203type PacketMirroringListWarning struct {
30204	// Code: [Output Only] A warning code, if applicable. For example,
30205	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30206	// the response.
30207	//
30208	// Possible values:
30209	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
30210	// changes made by a failed operation.
30211	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
30212	// created.
30213	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
30214	// resources has a type marked as deprecated
30215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
30216	// that is larger than image size.
30217	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
30218	// resources has a type marked as experimental
30219	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
30220	// call
30221	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
30222	// overridden. Deprecated unused field.
30223	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
30224	// injected kernel, which is deprecated.
30225	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
30226	// exceedingly large number of resources
30227	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
30228	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
30229	// not assigned to an instance on the network.
30230	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
30231	// ip forward.
30232	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
30233	// refers to an instance that does not exist.
30234	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
30235	// URL refers to an instance that is not on the same network as the
30236	// route.
30237	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
30238	// have a status of RUNNING.
30239	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
30240	// continue the process despite the mentioned error.
30241	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
30242	// page.
30243	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
30244	// missing due to errors
30245	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
30246	// that requires a TOS they have not accepted.
30247	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
30248	// resource is in use.
30249	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
30250	// auto-delete could not be deleted because they were in use.
30251	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
30252	// ignored.
30253	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
30254	// instance group manager is valid as such, but its application does not
30255	// make a lot of sense, because it allows only single instance in
30256	// instance group.
30257	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
30258	// are present
30259	//   "UNREACHABLE" - A given scope cannot be reached.
30260	Code string `json:"code,omitempty"`
30261
30262	// Data: [Output Only] Metadata about this warning in key: value format.
30263	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30264	// }
30265	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
30266
30267	// Message: [Output Only] A human-readable description of the warning
30268	// code.
30269	Message string `json:"message,omitempty"`
30270
30271	// ForceSendFields is a list of field names (e.g. "Code") to
30272	// unconditionally include in API requests. By default, fields with
30273	// empty or default values are omitted from API requests. However, any
30274	// non-pointer, non-interface field appearing in ForceSendFields will be
30275	// sent to the server regardless of whether the field is empty or not.
30276	// This may be used to include empty fields in Patch requests.
30277	ForceSendFields []string `json:"-"`
30278
30279	// NullFields is a list of field names (e.g. "Code") to include in API
30280	// requests with the JSON null value. By default, fields with empty
30281	// values are omitted from API requests. However, any field with an
30282	// empty value appearing in NullFields will be sent to the server as
30283	// null. It is an error if a field in this list has a non-empty value.
30284	// This may be used to include null fields in Patch requests.
30285	NullFields []string `json:"-"`
30286}
30287
30288func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
30289	type NoMethod PacketMirroringListWarning
30290	raw := NoMethod(*s)
30291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30292}
30293
30294type PacketMirroringListWarningData struct {
30295	// Key: [Output Only] A key that provides more detail on the warning
30296	// being returned. For example, for warnings where there are no results
30297	// in a list request for a particular zone, this key might be scope and
30298	// the key value might be the zone name. Other examples might be a key
30299	// indicating a deprecated resource and a suggested replacement, or a
30300	// warning about invalid network settings (for example, if an instance
30301	// attempts to perform IP forwarding but is not enabled for IP
30302	// forwarding).
30303	Key string `json:"key,omitempty"`
30304
30305	// Value: [Output Only] A warning data value corresponding to the key.
30306	Value string `json:"value,omitempty"`
30307
30308	// ForceSendFields is a list of field names (e.g. "Key") to
30309	// unconditionally include in API requests. By default, fields with
30310	// empty or default values are omitted from API requests. However, any
30311	// non-pointer, non-interface field appearing in ForceSendFields will be
30312	// sent to the server regardless of whether the field is empty or not.
30313	// This may be used to include empty fields in Patch requests.
30314	ForceSendFields []string `json:"-"`
30315
30316	// NullFields is a list of field names (e.g. "Key") to include in API
30317	// requests with the JSON null value. By default, fields with empty
30318	// values are omitted from API requests. However, any field with an
30319	// empty value appearing in NullFields will be sent to the server as
30320	// null. It is an error if a field in this list has a non-empty value.
30321	// This may be used to include null fields in Patch requests.
30322	NullFields []string `json:"-"`
30323}
30324
30325func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
30326	type NoMethod PacketMirroringListWarningData
30327	raw := NoMethod(*s)
30328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30329}
30330
30331type PacketMirroringMirroredResourceInfo struct {
30332	// Instances: A set of virtual machine instances that are being
30333	// mirrored. They must live in zones contained in the same region as
30334	// this packetMirroring. Note that this config will apply only to those
30335	// network interfaces of the Instances that belong to the network
30336	// specified in this packetMirroring. You may specify a maximum of 50
30337	// Instances.
30338	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
30339
30340	// Subnetworks: A set of subnetworks for which traffic from/to all VM
30341	// instances will be mirrored. They must live in the same region as this
30342	// packetMirroring. You may specify a maximum of 5 subnetworks.
30343	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
30344
30345	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
30346	// have one or more of these tags will be mirrored.
30347	Tags []string `json:"tags,omitempty"`
30348
30349	// ForceSendFields is a list of field names (e.g. "Instances") to
30350	// unconditionally include in API requests. By default, fields with
30351	// empty or default values are omitted from API requests. However, any
30352	// non-pointer, non-interface field appearing in ForceSendFields will be
30353	// sent to the server regardless of whether the field is empty or not.
30354	// This may be used to include empty fields in Patch requests.
30355	ForceSendFields []string `json:"-"`
30356
30357	// NullFields is a list of field names (e.g. "Instances") to include in
30358	// API requests with the JSON null value. By default, fields with empty
30359	// values are omitted from API requests. However, any field with an
30360	// empty value appearing in NullFields will be sent to the server as
30361	// null. It is an error if a field in this list has a non-empty value.
30362	// This may be used to include null fields in Patch requests.
30363	NullFields []string `json:"-"`
30364}
30365
30366func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
30367	type NoMethod PacketMirroringMirroredResourceInfo
30368	raw := NoMethod(*s)
30369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30370}
30371
30372type PacketMirroringMirroredResourceInfoInstanceInfo struct {
30373	// CanonicalUrl: [Output Only] Unique identifier for the instance;
30374	// defined by the server.
30375	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30376
30377	// Url: Resource URL to the virtual machine instance which is being
30378	// mirrored.
30379	Url string `json:"url,omitempty"`
30380
30381	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30382	// unconditionally include in API requests. By default, fields with
30383	// empty or default values are omitted from API requests. However, any
30384	// non-pointer, non-interface field appearing in ForceSendFields will be
30385	// sent to the server regardless of whether the field is empty or not.
30386	// This may be used to include empty fields in Patch requests.
30387	ForceSendFields []string `json:"-"`
30388
30389	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30390	// in API requests with the JSON null value. By default, fields with
30391	// empty values are omitted from API requests. However, any field with
30392	// an empty value appearing in NullFields will be sent to the server as
30393	// null. It is an error if a field in this list has a non-empty value.
30394	// This may be used to include null fields in Patch requests.
30395	NullFields []string `json:"-"`
30396}
30397
30398func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
30399	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
30400	raw := NoMethod(*s)
30401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30402}
30403
30404type PacketMirroringMirroredResourceInfoSubnetInfo struct {
30405	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
30406	// defined by the server.
30407	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30408
30409	// Url: Resource URL to the subnetwork for which traffic from/to all VM
30410	// instances will be mirrored.
30411	Url string `json:"url,omitempty"`
30412
30413	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30414	// unconditionally include in API requests. By default, fields with
30415	// empty or default values are omitted from API requests. However, any
30416	// non-pointer, non-interface field appearing in ForceSendFields will be
30417	// sent to the server regardless of whether the field is empty or not.
30418	// This may be used to include empty fields in Patch requests.
30419	ForceSendFields []string `json:"-"`
30420
30421	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30422	// in API requests with the JSON null value. By default, fields with
30423	// empty values are omitted from API requests. However, any field with
30424	// an empty value appearing in NullFields will be sent to the server as
30425	// null. It is an error if a field in this list has a non-empty value.
30426	// This may be used to include null fields in Patch requests.
30427	NullFields []string `json:"-"`
30428}
30429
30430func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
30431	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
30432	raw := NoMethod(*s)
30433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30434}
30435
30436type PacketMirroringNetworkInfo struct {
30437	// CanonicalUrl: [Output Only] Unique identifier for the network;
30438	// defined by the server.
30439	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30440
30441	// Url: URL of the network resource.
30442	Url string `json:"url,omitempty"`
30443
30444	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30445	// unconditionally include in API requests. By default, fields with
30446	// empty or default values are omitted from API requests. However, any
30447	// non-pointer, non-interface field appearing in ForceSendFields will be
30448	// sent to the server regardless of whether the field is empty or not.
30449	// This may be used to include empty fields in Patch requests.
30450	ForceSendFields []string `json:"-"`
30451
30452	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30453	// in API requests with the JSON null value. By default, fields with
30454	// empty values are omitted from API requests. However, any field with
30455	// an empty value appearing in NullFields will be sent to the server as
30456	// null. It is an error if a field in this list has a non-empty value.
30457	// This may be used to include null fields in Patch requests.
30458	NullFields []string `json:"-"`
30459}
30460
30461func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
30462	type NoMethod PacketMirroringNetworkInfo
30463	raw := NoMethod(*s)
30464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30465}
30466
30467type PacketMirroringsScopedList struct {
30468	// PacketMirrorings: A list of packetMirrorings contained in this scope.
30469	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
30470
30471	// Warning: Informational warning which replaces the list of
30472	// packetMirrorings when the list is empty.
30473	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
30474
30475	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
30476	// unconditionally include in API requests. By default, fields with
30477	// empty or default values are omitted from API requests. However, any
30478	// non-pointer, non-interface field appearing in ForceSendFields will be
30479	// sent to the server regardless of whether the field is empty or not.
30480	// This may be used to include empty fields in Patch requests.
30481	ForceSendFields []string `json:"-"`
30482
30483	// NullFields is a list of field names (e.g. "PacketMirrorings") to
30484	// include in API requests with the JSON null value. By default, fields
30485	// with empty values are omitted from API requests. However, any field
30486	// with an empty value appearing in NullFields will be sent to the
30487	// server as null. It is an error if a field in this list has a
30488	// non-empty value. This may be used to include null fields in Patch
30489	// requests.
30490	NullFields []string `json:"-"`
30491}
30492
30493func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
30494	type NoMethod PacketMirroringsScopedList
30495	raw := NoMethod(*s)
30496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30497}
30498
30499// PacketMirroringsScopedListWarning: Informational warning which
30500// replaces the list of packetMirrorings when the list is empty.
30501type PacketMirroringsScopedListWarning struct {
30502	// Code: [Output Only] A warning code, if applicable. For example,
30503	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30504	// the response.
30505	//
30506	// Possible values:
30507	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
30508	// changes made by a failed operation.
30509	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
30510	// created.
30511	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
30512	// resources has a type marked as deprecated
30513	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
30514	// that is larger than image size.
30515	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
30516	// resources has a type marked as experimental
30517	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
30518	// call
30519	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
30520	// overridden. Deprecated unused field.
30521	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
30522	// injected kernel, which is deprecated.
30523	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
30524	// exceedingly large number of resources
30525	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
30526	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
30527	// not assigned to an instance on the network.
30528	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
30529	// ip forward.
30530	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
30531	// refers to an instance that does not exist.
30532	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
30533	// URL refers to an instance that is not on the same network as the
30534	// route.
30535	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
30536	// have a status of RUNNING.
30537	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
30538	// continue the process despite the mentioned error.
30539	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
30540	// page.
30541	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
30542	// missing due to errors
30543	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
30544	// that requires a TOS they have not accepted.
30545	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
30546	// resource is in use.
30547	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
30548	// auto-delete could not be deleted because they were in use.
30549	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
30550	// ignored.
30551	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
30552	// instance group manager is valid as such, but its application does not
30553	// make a lot of sense, because it allows only single instance in
30554	// instance group.
30555	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
30556	// are present
30557	//   "UNREACHABLE" - A given scope cannot be reached.
30558	Code string `json:"code,omitempty"`
30559
30560	// Data: [Output Only] Metadata about this warning in key: value format.
30561	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30562	// }
30563	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
30564
30565	// Message: [Output Only] A human-readable description of the warning
30566	// code.
30567	Message string `json:"message,omitempty"`
30568
30569	// ForceSendFields is a list of field names (e.g. "Code") to
30570	// unconditionally include in API requests. By default, fields with
30571	// empty or default values are omitted from API requests. However, any
30572	// non-pointer, non-interface field appearing in ForceSendFields will be
30573	// sent to the server regardless of whether the field is empty or not.
30574	// This may be used to include empty fields in Patch requests.
30575	ForceSendFields []string `json:"-"`
30576
30577	// NullFields is a list of field names (e.g. "Code") to include in API
30578	// requests with the JSON null value. By default, fields with empty
30579	// values are omitted from API requests. However, any field with an
30580	// empty value appearing in NullFields will be sent to the server as
30581	// null. It is an error if a field in this list has a non-empty value.
30582	// This may be used to include null fields in Patch requests.
30583	NullFields []string `json:"-"`
30584}
30585
30586func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
30587	type NoMethod PacketMirroringsScopedListWarning
30588	raw := NoMethod(*s)
30589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30590}
30591
30592type PacketMirroringsScopedListWarningData struct {
30593	// Key: [Output Only] A key that provides more detail on the warning
30594	// being returned. For example, for warnings where there are no results
30595	// in a list request for a particular zone, this key might be scope and
30596	// the key value might be the zone name. Other examples might be a key
30597	// indicating a deprecated resource and a suggested replacement, or a
30598	// warning about invalid network settings (for example, if an instance
30599	// attempts to perform IP forwarding but is not enabled for IP
30600	// forwarding).
30601	Key string `json:"key,omitempty"`
30602
30603	// Value: [Output Only] A warning data value corresponding to the key.
30604	Value string `json:"value,omitempty"`
30605
30606	// ForceSendFields is a list of field names (e.g. "Key") to
30607	// unconditionally include in API requests. By default, fields with
30608	// empty or default values are omitted from API requests. However, any
30609	// non-pointer, non-interface field appearing in ForceSendFields will be
30610	// sent to the server regardless of whether the field is empty or not.
30611	// This may be used to include empty fields in Patch requests.
30612	ForceSendFields []string `json:"-"`
30613
30614	// NullFields is a list of field names (e.g. "Key") to include in API
30615	// requests with the JSON null value. By default, fields with empty
30616	// values are omitted from API requests. However, any field with an
30617	// empty value appearing in NullFields will be sent to the server as
30618	// null. It is an error if a field in this list has a non-empty value.
30619	// This may be used to include null fields in Patch requests.
30620	NullFields []string `json:"-"`
30621}
30622
30623func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
30624	type NoMethod PacketMirroringsScopedListWarningData
30625	raw := NoMethod(*s)
30626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30627}
30628
30629// PathMatcher: A matcher for the path portion of the URL. The
30630// BackendService from the longest-matched rule will serve the URL. If
30631// no rule was matched, the default service will be used.
30632type PathMatcher struct {
30633	// DefaultRouteAction: defaultRouteAction takes effect when none of the
30634	// pathRules or routeRules match. The load balancer performs advanced
30635	// routing actions like URL rewrites, header transformations, etc. prior
30636	// to forwarding the request to the selected backend. If
30637	// defaultRouteAction specifies any weightedBackendServices,
30638	// defaultService must not be set. Conversely if defaultService is set,
30639	// defaultRouteAction cannot contain any weightedBackendServices. Only
30640	// one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps
30641	// for external HTTP(S) load balancers support only the urlRewrite
30642	// action within a pathMatcher's defaultRouteAction.
30643	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
30644
30645	// DefaultService: The full or partial URL to the BackendService
30646	// resource. This will be used if none of the pathRules or routeRules
30647	// defined by this PathMatcher are matched. For example, the following
30648	// are all valid URLs to a BackendService resource: -
30649	// https://www.googleapis.com/compute/v1/projects/project
30650	// /global/backendServices/backendService -
30651	// compute/v1/projects/project/global/backendServices/backendService -
30652	// global/backendServices/backendService If defaultRouteAction is
30653	// additionally specified, advanced routing actions like URL Rewrites,
30654	// etc. take effect prior to sending the request to the backend.
30655	// However, if defaultService is specified, defaultRouteAction cannot
30656	// contain any weightedBackendServices. Conversely, if
30657	// defaultRouteAction specifies any weightedBackendServices,
30658	// defaultService must not be specified. Only one of defaultService,
30659	// defaultUrlRedirect or defaultRouteAction.weightedBackendService must
30660	// be set. Authorization requires one or more of the following Google
30661	// IAM permissions on the specified resource default_service: -
30662	// compute.backendBuckets.use - compute.backendServices.use
30663	DefaultService string `json:"defaultService,omitempty"`
30664
30665	// DefaultUrlRedirect: When none of the specified pathRules or
30666	// routeRules match, the request is redirected to a URL specified by
30667	// defaultUrlRedirect. If defaultUrlRedirect is specified,
30668	// defaultService or defaultRouteAction must not be set. Not supported
30669	// when the URL map is bound to target gRPC proxy.
30670	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
30671
30672	// Description: An optional description of this resource. Provide this
30673	// property when you create the resource.
30674	Description string `json:"description,omitempty"`
30675
30676	// HeaderAction: Specifies changes to request and response headers that
30677	// need to take effect for the selected backendService. HeaderAction
30678	// specified here are applied after the matching HttpRouteRule
30679	// HeaderAction and before the HeaderAction in the UrlMap Note that
30680	// headerAction is not supported for Loadbalancers that have their
30681	// loadBalancingScheme set to EXTERNAL. Not supported when the URL map
30682	// is bound to target gRPC proxy that has validateForProxyless field set
30683	// to true.
30684	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
30685
30686	// Name: The name to which this PathMatcher is referred by the HostRule.
30687	Name string `json:"name,omitempty"`
30688
30689	// PathRules: The list of path rules. Use this list instead of
30690	// routeRules when routing based on simple path matching is all that's
30691	// required. The order by which path rules are specified does not
30692	// matter. Matches are always done on the longest-path-first basis. For
30693	// example: a pathRule with a path /a/b/c/* will match before /a/b/*
30694	// irrespective of the order in which those paths appear in this list.
30695	// Within a given pathMatcher, only one of pathRules or routeRules must
30696	// be set.
30697	PathRules []*PathRule `json:"pathRules,omitempty"`
30698
30699	// RouteRules: The list of HTTP route rules. Use this list instead of
30700	// pathRules when advanced route matching and routing actions are
30701	// desired. routeRules are evaluated in order of priority, from the
30702	// lowest to highest number. Within a given pathMatcher, you can set
30703	// only one of pathRules or routeRules.
30704	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
30705
30706	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
30707	// to unconditionally include in API requests. By default, fields with
30708	// empty or default values are omitted from API requests. However, any
30709	// non-pointer, non-interface field appearing in ForceSendFields will be
30710	// sent to the server regardless of whether the field is empty or not.
30711	// This may be used to include empty fields in Patch requests.
30712	ForceSendFields []string `json:"-"`
30713
30714	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
30715	// include in API requests with the JSON null value. By default, fields
30716	// with empty values are omitted from API requests. However, any field
30717	// with an empty value appearing in NullFields will be sent to the
30718	// server as null. It is an error if a field in this list has a
30719	// non-empty value. This may be used to include null fields in Patch
30720	// requests.
30721	NullFields []string `json:"-"`
30722}
30723
30724func (s *PathMatcher) MarshalJSON() ([]byte, error) {
30725	type NoMethod PathMatcher
30726	raw := NoMethod(*s)
30727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30728}
30729
30730// PathRule: A path-matching rule for a URL. If matched, will use the
30731// specified BackendService to handle the traffic arriving at this URL.
30732type PathRule struct {
30733	// Paths: The list of path patterns to match. Each must start with / and
30734	// the only place a * is allowed is at the end following a /. The string
30735	// fed to the path matcher does not include any text after the first ?
30736	// or #, and those chars are not allowed here.
30737	Paths []string `json:"paths,omitempty"`
30738
30739	// RouteAction: In response to a matching path, the load balancer
30740	// performs advanced routing actions like URL rewrites, header
30741	// transformations, etc. prior to forwarding the request to the selected
30742	// backend. If routeAction specifies any weightedBackendServices,
30743	// service must not be set. Conversely if service is set, routeAction
30744	// cannot contain any weightedBackendServices. Only one of routeAction
30745	// or urlRedirect must be set. UrlMaps for external HTTP(S) load
30746	// balancers support only the urlRewrite action within a pathRule's
30747	// routeAction.
30748	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
30749
30750	// Service: The full or partial URL of the backend service resource to
30751	// which traffic is directed if this rule is matched. If routeAction is
30752	// additionally specified, advanced routing actions like URL Rewrites,
30753	// etc. take effect prior to sending the request to the backend.
30754	// However, if service is specified, routeAction cannot contain any
30755	// weightedBackendService s. Conversely, if routeAction specifies any
30756	// weightedBackendServices, service must not be specified. Only one of
30757	// urlRedirect, service or routeAction.weightedBackendService must be
30758	// set.
30759	Service string `json:"service,omitempty"`
30760
30761	// UrlRedirect: When a path pattern is matched, the request is
30762	// redirected to a URL specified by urlRedirect. If urlRedirect is
30763	// specified, service or routeAction must not be set. Not supported when
30764	// the URL map is bound to target gRPC proxy.
30765	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
30766
30767	// ForceSendFields is a list of field names (e.g. "Paths") to
30768	// unconditionally include in API requests. By default, fields with
30769	// empty or default values are omitted from API requests. However, any
30770	// non-pointer, non-interface field appearing in ForceSendFields will be
30771	// sent to the server regardless of whether the field is empty or not.
30772	// This may be used to include empty fields in Patch requests.
30773	ForceSendFields []string `json:"-"`
30774
30775	// NullFields is a list of field names (e.g. "Paths") to include in API
30776	// requests with the JSON null value. By default, fields with empty
30777	// values are omitted from API requests. However, any field with an
30778	// empty value appearing in NullFields will be sent to the server as
30779	// null. It is an error if a field in this list has a non-empty value.
30780	// This may be used to include null fields in Patch requests.
30781	NullFields []string `json:"-"`
30782}
30783
30784func (s *PathRule) MarshalJSON() ([]byte, error) {
30785	type NoMethod PathRule
30786	raw := NoMethod(*s)
30787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30788}
30789
30790type PerInstanceConfig struct {
30791	// Fingerprint: Fingerprint of this per-instance config. This field can
30792	// be used in optimistic locking. It is ignored when inserting a
30793	// per-instance config. An up-to-date fingerprint must be provided in
30794	// order to update an existing per-instance config or the field needs to
30795	// be unset.
30796	Fingerprint string `json:"fingerprint,omitempty"`
30797
30798	// Name: The name of a per-instance config and its corresponding
30799	// instance. Serves as a merge key during UpdatePerInstanceConfigs
30800	// operations, that is, if a per-instance config with the same name
30801	// exists then it will be updated, otherwise a new one will be created
30802	// for the VM instance with the same name. An attempt to create a
30803	// per-instance config for a VM instance that either doesn't exist or is
30804	// not part of the group will result in an error.
30805	Name string `json:"name,omitempty"`
30806
30807	// PreservedState: The intended preserved state for the given instance.
30808	// Does not contain preserved state generated from a stateful policy.
30809	PreservedState *PreservedState `json:"preservedState,omitempty"`
30810
30811	// Status: The status of applying this per-instance config on the
30812	// corresponding managed instance.
30813	//
30814	// Possible values:
30815	//   "APPLYING" - The per-instance config is being applied to the
30816	// instance, but is not yet effective, possibly waiting for the instance
30817	// to, for example, REFRESH.
30818	//   "DELETING" - The per-instance config deletion is being applied on
30819	// the instance, possibly waiting for the instance to, for example,
30820	// REFRESH.
30821	//   "EFFECTIVE" - The per-instance config is effective on the instance,
30822	// meaning that all disks, ips and metadata specified in this config are
30823	// attached or set on the instance.
30824	//   "NONE" - *[Default]* The default status, when no per-instance
30825	// config exists.
30826	//   "UNAPPLIED" - The per-instance config is set on an instance but not
30827	// been applied yet.
30828	//   "UNAPPLIED_DELETION" - The per-instance config has been deleted,
30829	// but the deletion is not yet applied.
30830	Status string `json:"status,omitempty"`
30831
30832	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30833	// unconditionally include in API requests. By default, fields with
30834	// empty or default values are omitted from API requests. However, any
30835	// non-pointer, non-interface field appearing in ForceSendFields will be
30836	// sent to the server regardless of whether the field is empty or not.
30837	// This may be used to include empty fields in Patch requests.
30838	ForceSendFields []string `json:"-"`
30839
30840	// NullFields is a list of field names (e.g. "Fingerprint") to include
30841	// in API requests with the JSON null value. By default, fields with
30842	// empty values are omitted from API requests. However, any field with
30843	// an empty value appearing in NullFields will be sent to the server as
30844	// null. It is an error if a field in this list has a non-empty value.
30845	// This may be used to include null fields in Patch requests.
30846	NullFields []string `json:"-"`
30847}
30848
30849func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
30850	type NoMethod PerInstanceConfig
30851	raw := NoMethod(*s)
30852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30853}
30854
30855// Policy: An Identity and Access Management (IAM) policy, which
30856// specifies access controls for Google Cloud resources. A `Policy` is a
30857// collection of `bindings`. A `binding` binds one or more `members` to
30858// a single `role`. Members can be user accounts, service accounts,
30859// Google groups, and domains (such as G Suite). A `role` is a named
30860// list of permissions; each `role` can be an IAM predefined role or a
30861// user-created custom role. For some types of Google Cloud resources, a
30862// `binding` can also specify a `condition`, which is a logical
30863// expression that allows access to a resource only if the expression
30864// evaluates to `true`. A condition can add constraints based on
30865// attributes of the request, the resource, or both. To learn which
30866// resources support conditions in their IAM policies, see the IAM
30867// documentation
30868// (https://cloud.google.com/iam/help/conditions/resource-policies).
30869// **JSON example:** { "bindings": [ { "role":
30870// "roles/resourcemanager.organizationAdmin", "members": [
30871// "user:mike@example.com", "group:admins@example.com",
30872// "domain:google.com",
30873// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
30874// "role": "roles/resourcemanager.organizationViewer", "members": [
30875// "user:eve@example.com" ], "condition": { "title": "expirable access",
30876// "description": "Does not grant access after Sep 2020", "expression":
30877// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
30878// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
30879// members: - user:mike@example.com - group:admins@example.com -
30880// domain:google.com -
30881// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
30882// roles/resourcemanager.organizationAdmin - members: -
30883// user:eve@example.com role: roles/resourcemanager.organizationViewer
30884// condition: title: expirable access description: Does not grant access
30885// after Sep 2020 expression: request.time <
30886// timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3
30887// For a description of IAM and its features, see the IAM documentation
30888// (https://cloud.google.com/iam/docs/).
30889type Policy struct {
30890	// AuditConfigs: Specifies cloud audit logging configuration for this
30891	// policy.
30892	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
30893
30894	// Bindings: Associates a list of `members` to a `role`. Optionally, may
30895	// specify a `condition` that determines how and when the `bindings` are
30896	// applied. Each of the `bindings` must contain at least one member.
30897	Bindings []*Binding `json:"bindings,omitempty"`
30898
30899	// Etag: `etag` is used for optimistic concurrency control as a way to
30900	// help prevent simultaneous updates of a policy from overwriting each
30901	// other. It is strongly suggested that systems make use of the `etag`
30902	// in the read-modify-write cycle to perform policy updates in order to
30903	// avoid race conditions: An `etag` is returned in the response to
30904	// `getIamPolicy`, and systems are expected to put that etag in the
30905	// request to `setIamPolicy` to ensure that their change will be applied
30906	// to the same version of the policy. **Important:** If you use IAM
30907	// Conditions, you must include the `etag` field whenever you call
30908	// `setIamPolicy`. If you omit this field, then IAM allows you to
30909	// overwrite a version `3` policy with a version `1` policy, and all of
30910	// the conditions in the version `3` policy are lost.
30911	Etag string `json:"etag,omitempty"`
30912
30913	// IamOwned: This is deprecated and has no effect. Do not use.
30914	IamOwned bool `json:"iamOwned,omitempty"`
30915
30916	// Rules: This is deprecated and has no effect. Do not use.
30917	Rules []*Rule `json:"rules,omitempty"`
30918
30919	// Version: Specifies the format of the policy. Valid values are `0`,
30920	// `1`, and `3`. Requests that specify an invalid value are rejected.
30921	// Any operation that affects conditional role bindings must specify
30922	// version `3`. This requirement applies to the following operations: *
30923	// Getting a policy that includes a conditional role binding * Adding a
30924	// conditional role binding to a policy * Changing a conditional role
30925	// binding in a policy * Removing any role binding, with or without a
30926	// condition, from a policy that includes conditions **Important:** If
30927	// you use IAM Conditions, you must include the `etag` field whenever
30928	// you call `setIamPolicy`. If you omit this field, then IAM allows you
30929	// to overwrite a version `3` policy with a version `1` policy, and all
30930	// of the conditions in the version `3` policy are lost. If a policy
30931	// does not include any conditions, operations on that policy may
30932	// specify any valid version or leave the field unset. To learn which
30933	// resources support conditions in their IAM policies, see the IAM
30934	// documentation
30935	// (https://cloud.google.com/iam/help/conditions/resource-policies).
30936	Version int64 `json:"version,omitempty"`
30937
30938	// ServerResponse contains the HTTP response code and headers from the
30939	// server.
30940	googleapi.ServerResponse `json:"-"`
30941
30942	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
30943	// unconditionally include in API requests. By default, fields with
30944	// empty or default values are omitted from API requests. However, any
30945	// non-pointer, non-interface field appearing in ForceSendFields will be
30946	// sent to the server regardless of whether the field is empty or not.
30947	// This may be used to include empty fields in Patch requests.
30948	ForceSendFields []string `json:"-"`
30949
30950	// NullFields is a list of field names (e.g. "AuditConfigs") to include
30951	// in API requests with the JSON null value. By default, fields with
30952	// empty values are omitted from API requests. However, any field with
30953	// an empty value appearing in NullFields will be sent to the server as
30954	// null. It is an error if a field in this list has a non-empty value.
30955	// This may be used to include null fields in Patch requests.
30956	NullFields []string `json:"-"`
30957}
30958
30959func (s *Policy) MarshalJSON() ([]byte, error) {
30960	type NoMethod Policy
30961	raw := NoMethod(*s)
30962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30963}
30964
30965type PreconfiguredWafSet struct {
30966	// ExpressionSets: List of entities that are currently supported for WAF
30967	// rules.
30968	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
30969
30970	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
30971	// unconditionally include in API requests. By default, fields with
30972	// empty or default values are omitted from API requests. However, any
30973	// non-pointer, non-interface field appearing in ForceSendFields will be
30974	// sent to the server regardless of whether the field is empty or not.
30975	// This may be used to include empty fields in Patch requests.
30976	ForceSendFields []string `json:"-"`
30977
30978	// NullFields is a list of field names (e.g. "ExpressionSets") to
30979	// include in API requests with the JSON null value. By default, fields
30980	// with empty values are omitted from API requests. However, any field
30981	// with an empty value appearing in NullFields will be sent to the
30982	// server as null. It is an error if a field in this list has a
30983	// non-empty value. This may be used to include null fields in Patch
30984	// requests.
30985	NullFields []string `json:"-"`
30986}
30987
30988func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
30989	type NoMethod PreconfiguredWafSet
30990	raw := NoMethod(*s)
30991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30992}
30993
30994// PreservedState: Preserved state for a given instance.
30995type PreservedState struct {
30996	// Disks: Preserved disks defined for this instance. This map is keyed
30997	// with the device names of the disks.
30998	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
30999
31000	// Metadata: Preserved metadata defined for this instance.
31001	Metadata map[string]string `json:"metadata,omitempty"`
31002
31003	// ForceSendFields is a list of field names (e.g. "Disks") to
31004	// unconditionally include in API requests. By default, fields with
31005	// empty or default values are omitted from API requests. However, any
31006	// non-pointer, non-interface field appearing in ForceSendFields will be
31007	// sent to the server regardless of whether the field is empty or not.
31008	// This may be used to include empty fields in Patch requests.
31009	ForceSendFields []string `json:"-"`
31010
31011	// NullFields is a list of field names (e.g. "Disks") to include in API
31012	// requests with the JSON null value. By default, fields with empty
31013	// values are omitted from API requests. However, any field with an
31014	// empty value appearing in NullFields will be sent to the server as
31015	// null. It is an error if a field in this list has a non-empty value.
31016	// This may be used to include null fields in Patch requests.
31017	NullFields []string `json:"-"`
31018}
31019
31020func (s *PreservedState) MarshalJSON() ([]byte, error) {
31021	type NoMethod PreservedState
31022	raw := NoMethod(*s)
31023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31024}
31025
31026type PreservedStatePreservedDisk struct {
31027	// AutoDelete: These stateful disks will never be deleted during
31028	// autohealing, update, instance recreate operations. This flag is used
31029	// to configure if the disk should be deleted after it is no longer used
31030	// by the group, e.g. when the given instance or the whole MIG is
31031	// deleted. Note: disks attached in READ_ONLY mode cannot be
31032	// auto-deleted.
31033	//
31034	// Possible values:
31035	//   "NEVER"
31036	//   "ON_PERMANENT_INSTANCE_DELETION"
31037	AutoDelete string `json:"autoDelete,omitempty"`
31038
31039	// Mode: The mode in which to attach this disk, either READ_WRITE or
31040	// READ_ONLY. If not specified, the default is to attach the disk in
31041	// READ_WRITE mode.
31042	//
31043	// Possible values:
31044	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple VM
31045	// instances can use a disk in READ_ONLY mode at a time.
31046	//   "READ_WRITE" - *[Default]* Attaches this disk in READ_WRITE mode.
31047	// Only one VM instance at a time can be attached to a disk in
31048	// READ_WRITE mode.
31049	Mode string `json:"mode,omitempty"`
31050
31051	// Source: The URL of the disk resource that is stateful and should be
31052	// attached to the VM instance.
31053	Source string `json:"source,omitempty"`
31054
31055	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
31056	// unconditionally include in API requests. By default, fields with
31057	// empty or default values are omitted from API requests. However, any
31058	// non-pointer, non-interface field appearing in ForceSendFields will be
31059	// sent to the server regardless of whether the field is empty or not.
31060	// This may be used to include empty fields in Patch requests.
31061	ForceSendFields []string `json:"-"`
31062
31063	// NullFields is a list of field names (e.g. "AutoDelete") to include in
31064	// API requests with the JSON null value. By default, fields with empty
31065	// values are omitted from API requests. However, any field with an
31066	// empty value appearing in NullFields will be sent to the server as
31067	// null. It is an error if a field in this list has a non-empty value.
31068	// This may be used to include null fields in Patch requests.
31069	NullFields []string `json:"-"`
31070}
31071
31072func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
31073	type NoMethod PreservedStatePreservedDisk
31074	raw := NoMethod(*s)
31075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31076}
31077
31078// Project: Represents a Project resource. A project is used to organize
31079// resources in a Google Cloud Platform environment. For more
31080// information, read about the Resource Hierarchy.
31081type Project struct {
31082	// CommonInstanceMetadata: Metadata key/value pairs available to all
31083	// instances contained in this project. See Custom metadata for more
31084	// information.
31085	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
31086
31087	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31088	// format.
31089	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31090
31091	// DefaultNetworkTier: This signifies the default network tier used for
31092	// configuring resources of the project and can only take the following
31093	// values: PREMIUM, STANDARD. Initially the default network tier is
31094	// PREMIUM.
31095	//
31096	// Possible values:
31097	//   "PREMIUM" - High quality, Google-grade network tier, support for
31098	// all networking products.
31099	//   "STANDARD" - Public internet quality, only limited support for
31100	// other networking products.
31101	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
31102
31103	// DefaultServiceAccount: [Output Only] Default service account used by
31104	// VMs running in this project.
31105	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
31106
31107	// Description: An optional textual description of the resource.
31108	Description string `json:"description,omitempty"`
31109
31110	// EnabledFeatures: Restricted features enabled for use on this project.
31111	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
31112
31113	// Id: [Output Only] The unique identifier for the resource. This
31114	// identifier is defined by the server. This is *not* the project ID,
31115	// and is just a unique ID used by Compute Engine to identify resources.
31116	Id uint64 `json:"id,omitempty,string"`
31117
31118	// Kind: [Output Only] Type of the resource. Always compute#project for
31119	// projects.
31120	Kind string `json:"kind,omitempty"`
31121
31122	// Name: The project ID. For example: my-example-project. Use the
31123	// project ID to make requests to Compute Engine.
31124	Name string `json:"name,omitempty"`
31125
31126	// Quotas: [Output Only] Quotas assigned to this project.
31127	Quotas []*Quota `json:"quotas,omitempty"`
31128
31129	// SelfLink: [Output Only] Server-defined URL for the resource.
31130	SelfLink string `json:"selfLink,omitempty"`
31131
31132	// UsageExportLocation: The naming prefix for daily usage reports and
31133	// the Google Cloud Storage bucket where they are stored.
31134	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
31135
31136	// XpnProjectStatus: [Output Only] The role this project has in a shared
31137	// VPC configuration. Currently, only projects with the host role, which
31138	// is specified by the value HOST, are differentiated.
31139	//
31140	// Possible values:
31141	//   "HOST"
31142	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
31143	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
31144
31145	// ServerResponse contains the HTTP response code and headers from the
31146	// server.
31147	googleapi.ServerResponse `json:"-"`
31148
31149	// ForceSendFields is a list of field names (e.g.
31150	// "CommonInstanceMetadata") to unconditionally include in API requests.
31151	// By default, fields with empty or default values are omitted from API
31152	// requests. However, any non-pointer, non-interface field appearing in
31153	// ForceSendFields will be sent to the server regardless of whether the
31154	// field is empty or not. This may be used to include empty fields in
31155	// Patch requests.
31156	ForceSendFields []string `json:"-"`
31157
31158	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
31159	// to include in API requests with the JSON null value. By default,
31160	// fields with empty values are omitted from API requests. However, any
31161	// field with an empty value appearing in NullFields will be sent to the
31162	// server as null. It is an error if a field in this list has a
31163	// non-empty value. This may be used to include null fields in Patch
31164	// requests.
31165	NullFields []string `json:"-"`
31166}
31167
31168func (s *Project) MarshalJSON() ([]byte, error) {
31169	type NoMethod Project
31170	raw := NoMethod(*s)
31171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31172}
31173
31174type ProjectsDisableXpnResourceRequest struct {
31175	// XpnResource: Service resource (a.k.a service project) ID.
31176	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
31177
31178	// ForceSendFields is a list of field names (e.g. "XpnResource") to
31179	// unconditionally include in API requests. By default, fields with
31180	// empty or default values are omitted from API requests. However, any
31181	// non-pointer, non-interface field appearing in ForceSendFields will be
31182	// sent to the server regardless of whether the field is empty or not.
31183	// This may be used to include empty fields in Patch requests.
31184	ForceSendFields []string `json:"-"`
31185
31186	// NullFields is a list of field names (e.g. "XpnResource") to include
31187	// in API requests with the JSON null value. By default, fields with
31188	// empty values are omitted from API requests. However, any field with
31189	// an empty value appearing in NullFields will be sent to the server as
31190	// null. It is an error if a field in this list has a non-empty value.
31191	// This may be used to include null fields in Patch requests.
31192	NullFields []string `json:"-"`
31193}
31194
31195func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
31196	type NoMethod ProjectsDisableXpnResourceRequest
31197	raw := NoMethod(*s)
31198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31199}
31200
31201type ProjectsEnableXpnResourceRequest struct {
31202	// XpnResource: Service resource (a.k.a service project) ID.
31203	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
31204
31205	// ForceSendFields is a list of field names (e.g. "XpnResource") to
31206	// unconditionally include in API requests. By default, fields with
31207	// empty or default values are omitted from API requests. However, any
31208	// non-pointer, non-interface field appearing in ForceSendFields will be
31209	// sent to the server regardless of whether the field is empty or not.
31210	// This may be used to include empty fields in Patch requests.
31211	ForceSendFields []string `json:"-"`
31212
31213	// NullFields is a list of field names (e.g. "XpnResource") to include
31214	// in API requests with the JSON null value. By default, fields with
31215	// empty values are omitted from API requests. However, any field with
31216	// an empty value appearing in NullFields will be sent to the server as
31217	// null. It is an error if a field in this list has a non-empty value.
31218	// This may be used to include null fields in Patch requests.
31219	NullFields []string `json:"-"`
31220}
31221
31222func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
31223	type NoMethod ProjectsEnableXpnResourceRequest
31224	raw := NoMethod(*s)
31225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31226}
31227
31228type ProjectsGetXpnResources struct {
31229	// Kind: [Output Only] Type of resource. Always
31230	// compute#projectsGetXpnResources for lists of service resources (a.k.a
31231	// service projects)
31232	Kind string `json:"kind,omitempty"`
31233
31234	// NextPageToken: [Output Only] This token allows you to get the next
31235	// page of results for list requests. If the number of results is larger
31236	// than maxResults, use the nextPageToken as a value for the query
31237	// parameter pageToken in the next list request. Subsequent list
31238	// requests will have their own nextPageToken to continue paging through
31239	// the results.
31240	NextPageToken string `json:"nextPageToken,omitempty"`
31241
31242	// Resources: Service resources (a.k.a service projects) attached to
31243	// this project as their shared VPC host.
31244	Resources []*XpnResourceId `json:"resources,omitempty"`
31245
31246	// ServerResponse contains the HTTP response code and headers from the
31247	// server.
31248	googleapi.ServerResponse `json:"-"`
31249
31250	// ForceSendFields is a list of field names (e.g. "Kind") to
31251	// unconditionally include in API requests. By default, fields with
31252	// empty or default values are omitted from API requests. However, any
31253	// non-pointer, non-interface field appearing in ForceSendFields will be
31254	// sent to the server regardless of whether the field is empty or not.
31255	// This may be used to include empty fields in Patch requests.
31256	ForceSendFields []string `json:"-"`
31257
31258	// NullFields is a list of field names (e.g. "Kind") to include in API
31259	// requests with the JSON null value. By default, fields with empty
31260	// values are omitted from API requests. However, any field with an
31261	// empty value appearing in NullFields will be sent to the server as
31262	// null. It is an error if a field in this list has a non-empty value.
31263	// This may be used to include null fields in Patch requests.
31264	NullFields []string `json:"-"`
31265}
31266
31267func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
31268	type NoMethod ProjectsGetXpnResources
31269	raw := NoMethod(*s)
31270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31271}
31272
31273type ProjectsListXpnHostsRequest struct {
31274	// Organization: Optional organization ID managed by Cloud Resource
31275	// Manager, for which to list shared VPC host projects. If not
31276	// specified, the organization will be inferred from the project.
31277	Organization string `json:"organization,omitempty"`
31278
31279	// ForceSendFields is a list of field names (e.g. "Organization") to
31280	// unconditionally include in API requests. By default, fields with
31281	// empty or default values are omitted from API requests. However, any
31282	// non-pointer, non-interface field appearing in ForceSendFields will be
31283	// sent to the server regardless of whether the field is empty or not.
31284	// This may be used to include empty fields in Patch requests.
31285	ForceSendFields []string `json:"-"`
31286
31287	// NullFields is a list of field names (e.g. "Organization") to include
31288	// in API requests with the JSON null value. By default, fields with
31289	// empty values are omitted from API requests. However, any field with
31290	// an empty value appearing in NullFields will be sent to the server as
31291	// null. It is an error if a field in this list has a non-empty value.
31292	// This may be used to include null fields in Patch requests.
31293	NullFields []string `json:"-"`
31294}
31295
31296func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
31297	type NoMethod ProjectsListXpnHostsRequest
31298	raw := NoMethod(*s)
31299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31300}
31301
31302type ProjectsSetDefaultNetworkTierRequest struct {
31303	// NetworkTier: Default network tier to be set.
31304	//
31305	// Possible values:
31306	//   "PREMIUM" - High quality, Google-grade network tier, support for
31307	// all networking products.
31308	//   "STANDARD" - Public internet quality, only limited support for
31309	// other networking products.
31310	NetworkTier string `json:"networkTier,omitempty"`
31311
31312	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
31313	// unconditionally include in API requests. By default, fields with
31314	// empty or default values are omitted from API requests. However, any
31315	// non-pointer, non-interface field appearing in ForceSendFields will be
31316	// sent to the server regardless of whether the field is empty or not.
31317	// This may be used to include empty fields in Patch requests.
31318	ForceSendFields []string `json:"-"`
31319
31320	// NullFields is a list of field names (e.g. "NetworkTier") to include
31321	// in API requests with the JSON null value. By default, fields with
31322	// empty values are omitted from API requests. However, any field with
31323	// an empty value appearing in NullFields will be sent to the server as
31324	// null. It is an error if a field in this list has a non-empty value.
31325	// This may be used to include null fields in Patch requests.
31326	NullFields []string `json:"-"`
31327}
31328
31329func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
31330	type NoMethod ProjectsSetDefaultNetworkTierRequest
31331	raw := NoMethod(*s)
31332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31333}
31334
31335// PublicAdvertisedPrefix: A public advertised prefix represents an
31336// aggregated IP prefix or netblock which customers bring to cloud. The
31337// IP prefix is a single unit of route advertisement and is announced
31338// globally to the internet.
31339type PublicAdvertisedPrefix struct {
31340	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31341	// format.
31342	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31343
31344	// Description: An optional description of this resource. Provide this
31345	// property when you create the resource.
31346	Description string `json:"description,omitempty"`
31347
31348	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
31349	// verification.
31350	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
31351
31352	// Fingerprint: Fingerprint of this resource. A hash of the contents
31353	// stored in this object. This field is used in optimistic locking. This
31354	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
31355	// up-to-date fingerprint must be provided in order to update the
31356	// PublicAdvertisedPrefix, otherwise the request will fail with error
31357	// 412 conditionNotMet. To see the latest fingerprint, make a get()
31358	// request to retrieve a PublicAdvertisedPrefix.
31359	Fingerprint string `json:"fingerprint,omitempty"`
31360
31361	// Id: [Output Only] The unique identifier for the resource type. The
31362	// server generates this identifier.
31363	Id uint64 `json:"id,omitempty,string"`
31364
31365	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31366	// this public advertised prefix.
31367	IpCidrRange string `json:"ipCidrRange,omitempty"`
31368
31369	// Kind: [Output Only] Type of the resource. Always
31370	// compute#publicAdvertisedPrefix for public advertised prefixes.
31371	Kind string `json:"kind,omitempty"`
31372
31373	// Name: Name of the resource. Provided by the client when the resource
31374	// is created. The name must be 1-63 characters long, and comply with
31375	// RFC1035. Specifically, the name must be 1-63 characters long and
31376	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31377	// the first character must be a lowercase letter, and all following
31378	// characters must be a dash, lowercase letter, or digit, except the
31379	// last character, which cannot be a dash.
31380	Name string `json:"name,omitempty"`
31381
31382	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
31383	// prefixes that exist for this public advertised prefix.
31384	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
31385
31386	// SelfLink: [Output Only] Server-defined URL for the resource.
31387	SelfLink string `json:"selfLink,omitempty"`
31388
31389	// SharedSecret: [Output Only] The shared secret to be used for reverse
31390	// DNS verification.
31391	SharedSecret string `json:"sharedSecret,omitempty"`
31392
31393	// Status: The status of the public advertised prefix.
31394	//
31395	// Possible values:
31396	//   "INITIAL"
31397	//   "PREFIX_CONFIGURATION_COMPLETE"
31398	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
31399	//   "PREFIX_REMOVAL_IN_PROGRESS"
31400	//   "PTR_CONFIGURED"
31401	//   "REVERSE_DNS_LOOKUP_FAILED"
31402	//   "VALIDATED"
31403	Status string `json:"status,omitempty"`
31404
31405	// ServerResponse contains the HTTP response code and headers from the
31406	// server.
31407	googleapi.ServerResponse `json:"-"`
31408
31409	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31410	// to unconditionally include in API requests. By default, fields with
31411	// empty or default values are omitted from API requests. However, any
31412	// non-pointer, non-interface field appearing in ForceSendFields will be
31413	// sent to the server regardless of whether the field is empty or not.
31414	// This may be used to include empty fields in Patch requests.
31415	ForceSendFields []string `json:"-"`
31416
31417	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31418	// include in API requests with the JSON null value. By default, fields
31419	// with empty values are omitted from API requests. However, any field
31420	// with an empty value appearing in NullFields will be sent to the
31421	// server as null. It is an error if a field in this list has a
31422	// non-empty value. This may be used to include null fields in Patch
31423	// requests.
31424	NullFields []string `json:"-"`
31425}
31426
31427func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
31428	type NoMethod PublicAdvertisedPrefix
31429	raw := NoMethod(*s)
31430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31431}
31432
31433type PublicAdvertisedPrefixList struct {
31434	// Id: [Output Only] Unique identifier for the resource; defined by the
31435	// server.
31436	Id string `json:"id,omitempty"`
31437
31438	// Items: A list of PublicAdvertisedPrefix resources.
31439	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
31440
31441	// Kind: [Output Only] Type of the resource. Always
31442	// compute#publicAdvertisedPrefix for public advertised prefixes.
31443	Kind string `json:"kind,omitempty"`
31444
31445	// NextPageToken: [Output Only] This token allows you to get the next
31446	// page of results for list requests. If the number of results is larger
31447	// than maxResults, use the nextPageToken as a value for the query
31448	// parameter pageToken in the next list request. Subsequent list
31449	// requests will have their own nextPageToken to continue paging through
31450	// the results.
31451	NextPageToken string `json:"nextPageToken,omitempty"`
31452
31453	// SelfLink: [Output Only] Server-defined URL for this resource.
31454	SelfLink string `json:"selfLink,omitempty"`
31455
31456	// Warning: [Output Only] Informational warning message.
31457	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
31458
31459	// ServerResponse contains the HTTP response code and headers from the
31460	// server.
31461	googleapi.ServerResponse `json:"-"`
31462
31463	// ForceSendFields is a list of field names (e.g. "Id") to
31464	// unconditionally include in API requests. By default, fields with
31465	// empty or default values are omitted from API requests. However, any
31466	// non-pointer, non-interface field appearing in ForceSendFields will be
31467	// sent to the server regardless of whether the field is empty or not.
31468	// This may be used to include empty fields in Patch requests.
31469	ForceSendFields []string `json:"-"`
31470
31471	// NullFields is a list of field names (e.g. "Id") to include in API
31472	// requests with the JSON null value. By default, fields with empty
31473	// values are omitted from API requests. However, any field with an
31474	// empty value appearing in NullFields will be sent to the server as
31475	// null. It is an error if a field in this list has a non-empty value.
31476	// This may be used to include null fields in Patch requests.
31477	NullFields []string `json:"-"`
31478}
31479
31480func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
31481	type NoMethod PublicAdvertisedPrefixList
31482	raw := NoMethod(*s)
31483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31484}
31485
31486// PublicAdvertisedPrefixListWarning: [Output Only] Informational
31487// warning message.
31488type PublicAdvertisedPrefixListWarning struct {
31489	// Code: [Output Only] A warning code, if applicable. For example,
31490	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31491	// the response.
31492	//
31493	// Possible values:
31494	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
31495	// changes made by a failed operation.
31496	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
31497	// created.
31498	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
31499	// resources has a type marked as deprecated
31500	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
31501	// that is larger than image size.
31502	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
31503	// resources has a type marked as experimental
31504	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
31505	// call
31506	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
31507	// overridden. Deprecated unused field.
31508	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
31509	// injected kernel, which is deprecated.
31510	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
31511	// exceedingly large number of resources
31512	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
31513	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
31514	// not assigned to an instance on the network.
31515	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
31516	// ip forward.
31517	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
31518	// refers to an instance that does not exist.
31519	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
31520	// URL refers to an instance that is not on the same network as the
31521	// route.
31522	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
31523	// have a status of RUNNING.
31524	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
31525	// continue the process despite the mentioned error.
31526	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
31527	// page.
31528	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
31529	// missing due to errors
31530	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
31531	// that requires a TOS they have not accepted.
31532	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
31533	// resource is in use.
31534	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
31535	// auto-delete could not be deleted because they were in use.
31536	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
31537	// ignored.
31538	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
31539	// instance group manager is valid as such, but its application does not
31540	// make a lot of sense, because it allows only single instance in
31541	// instance group.
31542	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
31543	// are present
31544	//   "UNREACHABLE" - A given scope cannot be reached.
31545	Code string `json:"code,omitempty"`
31546
31547	// Data: [Output Only] Metadata about this warning in key: value format.
31548	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
31549	// }
31550	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
31551
31552	// Message: [Output Only] A human-readable description of the warning
31553	// code.
31554	Message string `json:"message,omitempty"`
31555
31556	// ForceSendFields is a list of field names (e.g. "Code") to
31557	// unconditionally include in API requests. By default, fields with
31558	// empty or default values are omitted from API requests. However, any
31559	// non-pointer, non-interface field appearing in ForceSendFields will be
31560	// sent to the server regardless of whether the field is empty or not.
31561	// This may be used to include empty fields in Patch requests.
31562	ForceSendFields []string `json:"-"`
31563
31564	// NullFields is a list of field names (e.g. "Code") to include in API
31565	// requests with the JSON null value. By default, fields with empty
31566	// values are omitted from API requests. However, any field with an
31567	// empty value appearing in NullFields will be sent to the server as
31568	// null. It is an error if a field in this list has a non-empty value.
31569	// This may be used to include null fields in Patch requests.
31570	NullFields []string `json:"-"`
31571}
31572
31573func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
31574	type NoMethod PublicAdvertisedPrefixListWarning
31575	raw := NoMethod(*s)
31576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31577}
31578
31579type PublicAdvertisedPrefixListWarningData struct {
31580	// Key: [Output Only] A key that provides more detail on the warning
31581	// being returned. For example, for warnings where there are no results
31582	// in a list request for a particular zone, this key might be scope and
31583	// the key value might be the zone name. Other examples might be a key
31584	// indicating a deprecated resource and a suggested replacement, or a
31585	// warning about invalid network settings (for example, if an instance
31586	// attempts to perform IP forwarding but is not enabled for IP
31587	// forwarding).
31588	Key string `json:"key,omitempty"`
31589
31590	// Value: [Output Only] A warning data value corresponding to the key.
31591	Value string `json:"value,omitempty"`
31592
31593	// ForceSendFields is a list of field names (e.g. "Key") to
31594	// unconditionally include in API requests. By default, fields with
31595	// empty or default values are omitted from API requests. However, any
31596	// non-pointer, non-interface field appearing in ForceSendFields will be
31597	// sent to the server regardless of whether the field is empty or not.
31598	// This may be used to include empty fields in Patch requests.
31599	ForceSendFields []string `json:"-"`
31600
31601	// NullFields is a list of field names (e.g. "Key") to include in API
31602	// requests with the JSON null value. By default, fields with empty
31603	// values are omitted from API requests. However, any field with an
31604	// empty value appearing in NullFields will be sent to the server as
31605	// null. It is an error if a field in this list has a non-empty value.
31606	// This may be used to include null fields in Patch requests.
31607	NullFields []string `json:"-"`
31608}
31609
31610func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31611	type NoMethod PublicAdvertisedPrefixListWarningData
31612	raw := NoMethod(*s)
31613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31614}
31615
31616// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
31617// which can be used to assign addresses.
31618type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
31619	// IpRange: The IP address range of the public delegated prefix
31620	IpRange string `json:"ipRange,omitempty"`
31621
31622	// Name: The name of the public delegated prefix
31623	Name string `json:"name,omitempty"`
31624
31625	// Project: The project number of the public delegated prefix
31626	Project string `json:"project,omitempty"`
31627
31628	// Region: The region of the public delegated prefix if it is regional.
31629	// If absent, the prefix is global.
31630	Region string `json:"region,omitempty"`
31631
31632	// Status: The status of the public delegated prefix. Possible values
31633	// are: INITIALIZING: The public delegated prefix is being initialized
31634	// and addresses cannot be created yet. ANNOUNCED: The public delegated
31635	// prefix is active.
31636	Status string `json:"status,omitempty"`
31637
31638	// ForceSendFields is a list of field names (e.g. "IpRange") to
31639	// unconditionally include in API requests. By default, fields with
31640	// empty or default values are omitted from API requests. However, any
31641	// non-pointer, non-interface field appearing in ForceSendFields will be
31642	// sent to the server regardless of whether the field is empty or not.
31643	// This may be used to include empty fields in Patch requests.
31644	ForceSendFields []string `json:"-"`
31645
31646	// NullFields is a list of field names (e.g. "IpRange") to include in
31647	// API requests with the JSON null value. By default, fields with empty
31648	// values are omitted from API requests. However, any field with an
31649	// empty value appearing in NullFields will be sent to the server as
31650	// null. It is an error if a field in this list has a non-empty value.
31651	// This may be used to include null fields in Patch requests.
31652	NullFields []string `json:"-"`
31653}
31654
31655func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31656	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
31657	raw := NoMethod(*s)
31658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31659}
31660
31661// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
31662// IP block within a PublicAdvertisedPrefix that is configured within a
31663// single cloud scope (global or region). IPs in the block can be
31664// allocated to resources within that scope. Public delegated prefixes
31665// may be further broken up into smaller IP blocks in the same scope as
31666// the parent block.
31667type PublicDelegatedPrefix struct {
31668	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31669	// format.
31670	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31671
31672	// Description: An optional description of this resource. Provide this
31673	// property when you create the resource.
31674	Description string `json:"description,omitempty"`
31675
31676	// Fingerprint: Fingerprint of this resource. A hash of the contents
31677	// stored in this object. This field is used in optimistic locking. This
31678	// field will be ignored when inserting a new PublicDelegatedPrefix. An
31679	// up-to-date fingerprint must be provided in order to update the
31680	// PublicDelegatedPrefix, otherwise the request will fail with error 412
31681	// conditionNotMet. To see the latest fingerprint, make a get() request
31682	// to retrieve a PublicDelegatedPrefix.
31683	Fingerprint string `json:"fingerprint,omitempty"`
31684
31685	// Id: [Output Only] The unique identifier for the resource type. The
31686	// server generates this identifier.
31687	Id uint64 `json:"id,omitempty,string"`
31688
31689	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31690	// this public delegated prefix.
31691	IpCidrRange string `json:"ipCidrRange,omitempty"`
31692
31693	// IsLiveMigration: If true, the prefix will be live migrated.
31694	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
31695
31696	// Kind: [Output Only] Type of the resource. Always
31697	// compute#publicDelegatedPrefix for public delegated prefixes.
31698	Kind string `json:"kind,omitempty"`
31699
31700	// Name: Name of the resource. Provided by the client when the resource
31701	// is created. The name must be 1-63 characters long, and comply with
31702	// RFC1035. Specifically, the name must be 1-63 characters long and
31703	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31704	// the first character must be a lowercase letter, and all following
31705	// characters must be a dash, lowercase letter, or digit, except the
31706	// last character, which cannot be a dash.
31707	Name string `json:"name,omitempty"`
31708
31709	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
31710	// or PublicDelegatedPrefix.
31711	ParentPrefix string `json:"parentPrefix,omitempty"`
31712
31713	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
31714	// that exist for this public delegated prefix.
31715	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
31716
31717	// Region: [Output Only] URL of the region where the public delegated
31718	// prefix resides. This field applies only to the region resource. You
31719	// must specify this field as part of the HTTP request URL. It is not
31720	// settable as a field in the request body.
31721	Region string `json:"region,omitempty"`
31722
31723	// SelfLink: [Output Only] Server-defined URL for the resource.
31724	SelfLink string `json:"selfLink,omitempty"`
31725
31726	// Status: [Output Only] The status of the public delegated prefix.
31727	//
31728	// Possible values:
31729	//   "ANNOUNCED"
31730	//   "DELETING"
31731	//   "INITIALIZING"
31732	//   "READY_TO_ANNOUNCE"
31733	Status string `json:"status,omitempty"`
31734
31735	// ServerResponse contains the HTTP response code and headers from the
31736	// server.
31737	googleapi.ServerResponse `json:"-"`
31738
31739	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31740	// to unconditionally include in API requests. By default, fields with
31741	// empty or default values are omitted from API requests. However, any
31742	// non-pointer, non-interface field appearing in ForceSendFields will be
31743	// sent to the server regardless of whether the field is empty or not.
31744	// This may be used to include empty fields in Patch requests.
31745	ForceSendFields []string `json:"-"`
31746
31747	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31748	// include in API requests with the JSON null value. By default, fields
31749	// with empty values are omitted from API requests. However, any field
31750	// with an empty value appearing in NullFields will be sent to the
31751	// server as null. It is an error if a field in this list has a
31752	// non-empty value. This may be used to include null fields in Patch
31753	// requests.
31754	NullFields []string `json:"-"`
31755}
31756
31757func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31758	type NoMethod PublicDelegatedPrefix
31759	raw := NoMethod(*s)
31760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31761}
31762
31763type PublicDelegatedPrefixAggregatedList struct {
31764	// Id: [Output Only] Unique identifier for the resource; defined by the
31765	// server.
31766	Id string `json:"id,omitempty"`
31767
31768	// Items: A list of PublicDelegatedPrefixesScopedList resources.
31769	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
31770
31771	// Kind: [Output Only] Type of the resource. Always
31772	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
31773	// public delegated prefixes.
31774	Kind string `json:"kind,omitempty"`
31775
31776	// NextPageToken: [Output Only] This token allows you to get the next
31777	// page of results for list requests. If the number of results is larger
31778	// than maxResults, use the nextPageToken as a value for the query
31779	// parameter pageToken in the next list request. Subsequent list
31780	// requests will have their own nextPageToken to continue paging through
31781	// the results.
31782	NextPageToken string `json:"nextPageToken,omitempty"`
31783
31784	// SelfLink: [Output Only] Server-defined URL for this resource.
31785	SelfLink string `json:"selfLink,omitempty"`
31786
31787	// Unreachables: [Output Only] Unreachable resources.
31788	Unreachables []string `json:"unreachables,omitempty"`
31789
31790	// Warning: [Output Only] Informational warning message.
31791	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
31792
31793	// ServerResponse contains the HTTP response code and headers from the
31794	// server.
31795	googleapi.ServerResponse `json:"-"`
31796
31797	// ForceSendFields is a list of field names (e.g. "Id") to
31798	// unconditionally include in API requests. By default, fields with
31799	// empty or default values are omitted from API requests. However, any
31800	// non-pointer, non-interface field appearing in ForceSendFields will be
31801	// sent to the server regardless of whether the field is empty or not.
31802	// This may be used to include empty fields in Patch requests.
31803	ForceSendFields []string `json:"-"`
31804
31805	// NullFields is a list of field names (e.g. "Id") to include in API
31806	// requests with the JSON null value. By default, fields with empty
31807	// values are omitted from API requests. However, any field with an
31808	// empty value appearing in NullFields will be sent to the server as
31809	// null. It is an error if a field in this list has a non-empty value.
31810	// This may be used to include null fields in Patch requests.
31811	NullFields []string `json:"-"`
31812}
31813
31814func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
31815	type NoMethod PublicDelegatedPrefixAggregatedList
31816	raw := NoMethod(*s)
31817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31818}
31819
31820// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
31821// Informational warning message.
31822type PublicDelegatedPrefixAggregatedListWarning struct {
31823	// Code: [Output Only] A warning code, if applicable. For example,
31824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31825	// the response.
31826	//
31827	// Possible values:
31828	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
31829	// changes made by a failed operation.
31830	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
31831	// created.
31832	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
31833	// resources has a type marked as deprecated
31834	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
31835	// that is larger than image size.
31836	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
31837	// resources has a type marked as experimental
31838	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
31839	// call
31840	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
31841	// overridden. Deprecated unused field.
31842	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
31843	// injected kernel, which is deprecated.
31844	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
31845	// exceedingly large number of resources
31846	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
31847	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
31848	// not assigned to an instance on the network.
31849	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
31850	// ip forward.
31851	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
31852	// refers to an instance that does not exist.
31853	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
31854	// URL refers to an instance that is not on the same network as the
31855	// route.
31856	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
31857	// have a status of RUNNING.
31858	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
31859	// continue the process despite the mentioned error.
31860	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
31861	// page.
31862	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
31863	// missing due to errors
31864	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
31865	// that requires a TOS they have not accepted.
31866	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
31867	// resource is in use.
31868	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
31869	// auto-delete could not be deleted because they were in use.
31870	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
31871	// ignored.
31872	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
31873	// instance group manager is valid as such, but its application does not
31874	// make a lot of sense, because it allows only single instance in
31875	// instance group.
31876	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
31877	// are present
31878	//   "UNREACHABLE" - A given scope cannot be reached.
31879	Code string `json:"code,omitempty"`
31880
31881	// Data: [Output Only] Metadata about this warning in key: value format.
31882	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
31883	// }
31884	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
31885
31886	// Message: [Output Only] A human-readable description of the warning
31887	// code.
31888	Message string `json:"message,omitempty"`
31889
31890	// ForceSendFields is a list of field names (e.g. "Code") to
31891	// unconditionally include in API requests. By default, fields with
31892	// empty or default values are omitted from API requests. However, any
31893	// non-pointer, non-interface field appearing in ForceSendFields will be
31894	// sent to the server regardless of whether the field is empty or not.
31895	// This may be used to include empty fields in Patch requests.
31896	ForceSendFields []string `json:"-"`
31897
31898	// NullFields is a list of field names (e.g. "Code") to include in API
31899	// requests with the JSON null value. By default, fields with empty
31900	// values are omitted from API requests. However, any field with an
31901	// empty value appearing in NullFields will be sent to the server as
31902	// null. It is an error if a field in this list has a non-empty value.
31903	// This may be used to include null fields in Patch requests.
31904	NullFields []string `json:"-"`
31905}
31906
31907func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
31908	type NoMethod PublicDelegatedPrefixAggregatedListWarning
31909	raw := NoMethod(*s)
31910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31911}
31912
31913type PublicDelegatedPrefixAggregatedListWarningData struct {
31914	// Key: [Output Only] A key that provides more detail on the warning
31915	// being returned. For example, for warnings where there are no results
31916	// in a list request for a particular zone, this key might be scope and
31917	// the key value might be the zone name. Other examples might be a key
31918	// indicating a deprecated resource and a suggested replacement, or a
31919	// warning about invalid network settings (for example, if an instance
31920	// attempts to perform IP forwarding but is not enabled for IP
31921	// forwarding).
31922	Key string `json:"key,omitempty"`
31923
31924	// Value: [Output Only] A warning data value corresponding to the key.
31925	Value string `json:"value,omitempty"`
31926
31927	// ForceSendFields is a list of field names (e.g. "Key") to
31928	// unconditionally include in API requests. By default, fields with
31929	// empty or default values are omitted from API requests. However, any
31930	// non-pointer, non-interface field appearing in ForceSendFields will be
31931	// sent to the server regardless of whether the field is empty or not.
31932	// This may be used to include empty fields in Patch requests.
31933	ForceSendFields []string `json:"-"`
31934
31935	// NullFields is a list of field names (e.g. "Key") to include in API
31936	// requests with the JSON null value. By default, fields with empty
31937	// values are omitted from API requests. However, any field with an
31938	// empty value appearing in NullFields will be sent to the server as
31939	// null. It is an error if a field in this list has a non-empty value.
31940	// This may be used to include null fields in Patch requests.
31941	NullFields []string `json:"-"`
31942}
31943
31944func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31945	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
31946	raw := NoMethod(*s)
31947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31948}
31949
31950type PublicDelegatedPrefixList struct {
31951	// Id: [Output Only] Unique identifier for the resource; defined by the
31952	// server.
31953	Id string `json:"id,omitempty"`
31954
31955	// Items: A list of PublicDelegatedPrefix resources.
31956	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
31957
31958	// Kind: [Output Only] Type of the resource. Always
31959	// compute#publicDelegatedPrefixList for public delegated prefixes.
31960	Kind string `json:"kind,omitempty"`
31961
31962	// NextPageToken: [Output Only] This token allows you to get the next
31963	// page of results for list requests. If the number of results is larger
31964	// than maxResults, use the nextPageToken as a value for the query
31965	// parameter pageToken in the next list request. Subsequent list
31966	// requests will have their own nextPageToken to continue paging through
31967	// the results.
31968	NextPageToken string `json:"nextPageToken,omitempty"`
31969
31970	// SelfLink: [Output Only] Server-defined URL for this resource.
31971	SelfLink string `json:"selfLink,omitempty"`
31972
31973	// Warning: [Output Only] Informational warning message.
31974	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
31975
31976	// ServerResponse contains the HTTP response code and headers from the
31977	// server.
31978	googleapi.ServerResponse `json:"-"`
31979
31980	// ForceSendFields is a list of field names (e.g. "Id") to
31981	// unconditionally include in API requests. By default, fields with
31982	// empty or default values are omitted from API requests. However, any
31983	// non-pointer, non-interface field appearing in ForceSendFields will be
31984	// sent to the server regardless of whether the field is empty or not.
31985	// This may be used to include empty fields in Patch requests.
31986	ForceSendFields []string `json:"-"`
31987
31988	// NullFields is a list of field names (e.g. "Id") to include in API
31989	// requests with the JSON null value. By default, fields with empty
31990	// values are omitted from API requests. However, any field with an
31991	// empty value appearing in NullFields will be sent to the server as
31992	// null. It is an error if a field in this list has a non-empty value.
31993	// This may be used to include null fields in Patch requests.
31994	NullFields []string `json:"-"`
31995}
31996
31997func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
31998	type NoMethod PublicDelegatedPrefixList
31999	raw := NoMethod(*s)
32000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32001}
32002
32003// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
32004// message.
32005type PublicDelegatedPrefixListWarning struct {
32006	// Code: [Output Only] A warning code, if applicable. For example,
32007	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32008	// the response.
32009	//
32010	// Possible values:
32011	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32012	// changes made by a failed operation.
32013	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32014	// created.
32015	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32016	// resources has a type marked as deprecated
32017	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32018	// that is larger than image size.
32019	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32020	// resources has a type marked as experimental
32021	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32022	// call
32023	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32024	// overridden. Deprecated unused field.
32025	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32026	// injected kernel, which is deprecated.
32027	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32028	// exceedingly large number of resources
32029	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32030	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32031	// not assigned to an instance on the network.
32032	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32033	// ip forward.
32034	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32035	// refers to an instance that does not exist.
32036	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32037	// URL refers to an instance that is not on the same network as the
32038	// route.
32039	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32040	// have a status of RUNNING.
32041	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32042	// continue the process despite the mentioned error.
32043	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32044	// page.
32045	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32046	// missing due to errors
32047	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32048	// that requires a TOS they have not accepted.
32049	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32050	// resource is in use.
32051	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32052	// auto-delete could not be deleted because they were in use.
32053	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32054	// ignored.
32055	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32056	// instance group manager is valid as such, but its application does not
32057	// make a lot of sense, because it allows only single instance in
32058	// instance group.
32059	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32060	// are present
32061	//   "UNREACHABLE" - A given scope cannot be reached.
32062	Code string `json:"code,omitempty"`
32063
32064	// Data: [Output Only] Metadata about this warning in key: value format.
32065	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32066	// }
32067	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
32068
32069	// Message: [Output Only] A human-readable description of the warning
32070	// code.
32071	Message string `json:"message,omitempty"`
32072
32073	// ForceSendFields is a list of field names (e.g. "Code") to
32074	// unconditionally include in API requests. By default, fields with
32075	// empty or default values are omitted from API requests. However, any
32076	// non-pointer, non-interface field appearing in ForceSendFields will be
32077	// sent to the server regardless of whether the field is empty or not.
32078	// This may be used to include empty fields in Patch requests.
32079	ForceSendFields []string `json:"-"`
32080
32081	// NullFields is a list of field names (e.g. "Code") to include in API
32082	// requests with the JSON null value. By default, fields with empty
32083	// values are omitted from API requests. However, any field with an
32084	// empty value appearing in NullFields will be sent to the server as
32085	// null. It is an error if a field in this list has a non-empty value.
32086	// This may be used to include null fields in Patch requests.
32087	NullFields []string `json:"-"`
32088}
32089
32090func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
32091	type NoMethod PublicDelegatedPrefixListWarning
32092	raw := NoMethod(*s)
32093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32094}
32095
32096type PublicDelegatedPrefixListWarningData struct {
32097	// Key: [Output Only] A key that provides more detail on the warning
32098	// being returned. For example, for warnings where there are no results
32099	// in a list request for a particular zone, this key might be scope and
32100	// the key value might be the zone name. Other examples might be a key
32101	// indicating a deprecated resource and a suggested replacement, or a
32102	// warning about invalid network settings (for example, if an instance
32103	// attempts to perform IP forwarding but is not enabled for IP
32104	// forwarding).
32105	Key string `json:"key,omitempty"`
32106
32107	// Value: [Output Only] A warning data value corresponding to the key.
32108	Value string `json:"value,omitempty"`
32109
32110	// ForceSendFields is a list of field names (e.g. "Key") to
32111	// unconditionally include in API requests. By default, fields with
32112	// empty or default values are omitted from API requests. However, any
32113	// non-pointer, non-interface field appearing in ForceSendFields will be
32114	// sent to the server regardless of whether the field is empty or not.
32115	// This may be used to include empty fields in Patch requests.
32116	ForceSendFields []string `json:"-"`
32117
32118	// NullFields is a list of field names (e.g. "Key") to include in API
32119	// requests with the JSON null value. By default, fields with empty
32120	// values are omitted from API requests. However, any field with an
32121	// empty value appearing in NullFields will be sent to the server as
32122	// null. It is an error if a field in this list has a non-empty value.
32123	// This may be used to include null fields in Patch requests.
32124	NullFields []string `json:"-"`
32125}
32126
32127func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
32128	type NoMethod PublicDelegatedPrefixListWarningData
32129	raw := NoMethod(*s)
32130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32131}
32132
32133// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
32134// PublicDelegatedPrefix.
32135type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
32136	// DelegateeProject: Name of the project scoping this
32137	// PublicDelegatedSubPrefix.
32138	DelegateeProject string `json:"delegateeProject,omitempty"`
32139
32140	// Description: An optional description of this resource. Provide this
32141	// property when you create the resource.
32142	Description string `json:"description,omitempty"`
32143
32144	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
32145	// this sub public delegated prefix.
32146	IpCidrRange string `json:"ipCidrRange,omitempty"`
32147
32148	// IsAddress: Whether the sub prefix is delegated to create Address
32149	// resources in the delegatee project.
32150	IsAddress bool `json:"isAddress,omitempty"`
32151
32152	// Name: The name of the sub public delegated prefix.
32153	Name string `json:"name,omitempty"`
32154
32155	// Region: [Output Only] The region of the sub public delegated prefix
32156	// if it is regional. If absent, the sub prefix is global.
32157	Region string `json:"region,omitempty"`
32158
32159	// Status: [Output Only] The status of the sub public delegated prefix.
32160	//
32161	// Possible values:
32162	//   "ACTIVE"
32163	//   "INACTIVE"
32164	Status string `json:"status,omitempty"`
32165
32166	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
32167	// unconditionally include in API requests. By default, fields with
32168	// empty or default values are omitted from API requests. However, any
32169	// non-pointer, non-interface field appearing in ForceSendFields will be
32170	// sent to the server regardless of whether the field is empty or not.
32171	// This may be used to include empty fields in Patch requests.
32172	ForceSendFields []string `json:"-"`
32173
32174	// NullFields is a list of field names (e.g. "DelegateeProject") to
32175	// include in API requests with the JSON null value. By default, fields
32176	// with empty values are omitted from API requests. However, any field
32177	// with an empty value appearing in NullFields will be sent to the
32178	// server as null. It is an error if a field in this list has a
32179	// non-empty value. This may be used to include null fields in Patch
32180	// requests.
32181	NullFields []string `json:"-"`
32182}
32183
32184func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
32185	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
32186	raw := NoMethod(*s)
32187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32188}
32189
32190type PublicDelegatedPrefixesScopedList struct {
32191	// PublicDelegatedPrefixes: [Output Only] A list of
32192	// PublicDelegatedPrefixes contained in this scope.
32193	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
32194
32195	// Warning: [Output Only] Informational warning which replaces the list
32196	// of public delegated prefixes when the list is empty.
32197	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
32198
32199	// ForceSendFields is a list of field names (e.g.
32200	// "PublicDelegatedPrefixes") to unconditionally include in API
32201	// requests. By default, fields with empty or default values are omitted
32202	// from API requests. However, any non-pointer, non-interface field
32203	// appearing in ForceSendFields will be sent to the server regardless of
32204	// whether the field is empty or not. This may be used to include empty
32205	// fields in Patch requests.
32206	ForceSendFields []string `json:"-"`
32207
32208	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
32209	// to include in API requests with the JSON null value. By default,
32210	// fields with empty values are omitted from API requests. However, any
32211	// field with an empty value appearing in NullFields will be sent to the
32212	// server as null. It is an error if a field in this list has a
32213	// non-empty value. This may be used to include null fields in Patch
32214	// requests.
32215	NullFields []string `json:"-"`
32216}
32217
32218func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
32219	type NoMethod PublicDelegatedPrefixesScopedList
32220	raw := NoMethod(*s)
32221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32222}
32223
32224// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
32225// warning which replaces the list of public delegated prefixes when the
32226// list is empty.
32227type PublicDelegatedPrefixesScopedListWarning struct {
32228	// Code: [Output Only] A warning code, if applicable. For example,
32229	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32230	// the response.
32231	//
32232	// Possible values:
32233	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32234	// changes made by a failed operation.
32235	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32236	// created.
32237	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32238	// resources has a type marked as deprecated
32239	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32240	// that is larger than image size.
32241	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32242	// resources has a type marked as experimental
32243	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32244	// call
32245	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32246	// overridden. Deprecated unused field.
32247	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32248	// injected kernel, which is deprecated.
32249	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32250	// exceedingly large number of resources
32251	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32252	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32253	// not assigned to an instance on the network.
32254	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32255	// ip forward.
32256	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32257	// refers to an instance that does not exist.
32258	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32259	// URL refers to an instance that is not on the same network as the
32260	// route.
32261	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32262	// have a status of RUNNING.
32263	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32264	// continue the process despite the mentioned error.
32265	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32266	// page.
32267	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32268	// missing due to errors
32269	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32270	// that requires a TOS they have not accepted.
32271	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32272	// resource is in use.
32273	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32274	// auto-delete could not be deleted because they were in use.
32275	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32276	// ignored.
32277	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32278	// instance group manager is valid as such, but its application does not
32279	// make a lot of sense, because it allows only single instance in
32280	// instance group.
32281	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32282	// are present
32283	//   "UNREACHABLE" - A given scope cannot be reached.
32284	Code string `json:"code,omitempty"`
32285
32286	// Data: [Output Only] Metadata about this warning in key: value format.
32287	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32288	// }
32289	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
32290
32291	// Message: [Output Only] A human-readable description of the warning
32292	// code.
32293	Message string `json:"message,omitempty"`
32294
32295	// ForceSendFields is a list of field names (e.g. "Code") to
32296	// unconditionally include in API requests. By default, fields with
32297	// empty or default values are omitted from API requests. However, any
32298	// non-pointer, non-interface field appearing in ForceSendFields will be
32299	// sent to the server regardless of whether the field is empty or not.
32300	// This may be used to include empty fields in Patch requests.
32301	ForceSendFields []string `json:"-"`
32302
32303	// NullFields is a list of field names (e.g. "Code") to include in API
32304	// requests with the JSON null value. By default, fields with empty
32305	// values are omitted from API requests. However, any field with an
32306	// empty value appearing in NullFields will be sent to the server as
32307	// null. It is an error if a field in this list has a non-empty value.
32308	// This may be used to include null fields in Patch requests.
32309	NullFields []string `json:"-"`
32310}
32311
32312func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
32313	type NoMethod PublicDelegatedPrefixesScopedListWarning
32314	raw := NoMethod(*s)
32315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32316}
32317
32318type PublicDelegatedPrefixesScopedListWarningData struct {
32319	// Key: [Output Only] A key that provides more detail on the warning
32320	// being returned. For example, for warnings where there are no results
32321	// in a list request for a particular zone, this key might be scope and
32322	// the key value might be the zone name. Other examples might be a key
32323	// indicating a deprecated resource and a suggested replacement, or a
32324	// warning about invalid network settings (for example, if an instance
32325	// attempts to perform IP forwarding but is not enabled for IP
32326	// forwarding).
32327	Key string `json:"key,omitempty"`
32328
32329	// Value: [Output Only] A warning data value corresponding to the key.
32330	Value string `json:"value,omitempty"`
32331
32332	// ForceSendFields is a list of field names (e.g. "Key") to
32333	// unconditionally include in API requests. By default, fields with
32334	// empty or default values are omitted from API requests. However, any
32335	// non-pointer, non-interface field appearing in ForceSendFields will be
32336	// sent to the server regardless of whether the field is empty or not.
32337	// This may be used to include empty fields in Patch requests.
32338	ForceSendFields []string `json:"-"`
32339
32340	// NullFields is a list of field names (e.g. "Key") to include in API
32341	// requests with the JSON null value. By default, fields with empty
32342	// values are omitted from API requests. However, any field with an
32343	// empty value appearing in NullFields will be sent to the server as
32344	// null. It is an error if a field in this list has a non-empty value.
32345	// This may be used to include null fields in Patch requests.
32346	NullFields []string `json:"-"`
32347}
32348
32349func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
32350	type NoMethod PublicDelegatedPrefixesScopedListWarningData
32351	raw := NoMethod(*s)
32352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32353}
32354
32355// Quota: A quotas entry.
32356type Quota struct {
32357	// Limit: [Output Only] Quota limit for this metric.
32358	Limit float64 `json:"limit,omitempty"`
32359
32360	// Metric: [Output Only] Name of the quota metric.
32361	//
32362	// Possible values:
32363	//   "A2_CPUS"
32364	//   "AFFINITY_GROUPS"
32365	//   "AUTOSCALERS"
32366	//   "BACKEND_BUCKETS"
32367	//   "BACKEND_SERVICES"
32368	//   "C2D_CPUS"
32369	//   "C2_CPUS"
32370	//   "COMMITMENTS"
32371	//   "COMMITTED_A2_CPUS"
32372	//   "COMMITTED_C2D_CPUS"
32373	//   "COMMITTED_C2_CPUS"
32374	//   "COMMITTED_CPUS"
32375	//   "COMMITTED_E2_CPUS"
32376	//   "COMMITTED_LICENSES"
32377	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
32378	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
32379	//   "COMMITTED_N2A_CPUS"
32380	//   "COMMITTED_N2D_CPUS"
32381	//   "COMMITTED_N2_CPUS"
32382	//   "COMMITTED_NVIDIA_A100_GPUS"
32383	//   "COMMITTED_NVIDIA_K80_GPUS"
32384	//   "COMMITTED_NVIDIA_P100_GPUS"
32385	//   "COMMITTED_NVIDIA_P4_GPUS"
32386	//   "COMMITTED_NVIDIA_T4_GPUS"
32387	//   "COMMITTED_NVIDIA_V100_GPUS"
32388	//   "COMMITTED_T2D_CPUS"
32389	//   "CPUS" - Guest CPUs
32390	//   "CPUS_ALL_REGIONS"
32391	//   "DISKS_TOTAL_GB"
32392	//   "E2_CPUS"
32393	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
32394	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
32395	//   "EXTERNAL_VPN_GATEWAYS"
32396	//   "FIREWALLS"
32397	//   "FORWARDING_RULES"
32398	//   "GLOBAL_INTERNAL_ADDRESSES"
32399	//   "GPUS_ALL_REGIONS"
32400	//   "HEALTH_CHECKS"
32401	//   "IMAGES"
32402	//   "INSTANCES"
32403	//   "INSTANCE_GROUPS"
32404	//   "INSTANCE_GROUP_MANAGERS"
32405	//   "INSTANCE_TEMPLATES"
32406	//   "INTERCONNECTS"
32407	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
32408	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
32409	//   "INTERCONNECT_TOTAL_GBPS"
32410	//   "INTERNAL_ADDRESSES"
32411	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
32412	//   "IN_PLACE_SNAPSHOTS"
32413	//   "IN_USE_ADDRESSES"
32414	//   "IN_USE_BACKUP_SCHEDULES"
32415	//   "IN_USE_SNAPSHOT_SCHEDULES"
32416	//   "LOCAL_SSD_TOTAL_GB"
32417	//   "M1_CPUS"
32418	//   "M2_CPUS"
32419	//   "MACHINE_IMAGES"
32420	//   "N2A_CPUS"
32421	//   "N2D_CPUS"
32422	//   "N2_CPUS"
32423	//   "NETWORKS"
32424	//   "NETWORK_ENDPOINT_GROUPS"
32425	//   "NETWORK_FIREWALL_POLICIES"
32426	//   "NODE_GROUPS"
32427	//   "NODE_TEMPLATES"
32428	//   "NVIDIA_A100_GPUS"
32429	//   "NVIDIA_K80_GPUS"
32430	//   "NVIDIA_P100_GPUS"
32431	//   "NVIDIA_P100_VWS_GPUS"
32432	//   "NVIDIA_P4_GPUS"
32433	//   "NVIDIA_P4_VWS_GPUS"
32434	//   "NVIDIA_T4_GPUS"
32435	//   "NVIDIA_T4_VWS_GPUS"
32436	//   "NVIDIA_V100_GPUS"
32437	//   "PACKET_MIRRORINGS"
32438	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
32439	//   "PREEMPTIBLE_CPUS"
32440	//   "PREEMPTIBLE_LOCAL_SSD_GB"
32441	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
32442	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
32443	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
32444	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
32445	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
32446	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
32447	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
32448	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
32449	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
32450	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
32451	//   "PSC_INTERNAL_LB_FORWARDING_RULES"
32452	//   "PUBLIC_ADVERTISED_PREFIXES"
32453	//   "PUBLIC_DELEGATED_PREFIXES"
32454	//   "REGIONAL_AUTOSCALERS"
32455	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
32456	//   "RESERVATIONS"
32457	//   "RESOURCE_POLICIES"
32458	//   "ROUTERS"
32459	//   "ROUTES"
32460	//   "SECURITY_POLICIES"
32461	//   "SECURITY_POLICIES_PER_REGION"
32462	//   "SECURITY_POLICY_CEVAL_RULES"
32463	//   "SECURITY_POLICY_RULES"
32464	//   "SECURITY_POLICY_RULES_PER_REGION"
32465	//   "SERVICE_ATTACHMENTS"
32466	//   "SNAPSHOTS" - The total number of snapshots allowed for a single
32467	// project.
32468	//   "SSD_TOTAL_GB"
32469	//   "SSL_CERTIFICATES"
32470	//   "STATIC_ADDRESSES"
32471	//   "STATIC_BYOIP_ADDRESSES"
32472	//   "SUBNETWORKS"
32473	//   "T2D_CPUS"
32474	//   "TARGET_HTTPS_PROXIES"
32475	//   "TARGET_HTTP_PROXIES"
32476	//   "TARGET_INSTANCES"
32477	//   "TARGET_POOLS"
32478	//   "TARGET_SSL_PROXIES"
32479	//   "TARGET_TCP_PROXIES"
32480	//   "TARGET_VPN_GATEWAYS"
32481	//   "URL_MAPS"
32482	//   "VPN_GATEWAYS"
32483	//   "VPN_TUNNELS"
32484	//   "XPN_SERVICE_PROJECTS"
32485	Metric string `json:"metric,omitempty"`
32486
32487	// Owner: [Output Only] Owning resource. This is the resource on which
32488	// this quota is applied.
32489	Owner string `json:"owner,omitempty"`
32490
32491	// Usage: [Output Only] Current usage of this metric.
32492	Usage float64 `json:"usage,omitempty"`
32493
32494	// ForceSendFields is a list of field names (e.g. "Limit") to
32495	// unconditionally include in API requests. By default, fields with
32496	// empty or default values are omitted from API requests. However, any
32497	// non-pointer, non-interface field appearing in ForceSendFields will be
32498	// sent to the server regardless of whether the field is empty or not.
32499	// This may be used to include empty fields in Patch requests.
32500	ForceSendFields []string `json:"-"`
32501
32502	// NullFields is a list of field names (e.g. "Limit") to include in API
32503	// requests with the JSON null value. By default, fields with empty
32504	// values are omitted from API requests. However, any field with an
32505	// empty value appearing in NullFields will be sent to the server as
32506	// null. It is an error if a field in this list has a non-empty value.
32507	// This may be used to include null fields in Patch requests.
32508	NullFields []string `json:"-"`
32509}
32510
32511func (s *Quota) MarshalJSON() ([]byte, error) {
32512	type NoMethod Quota
32513	raw := NoMethod(*s)
32514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32515}
32516
32517func (s *Quota) UnmarshalJSON(data []byte) error {
32518	type NoMethod Quota
32519	var s1 struct {
32520		Limit gensupport.JSONFloat64 `json:"limit"`
32521		Usage gensupport.JSONFloat64 `json:"usage"`
32522		*NoMethod
32523	}
32524	s1.NoMethod = (*NoMethod)(s)
32525	if err := json.Unmarshal(data, &s1); err != nil {
32526		return err
32527	}
32528	s.Limit = float64(s1.Limit)
32529	s.Usage = float64(s1.Usage)
32530	return nil
32531}
32532
32533// Reference: Represents a reference to a resource.
32534type Reference struct {
32535	// Kind: [Output Only] Type of the resource. Always compute#reference
32536	// for references.
32537	Kind string `json:"kind,omitempty"`
32538
32539	// ReferenceType: A description of the reference type with no implied
32540	// semantics. Possible values include: 1. MEMBER_OF
32541	ReferenceType string `json:"referenceType,omitempty"`
32542
32543	// Referrer: URL of the resource which refers to the target.
32544	Referrer string `json:"referrer,omitempty"`
32545
32546	// Target: URL of the resource to which this reference points.
32547	Target string `json:"target,omitempty"`
32548
32549	// ForceSendFields is a list of field names (e.g. "Kind") to
32550	// unconditionally include in API requests. By default, fields with
32551	// empty or default values are omitted from API requests. However, any
32552	// non-pointer, non-interface field appearing in ForceSendFields will be
32553	// sent to the server regardless of whether the field is empty or not.
32554	// This may be used to include empty fields in Patch requests.
32555	ForceSendFields []string `json:"-"`
32556
32557	// NullFields is a list of field names (e.g. "Kind") to include in API
32558	// requests with the JSON null value. By default, fields with empty
32559	// values are omitted from API requests. However, any field with an
32560	// empty value appearing in NullFields will be sent to the server as
32561	// null. It is an error if a field in this list has a non-empty value.
32562	// This may be used to include null fields in Patch requests.
32563	NullFields []string `json:"-"`
32564}
32565
32566func (s *Reference) MarshalJSON() ([]byte, error) {
32567	type NoMethod Reference
32568	raw := NoMethod(*s)
32569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32570}
32571
32572// Region: Represents a Region resource. A region is a geographical area
32573// where a resource is located. For more information, read Regions and
32574// Zones.
32575type Region struct {
32576	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32577	// format.
32578	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32579
32580	// Deprecated -- [Output Only] The deprecation status associated with
32581	// this region.
32582	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
32583
32584	// Description: [Output Only] Textual description of the resource.
32585	Description string `json:"description,omitempty"`
32586
32587	// Id: [Output Only] The unique identifier for the resource. This
32588	// identifier is defined by the server.
32589	Id uint64 `json:"id,omitempty,string"`
32590
32591	// Kind: [Output Only] Type of the resource. Always compute#region for
32592	// regions.
32593	Kind string `json:"kind,omitempty"`
32594
32595	// Name: [Output Only] Name of the resource.
32596	Name string `json:"name,omitempty"`
32597
32598	// Quotas: [Output Only] Quotas assigned to this region.
32599	Quotas []*Quota `json:"quotas,omitempty"`
32600
32601	// SelfLink: [Output Only] Server-defined URL for the resource.
32602	SelfLink string `json:"selfLink,omitempty"`
32603
32604	// Status: [Output Only] Status of the region, either UP or DOWN.
32605	//
32606	// Possible values:
32607	//   "DOWN"
32608	//   "UP"
32609	Status string `json:"status,omitempty"`
32610
32611	// SupportsPzs: [Output Only] Reserved for future use.
32612	SupportsPzs bool `json:"supportsPzs,omitempty"`
32613
32614	// Zones: [Output Only] A list of zones available in this region, in the
32615	// form of resource URLs.
32616	Zones []string `json:"zones,omitempty"`
32617
32618	// ServerResponse contains the HTTP response code and headers from the
32619	// server.
32620	googleapi.ServerResponse `json:"-"`
32621
32622	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
32623	// to unconditionally include in API requests. By default, fields with
32624	// empty or default values are omitted from API requests. However, any
32625	// non-pointer, non-interface field appearing in ForceSendFields will be
32626	// sent to the server regardless of whether the field is empty or not.
32627	// This may be used to include empty fields in Patch requests.
32628	ForceSendFields []string `json:"-"`
32629
32630	// NullFields is a list of field names (e.g. "CreationTimestamp") to
32631	// include in API requests with the JSON null value. By default, fields
32632	// with empty values are omitted from API requests. However, any field
32633	// with an empty value appearing in NullFields will be sent to the
32634	// server as null. It is an error if a field in this list has a
32635	// non-empty value. This may be used to include null fields in Patch
32636	// requests.
32637	NullFields []string `json:"-"`
32638}
32639
32640func (s *Region) MarshalJSON() ([]byte, error) {
32641	type NoMethod Region
32642	raw := NoMethod(*s)
32643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32644}
32645
32646// RegionAutoscalerList: Contains a list of autoscalers.
32647type RegionAutoscalerList struct {
32648	// Id: [Output Only] Unique identifier for the resource; defined by the
32649	// server.
32650	Id string `json:"id,omitempty"`
32651
32652	// Items: A list of Autoscaler resources.
32653	Items []*Autoscaler `json:"items,omitempty"`
32654
32655	// Kind: Type of resource.
32656	Kind string `json:"kind,omitempty"`
32657
32658	// NextPageToken: [Output Only] This token allows you to get the next
32659	// page of results for list requests. If the number of results is larger
32660	// than maxResults, use the nextPageToken as a value for the query
32661	// parameter pageToken in the next list request. Subsequent list
32662	// requests will have their own nextPageToken to continue paging through
32663	// the results.
32664	NextPageToken string `json:"nextPageToken,omitempty"`
32665
32666	// SelfLink: [Output Only] Server-defined URL for this resource.
32667	SelfLink string `json:"selfLink,omitempty"`
32668
32669	// Warning: [Output Only] Informational warning message.
32670	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
32671
32672	// ServerResponse contains the HTTP response code and headers from the
32673	// server.
32674	googleapi.ServerResponse `json:"-"`
32675
32676	// ForceSendFields is a list of field names (e.g. "Id") to
32677	// unconditionally include in API requests. By default, fields with
32678	// empty or default values are omitted from API requests. However, any
32679	// non-pointer, non-interface field appearing in ForceSendFields will be
32680	// sent to the server regardless of whether the field is empty or not.
32681	// This may be used to include empty fields in Patch requests.
32682	ForceSendFields []string `json:"-"`
32683
32684	// NullFields is a list of field names (e.g. "Id") to include in API
32685	// requests with the JSON null value. By default, fields with empty
32686	// values are omitted from API requests. However, any field with an
32687	// empty value appearing in NullFields will be sent to the server as
32688	// null. It is an error if a field in this list has a non-empty value.
32689	// This may be used to include null fields in Patch requests.
32690	NullFields []string `json:"-"`
32691}
32692
32693func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
32694	type NoMethod RegionAutoscalerList
32695	raw := NoMethod(*s)
32696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32697}
32698
32699// RegionAutoscalerListWarning: [Output Only] Informational warning
32700// message.
32701type RegionAutoscalerListWarning struct {
32702	// Code: [Output Only] A warning code, if applicable. For example,
32703	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32704	// the response.
32705	//
32706	// Possible values:
32707	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32708	// changes made by a failed operation.
32709	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32710	// created.
32711	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32712	// resources has a type marked as deprecated
32713	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32714	// that is larger than image size.
32715	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32716	// resources has a type marked as experimental
32717	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32718	// call
32719	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32720	// overridden. Deprecated unused field.
32721	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32722	// injected kernel, which is deprecated.
32723	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32724	// exceedingly large number of resources
32725	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32726	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32727	// not assigned to an instance on the network.
32728	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32729	// ip forward.
32730	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32731	// refers to an instance that does not exist.
32732	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32733	// URL refers to an instance that is not on the same network as the
32734	// route.
32735	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32736	// have a status of RUNNING.
32737	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32738	// continue the process despite the mentioned error.
32739	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32740	// page.
32741	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32742	// missing due to errors
32743	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32744	// that requires a TOS they have not accepted.
32745	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32746	// resource is in use.
32747	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32748	// auto-delete could not be deleted because they were in use.
32749	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32750	// ignored.
32751	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32752	// instance group manager is valid as such, but its application does not
32753	// make a lot of sense, because it allows only single instance in
32754	// instance group.
32755	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32756	// are present
32757	//   "UNREACHABLE" - A given scope cannot be reached.
32758	Code string `json:"code,omitempty"`
32759
32760	// Data: [Output Only] Metadata about this warning in key: value format.
32761	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32762	// }
32763	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
32764
32765	// Message: [Output Only] A human-readable description of the warning
32766	// code.
32767	Message string `json:"message,omitempty"`
32768
32769	// ForceSendFields is a list of field names (e.g. "Code") to
32770	// unconditionally include in API requests. By default, fields with
32771	// empty or default values are omitted from API requests. However, any
32772	// non-pointer, non-interface field appearing in ForceSendFields will be
32773	// sent to the server regardless of whether the field is empty or not.
32774	// This may be used to include empty fields in Patch requests.
32775	ForceSendFields []string `json:"-"`
32776
32777	// NullFields is a list of field names (e.g. "Code") to include in API
32778	// requests with the JSON null value. By default, fields with empty
32779	// values are omitted from API requests. However, any field with an
32780	// empty value appearing in NullFields will be sent to the server as
32781	// null. It is an error if a field in this list has a non-empty value.
32782	// This may be used to include null fields in Patch requests.
32783	NullFields []string `json:"-"`
32784}
32785
32786func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
32787	type NoMethod RegionAutoscalerListWarning
32788	raw := NoMethod(*s)
32789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32790}
32791
32792type RegionAutoscalerListWarningData struct {
32793	// Key: [Output Only] A key that provides more detail on the warning
32794	// being returned. For example, for warnings where there are no results
32795	// in a list request for a particular zone, this key might be scope and
32796	// the key value might be the zone name. Other examples might be a key
32797	// indicating a deprecated resource and a suggested replacement, or a
32798	// warning about invalid network settings (for example, if an instance
32799	// attempts to perform IP forwarding but is not enabled for IP
32800	// forwarding).
32801	Key string `json:"key,omitempty"`
32802
32803	// Value: [Output Only] A warning data value corresponding to the key.
32804	Value string `json:"value,omitempty"`
32805
32806	// ForceSendFields is a list of field names (e.g. "Key") to
32807	// unconditionally include in API requests. By default, fields with
32808	// empty or default values are omitted from API requests. However, any
32809	// non-pointer, non-interface field appearing in ForceSendFields will be
32810	// sent to the server regardless of whether the field is empty or not.
32811	// This may be used to include empty fields in Patch requests.
32812	ForceSendFields []string `json:"-"`
32813
32814	// NullFields is a list of field names (e.g. "Key") to include in API
32815	// requests with the JSON null value. By default, fields with empty
32816	// values are omitted from API requests. However, any field with an
32817	// empty value appearing in NullFields will be sent to the server as
32818	// null. It is an error if a field in this list has a non-empty value.
32819	// This may be used to include null fields in Patch requests.
32820	NullFields []string `json:"-"`
32821}
32822
32823func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
32824	type NoMethod RegionAutoscalerListWarningData
32825	raw := NoMethod(*s)
32826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32827}
32828
32829type RegionDiskTypeList struct {
32830	// Id: [Output Only] Unique identifier for the resource; defined by the
32831	// server.
32832	Id string `json:"id,omitempty"`
32833
32834	// Items: A list of DiskType resources.
32835	Items []*DiskType `json:"items,omitempty"`
32836
32837	// Kind: [Output Only] Type of resource. Always
32838	// compute#regionDiskTypeList for region disk types.
32839	Kind string `json:"kind,omitempty"`
32840
32841	// NextPageToken: [Output Only] This token allows you to get the next
32842	// page of results for list requests. If the number of results is larger
32843	// than maxResults, use the nextPageToken as a value for the query
32844	// parameter pageToken in the next list request. Subsequent list
32845	// requests will have their own nextPageToken to continue paging through
32846	// the results.
32847	NextPageToken string `json:"nextPageToken,omitempty"`
32848
32849	// SelfLink: [Output Only] Server-defined URL for this resource.
32850	SelfLink string `json:"selfLink,omitempty"`
32851
32852	// Warning: [Output Only] Informational warning message.
32853	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
32854
32855	// ServerResponse contains the HTTP response code and headers from the
32856	// server.
32857	googleapi.ServerResponse `json:"-"`
32858
32859	// ForceSendFields is a list of field names (e.g. "Id") to
32860	// unconditionally include in API requests. By default, fields with
32861	// empty or default values are omitted from API requests. However, any
32862	// non-pointer, non-interface field appearing in ForceSendFields will be
32863	// sent to the server regardless of whether the field is empty or not.
32864	// This may be used to include empty fields in Patch requests.
32865	ForceSendFields []string `json:"-"`
32866
32867	// NullFields is a list of field names (e.g. "Id") to include in API
32868	// requests with the JSON null value. By default, fields with empty
32869	// values are omitted from API requests. However, any field with an
32870	// empty value appearing in NullFields will be sent to the server as
32871	// null. It is an error if a field in this list has a non-empty value.
32872	// This may be used to include null fields in Patch requests.
32873	NullFields []string `json:"-"`
32874}
32875
32876func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
32877	type NoMethod RegionDiskTypeList
32878	raw := NoMethod(*s)
32879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32880}
32881
32882// RegionDiskTypeListWarning: [Output Only] Informational warning
32883// message.
32884type RegionDiskTypeListWarning struct {
32885	// Code: [Output Only] A warning code, if applicable. For example,
32886	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32887	// the response.
32888	//
32889	// Possible values:
32890	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32891	// changes made by a failed operation.
32892	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32893	// created.
32894	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32895	// resources has a type marked as deprecated
32896	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32897	// that is larger than image size.
32898	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32899	// resources has a type marked as experimental
32900	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32901	// call
32902	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32903	// overridden. Deprecated unused field.
32904	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32905	// injected kernel, which is deprecated.
32906	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32907	// exceedingly large number of resources
32908	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32909	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32910	// not assigned to an instance on the network.
32911	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32912	// ip forward.
32913	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32914	// refers to an instance that does not exist.
32915	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32916	// URL refers to an instance that is not on the same network as the
32917	// route.
32918	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32919	// have a status of RUNNING.
32920	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32921	// continue the process despite the mentioned error.
32922	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32923	// page.
32924	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32925	// missing due to errors
32926	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32927	// that requires a TOS they have not accepted.
32928	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32929	// resource is in use.
32930	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32931	// auto-delete could not be deleted because they were in use.
32932	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32933	// ignored.
32934	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32935	// instance group manager is valid as such, but its application does not
32936	// make a lot of sense, because it allows only single instance in
32937	// instance group.
32938	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32939	// are present
32940	//   "UNREACHABLE" - A given scope cannot be reached.
32941	Code string `json:"code,omitempty"`
32942
32943	// Data: [Output Only] Metadata about this warning in key: value format.
32944	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32945	// }
32946	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
32947
32948	// Message: [Output Only] A human-readable description of the warning
32949	// code.
32950	Message string `json:"message,omitempty"`
32951
32952	// ForceSendFields is a list of field names (e.g. "Code") to
32953	// unconditionally include in API requests. By default, fields with
32954	// empty or default values are omitted from API requests. However, any
32955	// non-pointer, non-interface field appearing in ForceSendFields will be
32956	// sent to the server regardless of whether the field is empty or not.
32957	// This may be used to include empty fields in Patch requests.
32958	ForceSendFields []string `json:"-"`
32959
32960	// NullFields is a list of field names (e.g. "Code") to include in API
32961	// requests with the JSON null value. By default, fields with empty
32962	// values are omitted from API requests. However, any field with an
32963	// empty value appearing in NullFields will be sent to the server as
32964	// null. It is an error if a field in this list has a non-empty value.
32965	// This may be used to include null fields in Patch requests.
32966	NullFields []string `json:"-"`
32967}
32968
32969func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
32970	type NoMethod RegionDiskTypeListWarning
32971	raw := NoMethod(*s)
32972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32973}
32974
32975type RegionDiskTypeListWarningData struct {
32976	// Key: [Output Only] A key that provides more detail on the warning
32977	// being returned. For example, for warnings where there are no results
32978	// in a list request for a particular zone, this key might be scope and
32979	// the key value might be the zone name. Other examples might be a key
32980	// indicating a deprecated resource and a suggested replacement, or a
32981	// warning about invalid network settings (for example, if an instance
32982	// attempts to perform IP forwarding but is not enabled for IP
32983	// forwarding).
32984	Key string `json:"key,omitempty"`
32985
32986	// Value: [Output Only] A warning data value corresponding to the key.
32987	Value string `json:"value,omitempty"`
32988
32989	// ForceSendFields is a list of field names (e.g. "Key") to
32990	// unconditionally include in API requests. By default, fields with
32991	// empty or default values are omitted from API requests. However, any
32992	// non-pointer, non-interface field appearing in ForceSendFields will be
32993	// sent to the server regardless of whether the field is empty or not.
32994	// This may be used to include empty fields in Patch requests.
32995	ForceSendFields []string `json:"-"`
32996
32997	// NullFields is a list of field names (e.g. "Key") to include in API
32998	// requests with the JSON null value. By default, fields with empty
32999	// values are omitted from API requests. However, any field with an
33000	// empty value appearing in NullFields will be sent to the server as
33001	// null. It is an error if a field in this list has a non-empty value.
33002	// This may be used to include null fields in Patch requests.
33003	NullFields []string `json:"-"`
33004}
33005
33006func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
33007	type NoMethod RegionDiskTypeListWarningData
33008	raw := NoMethod(*s)
33009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33010}
33011
33012type RegionDisksAddResourcePoliciesRequest struct {
33013	// ResourcePolicies: Resource policies to be added to this disk.
33014	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
33015
33016	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33017	// unconditionally include in API requests. By default, fields with
33018	// empty or default values are omitted from API requests. However, any
33019	// non-pointer, non-interface field appearing in ForceSendFields will be
33020	// sent to the server regardless of whether the field is empty or not.
33021	// This may be used to include empty fields in Patch requests.
33022	ForceSendFields []string `json:"-"`
33023
33024	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33025	// include in API requests with the JSON null value. By default, fields
33026	// with empty values are omitted from API requests. However, any field
33027	// with an empty value appearing in NullFields will be sent to the
33028	// server as null. It is an error if a field in this list has a
33029	// non-empty value. This may be used to include null fields in Patch
33030	// requests.
33031	NullFields []string `json:"-"`
33032}
33033
33034func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
33035	type NoMethod RegionDisksAddResourcePoliciesRequest
33036	raw := NoMethod(*s)
33037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33038}
33039
33040type RegionDisksRemoveResourcePoliciesRequest struct {
33041	// ResourcePolicies: Resource policies to be removed from this disk.
33042	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
33043
33044	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33045	// unconditionally include in API requests. By default, fields with
33046	// empty or default values are omitted from API requests. However, any
33047	// non-pointer, non-interface field appearing in ForceSendFields will be
33048	// sent to the server regardless of whether the field is empty or not.
33049	// This may be used to include empty fields in Patch requests.
33050	ForceSendFields []string `json:"-"`
33051
33052	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33053	// include in API requests with the JSON null value. By default, fields
33054	// with empty values are omitted from API requests. However, any field
33055	// with an empty value appearing in NullFields will be sent to the
33056	// server as null. It is an error if a field in this list has a
33057	// non-empty value. This may be used to include null fields in Patch
33058	// requests.
33059	NullFields []string `json:"-"`
33060}
33061
33062func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
33063	type NoMethod RegionDisksRemoveResourcePoliciesRequest
33064	raw := NoMethod(*s)
33065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33066}
33067
33068type RegionDisksResizeRequest struct {
33069	// SizeGb: The new size of the regional persistent disk, which is
33070	// specified in GB.
33071	SizeGb int64 `json:"sizeGb,omitempty,string"`
33072
33073	// ForceSendFields is a list of field names (e.g. "SizeGb") to
33074	// unconditionally include in API requests. By default, fields with
33075	// empty or default values are omitted from API requests. However, any
33076	// non-pointer, non-interface field appearing in ForceSendFields will be
33077	// sent to the server regardless of whether the field is empty or not.
33078	// This may be used to include empty fields in Patch requests.
33079	ForceSendFields []string `json:"-"`
33080
33081	// NullFields is a list of field names (e.g. "SizeGb") to include in API
33082	// requests with the JSON null value. By default, fields with empty
33083	// values are omitted from API requests. However, any field with an
33084	// empty value appearing in NullFields will be sent to the server as
33085	// null. It is an error if a field in this list has a non-empty value.
33086	// This may be used to include null fields in Patch requests.
33087	NullFields []string `json:"-"`
33088}
33089
33090func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
33091	type NoMethod RegionDisksResizeRequest
33092	raw := NoMethod(*s)
33093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33094}
33095
33096// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
33097type RegionInstanceGroupList struct {
33098	// Id: [Output Only] Unique identifier for the resource; defined by the
33099	// server.
33100	Id string `json:"id,omitempty"`
33101
33102	// Items: A list of InstanceGroup resources.
33103	Items []*InstanceGroup `json:"items,omitempty"`
33104
33105	// Kind: The resource type.
33106	Kind string `json:"kind,omitempty"`
33107
33108	// NextPageToken: [Output Only] This token allows you to get the next
33109	// page of results for list requests. If the number of results is larger
33110	// than maxResults, use the nextPageToken as a value for the query
33111	// parameter pageToken in the next list request. Subsequent list
33112	// requests will have their own nextPageToken to continue paging through
33113	// the results.
33114	NextPageToken string `json:"nextPageToken,omitempty"`
33115
33116	// SelfLink: [Output Only] Server-defined URL for this resource.
33117	SelfLink string `json:"selfLink,omitempty"`
33118
33119	// Warning: [Output Only] Informational warning message.
33120	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
33121
33122	// ServerResponse contains the HTTP response code and headers from the
33123	// server.
33124	googleapi.ServerResponse `json:"-"`
33125
33126	// ForceSendFields is a list of field names (e.g. "Id") to
33127	// unconditionally include in API requests. By default, fields with
33128	// empty or default values are omitted from API requests. However, any
33129	// non-pointer, non-interface field appearing in ForceSendFields will be
33130	// sent to the server regardless of whether the field is empty or not.
33131	// This may be used to include empty fields in Patch requests.
33132	ForceSendFields []string `json:"-"`
33133
33134	// NullFields is a list of field names (e.g. "Id") to include in API
33135	// requests with the JSON null value. By default, fields with empty
33136	// values are omitted from API requests. However, any field with an
33137	// empty value appearing in NullFields will be sent to the server as
33138	// null. It is an error if a field in this list has a non-empty value.
33139	// This may be used to include null fields in Patch requests.
33140	NullFields []string `json:"-"`
33141}
33142
33143func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
33144	type NoMethod RegionInstanceGroupList
33145	raw := NoMethod(*s)
33146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33147}
33148
33149// RegionInstanceGroupListWarning: [Output Only] Informational warning
33150// message.
33151type RegionInstanceGroupListWarning struct {
33152	// Code: [Output Only] A warning code, if applicable. For example,
33153	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33154	// the response.
33155	//
33156	// Possible values:
33157	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33158	// changes made by a failed operation.
33159	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33160	// created.
33161	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33162	// resources has a type marked as deprecated
33163	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33164	// that is larger than image size.
33165	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33166	// resources has a type marked as experimental
33167	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33168	// call
33169	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33170	// overridden. Deprecated unused field.
33171	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33172	// injected kernel, which is deprecated.
33173	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33174	// exceedingly large number of resources
33175	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33176	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33177	// not assigned to an instance on the network.
33178	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33179	// ip forward.
33180	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33181	// refers to an instance that does not exist.
33182	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33183	// URL refers to an instance that is not on the same network as the
33184	// route.
33185	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33186	// have a status of RUNNING.
33187	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33188	// continue the process despite the mentioned error.
33189	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33190	// page.
33191	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33192	// missing due to errors
33193	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33194	// that requires a TOS they have not accepted.
33195	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33196	// resource is in use.
33197	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33198	// auto-delete could not be deleted because they were in use.
33199	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33200	// ignored.
33201	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33202	// instance group manager is valid as such, but its application does not
33203	// make a lot of sense, because it allows only single instance in
33204	// instance group.
33205	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33206	// are present
33207	//   "UNREACHABLE" - A given scope cannot be reached.
33208	Code string `json:"code,omitempty"`
33209
33210	// Data: [Output Only] Metadata about this warning in key: value format.
33211	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33212	// }
33213	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
33214
33215	// Message: [Output Only] A human-readable description of the warning
33216	// code.
33217	Message string `json:"message,omitempty"`
33218
33219	// ForceSendFields is a list of field names (e.g. "Code") to
33220	// unconditionally include in API requests. By default, fields with
33221	// empty or default values are omitted from API requests. However, any
33222	// non-pointer, non-interface field appearing in ForceSendFields will be
33223	// sent to the server regardless of whether the field is empty or not.
33224	// This may be used to include empty fields in Patch requests.
33225	ForceSendFields []string `json:"-"`
33226
33227	// NullFields is a list of field names (e.g. "Code") to include in API
33228	// requests with the JSON null value. By default, fields with empty
33229	// values are omitted from API requests. However, any field with an
33230	// empty value appearing in NullFields will be sent to the server as
33231	// null. It is an error if a field in this list has a non-empty value.
33232	// This may be used to include null fields in Patch requests.
33233	NullFields []string `json:"-"`
33234}
33235
33236func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
33237	type NoMethod RegionInstanceGroupListWarning
33238	raw := NoMethod(*s)
33239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33240}
33241
33242type RegionInstanceGroupListWarningData struct {
33243	// Key: [Output Only] A key that provides more detail on the warning
33244	// being returned. For example, for warnings where there are no results
33245	// in a list request for a particular zone, this key might be scope and
33246	// the key value might be the zone name. Other examples might be a key
33247	// indicating a deprecated resource and a suggested replacement, or a
33248	// warning about invalid network settings (for example, if an instance
33249	// attempts to perform IP forwarding but is not enabled for IP
33250	// forwarding).
33251	Key string `json:"key,omitempty"`
33252
33253	// Value: [Output Only] A warning data value corresponding to the key.
33254	Value string `json:"value,omitempty"`
33255
33256	// ForceSendFields is a list of field names (e.g. "Key") to
33257	// unconditionally include in API requests. By default, fields with
33258	// empty or default values are omitted from API requests. However, any
33259	// non-pointer, non-interface field appearing in ForceSendFields will be
33260	// sent to the server regardless of whether the field is empty or not.
33261	// This may be used to include empty fields in Patch requests.
33262	ForceSendFields []string `json:"-"`
33263
33264	// NullFields is a list of field names (e.g. "Key") to include in API
33265	// requests with the JSON null value. By default, fields with empty
33266	// values are omitted from API requests. However, any field with an
33267	// empty value appearing in NullFields will be sent to the server as
33268	// null. It is an error if a field in this list has a non-empty value.
33269	// This may be used to include null fields in Patch requests.
33270	NullFields []string `json:"-"`
33271}
33272
33273func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
33274	type NoMethod RegionInstanceGroupListWarningData
33275	raw := NoMethod(*s)
33276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33277}
33278
33279// RegionInstanceGroupManagerDeleteInstanceConfigReq:
33280// RegionInstanceGroupManagers.deletePerInstanceConfigs
33281type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
33282	// Names: The list of instance names for which we want to delete
33283	// per-instance configs on this managed instance group.
33284	Names []string `json:"names,omitempty"`
33285
33286	// ForceSendFields is a list of field names (e.g. "Names") to
33287	// unconditionally include in API requests. By default, fields with
33288	// empty or default values are omitted from API requests. However, any
33289	// non-pointer, non-interface field appearing in ForceSendFields will be
33290	// sent to the server regardless of whether the field is empty or not.
33291	// This may be used to include empty fields in Patch requests.
33292	ForceSendFields []string `json:"-"`
33293
33294	// NullFields is a list of field names (e.g. "Names") to include in API
33295	// requests with the JSON null value. By default, fields with empty
33296	// values are omitted from API requests. However, any field with an
33297	// empty value appearing in NullFields will be sent to the server as
33298	// null. It is an error if a field in this list has a non-empty value.
33299	// This may be used to include null fields in Patch requests.
33300	NullFields []string `json:"-"`
33301}
33302
33303func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
33304	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
33305	raw := NoMethod(*s)
33306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33307}
33308
33309// RegionInstanceGroupManagerList: Contains a list of managed instance
33310// groups.
33311type RegionInstanceGroupManagerList struct {
33312	// Id: [Output Only] Unique identifier for the resource; defined by the
33313	// server.
33314	Id string `json:"id,omitempty"`
33315
33316	// Items: A list of InstanceGroupManager resources.
33317	Items []*InstanceGroupManager `json:"items,omitempty"`
33318
33319	// Kind: [Output Only] The resource type, which is always
33320	// compute#instanceGroupManagerList for a list of managed instance
33321	// groups that exist in th regional scope.
33322	Kind string `json:"kind,omitempty"`
33323
33324	// NextPageToken: [Output Only] This token allows you to get the next
33325	// page of results for list requests. If the number of results is larger
33326	// than maxResults, use the nextPageToken as a value for the query
33327	// parameter pageToken in the next list request. Subsequent list
33328	// requests will have their own nextPageToken to continue paging through
33329	// the results.
33330	NextPageToken string `json:"nextPageToken,omitempty"`
33331
33332	// SelfLink: [Output Only] Server-defined URL for this resource.
33333	SelfLink string `json:"selfLink,omitempty"`
33334
33335	// Warning: [Output Only] Informational warning message.
33336	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
33337
33338	// ServerResponse contains the HTTP response code and headers from the
33339	// server.
33340	googleapi.ServerResponse `json:"-"`
33341
33342	// ForceSendFields is a list of field names (e.g. "Id") to
33343	// unconditionally include in API requests. By default, fields with
33344	// empty or default values are omitted from API requests. However, any
33345	// non-pointer, non-interface field appearing in ForceSendFields will be
33346	// sent to the server regardless of whether the field is empty or not.
33347	// This may be used to include empty fields in Patch requests.
33348	ForceSendFields []string `json:"-"`
33349
33350	// NullFields is a list of field names (e.g. "Id") to include in API
33351	// requests with the JSON null value. By default, fields with empty
33352	// values are omitted from API requests. However, any field with an
33353	// empty value appearing in NullFields will be sent to the server as
33354	// null. It is an error if a field in this list has a non-empty value.
33355	// This may be used to include null fields in Patch requests.
33356	NullFields []string `json:"-"`
33357}
33358
33359func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
33360	type NoMethod RegionInstanceGroupManagerList
33361	raw := NoMethod(*s)
33362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33363}
33364
33365// RegionInstanceGroupManagerListWarning: [Output Only] Informational
33366// warning message.
33367type RegionInstanceGroupManagerListWarning struct {
33368	// Code: [Output Only] A warning code, if applicable. For example,
33369	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33370	// the response.
33371	//
33372	// Possible values:
33373	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33374	// changes made by a failed operation.
33375	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33376	// created.
33377	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33378	// resources has a type marked as deprecated
33379	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33380	// that is larger than image size.
33381	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33382	// resources has a type marked as experimental
33383	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33384	// call
33385	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33386	// overridden. Deprecated unused field.
33387	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33388	// injected kernel, which is deprecated.
33389	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33390	// exceedingly large number of resources
33391	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33392	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33393	// not assigned to an instance on the network.
33394	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33395	// ip forward.
33396	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33397	// refers to an instance that does not exist.
33398	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33399	// URL refers to an instance that is not on the same network as the
33400	// route.
33401	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33402	// have a status of RUNNING.
33403	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33404	// continue the process despite the mentioned error.
33405	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33406	// page.
33407	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33408	// missing due to errors
33409	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33410	// that requires a TOS they have not accepted.
33411	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33412	// resource is in use.
33413	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33414	// auto-delete could not be deleted because they were in use.
33415	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33416	// ignored.
33417	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33418	// instance group manager is valid as such, but its application does not
33419	// make a lot of sense, because it allows only single instance in
33420	// instance group.
33421	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33422	// are present
33423	//   "UNREACHABLE" - A given scope cannot be reached.
33424	Code string `json:"code,omitempty"`
33425
33426	// Data: [Output Only] Metadata about this warning in key: value format.
33427	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33428	// }
33429	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
33430
33431	// Message: [Output Only] A human-readable description of the warning
33432	// code.
33433	Message string `json:"message,omitempty"`
33434
33435	// ForceSendFields is a list of field names (e.g. "Code") to
33436	// unconditionally include in API requests. By default, fields with
33437	// empty or default values are omitted from API requests. However, any
33438	// non-pointer, non-interface field appearing in ForceSendFields will be
33439	// sent to the server regardless of whether the field is empty or not.
33440	// This may be used to include empty fields in Patch requests.
33441	ForceSendFields []string `json:"-"`
33442
33443	// NullFields is a list of field names (e.g. "Code") to include in API
33444	// requests with the JSON null value. By default, fields with empty
33445	// values are omitted from API requests. However, any field with an
33446	// empty value appearing in NullFields will be sent to the server as
33447	// null. It is an error if a field in this list has a non-empty value.
33448	// This may be used to include null fields in Patch requests.
33449	NullFields []string `json:"-"`
33450}
33451
33452func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
33453	type NoMethod RegionInstanceGroupManagerListWarning
33454	raw := NoMethod(*s)
33455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33456}
33457
33458type RegionInstanceGroupManagerListWarningData struct {
33459	// Key: [Output Only] A key that provides more detail on the warning
33460	// being returned. For example, for warnings where there are no results
33461	// in a list request for a particular zone, this key might be scope and
33462	// the key value might be the zone name. Other examples might be a key
33463	// indicating a deprecated resource and a suggested replacement, or a
33464	// warning about invalid network settings (for example, if an instance
33465	// attempts to perform IP forwarding but is not enabled for IP
33466	// forwarding).
33467	Key string `json:"key,omitempty"`
33468
33469	// Value: [Output Only] A warning data value corresponding to the key.
33470	Value string `json:"value,omitempty"`
33471
33472	// ForceSendFields is a list of field names (e.g. "Key") to
33473	// unconditionally include in API requests. By default, fields with
33474	// empty or default values are omitted from API requests. However, any
33475	// non-pointer, non-interface field appearing in ForceSendFields will be
33476	// sent to the server regardless of whether the field is empty or not.
33477	// This may be used to include empty fields in Patch requests.
33478	ForceSendFields []string `json:"-"`
33479
33480	// NullFields is a list of field names (e.g. "Key") to include in API
33481	// requests with the JSON null value. By default, fields with empty
33482	// values are omitted from API requests. However, any field with an
33483	// empty value appearing in NullFields will be sent to the server as
33484	// null. It is an error if a field in this list has a non-empty value.
33485	// This may be used to include null fields in Patch requests.
33486	NullFields []string `json:"-"`
33487}
33488
33489func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
33490	type NoMethod RegionInstanceGroupManagerListWarningData
33491	raw := NoMethod(*s)
33492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33493}
33494
33495// RegionInstanceGroupManagerPatchInstanceConfigReq:
33496// RegionInstanceGroupManagers.patchPerInstanceConfigs
33497type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
33498	// PerInstanceConfigs: The list of per-instance configs to insert or
33499	// patch on this managed instance group.
33500	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
33501
33502	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
33503	// to unconditionally include in API requests. By default, fields with
33504	// empty or default values are omitted from API requests. However, any
33505	// non-pointer, non-interface field appearing in ForceSendFields will be
33506	// sent to the server regardless of whether the field is empty or not.
33507	// This may be used to include empty fields in Patch requests.
33508	ForceSendFields []string `json:"-"`
33509
33510	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33511	// include in API requests with the JSON null value. By default, fields
33512	// with empty values are omitted from API requests. However, any field
33513	// with an empty value appearing in NullFields will be sent to the
33514	// server as null. It is an error if a field in this list has a
33515	// non-empty value. This may be used to include null fields in Patch
33516	// requests.
33517	NullFields []string `json:"-"`
33518}
33519
33520func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
33521	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
33522	raw := NoMethod(*s)
33523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33524}
33525
33526// RegionInstanceGroupManagerUpdateInstanceConfigReq:
33527// RegionInstanceGroupManagers.updatePerInstanceConfigs
33528type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
33529	// PerInstanceConfigs: The list of per-instance configs to insert or
33530	// patch on this managed instance group.
33531	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
33532
33533	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
33534	// to unconditionally include in API requests. By default, fields with
33535	// empty or default values are omitted from API requests. However, any
33536	// non-pointer, non-interface field appearing in ForceSendFields will be
33537	// sent to the server regardless of whether the field is empty or not.
33538	// This may be used to include empty fields in Patch requests.
33539	ForceSendFields []string `json:"-"`
33540
33541	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33542	// include in API requests with the JSON null value. By default, fields
33543	// with empty values are omitted from API requests. However, any field
33544	// with an empty value appearing in NullFields will be sent to the
33545	// server as null. It is an error if a field in this list has a
33546	// non-empty value. This may be used to include null fields in Patch
33547	// requests.
33548	NullFields []string `json:"-"`
33549}
33550
33551func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
33552	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
33553	raw := NoMethod(*s)
33554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33555}
33556
33557type RegionInstanceGroupManagersAbandonInstancesRequest struct {
33558	// Instances: The URLs of one or more instances to abandon. This can be
33559	// a full URL or a partial URL, such as
33560	// zones/[ZONE]/instances/[INSTANCE_NAME].
33561	Instances []string `json:"instances,omitempty"`
33562
33563	// ForceSendFields is a list of field names (e.g. "Instances") to
33564	// unconditionally include in API requests. By default, fields with
33565	// empty or default values are omitted from API requests. However, any
33566	// non-pointer, non-interface field appearing in ForceSendFields will be
33567	// sent to the server regardless of whether the field is empty or not.
33568	// This may be used to include empty fields in Patch requests.
33569	ForceSendFields []string `json:"-"`
33570
33571	// NullFields is a list of field names (e.g. "Instances") to include in
33572	// API requests with the JSON null value. By default, fields with empty
33573	// values are omitted from API requests. However, any field with an
33574	// empty value appearing in NullFields will be sent to the server as
33575	// null. It is an error if a field in this list has a non-empty value.
33576	// This may be used to include null fields in Patch requests.
33577	NullFields []string `json:"-"`
33578}
33579
33580func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
33581	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
33582	raw := NoMethod(*s)
33583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33584}
33585
33586// RegionInstanceGroupManagersApplyUpdatesRequest:
33587// RegionInstanceGroupManagers.applyUpdatesToInstances
33588type RegionInstanceGroupManagersApplyUpdatesRequest struct {
33589	// AllInstances: Flag to update all instances instead of specified list
33590	// of “instances”. If the flag is set to true then the instances may
33591	// not be specified in the request.
33592	AllInstances bool `json:"allInstances,omitempty"`
33593
33594	// Instances: The list of URLs of one or more instances for which you
33595	// want to apply updates. Each URL can be a full URL or a partial URL,
33596	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
33597	Instances []string `json:"instances,omitempty"`
33598
33599	// MinimalAction: The minimal action that you want to perform on each
33600	// instance during the update: - REPLACE: At minimum, delete the
33601	// instance and create it again. - RESTART: Stop the instance and start
33602	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
33603	// the instance at all. By default, the minimum action is NONE. If your
33604	// update requires a more disruptive action than you set with this flag,
33605	// the necessary action is performed to execute the update.
33606	//
33607	// Possible values:
33608	//   "NONE" - Do not perform any action.
33609	//   "REFRESH" - Updates applied in runtime, instances will not be
33610	// disrupted.
33611	//   "REPLACE" - Old instances will be deleted. New instances will be
33612	// created from the target template.
33613	//   "RESTART" - Every instance will be restarted.
33614	MinimalAction string `json:"minimalAction,omitempty"`
33615
33616	// MostDisruptiveAllowedAction: The most disruptive action that you want
33617	// to perform on each instance during the update: - REPLACE: Delete the
33618	// instance and create it again. - RESTART: Stop the instance and start
33619	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
33620	// the instance at all. By default, the most disruptive allowed action
33621	// is REPLACE. If your update requires a more disruptive action than you
33622	// set with this flag, the update request will fail.
33623	//
33624	// Possible values:
33625	//   "NONE" - Do not perform any action.
33626	//   "REFRESH" - Updates applied in runtime, instances will not be
33627	// disrupted.
33628	//   "REPLACE" - Old instances will be deleted. New instances will be
33629	// created from the target template.
33630	//   "RESTART" - Every instance will be restarted.
33631	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
33632
33633	// ForceSendFields is a list of field names (e.g. "AllInstances") to
33634	// unconditionally include in API requests. By default, fields with
33635	// empty or default values are omitted from API requests. However, any
33636	// non-pointer, non-interface field appearing in ForceSendFields will be
33637	// sent to the server regardless of whether the field is empty or not.
33638	// This may be used to include empty fields in Patch requests.
33639	ForceSendFields []string `json:"-"`
33640
33641	// NullFields is a list of field names (e.g. "AllInstances") to include
33642	// in API requests with the JSON null value. By default, fields with
33643	// empty values are omitted from API requests. However, any field with
33644	// an empty value appearing in NullFields will be sent to the server as
33645	// null. It is an error if a field in this list has a non-empty value.
33646	// This may be used to include null fields in Patch requests.
33647	NullFields []string `json:"-"`
33648}
33649
33650func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
33651	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
33652	raw := NoMethod(*s)
33653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33654}
33655
33656// RegionInstanceGroupManagersCreateInstancesRequest:
33657// RegionInstanceGroupManagers.createInstances
33658type RegionInstanceGroupManagersCreateInstancesRequest struct {
33659	// Instances: [Required] List of specifications of per-instance configs.
33660	Instances []*PerInstanceConfig `json:"instances,omitempty"`
33661
33662	// ForceSendFields is a list of field names (e.g. "Instances") to
33663	// unconditionally include in API requests. By default, fields with
33664	// empty or default values are omitted from API requests. However, any
33665	// non-pointer, non-interface field appearing in ForceSendFields will be
33666	// sent to the server regardless of whether the field is empty or not.
33667	// This may be used to include empty fields in Patch requests.
33668	ForceSendFields []string `json:"-"`
33669
33670	// NullFields is a list of field names (e.g. "Instances") to include in
33671	// API requests with the JSON null value. By default, fields with empty
33672	// values are omitted from API requests. However, any field with an
33673	// empty value appearing in NullFields will be sent to the server as
33674	// null. It is an error if a field in this list has a non-empty value.
33675	// This may be used to include null fields in Patch requests.
33676	NullFields []string `json:"-"`
33677}
33678
33679func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
33680	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
33681	raw := NoMethod(*s)
33682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33683}
33684
33685type RegionInstanceGroupManagersDeleteInstancesRequest struct {
33686	// Instances: The URLs of one or more instances to delete. This can be a
33687	// full URL or a partial URL, such as
33688	// zones/[ZONE]/instances/[INSTANCE_NAME].
33689	Instances []string `json:"instances,omitempty"`
33690
33691	// SkipInstancesOnValidationError: Specifies whether the request should
33692	// proceed despite the inclusion of instances that are not members of
33693	// the group or that are already in the process of being deleted or
33694	// abandoned. If this field is set to `false` and such an instance is
33695	// specified in the request, the operation fails. The operation always
33696	// fails if the request contains a malformed instance URL or a reference
33697	// to an instance that exists in a zone or region other than the group's
33698	// zone or region.
33699	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
33700
33701	// ForceSendFields is a list of field names (e.g. "Instances") to
33702	// unconditionally include in API requests. By default, fields with
33703	// empty or default values are omitted from API requests. However, any
33704	// non-pointer, non-interface field appearing in ForceSendFields will be
33705	// sent to the server regardless of whether the field is empty or not.
33706	// This may be used to include empty fields in Patch requests.
33707	ForceSendFields []string `json:"-"`
33708
33709	// NullFields is a list of field names (e.g. "Instances") to include in
33710	// API requests with the JSON null value. By default, fields with empty
33711	// values are omitted from API requests. However, any field with an
33712	// empty value appearing in NullFields will be sent to the server as
33713	// null. It is an error if a field in this list has a non-empty value.
33714	// This may be used to include null fields in Patch requests.
33715	NullFields []string `json:"-"`
33716}
33717
33718func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
33719	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
33720	raw := NoMethod(*s)
33721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33722}
33723
33724type RegionInstanceGroupManagersListErrorsResponse struct {
33725	// Items: [Output Only] The list of errors of the managed instance
33726	// group.
33727	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
33728
33729	// NextPageToken: [Output Only] This token allows you to get the next
33730	// page of results for list requests. If the number of results is larger
33731	// than maxResults, use the nextPageToken as a value for the query
33732	// parameter pageToken in the next list request. Subsequent list
33733	// requests will have their own nextPageToken to continue paging through
33734	// the results.
33735	NextPageToken string `json:"nextPageToken,omitempty"`
33736
33737	// ServerResponse contains the HTTP response code and headers from the
33738	// server.
33739	googleapi.ServerResponse `json:"-"`
33740
33741	// ForceSendFields is a list of field names (e.g. "Items") to
33742	// unconditionally include in API requests. By default, fields with
33743	// empty or default values are omitted from API requests. However, any
33744	// non-pointer, non-interface field appearing in ForceSendFields will be
33745	// sent to the server regardless of whether the field is empty or not.
33746	// This may be used to include empty fields in Patch requests.
33747	ForceSendFields []string `json:"-"`
33748
33749	// NullFields is a list of field names (e.g. "Items") to include in API
33750	// requests with the JSON null value. By default, fields with empty
33751	// values are omitted from API requests. However, any field with an
33752	// empty value appearing in NullFields will be sent to the server as
33753	// null. It is an error if a field in this list has a non-empty value.
33754	// This may be used to include null fields in Patch requests.
33755	NullFields []string `json:"-"`
33756}
33757
33758func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
33759	type NoMethod RegionInstanceGroupManagersListErrorsResponse
33760	raw := NoMethod(*s)
33761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33762}
33763
33764type RegionInstanceGroupManagersListInstanceConfigsResp struct {
33765	// Items: [Output Only] The list of PerInstanceConfig.
33766	Items []*PerInstanceConfig `json:"items,omitempty"`
33767
33768	// NextPageToken: [Output Only] This token allows you to get the next
33769	// page of results for list requests. If the number of results is larger
33770	// than maxResults, use the nextPageToken as a value for the query
33771	// parameter pageToken in the next list request. Subsequent list
33772	// requests will have their own nextPageToken to continue paging through
33773	// the results.
33774	NextPageToken string `json:"nextPageToken,omitempty"`
33775
33776	// Warning: [Output Only] Informational warning message.
33777	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
33778
33779	// ServerResponse contains the HTTP response code and headers from the
33780	// server.
33781	googleapi.ServerResponse `json:"-"`
33782
33783	// ForceSendFields is a list of field names (e.g. "Items") to
33784	// unconditionally include in API requests. By default, fields with
33785	// empty or default values are omitted from API requests. However, any
33786	// non-pointer, non-interface field appearing in ForceSendFields will be
33787	// sent to the server regardless of whether the field is empty or not.
33788	// This may be used to include empty fields in Patch requests.
33789	ForceSendFields []string `json:"-"`
33790
33791	// NullFields is a list of field names (e.g. "Items") to include in API
33792	// requests with the JSON null value. By default, fields with empty
33793	// values are omitted from API requests. However, any field with an
33794	// empty value appearing in NullFields will be sent to the server as
33795	// null. It is an error if a field in this list has a non-empty value.
33796	// This may be used to include null fields in Patch requests.
33797	NullFields []string `json:"-"`
33798}
33799
33800func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
33801	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
33802	raw := NoMethod(*s)
33803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33804}
33805
33806// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
33807// Only] Informational warning message.
33808type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
33809	// Code: [Output Only] A warning code, if applicable. For example,
33810	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33811	// the response.
33812	//
33813	// Possible values:
33814	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33815	// changes made by a failed operation.
33816	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33817	// created.
33818	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33819	// resources has a type marked as deprecated
33820	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33821	// that is larger than image size.
33822	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33823	// resources has a type marked as experimental
33824	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33825	// call
33826	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33827	// overridden. Deprecated unused field.
33828	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33829	// injected kernel, which is deprecated.
33830	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33831	// exceedingly large number of resources
33832	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33833	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33834	// not assigned to an instance on the network.
33835	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33836	// ip forward.
33837	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33838	// refers to an instance that does not exist.
33839	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33840	// URL refers to an instance that is not on the same network as the
33841	// route.
33842	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33843	// have a status of RUNNING.
33844	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33845	// continue the process despite the mentioned error.
33846	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33847	// page.
33848	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33849	// missing due to errors
33850	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33851	// that requires a TOS they have not accepted.
33852	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33853	// resource is in use.
33854	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33855	// auto-delete could not be deleted because they were in use.
33856	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33857	// ignored.
33858	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33859	// instance group manager is valid as such, but its application does not
33860	// make a lot of sense, because it allows only single instance in
33861	// instance group.
33862	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33863	// are present
33864	//   "UNREACHABLE" - A given scope cannot be reached.
33865	Code string `json:"code,omitempty"`
33866
33867	// Data: [Output Only] Metadata about this warning in key: value format.
33868	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33869	// }
33870	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
33871
33872	// Message: [Output Only] A human-readable description of the warning
33873	// code.
33874	Message string `json:"message,omitempty"`
33875
33876	// ForceSendFields is a list of field names (e.g. "Code") to
33877	// unconditionally include in API requests. By default, fields with
33878	// empty or default values are omitted from API requests. However, any
33879	// non-pointer, non-interface field appearing in ForceSendFields will be
33880	// sent to the server regardless of whether the field is empty or not.
33881	// This may be used to include empty fields in Patch requests.
33882	ForceSendFields []string `json:"-"`
33883
33884	// NullFields is a list of field names (e.g. "Code") to include in API
33885	// requests with the JSON null value. By default, fields with empty
33886	// values are omitted from API requests. However, any field with an
33887	// empty value appearing in NullFields will be sent to the server as
33888	// null. It is an error if a field in this list has a non-empty value.
33889	// This may be used to include null fields in Patch requests.
33890	NullFields []string `json:"-"`
33891}
33892
33893func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
33894	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
33895	raw := NoMethod(*s)
33896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33897}
33898
33899type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
33900	// Key: [Output Only] A key that provides more detail on the warning
33901	// being returned. For example, for warnings where there are no results
33902	// in a list request for a particular zone, this key might be scope and
33903	// the key value might be the zone name. Other examples might be a key
33904	// indicating a deprecated resource and a suggested replacement, or a
33905	// warning about invalid network settings (for example, if an instance
33906	// attempts to perform IP forwarding but is not enabled for IP
33907	// forwarding).
33908	Key string `json:"key,omitempty"`
33909
33910	// Value: [Output Only] A warning data value corresponding to the key.
33911	Value string `json:"value,omitempty"`
33912
33913	// ForceSendFields is a list of field names (e.g. "Key") to
33914	// unconditionally include in API requests. By default, fields with
33915	// empty or default values are omitted from API requests. However, any
33916	// non-pointer, non-interface field appearing in ForceSendFields will be
33917	// sent to the server regardless of whether the field is empty or not.
33918	// This may be used to include empty fields in Patch requests.
33919	ForceSendFields []string `json:"-"`
33920
33921	// NullFields is a list of field names (e.g. "Key") to include in API
33922	// requests with the JSON null value. By default, fields with empty
33923	// values are omitted from API requests. However, any field with an
33924	// empty value appearing in NullFields will be sent to the server as
33925	// null. It is an error if a field in this list has a non-empty value.
33926	// This may be used to include null fields in Patch requests.
33927	NullFields []string `json:"-"`
33928}
33929
33930func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
33931	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
33932	raw := NoMethod(*s)
33933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33934}
33935
33936type RegionInstanceGroupManagersListInstancesResponse struct {
33937	// ManagedInstances: A list of managed instances.
33938	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
33939
33940	// NextPageToken: [Output Only] This token allows you to get the next
33941	// page of results for list requests. If the number of results is larger
33942	// than maxResults, use the nextPageToken as a value for the query
33943	// parameter pageToken in the next list request. Subsequent list
33944	// requests will have their own nextPageToken to continue paging through
33945	// the results.
33946	NextPageToken string `json:"nextPageToken,omitempty"`
33947
33948	// ServerResponse contains the HTTP response code and headers from the
33949	// server.
33950	googleapi.ServerResponse `json:"-"`
33951
33952	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
33953	// unconditionally include in API requests. By default, fields with
33954	// empty or default values are omitted from API requests. However, any
33955	// non-pointer, non-interface field appearing in ForceSendFields will be
33956	// sent to the server regardless of whether the field is empty or not.
33957	// This may be used to include empty fields in Patch requests.
33958	ForceSendFields []string `json:"-"`
33959
33960	// NullFields is a list of field names (e.g. "ManagedInstances") to
33961	// include in API requests with the JSON null value. By default, fields
33962	// with empty values are omitted from API requests. However, any field
33963	// with an empty value appearing in NullFields will be sent to the
33964	// server as null. It is an error if a field in this list has a
33965	// non-empty value. This may be used to include null fields in Patch
33966	// requests.
33967	NullFields []string `json:"-"`
33968}
33969
33970func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
33971	type NoMethod RegionInstanceGroupManagersListInstancesResponse
33972	raw := NoMethod(*s)
33973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33974}
33975
33976type RegionInstanceGroupManagersRecreateRequest struct {
33977	// Instances: The URLs of one or more instances to recreate. This can be
33978	// a full URL or a partial URL, such as
33979	// zones/[ZONE]/instances/[INSTANCE_NAME].
33980	Instances []string `json:"instances,omitempty"`
33981
33982	// ForceSendFields is a list of field names (e.g. "Instances") to
33983	// unconditionally include in API requests. By default, fields with
33984	// empty or default values are omitted from API requests. However, any
33985	// non-pointer, non-interface field appearing in ForceSendFields will be
33986	// sent to the server regardless of whether the field is empty or not.
33987	// This may be used to include empty fields in Patch requests.
33988	ForceSendFields []string `json:"-"`
33989
33990	// NullFields is a list of field names (e.g. "Instances") to include in
33991	// API requests with the JSON null value. By default, fields with empty
33992	// values are omitted from API requests. However, any field with an
33993	// empty value appearing in NullFields will be sent to the server as
33994	// null. It is an error if a field in this list has a non-empty value.
33995	// This may be used to include null fields in Patch requests.
33996	NullFields []string `json:"-"`
33997}
33998
33999func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
34000	type NoMethod RegionInstanceGroupManagersRecreateRequest
34001	raw := NoMethod(*s)
34002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34003}
34004
34005type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
34006	// Fingerprint: Fingerprint of the target pools information, which is a
34007	// hash of the contents. This field is used for optimistic locking when
34008	// you update the target pool entries. This field is optional.
34009	Fingerprint string `json:"fingerprint,omitempty"`
34010
34011	// TargetPools: The URL of all TargetPool resources to which instances
34012	// in the instanceGroup field are added. The target pools automatically
34013	// apply to all of the instances in the managed instance group.
34014	TargetPools []string `json:"targetPools,omitempty"`
34015
34016	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
34017	// unconditionally include in API requests. By default, fields with
34018	// empty or default values are omitted from API requests. However, any
34019	// non-pointer, non-interface field appearing in ForceSendFields will be
34020	// sent to the server regardless of whether the field is empty or not.
34021	// This may be used to include empty fields in Patch requests.
34022	ForceSendFields []string `json:"-"`
34023
34024	// NullFields is a list of field names (e.g. "Fingerprint") to include
34025	// in API requests with the JSON null value. By default, fields with
34026	// empty values are omitted from API requests. However, any field with
34027	// an empty value appearing in NullFields will be sent to the server as
34028	// null. It is an error if a field in this list has a non-empty value.
34029	// This may be used to include null fields in Patch requests.
34030	NullFields []string `json:"-"`
34031}
34032
34033func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
34034	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
34035	raw := NoMethod(*s)
34036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34037}
34038
34039type RegionInstanceGroupManagersSetTemplateRequest struct {
34040	// InstanceTemplate: URL of the InstanceTemplate resource from which all
34041	// new instances will be created.
34042	InstanceTemplate string `json:"instanceTemplate,omitempty"`
34043
34044	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
34045	// unconditionally include in API requests. By default, fields with
34046	// empty or default values are omitted from API requests. However, any
34047	// non-pointer, non-interface field appearing in ForceSendFields will be
34048	// sent to the server regardless of whether the field is empty or not.
34049	// This may be used to include empty fields in Patch requests.
34050	ForceSendFields []string `json:"-"`
34051
34052	// NullFields is a list of field names (e.g. "InstanceTemplate") to
34053	// include in API requests with the JSON null value. By default, fields
34054	// with empty values are omitted from API requests. However, any field
34055	// with an empty value appearing in NullFields will be sent to the
34056	// server as null. It is an error if a field in this list has a
34057	// non-empty value. This may be used to include null fields in Patch
34058	// requests.
34059	NullFields []string `json:"-"`
34060}
34061
34062func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
34063	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
34064	raw := NoMethod(*s)
34065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34066}
34067
34068type RegionInstanceGroupsListInstances struct {
34069	// Id: [Output Only] Unique identifier for the resource; defined by the
34070	// server.
34071	Id string `json:"id,omitempty"`
34072
34073	// Items: A list of InstanceWithNamedPorts resources.
34074	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
34075
34076	// Kind: The resource type.
34077	Kind string `json:"kind,omitempty"`
34078
34079	// NextPageToken: [Output Only] This token allows you to get the next
34080	// page of results for list requests. If the number of results is larger
34081	// than maxResults, use the nextPageToken as a value for the query
34082	// parameter pageToken in the next list request. Subsequent list
34083	// requests will have their own nextPageToken to continue paging through
34084	// the results.
34085	NextPageToken string `json:"nextPageToken,omitempty"`
34086
34087	// SelfLink: [Output Only] Server-defined URL for this resource.
34088	SelfLink string `json:"selfLink,omitempty"`
34089
34090	// Warning: [Output Only] Informational warning message.
34091	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
34092
34093	// ServerResponse contains the HTTP response code and headers from the
34094	// server.
34095	googleapi.ServerResponse `json:"-"`
34096
34097	// ForceSendFields is a list of field names (e.g. "Id") to
34098	// unconditionally include in API requests. By default, fields with
34099	// empty or default values are omitted from API requests. However, any
34100	// non-pointer, non-interface field appearing in ForceSendFields will be
34101	// sent to the server regardless of whether the field is empty or not.
34102	// This may be used to include empty fields in Patch requests.
34103	ForceSendFields []string `json:"-"`
34104
34105	// NullFields is a list of field names (e.g. "Id") to include in API
34106	// requests with the JSON null value. By default, fields with empty
34107	// values are omitted from API requests. However, any field with an
34108	// empty value appearing in NullFields will be sent to the server as
34109	// null. It is an error if a field in this list has a non-empty value.
34110	// This may be used to include null fields in Patch requests.
34111	NullFields []string `json:"-"`
34112}
34113
34114func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
34115	type NoMethod RegionInstanceGroupsListInstances
34116	raw := NoMethod(*s)
34117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34118}
34119
34120// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
34121// warning message.
34122type RegionInstanceGroupsListInstancesWarning struct {
34123	// Code: [Output Only] A warning code, if applicable. For example,
34124	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34125	// the response.
34126	//
34127	// Possible values:
34128	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34129	// changes made by a failed operation.
34130	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34131	// created.
34132	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34133	// resources has a type marked as deprecated
34134	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34135	// that is larger than image size.
34136	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34137	// resources has a type marked as experimental
34138	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34139	// call
34140	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34141	// overridden. Deprecated unused field.
34142	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34143	// injected kernel, which is deprecated.
34144	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34145	// exceedingly large number of resources
34146	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34147	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34148	// not assigned to an instance on the network.
34149	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34150	// ip forward.
34151	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34152	// refers to an instance that does not exist.
34153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34154	// URL refers to an instance that is not on the same network as the
34155	// route.
34156	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34157	// have a status of RUNNING.
34158	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34159	// continue the process despite the mentioned error.
34160	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34161	// page.
34162	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34163	// missing due to errors
34164	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34165	// that requires a TOS they have not accepted.
34166	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34167	// resource is in use.
34168	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34169	// auto-delete could not be deleted because they were in use.
34170	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34171	// ignored.
34172	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34173	// instance group manager is valid as such, but its application does not
34174	// make a lot of sense, because it allows only single instance in
34175	// instance group.
34176	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34177	// are present
34178	//   "UNREACHABLE" - A given scope cannot be reached.
34179	Code string `json:"code,omitempty"`
34180
34181	// Data: [Output Only] Metadata about this warning in key: value format.
34182	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34183	// }
34184	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
34185
34186	// Message: [Output Only] A human-readable description of the warning
34187	// code.
34188	Message string `json:"message,omitempty"`
34189
34190	// ForceSendFields is a list of field names (e.g. "Code") to
34191	// unconditionally include in API requests. By default, fields with
34192	// empty or default values are omitted from API requests. However, any
34193	// non-pointer, non-interface field appearing in ForceSendFields will be
34194	// sent to the server regardless of whether the field is empty or not.
34195	// This may be used to include empty fields in Patch requests.
34196	ForceSendFields []string `json:"-"`
34197
34198	// NullFields is a list of field names (e.g. "Code") to include in API
34199	// requests with the JSON null value. By default, fields with empty
34200	// values are omitted from API requests. However, any field with an
34201	// empty value appearing in NullFields will be sent to the server as
34202	// null. It is an error if a field in this list has a non-empty value.
34203	// This may be used to include null fields in Patch requests.
34204	NullFields []string `json:"-"`
34205}
34206
34207func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
34208	type NoMethod RegionInstanceGroupsListInstancesWarning
34209	raw := NoMethod(*s)
34210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34211}
34212
34213type RegionInstanceGroupsListInstancesWarningData struct {
34214	// Key: [Output Only] A key that provides more detail on the warning
34215	// being returned. For example, for warnings where there are no results
34216	// in a list request for a particular zone, this key might be scope and
34217	// the key value might be the zone name. Other examples might be a key
34218	// indicating a deprecated resource and a suggested replacement, or a
34219	// warning about invalid network settings (for example, if an instance
34220	// attempts to perform IP forwarding but is not enabled for IP
34221	// forwarding).
34222	Key string `json:"key,omitempty"`
34223
34224	// Value: [Output Only] A warning data value corresponding to the key.
34225	Value string `json:"value,omitempty"`
34226
34227	// ForceSendFields is a list of field names (e.g. "Key") to
34228	// unconditionally include in API requests. By default, fields with
34229	// empty or default values are omitted from API requests. However, any
34230	// non-pointer, non-interface field appearing in ForceSendFields will be
34231	// sent to the server regardless of whether the field is empty or not.
34232	// This may be used to include empty fields in Patch requests.
34233	ForceSendFields []string `json:"-"`
34234
34235	// NullFields is a list of field names (e.g. "Key") to include in API
34236	// requests with the JSON null value. By default, fields with empty
34237	// values are omitted from API requests. However, any field with an
34238	// empty value appearing in NullFields will be sent to the server as
34239	// null. It is an error if a field in this list has a non-empty value.
34240	// This may be used to include null fields in Patch requests.
34241	NullFields []string `json:"-"`
34242}
34243
34244func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
34245	type NoMethod RegionInstanceGroupsListInstancesWarningData
34246	raw := NoMethod(*s)
34247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34248}
34249
34250type RegionInstanceGroupsListInstancesRequest struct {
34251	// InstanceState: Instances in which state should be returned. Valid
34252	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
34253	//
34254	// Possible values:
34255	//   "ALL" - Matches any status of the instances, running, non-running
34256	// and others.
34257	//   "RUNNING" - Instance is in RUNNING state if it is running.
34258	InstanceState string `json:"instanceState,omitempty"`
34259
34260	// PortName: Name of port user is interested in. It is optional. If it
34261	// is set, only information about this ports will be returned. If it is
34262	// not set, all the named ports will be returned. Always lists all
34263	// instances.
34264	PortName string `json:"portName,omitempty"`
34265
34266	// ForceSendFields is a list of field names (e.g. "InstanceState") to
34267	// unconditionally include in API requests. By default, fields with
34268	// empty or default values are omitted from API requests. However, any
34269	// non-pointer, non-interface field appearing in ForceSendFields will be
34270	// sent to the server regardless of whether the field is empty or not.
34271	// This may be used to include empty fields in Patch requests.
34272	ForceSendFields []string `json:"-"`
34273
34274	// NullFields is a list of field names (e.g. "InstanceState") to include
34275	// in API requests with the JSON null value. By default, fields with
34276	// empty values are omitted from API requests. However, any field with
34277	// an empty value appearing in NullFields will be sent to the server as
34278	// null. It is an error if a field in this list has a non-empty value.
34279	// This may be used to include null fields in Patch requests.
34280	NullFields []string `json:"-"`
34281}
34282
34283func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
34284	type NoMethod RegionInstanceGroupsListInstancesRequest
34285	raw := NoMethod(*s)
34286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34287}
34288
34289type RegionInstanceGroupsSetNamedPortsRequest struct {
34290	// Fingerprint: The fingerprint of the named ports information for this
34291	// instance group. Use this optional property to prevent conflicts when
34292	// multiple users change the named ports settings concurrently. Obtain
34293	// the fingerprint with the instanceGroups.get method. Then, include the
34294	// fingerprint in your request to ensure that you do not overwrite
34295	// changes that were applied from another concurrent request.
34296	Fingerprint string `json:"fingerprint,omitempty"`
34297
34298	// NamedPorts: The list of named ports to set for this instance group.
34299	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
34300
34301	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
34302	// unconditionally include in API requests. By default, fields with
34303	// empty or default values are omitted from API requests. However, any
34304	// non-pointer, non-interface field appearing in ForceSendFields will be
34305	// sent to the server regardless of whether the field is empty or not.
34306	// This may be used to include empty fields in Patch requests.
34307	ForceSendFields []string `json:"-"`
34308
34309	// NullFields is a list of field names (e.g. "Fingerprint") to include
34310	// in API requests with the JSON null value. By default, fields with
34311	// empty values are omitted from API requests. However, any field with
34312	// an empty value appearing in NullFields will be sent to the server as
34313	// null. It is an error if a field in this list has a non-empty value.
34314	// This may be used to include null fields in Patch requests.
34315	NullFields []string `json:"-"`
34316}
34317
34318func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
34319	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
34320	raw := NoMethod(*s)
34321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34322}
34323
34324// RegionList: Contains a list of region resources.
34325type RegionList struct {
34326	// Id: [Output Only] Unique identifier for the resource; defined by the
34327	// server.
34328	Id string `json:"id,omitempty"`
34329
34330	// Items: A list of Region resources.
34331	Items []*Region `json:"items,omitempty"`
34332
34333	// Kind: [Output Only] Type of resource. Always compute#regionList for
34334	// lists of regions.
34335	Kind string `json:"kind,omitempty"`
34336
34337	// NextPageToken: [Output Only] This token allows you to get the next
34338	// page of results for list requests. If the number of results is larger
34339	// than maxResults, use the nextPageToken as a value for the query
34340	// parameter pageToken in the next list request. Subsequent list
34341	// requests will have their own nextPageToken to continue paging through
34342	// the results.
34343	NextPageToken string `json:"nextPageToken,omitempty"`
34344
34345	// SelfLink: [Output Only] Server-defined URL for this resource.
34346	SelfLink string `json:"selfLink,omitempty"`
34347
34348	// Warning: [Output Only] Informational warning message.
34349	Warning *RegionListWarning `json:"warning,omitempty"`
34350
34351	// ServerResponse contains the HTTP response code and headers from the
34352	// server.
34353	googleapi.ServerResponse `json:"-"`
34354
34355	// ForceSendFields is a list of field names (e.g. "Id") to
34356	// unconditionally include in API requests. By default, fields with
34357	// empty or default values are omitted from API requests. However, any
34358	// non-pointer, non-interface field appearing in ForceSendFields will be
34359	// sent to the server regardless of whether the field is empty or not.
34360	// This may be used to include empty fields in Patch requests.
34361	ForceSendFields []string `json:"-"`
34362
34363	// NullFields is a list of field names (e.g. "Id") to include in API
34364	// requests with the JSON null value. By default, fields with empty
34365	// values are omitted from API requests. However, any field with an
34366	// empty value appearing in NullFields will be sent to the server as
34367	// null. It is an error if a field in this list has a non-empty value.
34368	// This may be used to include null fields in Patch requests.
34369	NullFields []string `json:"-"`
34370}
34371
34372func (s *RegionList) MarshalJSON() ([]byte, error) {
34373	type NoMethod RegionList
34374	raw := NoMethod(*s)
34375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34376}
34377
34378// RegionListWarning: [Output Only] Informational warning message.
34379type RegionListWarning struct {
34380	// Code: [Output Only] A warning code, if applicable. For example,
34381	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34382	// the response.
34383	//
34384	// Possible values:
34385	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34386	// changes made by a failed operation.
34387	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34388	// created.
34389	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34390	// resources has a type marked as deprecated
34391	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34392	// that is larger than image size.
34393	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34394	// resources has a type marked as experimental
34395	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34396	// call
34397	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34398	// overridden. Deprecated unused field.
34399	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34400	// injected kernel, which is deprecated.
34401	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34402	// exceedingly large number of resources
34403	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34404	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34405	// not assigned to an instance on the network.
34406	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34407	// ip forward.
34408	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34409	// refers to an instance that does not exist.
34410	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34411	// URL refers to an instance that is not on the same network as the
34412	// route.
34413	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34414	// have a status of RUNNING.
34415	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34416	// continue the process despite the mentioned error.
34417	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34418	// page.
34419	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34420	// missing due to errors
34421	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34422	// that requires a TOS they have not accepted.
34423	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34424	// resource is in use.
34425	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34426	// auto-delete could not be deleted because they were in use.
34427	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34428	// ignored.
34429	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34430	// instance group manager is valid as such, but its application does not
34431	// make a lot of sense, because it allows only single instance in
34432	// instance group.
34433	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34434	// are present
34435	//   "UNREACHABLE" - A given scope cannot be reached.
34436	Code string `json:"code,omitempty"`
34437
34438	// Data: [Output Only] Metadata about this warning in key: value format.
34439	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34440	// }
34441	Data []*RegionListWarningData `json:"data,omitempty"`
34442
34443	// Message: [Output Only] A human-readable description of the warning
34444	// code.
34445	Message string `json:"message,omitempty"`
34446
34447	// ForceSendFields is a list of field names (e.g. "Code") to
34448	// unconditionally include in API requests. By default, fields with
34449	// empty or default values are omitted from API requests. However, any
34450	// non-pointer, non-interface field appearing in ForceSendFields will be
34451	// sent to the server regardless of whether the field is empty or not.
34452	// This may be used to include empty fields in Patch requests.
34453	ForceSendFields []string `json:"-"`
34454
34455	// NullFields is a list of field names (e.g. "Code") to include in API
34456	// requests with the JSON null value. By default, fields with empty
34457	// values are omitted from API requests. However, any field with an
34458	// empty value appearing in NullFields will be sent to the server as
34459	// null. It is an error if a field in this list has a non-empty value.
34460	// This may be used to include null fields in Patch requests.
34461	NullFields []string `json:"-"`
34462}
34463
34464func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
34465	type NoMethod RegionListWarning
34466	raw := NoMethod(*s)
34467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34468}
34469
34470type RegionListWarningData struct {
34471	// Key: [Output Only] A key that provides more detail on the warning
34472	// being returned. For example, for warnings where there are no results
34473	// in a list request for a particular zone, this key might be scope and
34474	// the key value might be the zone name. Other examples might be a key
34475	// indicating a deprecated resource and a suggested replacement, or a
34476	// warning about invalid network settings (for example, if an instance
34477	// attempts to perform IP forwarding but is not enabled for IP
34478	// forwarding).
34479	Key string `json:"key,omitempty"`
34480
34481	// Value: [Output Only] A warning data value corresponding to the key.
34482	Value string `json:"value,omitempty"`
34483
34484	// ForceSendFields is a list of field names (e.g. "Key") to
34485	// unconditionally include in API requests. By default, fields with
34486	// empty or default values are omitted from API requests. However, any
34487	// non-pointer, non-interface field appearing in ForceSendFields will be
34488	// sent to the server regardless of whether the field is empty or not.
34489	// This may be used to include empty fields in Patch requests.
34490	ForceSendFields []string `json:"-"`
34491
34492	// NullFields is a list of field names (e.g. "Key") to include in API
34493	// requests with the JSON null value. By default, fields with empty
34494	// values are omitted from API requests. However, any field with an
34495	// empty value appearing in NullFields will be sent to the server as
34496	// null. It is an error if a field in this list has a non-empty value.
34497	// This may be used to include null fields in Patch requests.
34498	NullFields []string `json:"-"`
34499}
34500
34501func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
34502	type NoMethod RegionListWarningData
34503	raw := NoMethod(*s)
34504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34505}
34506
34507type RegionSetLabelsRequest struct {
34508	// LabelFingerprint: The fingerprint of the previous set of labels for
34509	// this resource, used to detect conflicts. The fingerprint is initially
34510	// generated by Compute Engine and changes after every request to modify
34511	// or update labels. You must always provide an up-to-date fingerprint
34512	// hash in order to update or change labels. Make a get() request to the
34513	// resource to get the latest fingerprint.
34514	LabelFingerprint string `json:"labelFingerprint,omitempty"`
34515
34516	// Labels: The labels to set for this resource.
34517	Labels map[string]string `json:"labels,omitempty"`
34518
34519	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
34520	// unconditionally include in API requests. By default, fields with
34521	// empty or default values are omitted from API requests. However, any
34522	// non-pointer, non-interface field appearing in ForceSendFields will be
34523	// sent to the server regardless of whether the field is empty or not.
34524	// This may be used to include empty fields in Patch requests.
34525	ForceSendFields []string `json:"-"`
34526
34527	// NullFields is a list of field names (e.g. "LabelFingerprint") to
34528	// include in API requests with the JSON null value. By default, fields
34529	// with empty values are omitted from API requests. However, any field
34530	// with an empty value appearing in NullFields will be sent to the
34531	// server as null. It is an error if a field in this list has a
34532	// non-empty value. This may be used to include null fields in Patch
34533	// requests.
34534	NullFields []string `json:"-"`
34535}
34536
34537func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
34538	type NoMethod RegionSetLabelsRequest
34539	raw := NoMethod(*s)
34540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34541}
34542
34543type RegionSetPolicyRequest struct {
34544	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
34545	// Deprecated. Use 'policy' to specify bindings.
34546	Bindings []*Binding `json:"bindings,omitempty"`
34547
34548	// Etag: Flatten Policy to create a backward compatible wire-format.
34549	// Deprecated. Use 'policy' to specify the etag.
34550	Etag string `json:"etag,omitempty"`
34551
34552	// Policy: REQUIRED: The complete policy to be applied to the
34553	// 'resource'. The size of the policy is limited to a few 10s of KB. An
34554	// empty policy is in general a valid policy but certain services (like
34555	// Projects) might reject them.
34556	Policy *Policy `json:"policy,omitempty"`
34557
34558	// ForceSendFields is a list of field names (e.g. "Bindings") to
34559	// unconditionally include in API requests. By default, fields with
34560	// empty or default values are omitted from API requests. However, any
34561	// non-pointer, non-interface field appearing in ForceSendFields will be
34562	// sent to the server regardless of whether the field is empty or not.
34563	// This may be used to include empty fields in Patch requests.
34564	ForceSendFields []string `json:"-"`
34565
34566	// NullFields is a list of field names (e.g. "Bindings") to include in
34567	// API requests with the JSON null value. By default, fields with empty
34568	// values are omitted from API requests. However, any field with an
34569	// empty value appearing in NullFields will be sent to the server as
34570	// null. It is an error if a field in this list has a non-empty value.
34571	// This may be used to include null fields in Patch requests.
34572	NullFields []string `json:"-"`
34573}
34574
34575func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
34576	type NoMethod RegionSetPolicyRequest
34577	raw := NoMethod(*s)
34578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34579}
34580
34581type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
34582	// SslCertificates: New set of SslCertificate resources to associate
34583	// with this TargetHttpsProxy resource. Currently exactly one
34584	// SslCertificate resource must be specified.
34585	SslCertificates []string `json:"sslCertificates,omitempty"`
34586
34587	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
34588	// unconditionally include in API requests. By default, fields with
34589	// empty or default values are omitted from API requests. However, any
34590	// non-pointer, non-interface field appearing in ForceSendFields will be
34591	// sent to the server regardless of whether the field is empty or not.
34592	// This may be used to include empty fields in Patch requests.
34593	ForceSendFields []string `json:"-"`
34594
34595	// NullFields is a list of field names (e.g. "SslCertificates") to
34596	// include in API requests with the JSON null value. By default, fields
34597	// with empty values are omitted from API requests. However, any field
34598	// with an empty value appearing in NullFields will be sent to the
34599	// server as null. It is an error if a field in this list has a
34600	// non-empty value. This may be used to include null fields in Patch
34601	// requests.
34602	NullFields []string `json:"-"`
34603}
34604
34605func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
34606	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
34607	raw := NoMethod(*s)
34608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34609}
34610
34611type RegionUrlMapsValidateRequest struct {
34612	// Resource: Content of the UrlMap to be validated.
34613	Resource *UrlMap `json:"resource,omitempty"`
34614
34615	// ForceSendFields is a list of field names (e.g. "Resource") to
34616	// unconditionally include in API requests. By default, fields with
34617	// empty or default values are omitted from API requests. However, any
34618	// non-pointer, non-interface field appearing in ForceSendFields will be
34619	// sent to the server regardless of whether the field is empty or not.
34620	// This may be used to include empty fields in Patch requests.
34621	ForceSendFields []string `json:"-"`
34622
34623	// NullFields is a list of field names (e.g. "Resource") to include in
34624	// API requests with the JSON null value. By default, fields with empty
34625	// values are omitted from API requests. However, any field with an
34626	// empty value appearing in NullFields will be sent to the server as
34627	// null. It is an error if a field in this list has a non-empty value.
34628	// This may be used to include null fields in Patch requests.
34629	NullFields []string `json:"-"`
34630}
34631
34632func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
34633	type NoMethod RegionUrlMapsValidateRequest
34634	raw := NoMethod(*s)
34635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34636}
34637
34638// RequestMirrorPolicy: A policy that specifies how requests intended
34639// for the route's backends are shadowed to a separate mirrored backend
34640// service. Loadbalancer does not wait for responses from the shadow
34641// service. Prior to sending traffic to the shadow service, the host /
34642// authority header is suffixed with -shadow.
34643type RequestMirrorPolicy struct {
34644	// BackendService: The full or partial URL to the BackendService
34645	// resource being mirrored to.
34646	BackendService string `json:"backendService,omitempty"`
34647
34648	// ForceSendFields is a list of field names (e.g. "BackendService") to
34649	// unconditionally include in API requests. By default, fields with
34650	// empty or default values are omitted from API requests. However, any
34651	// non-pointer, non-interface field appearing in ForceSendFields will be
34652	// sent to the server regardless of whether the field is empty or not.
34653	// This may be used to include empty fields in Patch requests.
34654	ForceSendFields []string `json:"-"`
34655
34656	// NullFields is a list of field names (e.g. "BackendService") to
34657	// include in API requests with the JSON null value. By default, fields
34658	// with empty values are omitted from API requests. However, any field
34659	// with an empty value appearing in NullFields will be sent to the
34660	// server as null. It is an error if a field in this list has a
34661	// non-empty value. This may be used to include null fields in Patch
34662	// requests.
34663	NullFields []string `json:"-"`
34664}
34665
34666func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
34667	type NoMethod RequestMirrorPolicy
34668	raw := NoMethod(*s)
34669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34670}
34671
34672// Reservation: Represents a reservation resource. A reservation ensures
34673// that capacity is held in a specific zone even if the reserved VMs are
34674// not running. For more information, read Reserving zonal resources.
34675type Reservation struct {
34676	// Commitment: [Output Only] Full or partial URL to a parent commitment.
34677	// This field displays for reservations that are tied to a commitment.
34678	Commitment string `json:"commitment,omitempty"`
34679
34680	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34681	// format.
34682	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34683
34684	// Description: An optional description of this resource. Provide this
34685	// property when you create the resource.
34686	Description string `json:"description,omitempty"`
34687
34688	// Id: [Output Only] The unique identifier for the resource. This
34689	// identifier is defined by the server.
34690	Id uint64 `json:"id,omitempty,string"`
34691
34692	// Kind: [Output Only] Type of the resource. Always compute#reservations
34693	// for reservations.
34694	Kind string `json:"kind,omitempty"`
34695
34696	// Name: The name of the resource, provided by the client when initially
34697	// creating the resource. The resource name must be 1-63 characters
34698	// long, and comply with RFC1035. Specifically, the name must be 1-63
34699	// characters long and match the regular expression
34700	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34701	// a lowercase letter, and all following characters must be a dash,
34702	// lowercase letter, or digit, except the last character, which cannot
34703	// be a dash.
34704	Name string `json:"name,omitempty"`
34705
34706	// SatisfiesPzs: [Output Only] Reserved for future use.
34707	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
34708
34709	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34710	// resource.
34711	SelfLink string `json:"selfLink,omitempty"`
34712
34713	// SpecificReservation: Reservation for instances with specific machine
34714	// shapes.
34715	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
34716
34717	// SpecificReservationRequired: Indicates whether the reservation can be
34718	// consumed by VMs with affinity for "any" reservation. If the field is
34719	// set, then only VMs that target the reservation by name can consume
34720	// from this reservation.
34721	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
34722
34723	// Status: [Output Only] The status of the reservation.
34724	//
34725	// Possible values:
34726	//   "CREATING" - Resources are being allocated for the reservation.
34727	//   "DELETING" - Reservation is currently being deleted.
34728	//   "INVALID"
34729	//   "READY" - Reservation has allocated all its resources.
34730	//   "UPDATING" - Reservation is currently being resized.
34731	Status string `json:"status,omitempty"`
34732
34733	// Zone: Zone in which the reservation resides. A zone must be provided
34734	// if the reservation is created within a commitment.
34735	Zone string `json:"zone,omitempty"`
34736
34737	// ServerResponse contains the HTTP response code and headers from the
34738	// server.
34739	googleapi.ServerResponse `json:"-"`
34740
34741	// ForceSendFields is a list of field names (e.g. "Commitment") to
34742	// unconditionally include in API requests. By default, fields with
34743	// empty or default values are omitted from API requests. However, any
34744	// non-pointer, non-interface field appearing in ForceSendFields will be
34745	// sent to the server regardless of whether the field is empty or not.
34746	// This may be used to include empty fields in Patch requests.
34747	ForceSendFields []string `json:"-"`
34748
34749	// NullFields is a list of field names (e.g. "Commitment") to include in
34750	// API requests with the JSON null value. By default, fields with empty
34751	// values are omitted from API requests. However, any field with an
34752	// empty value appearing in NullFields will be sent to the server as
34753	// null. It is an error if a field in this list has a non-empty value.
34754	// This may be used to include null fields in Patch requests.
34755	NullFields []string `json:"-"`
34756}
34757
34758func (s *Reservation) MarshalJSON() ([]byte, error) {
34759	type NoMethod Reservation
34760	raw := NoMethod(*s)
34761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34762}
34763
34764// ReservationAffinity: Specifies the reservations that this instance
34765// can consume from.
34766type ReservationAffinity struct {
34767	// ConsumeReservationType: Specifies the type of reservation from which
34768	// this instance can consume resources: ANY_RESERVATION (default),
34769	// SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved
34770	// instances for examples.
34771	//
34772	// Possible values:
34773	//   "ANY_RESERVATION" - Consume any allocation available.
34774	//   "NO_RESERVATION" - Do not consume from any allocated capacity.
34775	//   "SPECIFIC_RESERVATION" - Must consume from a specific reservation.
34776	// Must specify key value fields for specifying the reservations.
34777	//   "UNSPECIFIED"
34778	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
34779
34780	// Key: Corresponds to the label key of a reservation resource. To
34781	// target a SPECIFIC_RESERVATION by name, specify
34782	// googleapis.com/reservation-name as the key and specify the name of
34783	// your reservation as its value.
34784	Key string `json:"key,omitempty"`
34785
34786	// Values: Corresponds to the label values of a reservation resource.
34787	// This can be either a name to a reservation in the same project or
34788	// "projects/different-project/reservations/some-reservation-name" to
34789	// target a shared reservation in the same zone but in a different
34790	// project.
34791	Values []string `json:"values,omitempty"`
34792
34793	// ForceSendFields is a list of field names (e.g.
34794	// "ConsumeReservationType") to unconditionally include in API requests.
34795	// By default, fields with empty or default values are omitted from API
34796	// requests. However, any non-pointer, non-interface field appearing in
34797	// ForceSendFields will be sent to the server regardless of whether the
34798	// field is empty or not. This may be used to include empty fields in
34799	// Patch requests.
34800	ForceSendFields []string `json:"-"`
34801
34802	// NullFields is a list of field names (e.g. "ConsumeReservationType")
34803	// to include in API requests with the JSON null value. By default,
34804	// fields with empty values are omitted from API requests. However, any
34805	// field with an empty value appearing in NullFields will be sent to the
34806	// server as null. It is an error if a field in this list has a
34807	// non-empty value. This may be used to include null fields in Patch
34808	// requests.
34809	NullFields []string `json:"-"`
34810}
34811
34812func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
34813	type NoMethod ReservationAffinity
34814	raw := NoMethod(*s)
34815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34816}
34817
34818// ReservationAggregatedList: Contains a list of reservations.
34819type ReservationAggregatedList struct {
34820	// Id: [Output Only] Unique identifier for the resource; defined by the
34821	// server.
34822	Id string `json:"id,omitempty"`
34823
34824	// Items: A list of Allocation resources.
34825	Items map[string]ReservationsScopedList `json:"items,omitempty"`
34826
34827	// Kind: Type of resource.
34828	Kind string `json:"kind,omitempty"`
34829
34830	// NextPageToken: [Output Only] This token allows you to get the next
34831	// page of results for list requests. If the number of results is larger
34832	// than maxResults, use the nextPageToken as a value for the query
34833	// parameter pageToken in the next list request. Subsequent list
34834	// requests will have their own nextPageToken to continue paging through
34835	// the results.
34836	NextPageToken string `json:"nextPageToken,omitempty"`
34837
34838	// SelfLink: [Output Only] Server-defined URL for this resource.
34839	SelfLink string `json:"selfLink,omitempty"`
34840
34841	// Unreachables: [Output Only] Unreachable resources.
34842	Unreachables []string `json:"unreachables,omitempty"`
34843
34844	// Warning: [Output Only] Informational warning message.
34845	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
34846
34847	// ServerResponse contains the HTTP response code and headers from the
34848	// server.
34849	googleapi.ServerResponse `json:"-"`
34850
34851	// ForceSendFields is a list of field names (e.g. "Id") to
34852	// unconditionally include in API requests. By default, fields with
34853	// empty or default values are omitted from API requests. However, any
34854	// non-pointer, non-interface field appearing in ForceSendFields will be
34855	// sent to the server regardless of whether the field is empty or not.
34856	// This may be used to include empty fields in Patch requests.
34857	ForceSendFields []string `json:"-"`
34858
34859	// NullFields is a list of field names (e.g. "Id") to include in API
34860	// requests with the JSON null value. By default, fields with empty
34861	// values are omitted from API requests. However, any field with an
34862	// empty value appearing in NullFields will be sent to the server as
34863	// null. It is an error if a field in this list has a non-empty value.
34864	// This may be used to include null fields in Patch requests.
34865	NullFields []string `json:"-"`
34866}
34867
34868func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
34869	type NoMethod ReservationAggregatedList
34870	raw := NoMethod(*s)
34871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34872}
34873
34874// ReservationAggregatedListWarning: [Output Only] Informational warning
34875// message.
34876type ReservationAggregatedListWarning struct {
34877	// Code: [Output Only] A warning code, if applicable. For example,
34878	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34879	// the response.
34880	//
34881	// Possible values:
34882	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34883	// changes made by a failed operation.
34884	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34885	// created.
34886	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34887	// resources has a type marked as deprecated
34888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34889	// that is larger than image size.
34890	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34891	// resources has a type marked as experimental
34892	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34893	// call
34894	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34895	// overridden. Deprecated unused field.
34896	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34897	// injected kernel, which is deprecated.
34898	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34899	// exceedingly large number of resources
34900	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34901	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34902	// not assigned to an instance on the network.
34903	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34904	// ip forward.
34905	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34906	// refers to an instance that does not exist.
34907	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34908	// URL refers to an instance that is not on the same network as the
34909	// route.
34910	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34911	// have a status of RUNNING.
34912	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34913	// continue the process despite the mentioned error.
34914	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34915	// page.
34916	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34917	// missing due to errors
34918	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34919	// that requires a TOS they have not accepted.
34920	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34921	// resource is in use.
34922	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34923	// auto-delete could not be deleted because they were in use.
34924	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34925	// ignored.
34926	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34927	// instance group manager is valid as such, but its application does not
34928	// make a lot of sense, because it allows only single instance in
34929	// instance group.
34930	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34931	// are present
34932	//   "UNREACHABLE" - A given scope cannot be reached.
34933	Code string `json:"code,omitempty"`
34934
34935	// Data: [Output Only] Metadata about this warning in key: value format.
34936	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34937	// }
34938	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
34939
34940	// Message: [Output Only] A human-readable description of the warning
34941	// code.
34942	Message string `json:"message,omitempty"`
34943
34944	// ForceSendFields is a list of field names (e.g. "Code") to
34945	// unconditionally include in API requests. By default, fields with
34946	// empty or default values are omitted from API requests. However, any
34947	// non-pointer, non-interface field appearing in ForceSendFields will be
34948	// sent to the server regardless of whether the field is empty or not.
34949	// This may be used to include empty fields in Patch requests.
34950	ForceSendFields []string `json:"-"`
34951
34952	// NullFields is a list of field names (e.g. "Code") to include in API
34953	// requests with the JSON null value. By default, fields with empty
34954	// values are omitted from API requests. However, any field with an
34955	// empty value appearing in NullFields will be sent to the server as
34956	// null. It is an error if a field in this list has a non-empty value.
34957	// This may be used to include null fields in Patch requests.
34958	NullFields []string `json:"-"`
34959}
34960
34961func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
34962	type NoMethod ReservationAggregatedListWarning
34963	raw := NoMethod(*s)
34964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34965}
34966
34967type ReservationAggregatedListWarningData struct {
34968	// Key: [Output Only] A key that provides more detail on the warning
34969	// being returned. For example, for warnings where there are no results
34970	// in a list request for a particular zone, this key might be scope and
34971	// the key value might be the zone name. Other examples might be a key
34972	// indicating a deprecated resource and a suggested replacement, or a
34973	// warning about invalid network settings (for example, if an instance
34974	// attempts to perform IP forwarding but is not enabled for IP
34975	// forwarding).
34976	Key string `json:"key,omitempty"`
34977
34978	// Value: [Output Only] A warning data value corresponding to the key.
34979	Value string `json:"value,omitempty"`
34980
34981	// ForceSendFields is a list of field names (e.g. "Key") to
34982	// unconditionally include in API requests. By default, fields with
34983	// empty or default values are omitted from API requests. However, any
34984	// non-pointer, non-interface field appearing in ForceSendFields will be
34985	// sent to the server regardless of whether the field is empty or not.
34986	// This may be used to include empty fields in Patch requests.
34987	ForceSendFields []string `json:"-"`
34988
34989	// NullFields is a list of field names (e.g. "Key") to include in API
34990	// requests with the JSON null value. By default, fields with empty
34991	// values are omitted from API requests. However, any field with an
34992	// empty value appearing in NullFields will be sent to the server as
34993	// null. It is an error if a field in this list has a non-empty value.
34994	// This may be used to include null fields in Patch requests.
34995	NullFields []string `json:"-"`
34996}
34997
34998func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34999	type NoMethod ReservationAggregatedListWarningData
35000	raw := NoMethod(*s)
35001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35002}
35003
35004type ReservationList struct {
35005	// Id: [Output Only] The unique identifier for the resource. This
35006	// identifier is defined by the server.
35007	Id string `json:"id,omitempty"`
35008
35009	// Items: [Output Only] A list of Allocation resources.
35010	Items []*Reservation `json:"items,omitempty"`
35011
35012	// Kind: [Output Only] Type of resource.Always compute#reservationsList
35013	// for listsof reservations
35014	Kind string `json:"kind,omitempty"`
35015
35016	// NextPageToken: [Output Only] This token allows you to get the next
35017	// page of results for list requests. If the number of results is larger
35018	// than maxResults, use the nextPageToken as a value for the query
35019	// parameter pageToken in the next list request. Subsequent list
35020	// requests will have their own nextPageToken to continue paging through
35021	// the results.
35022	NextPageToken string `json:"nextPageToken,omitempty"`
35023
35024	// SelfLink: [Output Only] Server-defined URL for this resource.
35025	SelfLink string `json:"selfLink,omitempty"`
35026
35027	// Warning: [Output Only] Informational warning message.
35028	Warning *ReservationListWarning `json:"warning,omitempty"`
35029
35030	// ServerResponse contains the HTTP response code and headers from the
35031	// server.
35032	googleapi.ServerResponse `json:"-"`
35033
35034	// ForceSendFields is a list of field names (e.g. "Id") to
35035	// unconditionally include in API requests. By default, fields with
35036	// empty or default values are omitted from API requests. However, any
35037	// non-pointer, non-interface field appearing in ForceSendFields will be
35038	// sent to the server regardless of whether the field is empty or not.
35039	// This may be used to include empty fields in Patch requests.
35040	ForceSendFields []string `json:"-"`
35041
35042	// NullFields is a list of field names (e.g. "Id") to include in API
35043	// requests with the JSON null value. By default, fields with empty
35044	// values are omitted from API requests. However, any field with an
35045	// empty value appearing in NullFields will be sent to the server as
35046	// null. It is an error if a field in this list has a non-empty value.
35047	// This may be used to include null fields in Patch requests.
35048	NullFields []string `json:"-"`
35049}
35050
35051func (s *ReservationList) MarshalJSON() ([]byte, error) {
35052	type NoMethod ReservationList
35053	raw := NoMethod(*s)
35054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35055}
35056
35057// ReservationListWarning: [Output Only] Informational warning message.
35058type ReservationListWarning struct {
35059	// Code: [Output Only] A warning code, if applicable. For example,
35060	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35061	// the response.
35062	//
35063	// Possible values:
35064	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35065	// changes made by a failed operation.
35066	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35067	// created.
35068	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35069	// resources has a type marked as deprecated
35070	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35071	// that is larger than image size.
35072	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35073	// resources has a type marked as experimental
35074	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35075	// call
35076	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35077	// overridden. Deprecated unused field.
35078	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35079	// injected kernel, which is deprecated.
35080	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35081	// exceedingly large number of resources
35082	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35083	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35084	// not assigned to an instance on the network.
35085	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35086	// ip forward.
35087	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35088	// refers to an instance that does not exist.
35089	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35090	// URL refers to an instance that is not on the same network as the
35091	// route.
35092	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35093	// have a status of RUNNING.
35094	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35095	// continue the process despite the mentioned error.
35096	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35097	// page.
35098	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35099	// missing due to errors
35100	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35101	// that requires a TOS they have not accepted.
35102	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35103	// resource is in use.
35104	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35105	// auto-delete could not be deleted because they were in use.
35106	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35107	// ignored.
35108	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35109	// instance group manager is valid as such, but its application does not
35110	// make a lot of sense, because it allows only single instance in
35111	// instance group.
35112	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35113	// are present
35114	//   "UNREACHABLE" - A given scope cannot be reached.
35115	Code string `json:"code,omitempty"`
35116
35117	// Data: [Output Only] Metadata about this warning in key: value format.
35118	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35119	// }
35120	Data []*ReservationListWarningData `json:"data,omitempty"`
35121
35122	// Message: [Output Only] A human-readable description of the warning
35123	// code.
35124	Message string `json:"message,omitempty"`
35125
35126	// ForceSendFields is a list of field names (e.g. "Code") to
35127	// unconditionally include in API requests. By default, fields with
35128	// empty or default values are omitted from API requests. However, any
35129	// non-pointer, non-interface field appearing in ForceSendFields will be
35130	// sent to the server regardless of whether the field is empty or not.
35131	// This may be used to include empty fields in Patch requests.
35132	ForceSendFields []string `json:"-"`
35133
35134	// NullFields is a list of field names (e.g. "Code") to include in API
35135	// requests with the JSON null value. By default, fields with empty
35136	// values are omitted from API requests. However, any field with an
35137	// empty value appearing in NullFields will be sent to the server as
35138	// null. It is an error if a field in this list has a non-empty value.
35139	// This may be used to include null fields in Patch requests.
35140	NullFields []string `json:"-"`
35141}
35142
35143func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
35144	type NoMethod ReservationListWarning
35145	raw := NoMethod(*s)
35146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35147}
35148
35149type ReservationListWarningData struct {
35150	// Key: [Output Only] A key that provides more detail on the warning
35151	// being returned. For example, for warnings where there are no results
35152	// in a list request for a particular zone, this key might be scope and
35153	// the key value might be the zone name. Other examples might be a key
35154	// indicating a deprecated resource and a suggested replacement, or a
35155	// warning about invalid network settings (for example, if an instance
35156	// attempts to perform IP forwarding but is not enabled for IP
35157	// forwarding).
35158	Key string `json:"key,omitempty"`
35159
35160	// Value: [Output Only] A warning data value corresponding to the key.
35161	Value string `json:"value,omitempty"`
35162
35163	// ForceSendFields is a list of field names (e.g. "Key") to
35164	// unconditionally include in API requests. By default, fields with
35165	// empty or default values are omitted from API requests. However, any
35166	// non-pointer, non-interface field appearing in ForceSendFields will be
35167	// sent to the server regardless of whether the field is empty or not.
35168	// This may be used to include empty fields in Patch requests.
35169	ForceSendFields []string `json:"-"`
35170
35171	// NullFields is a list of field names (e.g. "Key") to include in API
35172	// requests with the JSON null value. By default, fields with empty
35173	// values are omitted from API requests. However, any field with an
35174	// empty value appearing in NullFields will be sent to the server as
35175	// null. It is an error if a field in this list has a non-empty value.
35176	// This may be used to include null fields in Patch requests.
35177	NullFields []string `json:"-"`
35178}
35179
35180func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
35181	type NoMethod ReservationListWarningData
35182	raw := NoMethod(*s)
35183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35184}
35185
35186type ReservationsResizeRequest struct {
35187	// SpecificSkuCount: Number of allocated resources can be resized with
35188	// minimum = 1 and maximum = 1000.
35189	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
35190
35191	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
35192	// unconditionally include in API requests. By default, fields with
35193	// empty or default values are omitted from API requests. However, any
35194	// non-pointer, non-interface field appearing in ForceSendFields will be
35195	// sent to the server regardless of whether the field is empty or not.
35196	// This may be used to include empty fields in Patch requests.
35197	ForceSendFields []string `json:"-"`
35198
35199	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
35200	// include in API requests with the JSON null value. By default, fields
35201	// with empty values are omitted from API requests. However, any field
35202	// with an empty value appearing in NullFields will be sent to the
35203	// server as null. It is an error if a field in this list has a
35204	// non-empty value. This may be used to include null fields in Patch
35205	// requests.
35206	NullFields []string `json:"-"`
35207}
35208
35209func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
35210	type NoMethod ReservationsResizeRequest
35211	raw := NoMethod(*s)
35212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35213}
35214
35215type ReservationsScopedList struct {
35216	// Reservations: A list of reservations contained in this scope.
35217	Reservations []*Reservation `json:"reservations,omitempty"`
35218
35219	// Warning: Informational warning which replaces the list of
35220	// reservations when the list is empty.
35221	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
35222
35223	// ForceSendFields is a list of field names (e.g. "Reservations") to
35224	// unconditionally include in API requests. By default, fields with
35225	// empty or default values are omitted from API requests. However, any
35226	// non-pointer, non-interface field appearing in ForceSendFields will be
35227	// sent to the server regardless of whether the field is empty or not.
35228	// This may be used to include empty fields in Patch requests.
35229	ForceSendFields []string `json:"-"`
35230
35231	// NullFields is a list of field names (e.g. "Reservations") to include
35232	// in API requests with the JSON null value. By default, fields with
35233	// empty values are omitted from API requests. However, any field with
35234	// an empty value appearing in NullFields will be sent to the server as
35235	// null. It is an error if a field in this list has a non-empty value.
35236	// This may be used to include null fields in Patch requests.
35237	NullFields []string `json:"-"`
35238}
35239
35240func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
35241	type NoMethod ReservationsScopedList
35242	raw := NoMethod(*s)
35243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35244}
35245
35246// ReservationsScopedListWarning: Informational warning which replaces
35247// the list of reservations when the list is empty.
35248type ReservationsScopedListWarning struct {
35249	// Code: [Output Only] A warning code, if applicable. For example,
35250	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35251	// the response.
35252	//
35253	// Possible values:
35254	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35255	// changes made by a failed operation.
35256	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35257	// created.
35258	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35259	// resources has a type marked as deprecated
35260	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35261	// that is larger than image size.
35262	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35263	// resources has a type marked as experimental
35264	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35265	// call
35266	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35267	// overridden. Deprecated unused field.
35268	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35269	// injected kernel, which is deprecated.
35270	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35271	// exceedingly large number of resources
35272	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35273	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35274	// not assigned to an instance on the network.
35275	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35276	// ip forward.
35277	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35278	// refers to an instance that does not exist.
35279	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35280	// URL refers to an instance that is not on the same network as the
35281	// route.
35282	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35283	// have a status of RUNNING.
35284	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35285	// continue the process despite the mentioned error.
35286	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35287	// page.
35288	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35289	// missing due to errors
35290	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35291	// that requires a TOS they have not accepted.
35292	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35293	// resource is in use.
35294	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35295	// auto-delete could not be deleted because they were in use.
35296	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35297	// ignored.
35298	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35299	// instance group manager is valid as such, but its application does not
35300	// make a lot of sense, because it allows only single instance in
35301	// instance group.
35302	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35303	// are present
35304	//   "UNREACHABLE" - A given scope cannot be reached.
35305	Code string `json:"code,omitempty"`
35306
35307	// Data: [Output Only] Metadata about this warning in key: value format.
35308	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35309	// }
35310	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
35311
35312	// Message: [Output Only] A human-readable description of the warning
35313	// code.
35314	Message string `json:"message,omitempty"`
35315
35316	// ForceSendFields is a list of field names (e.g. "Code") to
35317	// unconditionally include in API requests. By default, fields with
35318	// empty or default values are omitted from API requests. However, any
35319	// non-pointer, non-interface field appearing in ForceSendFields will be
35320	// sent to the server regardless of whether the field is empty or not.
35321	// This may be used to include empty fields in Patch requests.
35322	ForceSendFields []string `json:"-"`
35323
35324	// NullFields is a list of field names (e.g. "Code") to include in API
35325	// requests with the JSON null value. By default, fields with empty
35326	// values are omitted from API requests. However, any field with an
35327	// empty value appearing in NullFields will be sent to the server as
35328	// null. It is an error if a field in this list has a non-empty value.
35329	// This may be used to include null fields in Patch requests.
35330	NullFields []string `json:"-"`
35331}
35332
35333func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
35334	type NoMethod ReservationsScopedListWarning
35335	raw := NoMethod(*s)
35336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35337}
35338
35339type ReservationsScopedListWarningData struct {
35340	// Key: [Output Only] A key that provides more detail on the warning
35341	// being returned. For example, for warnings where there are no results
35342	// in a list request for a particular zone, this key might be scope and
35343	// the key value might be the zone name. Other examples might be a key
35344	// indicating a deprecated resource and a suggested replacement, or a
35345	// warning about invalid network settings (for example, if an instance
35346	// attempts to perform IP forwarding but is not enabled for IP
35347	// forwarding).
35348	Key string `json:"key,omitempty"`
35349
35350	// Value: [Output Only] A warning data value corresponding to the key.
35351	Value string `json:"value,omitempty"`
35352
35353	// ForceSendFields is a list of field names (e.g. "Key") to
35354	// unconditionally include in API requests. By default, fields with
35355	// empty or default values are omitted from API requests. However, any
35356	// non-pointer, non-interface field appearing in ForceSendFields will be
35357	// sent to the server regardless of whether the field is empty or not.
35358	// This may be used to include empty fields in Patch requests.
35359	ForceSendFields []string `json:"-"`
35360
35361	// NullFields is a list of field names (e.g. "Key") to include in API
35362	// requests with the JSON null value. By default, fields with empty
35363	// values are omitted from API requests. However, any field with an
35364	// empty value appearing in NullFields will be sent to the server as
35365	// null. It is an error if a field in this list has a non-empty value.
35366	// This may be used to include null fields in Patch requests.
35367	NullFields []string `json:"-"`
35368}
35369
35370func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
35371	type NoMethod ReservationsScopedListWarningData
35372	raw := NoMethod(*s)
35373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35374}
35375
35376// ResourceCommitment: Commitment for a particular resource (a
35377// Commitment is composed of one or more of these).
35378type ResourceCommitment struct {
35379	// AcceleratorType: Name of the accelerator type resource. Applicable
35380	// only when the type is ACCELERATOR.
35381	AcceleratorType string `json:"acceleratorType,omitempty"`
35382
35383	// Amount: The amount of the resource purchased (in a type-dependent
35384	// unit, such as bytes). For vCPUs, this can just be an integer. For
35385	// memory, this must be provided in MB. Memory must be a multiple of 256
35386	// MB, with up to 6.5GB of memory per every vCPU.
35387	Amount int64 `json:"amount,omitempty,string"`
35388
35389	// Type: Type of resource for which this commitment applies. Possible
35390	// values are VCPU and MEMORY
35391	//
35392	// Possible values:
35393	//   "ACCELERATOR"
35394	//   "LOCAL_SSD"
35395	//   "MEMORY"
35396	//   "UNSPECIFIED"
35397	//   "VCPU"
35398	Type string `json:"type,omitempty"`
35399
35400	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
35401	// unconditionally include in API requests. By default, fields with
35402	// empty or default values are omitted from API requests. However, any
35403	// non-pointer, non-interface field appearing in ForceSendFields will be
35404	// sent to the server regardless of whether the field is empty or not.
35405	// This may be used to include empty fields in Patch requests.
35406	ForceSendFields []string `json:"-"`
35407
35408	// NullFields is a list of field names (e.g. "AcceleratorType") to
35409	// include in API requests with the JSON null value. By default, fields
35410	// with empty values are omitted from API requests. However, any field
35411	// with an empty value appearing in NullFields will be sent to the
35412	// server as null. It is an error if a field in this list has a
35413	// non-empty value. This may be used to include null fields in Patch
35414	// requests.
35415	NullFields []string `json:"-"`
35416}
35417
35418func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
35419	type NoMethod ResourceCommitment
35420	raw := NoMethod(*s)
35421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35422}
35423
35424type ResourceGroupReference struct {
35425	// Group: A URI referencing one of the instance groups or network
35426	// endpoint groups listed in the backend service.
35427	Group string `json:"group,omitempty"`
35428
35429	// ForceSendFields is a list of field names (e.g. "Group") to
35430	// unconditionally include in API requests. By default, fields with
35431	// empty or default values are omitted from API requests. However, any
35432	// non-pointer, non-interface field appearing in ForceSendFields will be
35433	// sent to the server regardless of whether the field is empty or not.
35434	// This may be used to include empty fields in Patch requests.
35435	ForceSendFields []string `json:"-"`
35436
35437	// NullFields is a list of field names (e.g. "Group") to include in API
35438	// requests with the JSON null value. By default, fields with empty
35439	// values are omitted from API requests. However, any field with an
35440	// empty value appearing in NullFields will be sent to the server as
35441	// null. It is an error if a field in this list has a non-empty value.
35442	// This may be used to include null fields in Patch requests.
35443	NullFields []string `json:"-"`
35444}
35445
35446func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
35447	type NoMethod ResourceGroupReference
35448	raw := NoMethod(*s)
35449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35450}
35451
35452type ResourcePoliciesScopedList struct {
35453	// ResourcePolicies: A list of resourcePolicies contained in this scope.
35454	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
35455
35456	// Warning: Informational warning which replaces the list of
35457	// resourcePolicies when the list is empty.
35458	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
35459
35460	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
35461	// unconditionally include in API requests. By default, fields with
35462	// empty or default values are omitted from API requests. However, any
35463	// non-pointer, non-interface field appearing in ForceSendFields will be
35464	// sent to the server regardless of whether the field is empty or not.
35465	// This may be used to include empty fields in Patch requests.
35466	ForceSendFields []string `json:"-"`
35467
35468	// NullFields is a list of field names (e.g. "ResourcePolicies") to
35469	// include in API requests with the JSON null value. By default, fields
35470	// with empty values are omitted from API requests. However, any field
35471	// with an empty value appearing in NullFields will be sent to the
35472	// server as null. It is an error if a field in this list has a
35473	// non-empty value. This may be used to include null fields in Patch
35474	// requests.
35475	NullFields []string `json:"-"`
35476}
35477
35478func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
35479	type NoMethod ResourcePoliciesScopedList
35480	raw := NoMethod(*s)
35481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35482}
35483
35484// ResourcePoliciesScopedListWarning: Informational warning which
35485// replaces the list of resourcePolicies when the list is empty.
35486type ResourcePoliciesScopedListWarning struct {
35487	// Code: [Output Only] A warning code, if applicable. For example,
35488	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35489	// the response.
35490	//
35491	// Possible values:
35492	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35493	// changes made by a failed operation.
35494	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35495	// created.
35496	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35497	// resources has a type marked as deprecated
35498	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35499	// that is larger than image size.
35500	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35501	// resources has a type marked as experimental
35502	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35503	// call
35504	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35505	// overridden. Deprecated unused field.
35506	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35507	// injected kernel, which is deprecated.
35508	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35509	// exceedingly large number of resources
35510	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35511	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35512	// not assigned to an instance on the network.
35513	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35514	// ip forward.
35515	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35516	// refers to an instance that does not exist.
35517	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35518	// URL refers to an instance that is not on the same network as the
35519	// route.
35520	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35521	// have a status of RUNNING.
35522	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35523	// continue the process despite the mentioned error.
35524	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35525	// page.
35526	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35527	// missing due to errors
35528	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35529	// that requires a TOS they have not accepted.
35530	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35531	// resource is in use.
35532	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35533	// auto-delete could not be deleted because they were in use.
35534	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35535	// ignored.
35536	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35537	// instance group manager is valid as such, but its application does not
35538	// make a lot of sense, because it allows only single instance in
35539	// instance group.
35540	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35541	// are present
35542	//   "UNREACHABLE" - A given scope cannot be reached.
35543	Code string `json:"code,omitempty"`
35544
35545	// Data: [Output Only] Metadata about this warning in key: value format.
35546	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35547	// }
35548	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
35549
35550	// Message: [Output Only] A human-readable description of the warning
35551	// code.
35552	Message string `json:"message,omitempty"`
35553
35554	// ForceSendFields is a list of field names (e.g. "Code") to
35555	// unconditionally include in API requests. By default, fields with
35556	// empty or default values are omitted from API requests. However, any
35557	// non-pointer, non-interface field appearing in ForceSendFields will be
35558	// sent to the server regardless of whether the field is empty or not.
35559	// This may be used to include empty fields in Patch requests.
35560	ForceSendFields []string `json:"-"`
35561
35562	// NullFields is a list of field names (e.g. "Code") to include in API
35563	// requests with the JSON null value. By default, fields with empty
35564	// values are omitted from API requests. However, any field with an
35565	// empty value appearing in NullFields will be sent to the server as
35566	// null. It is an error if a field in this list has a non-empty value.
35567	// This may be used to include null fields in Patch requests.
35568	NullFields []string `json:"-"`
35569}
35570
35571func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
35572	type NoMethod ResourcePoliciesScopedListWarning
35573	raw := NoMethod(*s)
35574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35575}
35576
35577type ResourcePoliciesScopedListWarningData struct {
35578	// Key: [Output Only] A key that provides more detail on the warning
35579	// being returned. For example, for warnings where there are no results
35580	// in a list request for a particular zone, this key might be scope and
35581	// the key value might be the zone name. Other examples might be a key
35582	// indicating a deprecated resource and a suggested replacement, or a
35583	// warning about invalid network settings (for example, if an instance
35584	// attempts to perform IP forwarding but is not enabled for IP
35585	// forwarding).
35586	Key string `json:"key,omitempty"`
35587
35588	// Value: [Output Only] A warning data value corresponding to the key.
35589	Value string `json:"value,omitempty"`
35590
35591	// ForceSendFields is a list of field names (e.g. "Key") to
35592	// unconditionally include in API requests. By default, fields with
35593	// empty or default values are omitted from API requests. However, any
35594	// non-pointer, non-interface field appearing in ForceSendFields will be
35595	// sent to the server regardless of whether the field is empty or not.
35596	// This may be used to include empty fields in Patch requests.
35597	ForceSendFields []string `json:"-"`
35598
35599	// NullFields is a list of field names (e.g. "Key") to include in API
35600	// requests with the JSON null value. By default, fields with empty
35601	// values are omitted from API requests. However, any field with an
35602	// empty value appearing in NullFields will be sent to the server as
35603	// null. It is an error if a field in this list has a non-empty value.
35604	// This may be used to include null fields in Patch requests.
35605	NullFields []string `json:"-"`
35606}
35607
35608func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
35609	type NoMethod ResourcePoliciesScopedListWarningData
35610	raw := NoMethod(*s)
35611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35612}
35613
35614// ResourcePolicy: Represents a Resource Policy resource. You can use
35615// resource policies to schedule actions for some Compute Engine
35616// resources. For example, you can use them to schedule persistent disk
35617// snapshots.
35618type ResourcePolicy struct {
35619	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35620	// format.
35621	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35622
35623	Description string `json:"description,omitempty"`
35624
35625	// GroupPlacementPolicy: Resource policy for instances for placement
35626	// configuration.
35627	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
35628
35629	// Id: [Output Only] The unique identifier for the resource. This
35630	// identifier is defined by the server.
35631	Id uint64 `json:"id,omitempty,string"`
35632
35633	// InstanceSchedulePolicy: Resource policy for scheduling instance
35634	// operations.
35635	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
35636
35637	// Kind: [Output Only] Type of the resource. Always
35638	// compute#resource_policies for resource policies.
35639	Kind string `json:"kind,omitempty"`
35640
35641	// Name: The name of the resource, provided by the client when initially
35642	// creating the resource. The resource name must be 1-63 characters
35643	// long, and comply with RFC1035. Specifically, the name must be 1-63
35644	// characters long and match the regular expression
35645	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35646	// a lowercase letter, and all following characters must be a dash,
35647	// lowercase letter, or digit, except the last character, which cannot
35648	// be a dash.
35649	Name string `json:"name,omitempty"`
35650
35651	Region string `json:"region,omitempty"`
35652
35653	// ResourceStatus: [Output Only] The system status of the resource
35654	// policy.
35655	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
35656
35657	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
35658	// resource.
35659	SelfLink string `json:"selfLink,omitempty"`
35660
35661	// SnapshotSchedulePolicy: Resource policy for persistent disks for
35662	// creating snapshots.
35663	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
35664
35665	// Status: [Output Only] The status of resource policy creation.
35666	//
35667	// Possible values:
35668	//   "CREATING" - Resource policy is being created.
35669	//   "DELETING" - Resource policy is being deleted.
35670	//   "EXPIRED" - Resource policy is expired and will not run again.
35671	//   "INVALID"
35672	//   "READY" - Resource policy is ready to be used.
35673	Status string `json:"status,omitempty"`
35674
35675	// ServerResponse contains the HTTP response code and headers from the
35676	// server.
35677	googleapi.ServerResponse `json:"-"`
35678
35679	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35680	// to unconditionally include in API requests. By default, fields with
35681	// empty or default values are omitted from API requests. However, any
35682	// non-pointer, non-interface field appearing in ForceSendFields will be
35683	// sent to the server regardless of whether the field is empty or not.
35684	// This may be used to include empty fields in Patch requests.
35685	ForceSendFields []string `json:"-"`
35686
35687	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35688	// include in API requests with the JSON null value. By default, fields
35689	// with empty values are omitted from API requests. However, any field
35690	// with an empty value appearing in NullFields will be sent to the
35691	// server as null. It is an error if a field in this list has a
35692	// non-empty value. This may be used to include null fields in Patch
35693	// requests.
35694	NullFields []string `json:"-"`
35695}
35696
35697func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
35698	type NoMethod ResourcePolicy
35699	raw := NoMethod(*s)
35700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35701}
35702
35703// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
35704type ResourcePolicyAggregatedList struct {
35705	Etag string `json:"etag,omitempty"`
35706
35707	// Id: [Output Only] Unique identifier for the resource; defined by the
35708	// server.
35709	Id string `json:"id,omitempty"`
35710
35711	// Items: A list of ResourcePolicy resources.
35712	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
35713
35714	// Kind: Type of resource.
35715	Kind string `json:"kind,omitempty"`
35716
35717	// NextPageToken: [Output Only] This token allows you to get the next
35718	// page of results for list requests. If the number of results is larger
35719	// than maxResults, use the nextPageToken as a value for the query
35720	// parameter pageToken in the next list request. Subsequent list
35721	// requests will have their own nextPageToken to continue paging through
35722	// the results.
35723	NextPageToken string `json:"nextPageToken,omitempty"`
35724
35725	// SelfLink: [Output Only] Server-defined URL for this resource.
35726	SelfLink string `json:"selfLink,omitempty"`
35727
35728	// Unreachables: [Output Only] Unreachable resources.
35729	Unreachables []string `json:"unreachables,omitempty"`
35730
35731	// Warning: [Output Only] Informational warning message.
35732	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
35733
35734	// ServerResponse contains the HTTP response code and headers from the
35735	// server.
35736	googleapi.ServerResponse `json:"-"`
35737
35738	// ForceSendFields is a list of field names (e.g. "Etag") to
35739	// unconditionally include in API requests. By default, fields with
35740	// empty or default values are omitted from API requests. However, any
35741	// non-pointer, non-interface field appearing in ForceSendFields will be
35742	// sent to the server regardless of whether the field is empty or not.
35743	// This may be used to include empty fields in Patch requests.
35744	ForceSendFields []string `json:"-"`
35745
35746	// NullFields is a list of field names (e.g. "Etag") to include in API
35747	// requests with the JSON null value. By default, fields with empty
35748	// values are omitted from API requests. However, any field with an
35749	// empty value appearing in NullFields will be sent to the server as
35750	// null. It is an error if a field in this list has a non-empty value.
35751	// This may be used to include null fields in Patch requests.
35752	NullFields []string `json:"-"`
35753}
35754
35755func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
35756	type NoMethod ResourcePolicyAggregatedList
35757	raw := NoMethod(*s)
35758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35759}
35760
35761// ResourcePolicyAggregatedListWarning: [Output Only] Informational
35762// warning message.
35763type ResourcePolicyAggregatedListWarning struct {
35764	// Code: [Output Only] A warning code, if applicable. For example,
35765	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35766	// the response.
35767	//
35768	// Possible values:
35769	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35770	// changes made by a failed operation.
35771	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35772	// created.
35773	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35774	// resources has a type marked as deprecated
35775	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35776	// that is larger than image size.
35777	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35778	// resources has a type marked as experimental
35779	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35780	// call
35781	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35782	// overridden. Deprecated unused field.
35783	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35784	// injected kernel, which is deprecated.
35785	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35786	// exceedingly large number of resources
35787	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35788	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35789	// not assigned to an instance on the network.
35790	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35791	// ip forward.
35792	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35793	// refers to an instance that does not exist.
35794	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35795	// URL refers to an instance that is not on the same network as the
35796	// route.
35797	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35798	// have a status of RUNNING.
35799	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35800	// continue the process despite the mentioned error.
35801	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35802	// page.
35803	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35804	// missing due to errors
35805	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35806	// that requires a TOS they have not accepted.
35807	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35808	// resource is in use.
35809	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35810	// auto-delete could not be deleted because they were in use.
35811	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35812	// ignored.
35813	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35814	// instance group manager is valid as such, but its application does not
35815	// make a lot of sense, because it allows only single instance in
35816	// instance group.
35817	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35818	// are present
35819	//   "UNREACHABLE" - A given scope cannot be reached.
35820	Code string `json:"code,omitempty"`
35821
35822	// Data: [Output Only] Metadata about this warning in key: value format.
35823	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35824	// }
35825	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
35826
35827	// Message: [Output Only] A human-readable description of the warning
35828	// code.
35829	Message string `json:"message,omitempty"`
35830
35831	// ForceSendFields is a list of field names (e.g. "Code") to
35832	// unconditionally include in API requests. By default, fields with
35833	// empty or default values are omitted from API requests. However, any
35834	// non-pointer, non-interface field appearing in ForceSendFields will be
35835	// sent to the server regardless of whether the field is empty or not.
35836	// This may be used to include empty fields in Patch requests.
35837	ForceSendFields []string `json:"-"`
35838
35839	// NullFields is a list of field names (e.g. "Code") to include in API
35840	// requests with the JSON null value. By default, fields with empty
35841	// values are omitted from API requests. However, any field with an
35842	// empty value appearing in NullFields will be sent to the server as
35843	// null. It is an error if a field in this list has a non-empty value.
35844	// This may be used to include null fields in Patch requests.
35845	NullFields []string `json:"-"`
35846}
35847
35848func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
35849	type NoMethod ResourcePolicyAggregatedListWarning
35850	raw := NoMethod(*s)
35851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35852}
35853
35854type ResourcePolicyAggregatedListWarningData struct {
35855	// Key: [Output Only] A key that provides more detail on the warning
35856	// being returned. For example, for warnings where there are no results
35857	// in a list request for a particular zone, this key might be scope and
35858	// the key value might be the zone name. Other examples might be a key
35859	// indicating a deprecated resource and a suggested replacement, or a
35860	// warning about invalid network settings (for example, if an instance
35861	// attempts to perform IP forwarding but is not enabled for IP
35862	// forwarding).
35863	Key string `json:"key,omitempty"`
35864
35865	// Value: [Output Only] A warning data value corresponding to the key.
35866	Value string `json:"value,omitempty"`
35867
35868	// ForceSendFields is a list of field names (e.g. "Key") to
35869	// unconditionally include in API requests. By default, fields with
35870	// empty or default values are omitted from API requests. However, any
35871	// non-pointer, non-interface field appearing in ForceSendFields will be
35872	// sent to the server regardless of whether the field is empty or not.
35873	// This may be used to include empty fields in Patch requests.
35874	ForceSendFields []string `json:"-"`
35875
35876	// NullFields is a list of field names (e.g. "Key") to include in API
35877	// requests with the JSON null value. By default, fields with empty
35878	// values are omitted from API requests. However, any field with an
35879	// empty value appearing in NullFields will be sent to the server as
35880	// null. It is an error if a field in this list has a non-empty value.
35881	// This may be used to include null fields in Patch requests.
35882	NullFields []string `json:"-"`
35883}
35884
35885func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35886	type NoMethod ResourcePolicyAggregatedListWarningData
35887	raw := NoMethod(*s)
35888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35889}
35890
35891// ResourcePolicyDailyCycle: Time window specified for daily operations.
35892type ResourcePolicyDailyCycle struct {
35893	// DaysInCycle: Defines a schedule with units measured in months. The
35894	// value determines how many months pass between the start of each
35895	// cycle.
35896	DaysInCycle int64 `json:"daysInCycle,omitempty"`
35897
35898	// Duration: [Output only] A predetermined duration for the window,
35899	// automatically chosen to be the smallest possible in the given
35900	// scenario.
35901	Duration string `json:"duration,omitempty"`
35902
35903	// StartTime: Start time of the window. This must be in UTC format that
35904	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
35905	// example, both 13:00-5 and 08:00 are valid.
35906	StartTime string `json:"startTime,omitempty"`
35907
35908	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
35909	// unconditionally include in API requests. By default, fields with
35910	// empty or default values are omitted from API requests. However, any
35911	// non-pointer, non-interface field appearing in ForceSendFields will be
35912	// sent to the server regardless of whether the field is empty or not.
35913	// This may be used to include empty fields in Patch requests.
35914	ForceSendFields []string `json:"-"`
35915
35916	// NullFields is a list of field names (e.g. "DaysInCycle") to include
35917	// in API requests with the JSON null value. By default, fields with
35918	// empty values are omitted from API requests. However, any field with
35919	// an empty value appearing in NullFields will be sent to the server as
35920	// null. It is an error if a field in this list has a non-empty value.
35921	// This may be used to include null fields in Patch requests.
35922	NullFields []string `json:"-"`
35923}
35924
35925func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
35926	type NoMethod ResourcePolicyDailyCycle
35927	raw := NoMethod(*s)
35928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35929}
35930
35931// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
35932// resource placement configuration. It specifies the failure bucket
35933// separation as well as network locality
35934type ResourcePolicyGroupPlacementPolicy struct {
35935	// AvailabilityDomainCount: The number of availability domains instances
35936	// will be spread across. If two instances are in different availability
35937	// domain, they will not be put in the same low latency network
35938	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
35939
35940	// Collocation: Specifies network collocation
35941	//
35942	// Possible values:
35943	//   "COLLOCATED"
35944	//   "UNSPECIFIED_COLLOCATION"
35945	Collocation string `json:"collocation,omitempty"`
35946
35947	// VmCount: Number of vms in this placement group
35948	VmCount int64 `json:"vmCount,omitempty"`
35949
35950	// ForceSendFields is a list of field names (e.g.
35951	// "AvailabilityDomainCount") to unconditionally include in API
35952	// requests. By default, fields with empty or default values are omitted
35953	// from API requests. However, any non-pointer, non-interface field
35954	// appearing in ForceSendFields will be sent to the server regardless of
35955	// whether the field is empty or not. This may be used to include empty
35956	// fields in Patch requests.
35957	ForceSendFields []string `json:"-"`
35958
35959	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
35960	// to include in API requests with the JSON null value. By default,
35961	// fields with empty values are omitted from API requests. However, any
35962	// field with an empty value appearing in NullFields will be sent to the
35963	// server as null. It is an error if a field in this list has a
35964	// non-empty value. This may be used to include null fields in Patch
35965	// requests.
35966	NullFields []string `json:"-"`
35967}
35968
35969func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
35970	type NoMethod ResourcePolicyGroupPlacementPolicy
35971	raw := NoMethod(*s)
35972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35973}
35974
35975// ResourcePolicyHourlyCycle: Time window specified for hourly
35976// operations.
35977type ResourcePolicyHourlyCycle struct {
35978	// Duration: [Output only] Duration of the time window, automatically
35979	// chosen to be smallest possible in the given scenario.
35980	Duration string `json:"duration,omitempty"`
35981
35982	// HoursInCycle: Defines a schedule with units measured in hours. The
35983	// value determines how many hours pass between the start of each cycle.
35984	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
35985
35986	// StartTime: Time within the window to start the operations. It must be
35987	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35988	StartTime string `json:"startTime,omitempty"`
35989
35990	// ForceSendFields is a list of field names (e.g. "Duration") to
35991	// unconditionally include in API requests. By default, fields with
35992	// empty or default values are omitted from API requests. However, any
35993	// non-pointer, non-interface field appearing in ForceSendFields will be
35994	// sent to the server regardless of whether the field is empty or not.
35995	// This may be used to include empty fields in Patch requests.
35996	ForceSendFields []string `json:"-"`
35997
35998	// NullFields is a list of field names (e.g. "Duration") to include in
35999	// API requests with the JSON null value. By default, fields with empty
36000	// values are omitted from API requests. However, any field with an
36001	// empty value appearing in NullFields will be sent to the server as
36002	// null. It is an error if a field in this list has a non-empty value.
36003	// This may be used to include null fields in Patch requests.
36004	NullFields []string `json:"-"`
36005}
36006
36007func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
36008	type NoMethod ResourcePolicyHourlyCycle
36009	raw := NoMethod(*s)
36010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36011}
36012
36013// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy
36014// specifies when and how frequent certain operations are performed on
36015// the instance.
36016type ResourcePolicyInstanceSchedulePolicy struct {
36017	// ExpirationTime: The expiration time of the schedule. The timestamp is
36018	// an RFC3339 string.
36019	ExpirationTime string `json:"expirationTime,omitempty"`
36020
36021	// StartTime: The start time of the schedule. The timestamp is an
36022	// RFC3339 string.
36023	StartTime string `json:"startTime,omitempty"`
36024
36025	// TimeZone: Specifies the time zone to be used in interpreting
36026	// Schedule.schedule. The value of this field must be a time zone name
36027	// from the tz database: http://en.wikipedia.org/wiki/Tz_database.
36028	TimeZone string `json:"timeZone,omitempty"`
36029
36030	// VmStartSchedule: Specifies the schedule for starting instances.
36031	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
36032
36033	// VmStopSchedule: Specifies the schedule for stopping instances.
36034	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
36035
36036	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
36037	// unconditionally include in API requests. By default, fields with
36038	// empty or default values are omitted from API requests. However, any
36039	// non-pointer, non-interface field appearing in ForceSendFields will be
36040	// sent to the server regardless of whether the field is empty or not.
36041	// This may be used to include empty fields in Patch requests.
36042	ForceSendFields []string `json:"-"`
36043
36044	// NullFields is a list of field names (e.g. "ExpirationTime") to
36045	// include in API requests with the JSON null value. By default, fields
36046	// with empty values are omitted from API requests. However, any field
36047	// with an empty value appearing in NullFields will be sent to the
36048	// server as null. It is an error if a field in this list has a
36049	// non-empty value. This may be used to include null fields in Patch
36050	// requests.
36051	NullFields []string `json:"-"`
36052}
36053
36054func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
36055	type NoMethod ResourcePolicyInstanceSchedulePolicy
36056	raw := NoMethod(*s)
36057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36058}
36059
36060// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an
36061// instance operation.
36062type ResourcePolicyInstanceSchedulePolicySchedule struct {
36063	// Schedule: Specifies the frequency for the operation, using the
36064	// unix-cron format.
36065	Schedule string `json:"schedule,omitempty"`
36066
36067	// ForceSendFields is a list of field names (e.g. "Schedule") to
36068	// unconditionally include in API requests. By default, fields with
36069	// empty or default values are omitted from API requests. However, any
36070	// non-pointer, non-interface field appearing in ForceSendFields will be
36071	// sent to the server regardless of whether the field is empty or not.
36072	// This may be used to include empty fields in Patch requests.
36073	ForceSendFields []string `json:"-"`
36074
36075	// NullFields is a list of field names (e.g. "Schedule") to include in
36076	// API requests with the JSON null value. By default, fields with empty
36077	// values are omitted from API requests. However, any field with an
36078	// empty value appearing in NullFields will be sent to the server as
36079	// null. It is an error if a field in this list has a non-empty value.
36080	// This may be used to include null fields in Patch requests.
36081	NullFields []string `json:"-"`
36082}
36083
36084func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
36085	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
36086	raw := NoMethod(*s)
36087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36088}
36089
36090type ResourcePolicyList struct {
36091	Etag string `json:"etag,omitempty"`
36092
36093	// Id: [Output Only] The unique identifier for the resource. This
36094	// identifier is defined by the server.
36095	Id string `json:"id,omitempty"`
36096
36097	// Items: [Output Only] A list of ResourcePolicy resources.
36098	Items []*ResourcePolicy `json:"items,omitempty"`
36099
36100	// Kind: [Output Only] Type of resource.Always
36101	// compute#resourcePoliciesList for listsof resourcePolicies
36102	Kind string `json:"kind,omitempty"`
36103
36104	// NextPageToken: [Output Only] This token allows you to get the next
36105	// page of results for list requests. If the number of results is larger
36106	// than maxResults, use the nextPageToken as a value for the query
36107	// parameter pageToken in the next list request. Subsequent list
36108	// requests will have their own nextPageToken to continue paging through
36109	// the results.
36110	NextPageToken string `json:"nextPageToken,omitempty"`
36111
36112	// SelfLink: [Output Only] Server-defined URL for this resource.
36113	SelfLink string `json:"selfLink,omitempty"`
36114
36115	// Warning: [Output Only] Informational warning message.
36116	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
36117
36118	// ServerResponse contains the HTTP response code and headers from the
36119	// server.
36120	googleapi.ServerResponse `json:"-"`
36121
36122	// ForceSendFields is a list of field names (e.g. "Etag") to
36123	// unconditionally include in API requests. By default, fields with
36124	// empty or default values are omitted from API requests. However, any
36125	// non-pointer, non-interface field appearing in ForceSendFields will be
36126	// sent to the server regardless of whether the field is empty or not.
36127	// This may be used to include empty fields in Patch requests.
36128	ForceSendFields []string `json:"-"`
36129
36130	// NullFields is a list of field names (e.g. "Etag") to include in API
36131	// requests with the JSON null value. By default, fields with empty
36132	// values are omitted from API requests. However, any field with an
36133	// empty value appearing in NullFields will be sent to the server as
36134	// null. It is an error if a field in this list has a non-empty value.
36135	// This may be used to include null fields in Patch requests.
36136	NullFields []string `json:"-"`
36137}
36138
36139func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
36140	type NoMethod ResourcePolicyList
36141	raw := NoMethod(*s)
36142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36143}
36144
36145// ResourcePolicyListWarning: [Output Only] Informational warning
36146// message.
36147type ResourcePolicyListWarning struct {
36148	// Code: [Output Only] A warning code, if applicable. For example,
36149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36150	// the response.
36151	//
36152	// Possible values:
36153	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36154	// changes made by a failed operation.
36155	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36156	// created.
36157	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36158	// resources has a type marked as deprecated
36159	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36160	// that is larger than image size.
36161	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36162	// resources has a type marked as experimental
36163	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36164	// call
36165	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36166	// overridden. Deprecated unused field.
36167	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36168	// injected kernel, which is deprecated.
36169	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36170	// exceedingly large number of resources
36171	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
36172	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
36173	// not assigned to an instance on the network.
36174	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
36175	// ip forward.
36176	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
36177	// refers to an instance that does not exist.
36178	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
36179	// URL refers to an instance that is not on the same network as the
36180	// route.
36181	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
36182	// have a status of RUNNING.
36183	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
36184	// continue the process despite the mentioned error.
36185	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
36186	// page.
36187	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
36188	// missing due to errors
36189	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
36190	// that requires a TOS they have not accepted.
36191	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
36192	// resource is in use.
36193	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
36194	// auto-delete could not be deleted because they were in use.
36195	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
36196	// ignored.
36197	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
36198	// instance group manager is valid as such, but its application does not
36199	// make a lot of sense, because it allows only single instance in
36200	// instance group.
36201	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
36202	// are present
36203	//   "UNREACHABLE" - A given scope cannot be reached.
36204	Code string `json:"code,omitempty"`
36205
36206	// Data: [Output Only] Metadata about this warning in key: value format.
36207	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
36208	// }
36209	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
36210
36211	// Message: [Output Only] A human-readable description of the warning
36212	// code.
36213	Message string `json:"message,omitempty"`
36214
36215	// ForceSendFields is a list of field names (e.g. "Code") to
36216	// unconditionally include in API requests. By default, fields with
36217	// empty or default values are omitted from API requests. However, any
36218	// non-pointer, non-interface field appearing in ForceSendFields will be
36219	// sent to the server regardless of whether the field is empty or not.
36220	// This may be used to include empty fields in Patch requests.
36221	ForceSendFields []string `json:"-"`
36222
36223	// NullFields is a list of field names (e.g. "Code") to include in API
36224	// requests with the JSON null value. By default, fields with empty
36225	// values are omitted from API requests. However, any field with an
36226	// empty value appearing in NullFields will be sent to the server as
36227	// null. It is an error if a field in this list has a non-empty value.
36228	// This may be used to include null fields in Patch requests.
36229	NullFields []string `json:"-"`
36230}
36231
36232func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
36233	type NoMethod ResourcePolicyListWarning
36234	raw := NoMethod(*s)
36235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36236}
36237
36238type ResourcePolicyListWarningData struct {
36239	// Key: [Output Only] A key that provides more detail on the warning
36240	// being returned. For example, for warnings where there are no results
36241	// in a list request for a particular zone, this key might be scope and
36242	// the key value might be the zone name. Other examples might be a key
36243	// indicating a deprecated resource and a suggested replacement, or a
36244	// warning about invalid network settings (for example, if an instance
36245	// attempts to perform IP forwarding but is not enabled for IP
36246	// forwarding).
36247	Key string `json:"key,omitempty"`
36248
36249	// Value: [Output Only] A warning data value corresponding to the key.
36250	Value string `json:"value,omitempty"`
36251
36252	// ForceSendFields is a list of field names (e.g. "Key") to
36253	// unconditionally include in API requests. By default, fields with
36254	// empty or default values are omitted from API requests. However, any
36255	// non-pointer, non-interface field appearing in ForceSendFields will be
36256	// sent to the server regardless of whether the field is empty or not.
36257	// This may be used to include empty fields in Patch requests.
36258	ForceSendFields []string `json:"-"`
36259
36260	// NullFields is a list of field names (e.g. "Key") to include in API
36261	// requests with the JSON null value. By default, fields with empty
36262	// values are omitted from API requests. However, any field with an
36263	// empty value appearing in NullFields will be sent to the server as
36264	// null. It is an error if a field in this list has a non-empty value.
36265	// This may be used to include null fields in Patch requests.
36266	NullFields []string `json:"-"`
36267}
36268
36269func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
36270	type NoMethod ResourcePolicyListWarningData
36271	raw := NoMethod(*s)
36272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36273}
36274
36275// ResourcePolicyResourceStatus: Contains output only fields. Use this
36276// sub-message for all output fields set on ResourcePolicy. The internal
36277// structure of this "status" field should mimic the structure of
36278// ResourcePolicy proto specification.
36279type ResourcePolicyResourceStatus struct {
36280	// InstanceSchedulePolicy: [Output Only] Specifies a set of output
36281	// values reffering to the instance_schedule_policy system status. This
36282	// field should have the same name as corresponding policy field.
36283	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
36284
36285	// ForceSendFields is a list of field names (e.g.
36286	// "InstanceSchedulePolicy") to unconditionally include in API requests.
36287	// By default, fields with empty or default values are omitted from API
36288	// requests. However, any non-pointer, non-interface field appearing in
36289	// ForceSendFields will be sent to the server regardless of whether the
36290	// field is empty or not. This may be used to include empty fields in
36291	// Patch requests.
36292	ForceSendFields []string `json:"-"`
36293
36294	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy")
36295	// to include in API requests with the JSON null value. By default,
36296	// fields with empty values are omitted from API requests. However, any
36297	// field with an empty value appearing in NullFields will be sent to the
36298	// server as null. It is an error if a field in this list has a
36299	// non-empty value. This may be used to include null fields in Patch
36300	// requests.
36301	NullFields []string `json:"-"`
36302}
36303
36304func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
36305	type NoMethod ResourcePolicyResourceStatus
36306	raw := NoMethod(*s)
36307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36308}
36309
36310type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
36311	// LastRunStartTime: [Output Only] The last time the schedule
36312	// successfully ran. The timestamp is an RFC3339 string.
36313	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
36314
36315	// NextRunStartTime: [Output Only] The next time the schedule is planned
36316	// to run. The actual time might be slightly different. The timestamp is
36317	// an RFC3339 string.
36318	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
36319
36320	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
36321	// unconditionally include in API requests. By default, fields with
36322	// empty or default values are omitted from API requests. However, any
36323	// non-pointer, non-interface field appearing in ForceSendFields will be
36324	// sent to the server regardless of whether the field is empty or not.
36325	// This may be used to include empty fields in Patch requests.
36326	ForceSendFields []string `json:"-"`
36327
36328	// NullFields is a list of field names (e.g. "LastRunStartTime") to
36329	// include in API requests with the JSON null value. By default, fields
36330	// with empty values are omitted from API requests. However, any field
36331	// with an empty value appearing in NullFields will be sent to the
36332	// server as null. It is an error if a field in this list has a
36333	// non-empty value. This may be used to include null fields in Patch
36334	// requests.
36335	NullFields []string `json:"-"`
36336}
36337
36338func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
36339	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
36340	raw := NoMethod(*s)
36341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36342}
36343
36344// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
36345// specifies when and how frequently snapshots are to be created for the
36346// target disk. Also specifies how many and how long these scheduled
36347// snapshots should be retained.
36348type ResourcePolicySnapshotSchedulePolicy struct {
36349	// RetentionPolicy: Retention policy applied to snapshots created by
36350	// this resource policy.
36351	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
36352
36353	// Schedule: A Vm Maintenance Policy specifies what kind of
36354	// infrastructure maintenance we are allowed to perform on this VM and
36355	// when. Schedule that is applied to disks covered by this policy.
36356	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
36357
36358	// SnapshotProperties: Properties with which snapshots are created such
36359	// as labels, encryption keys.
36360	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
36361
36362	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
36363	// unconditionally include in API requests. By default, fields with
36364	// empty or default values are omitted from API requests. However, any
36365	// non-pointer, non-interface field appearing in ForceSendFields will be
36366	// sent to the server regardless of whether the field is empty or not.
36367	// This may be used to include empty fields in Patch requests.
36368	ForceSendFields []string `json:"-"`
36369
36370	// NullFields is a list of field names (e.g. "RetentionPolicy") to
36371	// include in API requests with the JSON null value. By default, fields
36372	// with empty values are omitted from API requests. However, any field
36373	// with an empty value appearing in NullFields will be sent to the
36374	// server as null. It is an error if a field in this list has a
36375	// non-empty value. This may be used to include null fields in Patch
36376	// requests.
36377	NullFields []string `json:"-"`
36378}
36379
36380func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
36381	type NoMethod ResourcePolicySnapshotSchedulePolicy
36382	raw := NoMethod(*s)
36383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36384}
36385
36386// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
36387// retention of scheduled snapshots.
36388type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
36389	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
36390	// kept.
36391	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
36392
36393	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
36394	// snapshots when the source disk is deleted.
36395	//
36396	// Possible values:
36397	//   "APPLY_RETENTION_POLICY"
36398	//   "KEEP_AUTO_SNAPSHOTS"
36399	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
36400	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
36401
36402	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
36403	// unconditionally include in API requests. By default, fields with
36404	// empty or default values are omitted from API requests. However, any
36405	// non-pointer, non-interface field appearing in ForceSendFields will be
36406	// sent to the server regardless of whether the field is empty or not.
36407	// This may be used to include empty fields in Patch requests.
36408	ForceSendFields []string `json:"-"`
36409
36410	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
36411	// include in API requests with the JSON null value. By default, fields
36412	// with empty values are omitted from API requests. However, any field
36413	// with an empty value appearing in NullFields will be sent to the
36414	// server as null. It is an error if a field in this list has a
36415	// non-empty value. This may be used to include null fields in Patch
36416	// requests.
36417	NullFields []string `json:"-"`
36418}
36419
36420func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
36421	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
36422	raw := NoMethod(*s)
36423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36424}
36425
36426// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
36427// where the schedueled operations are performed.
36428type ResourcePolicySnapshotSchedulePolicySchedule struct {
36429	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
36430
36431	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
36432
36433	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
36434
36435	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
36436	// unconditionally include in API requests. By default, fields with
36437	// empty or default values are omitted from API requests. However, any
36438	// non-pointer, non-interface field appearing in ForceSendFields will be
36439	// sent to the server regardless of whether the field is empty or not.
36440	// This may be used to include empty fields in Patch requests.
36441	ForceSendFields []string `json:"-"`
36442
36443	// NullFields is a list of field names (e.g. "DailySchedule") to include
36444	// in API requests with the JSON null value. By default, fields with
36445	// empty values are omitted from API requests. However, any field with
36446	// an empty value appearing in NullFields will be sent to the server as
36447	// null. It is an error if a field in this list has a non-empty value.
36448	// This may be used to include null fields in Patch requests.
36449	NullFields []string `json:"-"`
36450}
36451
36452func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
36453	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
36454	raw := NoMethod(*s)
36455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36456}
36457
36458// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
36459// snapshot properties for scheduled snapshots created by this policy.
36460type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
36461	// ChainName: Chain name that the snapshot is created in.
36462	ChainName string `json:"chainName,omitempty"`
36463
36464	// GuestFlush: Indication to perform a 'guest aware' snapshot.
36465	GuestFlush bool `json:"guestFlush,omitempty"`
36466
36467	// Labels: Labels to apply to scheduled snapshots. These can be later
36468	// modified by the setLabels method. Label values may be empty.
36469	Labels map[string]string `json:"labels,omitempty"`
36470
36471	// StorageLocations: Cloud Storage bucket storage location of the auto
36472	// snapshot (regional or multi-regional).
36473	StorageLocations []string `json:"storageLocations,omitempty"`
36474
36475	// ForceSendFields is a list of field names (e.g. "ChainName") to
36476	// unconditionally include in API requests. By default, fields with
36477	// empty or default values are omitted from API requests. However, any
36478	// non-pointer, non-interface field appearing in ForceSendFields will be
36479	// sent to the server regardless of whether the field is empty or not.
36480	// This may be used to include empty fields in Patch requests.
36481	ForceSendFields []string `json:"-"`
36482
36483	// NullFields is a list of field names (e.g. "ChainName") to include in
36484	// API requests with the JSON null value. By default, fields with empty
36485	// values are omitted from API requests. However, any field with an
36486	// empty value appearing in NullFields will be sent to the server as
36487	// null. It is an error if a field in this list has a non-empty value.
36488	// This may be used to include null fields in Patch requests.
36489	NullFields []string `json:"-"`
36490}
36491
36492func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
36493	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
36494	raw := NoMethod(*s)
36495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36496}
36497
36498// ResourcePolicyWeeklyCycle: Time window specified for weekly
36499// operations.
36500type ResourcePolicyWeeklyCycle struct {
36501	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
36502	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
36503
36504	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
36505	// unconditionally include in API requests. By default, fields with
36506	// empty or default values are omitted from API requests. However, any
36507	// non-pointer, non-interface field appearing in ForceSendFields will be
36508	// sent to the server regardless of whether the field is empty or not.
36509	// This may be used to include empty fields in Patch requests.
36510	ForceSendFields []string `json:"-"`
36511
36512	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
36513	// API requests with the JSON null value. By default, fields with empty
36514	// values are omitted from API requests. However, any field with an
36515	// empty value appearing in NullFields will be sent to the server as
36516	// null. It is an error if a field in this list has a non-empty value.
36517	// This may be used to include null fields in Patch requests.
36518	NullFields []string `json:"-"`
36519}
36520
36521func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
36522	type NoMethod ResourcePolicyWeeklyCycle
36523	raw := NoMethod(*s)
36524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36525}
36526
36527type ResourcePolicyWeeklyCycleDayOfWeek struct {
36528	// Day: Defines a schedule that runs on specific days of the week.
36529	// Specify one or more days. The following options are available:
36530	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
36531	//
36532	// Possible values:
36533	//   "FRIDAY"
36534	//   "INVALID"
36535	//   "MONDAY"
36536	//   "SATURDAY"
36537	//   "SUNDAY"
36538	//   "THURSDAY"
36539	//   "TUESDAY"
36540	//   "WEDNESDAY"
36541	Day string `json:"day,omitempty"`
36542
36543	// Duration: [Output only] Duration of the time window, automatically
36544	// chosen to be smallest possible in the given scenario.
36545	Duration string `json:"duration,omitempty"`
36546
36547	// StartTime: Time within the window to start the operations. It must be
36548	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
36549	StartTime string `json:"startTime,omitempty"`
36550
36551	// ForceSendFields is a list of field names (e.g. "Day") to
36552	// unconditionally include in API requests. By default, fields with
36553	// empty or default values are omitted from API requests. However, any
36554	// non-pointer, non-interface field appearing in ForceSendFields will be
36555	// sent to the server regardless of whether the field is empty or not.
36556	// This may be used to include empty fields in Patch requests.
36557	ForceSendFields []string `json:"-"`
36558
36559	// NullFields is a list of field names (e.g. "Day") to include in API
36560	// requests with the JSON null value. By default, fields with empty
36561	// values are omitted from API requests. However, any field with an
36562	// empty value appearing in NullFields will be sent to the server as
36563	// null. It is an error if a field in this list has a non-empty value.
36564	// This may be used to include null fields in Patch requests.
36565	NullFields []string `json:"-"`
36566}
36567
36568func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
36569	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
36570	raw := NoMethod(*s)
36571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36572}
36573
36574// Route: Represents a Route resource. A route defines a path from VM
36575// instances in the VPC network to a specific destination. This
36576// destination can be inside or outside the VPC network. For more
36577// information, read the Routes overview.
36578type Route struct {
36579	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36580	// format.
36581	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36582
36583	// Description: An optional description of this resource. Provide this
36584	// field when you create the resource.
36585	Description string `json:"description,omitempty"`
36586
36587	// DestRange: The destination range of outgoing packets that this route
36588	// applies to. Both IPv4 and IPv6 are supported.
36589	DestRange string `json:"destRange,omitempty"`
36590
36591	// Id: [Output Only] The unique identifier for the resource. This
36592	// identifier is defined by the server.
36593	Id uint64 `json:"id,omitempty,string"`
36594
36595	// Kind: [Output Only] Type of this resource. Always compute#routes for
36596	// Route resources.
36597	Kind string `json:"kind,omitempty"`
36598
36599	// Name: Name of the resource. Provided by the client when the resource
36600	// is created. The name must be 1-63 characters long, and comply with
36601	// RFC1035. Specifically, the name must be 1-63 characters long and
36602	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
36603	// character must be a lowercase letter, and all following characters
36604	// (except for the last character) must be a dash, lowercase letter, or
36605	// digit. The last character must be a lowercase letter or digit.
36606	Name string `json:"name,omitempty"`
36607
36608	// Network: Fully-qualified URL of the network that this route applies
36609	// to.
36610	Network string `json:"network,omitempty"`
36611
36612	// NextHopGateway: The URL to a gateway that should handle matching
36613	// packets. You can only specify the internet gateway using a full or
36614	// partial valid URL: projects/
36615	// project/global/gateways/default-internet-gateway
36616	NextHopGateway string `json:"nextHopGateway,omitempty"`
36617
36618	// NextHopIlb: The URL to a forwarding rule of type
36619	// loadBalancingScheme=INTERNAL that should handle matching packets or
36620	// the IP address of the forwarding Rule. For example, the following are
36621	// all valid URLs: - 10.128.0.56 -
36622	// https://www.googleapis.com/compute/v1/projects/project/regions/region
36623	// /forwardingRules/forwardingRule -
36624	// regions/region/forwardingRules/forwardingRule
36625	NextHopIlb string `json:"nextHopIlb,omitempty"`
36626
36627	// NextHopInstance: The URL to an instance that should handle matching
36628	// packets. You can specify this as a full or partial URL. For example:
36629	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
36630	NextHopInstance string `json:"nextHopInstance,omitempty"`
36631
36632	// NextHopIp: The network IP address of an instance that should handle
36633	// matching packets. Only IPv4 is supported.
36634	NextHopIp string `json:"nextHopIp,omitempty"`
36635
36636	// NextHopNetwork: The URL of the local network if it should handle
36637	// matching packets.
36638	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
36639
36640	// NextHopPeering: [Output Only] The network peering name that should
36641	// handle matching packets, which should conform to RFC1035.
36642	NextHopPeering string `json:"nextHopPeering,omitempty"`
36643
36644	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
36645	// packets.
36646	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
36647
36648	// Priority: The priority of this route. Priority is used to break ties
36649	// in cases where there is more than one matching route of equal prefix
36650	// length. In cases where multiple routes have equal prefix length, the
36651	// one with the lowest-numbered priority value wins. The default value
36652	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
36653	Priority int64 `json:"priority,omitempty"`
36654
36655	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
36656	// resource.
36657	SelfLink string `json:"selfLink,omitempty"`
36658
36659	// Tags: A list of instance tags to which this route applies.
36660	Tags []string `json:"tags,omitempty"`
36661
36662	// Warnings: [Output Only] If potential misconfigurations are detected
36663	// for this route, this field will be populated with warning messages.
36664	Warnings []*RouteWarnings `json:"warnings,omitempty"`
36665
36666	// ServerResponse contains the HTTP response code and headers from the
36667	// server.
36668	googleapi.ServerResponse `json:"-"`
36669
36670	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
36671	// to unconditionally include in API requests. By default, fields with
36672	// empty or default values are omitted from API requests. However, any
36673	// non-pointer, non-interface field appearing in ForceSendFields will be
36674	// sent to the server regardless of whether the field is empty or not.
36675	// This may be used to include empty fields in Patch requests.
36676	ForceSendFields []string `json:"-"`
36677
36678	// NullFields is a list of field names (e.g. "CreationTimestamp") to
36679	// include in API requests with the JSON null value. By default, fields
36680	// with empty values are omitted from API requests. However, any field
36681	// with an empty value appearing in NullFields will be sent to the
36682	// server as null. It is an error if a field in this list has a
36683	// non-empty value. This may be used to include null fields in Patch
36684	// requests.
36685	NullFields []string `json:"-"`
36686}
36687
36688func (s *Route) MarshalJSON() ([]byte, error) {
36689	type NoMethod Route
36690	raw := NoMethod(*s)
36691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36692}
36693
36694type RouteWarnings struct {
36695	// Code: [Output Only] A warning code, if applicable. For example,
36696	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36697	// the response.
36698	//
36699	// Possible values:
36700	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36701	// changes made by a failed operation.
36702	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36703	// created.
36704	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36705	// resources has a type marked as deprecated
36706	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36707	// that is larger than image size.
36708	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36709	// resources has a type marked as experimental
36710	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36711	// call
36712	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36713	// overridden. Deprecated unused field.
36714	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36715	// injected kernel, which is deprecated.
36716	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36717	// exceedingly large number of resources
36718	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
36719	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
36720	// not assigned to an instance on the network.
36721	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
36722	// ip forward.
36723	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
36724	// refers to an instance that does not exist.
36725	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
36726	// URL refers to an instance that is not on the same network as the
36727	// route.
36728	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
36729	// have a status of RUNNING.
36730	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
36731	// continue the process despite the mentioned error.
36732	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
36733	// page.
36734	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
36735	// missing due to errors
36736	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
36737	// that requires a TOS they have not accepted.
36738	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
36739	// resource is in use.
36740	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
36741	// auto-delete could not be deleted because they were in use.
36742	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
36743	// ignored.
36744	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
36745	// instance group manager is valid as such, but its application does not
36746	// make a lot of sense, because it allows only single instance in
36747	// instance group.
36748	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
36749	// are present
36750	//   "UNREACHABLE" - A given scope cannot be reached.
36751	Code string `json:"code,omitempty"`
36752
36753	// Data: [Output Only] Metadata about this warning in key: value format.
36754	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
36755	// }
36756	Data []*RouteWarningsData `json:"data,omitempty"`
36757
36758	// Message: [Output Only] A human-readable description of the warning
36759	// code.
36760	Message string `json:"message,omitempty"`
36761
36762	// ForceSendFields is a list of field names (e.g. "Code") to
36763	// unconditionally include in API requests. By default, fields with
36764	// empty or default values are omitted from API requests. However, any
36765	// non-pointer, non-interface field appearing in ForceSendFields will be
36766	// sent to the server regardless of whether the field is empty or not.
36767	// This may be used to include empty fields in Patch requests.
36768	ForceSendFields []string `json:"-"`
36769
36770	// NullFields is a list of field names (e.g. "Code") to include in API
36771	// requests with the JSON null value. By default, fields with empty
36772	// values are omitted from API requests. However, any field with an
36773	// empty value appearing in NullFields will be sent to the server as
36774	// null. It is an error if a field in this list has a non-empty value.
36775	// This may be used to include null fields in Patch requests.
36776	NullFields []string `json:"-"`
36777}
36778
36779func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
36780	type NoMethod RouteWarnings
36781	raw := NoMethod(*s)
36782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36783}
36784
36785type RouteWarningsData struct {
36786	// Key: [Output Only] A key that provides more detail on the warning
36787	// being returned. For example, for warnings where there are no results
36788	// in a list request for a particular zone, this key might be scope and
36789	// the key value might be the zone name. Other examples might be a key
36790	// indicating a deprecated resource and a suggested replacement, or a
36791	// warning about invalid network settings (for example, if an instance
36792	// attempts to perform IP forwarding but is not enabled for IP
36793	// forwarding).
36794	Key string `json:"key,omitempty"`
36795
36796	// Value: [Output Only] A warning data value corresponding to the key.
36797	Value string `json:"value,omitempty"`
36798
36799	// ForceSendFields is a list of field names (e.g. "Key") to
36800	// unconditionally include in API requests. By default, fields with
36801	// empty or default values are omitted from API requests. However, any
36802	// non-pointer, non-interface field appearing in ForceSendFields will be
36803	// sent to the server regardless of whether the field is empty or not.
36804	// This may be used to include empty fields in Patch requests.
36805	ForceSendFields []string `json:"-"`
36806
36807	// NullFields is a list of field names (e.g. "Key") 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 *RouteWarningsData) MarshalJSON() ([]byte, error) {
36817	type NoMethod RouteWarningsData
36818	raw := NoMethod(*s)
36819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36820}
36821
36822// RouteList: Contains a list of Route resources.
36823type RouteList struct {
36824	// Id: [Output Only] Unique identifier for the resource; defined by the
36825	// server.
36826	Id string `json:"id,omitempty"`
36827
36828	// Items: A list of Route resources.
36829	Items []*Route `json:"items,omitempty"`
36830
36831	// Kind: Type of resource.
36832	Kind string `json:"kind,omitempty"`
36833
36834	// NextPageToken: [Output Only] This token allows you to get the next
36835	// page of results for list requests. If the number of results is larger
36836	// than maxResults, use the nextPageToken as a value for the query
36837	// parameter pageToken in the next list request. Subsequent list
36838	// requests will have their own nextPageToken to continue paging through
36839	// the results.
36840	NextPageToken string `json:"nextPageToken,omitempty"`
36841
36842	// SelfLink: [Output Only] Server-defined URL for this resource.
36843	SelfLink string `json:"selfLink,omitempty"`
36844
36845	// Warning: [Output Only] Informational warning message.
36846	Warning *RouteListWarning `json:"warning,omitempty"`
36847
36848	// ServerResponse contains the HTTP response code and headers from the
36849	// server.
36850	googleapi.ServerResponse `json:"-"`
36851
36852	// ForceSendFields is a list of field names (e.g. "Id") to
36853	// unconditionally include in API requests. By default, fields with
36854	// empty or default values are omitted from API requests. However, any
36855	// non-pointer, non-interface field appearing in ForceSendFields will be
36856	// sent to the server regardless of whether the field is empty or not.
36857	// This may be used to include empty fields in Patch requests.
36858	ForceSendFields []string `json:"-"`
36859
36860	// NullFields is a list of field names (e.g. "Id") to include in API
36861	// requests with the JSON null value. By default, fields with empty
36862	// values are omitted from API requests. However, any field with an
36863	// empty value appearing in NullFields will be sent to the server as
36864	// null. It is an error if a field in this list has a non-empty value.
36865	// This may be used to include null fields in Patch requests.
36866	NullFields []string `json:"-"`
36867}
36868
36869func (s *RouteList) MarshalJSON() ([]byte, error) {
36870	type NoMethod RouteList
36871	raw := NoMethod(*s)
36872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36873}
36874
36875// RouteListWarning: [Output Only] Informational warning message.
36876type RouteListWarning struct {
36877	// Code: [Output Only] A warning code, if applicable. For example,
36878	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36879	// the response.
36880	//
36881	// Possible values:
36882	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36883	// changes made by a failed operation.
36884	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36885	// created.
36886	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36887	// resources has a type marked as deprecated
36888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36889	// that is larger than image size.
36890	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36891	// resources has a type marked as experimental
36892	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36893	// call
36894	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36895	// overridden. Deprecated unused field.
36896	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36897	// injected kernel, which is deprecated.
36898	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36899	// exceedingly large number of resources
36900	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
36901	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
36902	// not assigned to an instance on the network.
36903	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
36904	// ip forward.
36905	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
36906	// refers to an instance that does not exist.
36907	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
36908	// URL refers to an instance that is not on the same network as the
36909	// route.
36910	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
36911	// have a status of RUNNING.
36912	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
36913	// continue the process despite the mentioned error.
36914	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
36915	// page.
36916	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
36917	// missing due to errors
36918	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
36919	// that requires a TOS they have not accepted.
36920	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
36921	// resource is in use.
36922	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
36923	// auto-delete could not be deleted because they were in use.
36924	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
36925	// ignored.
36926	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
36927	// instance group manager is valid as such, but its application does not
36928	// make a lot of sense, because it allows only single instance in
36929	// instance group.
36930	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
36931	// are present
36932	//   "UNREACHABLE" - A given scope cannot be reached.
36933	Code string `json:"code,omitempty"`
36934
36935	// Data: [Output Only] Metadata about this warning in key: value format.
36936	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
36937	// }
36938	Data []*RouteListWarningData `json:"data,omitempty"`
36939
36940	// Message: [Output Only] A human-readable description of the warning
36941	// code.
36942	Message string `json:"message,omitempty"`
36943
36944	// ForceSendFields is a list of field names (e.g. "Code") to
36945	// unconditionally include in API requests. By default, fields with
36946	// empty or default values are omitted from API requests. However, any
36947	// non-pointer, non-interface field appearing in ForceSendFields will be
36948	// sent to the server regardless of whether the field is empty or not.
36949	// This may be used to include empty fields in Patch requests.
36950	ForceSendFields []string `json:"-"`
36951
36952	// NullFields is a list of field names (e.g. "Code") to include in API
36953	// requests with the JSON null value. By default, fields with empty
36954	// values are omitted from API requests. However, any field with an
36955	// empty value appearing in NullFields will be sent to the server as
36956	// null. It is an error if a field in this list has a non-empty value.
36957	// This may be used to include null fields in Patch requests.
36958	NullFields []string `json:"-"`
36959}
36960
36961func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
36962	type NoMethod RouteListWarning
36963	raw := NoMethod(*s)
36964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36965}
36966
36967type RouteListWarningData struct {
36968	// Key: [Output Only] A key that provides more detail on the warning
36969	// being returned. For example, for warnings where there are no results
36970	// in a list request for a particular zone, this key might be scope and
36971	// the key value might be the zone name. Other examples might be a key
36972	// indicating a deprecated resource and a suggested replacement, or a
36973	// warning about invalid network settings (for example, if an instance
36974	// attempts to perform IP forwarding but is not enabled for IP
36975	// forwarding).
36976	Key string `json:"key,omitempty"`
36977
36978	// Value: [Output Only] A warning data value corresponding to the key.
36979	Value string `json:"value,omitempty"`
36980
36981	// ForceSendFields is a list of field names (e.g. "Key") to
36982	// unconditionally include in API requests. By default, fields with
36983	// empty or default values are omitted from API requests. However, any
36984	// non-pointer, non-interface field appearing in ForceSendFields will be
36985	// sent to the server regardless of whether the field is empty or not.
36986	// This may be used to include empty fields in Patch requests.
36987	ForceSendFields []string `json:"-"`
36988
36989	// NullFields is a list of field names (e.g. "Key") to include in API
36990	// requests with the JSON null value. By default, fields with empty
36991	// values are omitted from API requests. However, any field with an
36992	// empty value appearing in NullFields will be sent to the server as
36993	// null. It is an error if a field in this list has a non-empty value.
36994	// This may be used to include null fields in Patch requests.
36995	NullFields []string `json:"-"`
36996}
36997
36998func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
36999	type NoMethod RouteListWarningData
37000	raw := NoMethod(*s)
37001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37002}
37003
37004// Router: Represents a Cloud Router resource. For more information
37005// about Cloud Router, read the Cloud Router overview.
37006type Router struct {
37007	// Bgp: BGP information specific to this router.
37008	Bgp *RouterBgp `json:"bgp,omitempty"`
37009
37010	// BgpPeers: BGP information that must be configured into the routing
37011	// stack to establish BGP peering. This information must specify the
37012	// peer ASN and either the interface name, IP address, or peer IP
37013	// address. Please refer to RFC4273.
37014	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
37015
37016	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37017	// format.
37018	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37019
37020	// Description: An optional description of this resource. Provide this
37021	// property when you create the resource.
37022	Description string `json:"description,omitempty"`
37023
37024	// EncryptedInterconnectRouter: Indicates if a router is dedicated for
37025	// use with encrypted VLAN attachments (interconnectAttachments). Not
37026	// currently available publicly.
37027	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
37028
37029	// Id: [Output Only] The unique identifier for the resource. This
37030	// identifier is defined by the server.
37031	Id uint64 `json:"id,omitempty,string"`
37032
37033	// Interfaces: Router interfaces. Each interface requires either one
37034	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
37035	// address range (for example, ipRange), or both.
37036	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
37037
37038	// Kind: [Output Only] Type of resource. Always compute#router for
37039	// routers.
37040	Kind string `json:"kind,omitempty"`
37041
37042	// Name: Name of the resource. Provided by the client when the resource
37043	// is created. The name must be 1-63 characters long, and comply with
37044	// RFC1035. Specifically, the name must be 1-63 characters long and
37045	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37046	// the first character must be a lowercase letter, and all following
37047	// characters must be a dash, lowercase letter, or digit, except the
37048	// last character, which cannot be a dash.
37049	Name string `json:"name,omitempty"`
37050
37051	// Nats: A list of NAT services created in this router.
37052	Nats []*RouterNat `json:"nats,omitempty"`
37053
37054	// Network: URI of the network to which this router belongs.
37055	Network string `json:"network,omitempty"`
37056
37057	// Region: [Output Only] URI of the region where the router resides. You
37058	// must specify this field as part of the HTTP request URL. It is not
37059	// settable as a field in the request body.
37060	Region string `json:"region,omitempty"`
37061
37062	// SelfLink: [Output Only] Server-defined URL for the resource.
37063	SelfLink string `json:"selfLink,omitempty"`
37064
37065	// ServerResponse contains the HTTP response code and headers from the
37066	// server.
37067	googleapi.ServerResponse `json:"-"`
37068
37069	// ForceSendFields is a list of field names (e.g. "Bgp") to
37070	// unconditionally include in API requests. By default, fields with
37071	// empty or default values are omitted from API requests. However, any
37072	// non-pointer, non-interface field appearing in ForceSendFields will be
37073	// sent to the server regardless of whether the field is empty or not.
37074	// This may be used to include empty fields in Patch requests.
37075	ForceSendFields []string `json:"-"`
37076
37077	// NullFields is a list of field names (e.g. "Bgp") to include in API
37078	// requests with the JSON null value. By default, fields with empty
37079	// values are omitted from API requests. However, any field with an
37080	// empty value appearing in NullFields will be sent to the server as
37081	// null. It is an error if a field in this list has a non-empty value.
37082	// This may be used to include null fields in Patch requests.
37083	NullFields []string `json:"-"`
37084}
37085
37086func (s *Router) MarshalJSON() ([]byte, error) {
37087	type NoMethod Router
37088	raw := NoMethod(*s)
37089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37090}
37091
37092// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
37093// to advertise.
37094type RouterAdvertisedIpRange struct {
37095	// Description: User-specified description for the IP range.
37096	Description string `json:"description,omitempty"`
37097
37098	// Range: The IP range to advertise. The value must be a CIDR-formatted
37099	// string.
37100	Range string `json:"range,omitempty"`
37101
37102	// ForceSendFields is a list of field names (e.g. "Description") to
37103	// unconditionally include in API requests. By default, fields with
37104	// empty or default values are omitted from API requests. However, any
37105	// non-pointer, non-interface field appearing in ForceSendFields will be
37106	// sent to the server regardless of whether the field is empty or not.
37107	// This may be used to include empty fields in Patch requests.
37108	ForceSendFields []string `json:"-"`
37109
37110	// NullFields is a list of field names (e.g. "Description") to include
37111	// in API requests with the JSON null value. By default, fields with
37112	// empty values are omitted from API requests. However, any field with
37113	// an empty value appearing in NullFields will be sent to the server as
37114	// null. It is an error if a field in this list has a non-empty value.
37115	// This may be used to include null fields in Patch requests.
37116	NullFields []string `json:"-"`
37117}
37118
37119func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
37120	type NoMethod RouterAdvertisedIpRange
37121	raw := NoMethod(*s)
37122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37123}
37124
37125// RouterAggregatedList: Contains a list of routers.
37126type RouterAggregatedList struct {
37127	// Id: [Output Only] Unique identifier for the resource; defined by the
37128	// server.
37129	Id string `json:"id,omitempty"`
37130
37131	// Items: A list of Router resources.
37132	Items map[string]RoutersScopedList `json:"items,omitempty"`
37133
37134	// Kind: Type of resource.
37135	Kind string `json:"kind,omitempty"`
37136
37137	// NextPageToken: [Output Only] This token allows you to get the next
37138	// page of results for list requests. If the number of results is larger
37139	// than maxResults, use the nextPageToken as a value for the query
37140	// parameter pageToken in the next list request. Subsequent list
37141	// requests will have their own nextPageToken to continue paging through
37142	// the results.
37143	NextPageToken string `json:"nextPageToken,omitempty"`
37144
37145	// SelfLink: [Output Only] Server-defined URL for this resource.
37146	SelfLink string `json:"selfLink,omitempty"`
37147
37148	// Unreachables: [Output Only] Unreachable resources.
37149	Unreachables []string `json:"unreachables,omitempty"`
37150
37151	// Warning: [Output Only] Informational warning message.
37152	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
37153
37154	// ServerResponse contains the HTTP response code and headers from the
37155	// server.
37156	googleapi.ServerResponse `json:"-"`
37157
37158	// ForceSendFields is a list of field names (e.g. "Id") to
37159	// unconditionally include in API requests. By default, fields with
37160	// empty or default values are omitted from API requests. However, any
37161	// non-pointer, non-interface field appearing in ForceSendFields will be
37162	// sent to the server regardless of whether the field is empty or not.
37163	// This may be used to include empty fields in Patch requests.
37164	ForceSendFields []string `json:"-"`
37165
37166	// NullFields is a list of field names (e.g. "Id") to include in API
37167	// requests with the JSON null value. By default, fields with empty
37168	// values are omitted from API requests. However, any field with an
37169	// empty value appearing in NullFields will be sent to the server as
37170	// null. It is an error if a field in this list has a non-empty value.
37171	// This may be used to include null fields in Patch requests.
37172	NullFields []string `json:"-"`
37173}
37174
37175func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
37176	type NoMethod RouterAggregatedList
37177	raw := NoMethod(*s)
37178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37179}
37180
37181// RouterAggregatedListWarning: [Output Only] Informational warning
37182// message.
37183type RouterAggregatedListWarning struct {
37184	// Code: [Output Only] A warning code, if applicable. For example,
37185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37186	// the response.
37187	//
37188	// Possible values:
37189	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
37190	// changes made by a failed operation.
37191	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
37192	// created.
37193	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
37194	// resources has a type marked as deprecated
37195	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
37196	// that is larger than image size.
37197	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
37198	// resources has a type marked as experimental
37199	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
37200	// call
37201	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
37202	// overridden. Deprecated unused field.
37203	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
37204	// injected kernel, which is deprecated.
37205	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
37206	// exceedingly large number of resources
37207	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
37208	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
37209	// not assigned to an instance on the network.
37210	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
37211	// ip forward.
37212	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
37213	// refers to an instance that does not exist.
37214	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
37215	// URL refers to an instance that is not on the same network as the
37216	// route.
37217	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
37218	// have a status of RUNNING.
37219	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
37220	// continue the process despite the mentioned error.
37221	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
37222	// page.
37223	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
37224	// missing due to errors
37225	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
37226	// that requires a TOS they have not accepted.
37227	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
37228	// resource is in use.
37229	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
37230	// auto-delete could not be deleted because they were in use.
37231	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
37232	// ignored.
37233	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
37234	// instance group manager is valid as such, but its application does not
37235	// make a lot of sense, because it allows only single instance in
37236	// instance group.
37237	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
37238	// are present
37239	//   "UNREACHABLE" - A given scope cannot be reached.
37240	Code string `json:"code,omitempty"`
37241
37242	// Data: [Output Only] Metadata about this warning in key: value format.
37243	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
37244	// }
37245	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
37246
37247	// Message: [Output Only] A human-readable description of the warning
37248	// code.
37249	Message string `json:"message,omitempty"`
37250
37251	// ForceSendFields is a list of field names (e.g. "Code") to
37252	// unconditionally include in API requests. By default, fields with
37253	// empty or default values are omitted from API requests. However, any
37254	// non-pointer, non-interface field appearing in ForceSendFields will be
37255	// sent to the server regardless of whether the field is empty or not.
37256	// This may be used to include empty fields in Patch requests.
37257	ForceSendFields []string `json:"-"`
37258
37259	// NullFields is a list of field names (e.g. "Code") to include in API
37260	// requests with the JSON null value. By default, fields with empty
37261	// values are omitted from API requests. However, any field with an
37262	// empty value appearing in NullFields will be sent to the server as
37263	// null. It is an error if a field in this list has a non-empty value.
37264	// This may be used to include null fields in Patch requests.
37265	NullFields []string `json:"-"`
37266}
37267
37268func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
37269	type NoMethod RouterAggregatedListWarning
37270	raw := NoMethod(*s)
37271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37272}
37273
37274type RouterAggregatedListWarningData struct {
37275	// Key: [Output Only] A key that provides more detail on the warning
37276	// being returned. For example, for warnings where there are no results
37277	// in a list request for a particular zone, this key might be scope and
37278	// the key value might be the zone name. Other examples might be a key
37279	// indicating a deprecated resource and a suggested replacement, or a
37280	// warning about invalid network settings (for example, if an instance
37281	// attempts to perform IP forwarding but is not enabled for IP
37282	// forwarding).
37283	Key string `json:"key,omitempty"`
37284
37285	// Value: [Output Only] A warning data value corresponding to the key.
37286	Value string `json:"value,omitempty"`
37287
37288	// ForceSendFields is a list of field names (e.g. "Key") to
37289	// unconditionally include in API requests. By default, fields with
37290	// empty or default values are omitted from API requests. However, any
37291	// non-pointer, non-interface field appearing in ForceSendFields will be
37292	// sent to the server regardless of whether the field is empty or not.
37293	// This may be used to include empty fields in Patch requests.
37294	ForceSendFields []string `json:"-"`
37295
37296	// NullFields is a list of field names (e.g. "Key") to include in API
37297	// requests with the JSON null value. By default, fields with empty
37298	// values are omitted from API requests. However, any field with an
37299	// empty value appearing in NullFields will be sent to the server as
37300	// null. It is an error if a field in this list has a non-empty value.
37301	// This may be used to include null fields in Patch requests.
37302	NullFields []string `json:"-"`
37303}
37304
37305func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37306	type NoMethod RouterAggregatedListWarningData
37307	raw := NoMethod(*s)
37308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37309}
37310
37311type RouterBgp struct {
37312	// AdvertiseMode: User-specified flag to indicate which mode to use for
37313	// advertisement. The options are DEFAULT or CUSTOM.
37314	//
37315	// Possible values:
37316	//   "CUSTOM"
37317	//   "DEFAULT"
37318	AdvertiseMode string `json:"advertiseMode,omitempty"`
37319
37320	// AdvertisedGroups: User-specified list of prefix groups to advertise
37321	// in custom mode. This field can only be populated if advertise_mode is
37322	// CUSTOM and is advertised to all peers of the router. These groups
37323	// will be advertised in addition to any specified prefixes. Leave this
37324	// field blank to advertise no custom groups.
37325	//
37326	// Possible values:
37327	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
37328	// subnets).
37329	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
37330
37331	// AdvertisedIpRanges: User-specified list of individual IP ranges to
37332	// advertise in custom mode. This field can only be populated if
37333	// advertise_mode is CUSTOM and is advertised to all peers of the
37334	// router. These IP ranges will be advertised in addition to any
37335	// specified groups. Leave this field blank to advertise no custom IP
37336	// ranges.
37337	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
37338
37339	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
37340	// private ASN, either 16-bit or 32-bit. The value will be fixed for
37341	// this router resource. All VPN tunnels that link to this router will
37342	// have the same local ASN.
37343	Asn int64 `json:"asn,omitempty"`
37344
37345	// KeepaliveInterval: The interval in seconds between BGP keepalive
37346	// messages that are sent to the peer. Hold time is three times the
37347	// interval at which keepalive messages are sent, and the hold time is
37348	// the maximum number of seconds allowed to elapse between successive
37349	// keepalive messages that BGP receives from a peer. BGP will use the
37350	// smaller of either the local hold time value or the peer's hold time
37351	// value as the hold time for the BGP connection between the two peers.
37352	// If set, this value must be between 20 and 60. The default is 20.
37353	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
37354
37355	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
37356	// unconditionally include in API requests. By default, fields with
37357	// empty or default values are omitted from API requests. However, any
37358	// non-pointer, non-interface field appearing in ForceSendFields will be
37359	// sent to the server regardless of whether the field is empty or not.
37360	// This may be used to include empty fields in Patch requests.
37361	ForceSendFields []string `json:"-"`
37362
37363	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
37364	// in API requests with the JSON null value. By default, fields with
37365	// empty values are omitted from API requests. However, any field with
37366	// an empty value appearing in NullFields will be sent to the server as
37367	// null. It is an error if a field in this list has a non-empty value.
37368	// This may be used to include null fields in Patch requests.
37369	NullFields []string `json:"-"`
37370}
37371
37372func (s *RouterBgp) MarshalJSON() ([]byte, error) {
37373	type NoMethod RouterBgp
37374	raw := NoMethod(*s)
37375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37376}
37377
37378type RouterBgpPeer struct {
37379	// AdvertiseMode: User-specified flag to indicate which mode to use for
37380	// advertisement.
37381	//
37382	// Possible values:
37383	//   "CUSTOM"
37384	//   "DEFAULT"
37385	AdvertiseMode string `json:"advertiseMode,omitempty"`
37386
37387	// AdvertisedGroups: User-specified list of prefix groups to advertise
37388	// in custom mode, which can take one of the following options: -
37389	// ALL_SUBNETS: Advertises all available subnets, including peer VPC
37390	// subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
37391	// Note that this field can only be populated if advertise_mode is
37392	// CUSTOM and overrides the list defined for the router (in the "bgp"
37393	// message). These groups are advertised in addition to any specified
37394	// prefixes. Leave this field blank to advertise no custom groups.
37395	//
37396	// Possible values:
37397	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
37398	// subnets).
37399	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
37400
37401	// AdvertisedIpRanges: User-specified list of individual IP ranges to
37402	// advertise in custom mode. This field can only be populated if
37403	// advertise_mode is CUSTOM and overrides the list defined for the
37404	// router (in the "bgp" message). These IP ranges are advertised in
37405	// addition to any specified groups. Leave this field blank to advertise
37406	// no custom IP ranges.
37407	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
37408
37409	// AdvertisedRoutePriority: The priority of routes advertised to this
37410	// BGP peer. Where there is more than one matching route of maximum
37411	// length, the routes with the lowest priority value win.
37412	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
37413
37414	// Enable: The status of the BGP peer connection. If set to FALSE, any
37415	// active session with the peer is terminated and all associated routing
37416	// information is removed. If set to TRUE, the peer connection can be
37417	// established with routing information. The default is TRUE.
37418	//
37419	// Possible values:
37420	//   "FALSE"
37421	//   "TRUE"
37422	Enable string `json:"enable,omitempty"`
37423
37424	// InterfaceName: Name of the interface the BGP peer is associated with.
37425	InterfaceName string `json:"interfaceName,omitempty"`
37426
37427	// IpAddress: IP address of the interface inside Google Cloud Platform.
37428	// Only IPv4 is supported.
37429	IpAddress string `json:"ipAddress,omitempty"`
37430
37431	// ManagementType: [Output Only] The resource that configures and
37432	// manages this BGP peer. - MANAGED_BY_USER is the default value and can
37433	// be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP
37434	// peer that is configured and managed by Cloud Interconnect,
37435	// specifically by an InterconnectAttachment of type PARTNER. Google
37436	// automatically creates, updates, and deletes this type of BGP peer
37437	// when the PARTNER InterconnectAttachment is created, updated, or
37438	// deleted.
37439	//
37440	// Possible values:
37441	//   "MANAGED_BY_ATTACHMENT" - The BGP peer is automatically created for
37442	// PARTNER type InterconnectAttachment; Google will automatically
37443	// create/delete this BGP peer when the PARTNER InterconnectAttachment
37444	// is created/deleted, and Google will update the ipAddress and
37445	// peerIpAddress when the PARTNER InterconnectAttachment is provisioned.
37446	// This type of BGP peer cannot be created or deleted, but can be
37447	// modified for all fields except for name, ipAddress and peerIpAddress.
37448	//   "MANAGED_BY_USER" - Default value, the BGP peer is manually created
37449	// and managed by user.
37450	ManagementType string `json:"managementType,omitempty"`
37451
37452	// Name: Name of this BGP peer. The name must be 1-63 characters long,
37453	// and comply with RFC1035. Specifically, the name must be 1-63
37454	// characters long and match the regular expression
37455	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
37456	// a lowercase letter, and all following characters must be a dash,
37457	// lowercase letter, or digit, except the last character, which cannot
37458	// be a dash.
37459	Name string `json:"name,omitempty"`
37460
37461	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
37462	// may use a different value.
37463	PeerAsn int64 `json:"peerAsn,omitempty"`
37464
37465	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
37466	// Platform. Only IPv4 is supported.
37467	PeerIpAddress string `json:"peerIpAddress,omitempty"`
37468
37469	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
37470	// unconditionally include in API requests. By default, fields with
37471	// empty or default values are omitted from API requests. However, any
37472	// non-pointer, non-interface field appearing in ForceSendFields will be
37473	// sent to the server regardless of whether the field is empty or not.
37474	// This may be used to include empty fields in Patch requests.
37475	ForceSendFields []string `json:"-"`
37476
37477	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
37478	// in API requests with the JSON null value. By default, fields with
37479	// empty values are omitted from API requests. However, any field with
37480	// an empty value appearing in NullFields will be sent to the server as
37481	// null. It is an error if a field in this list has a non-empty value.
37482	// This may be used to include null fields in Patch requests.
37483	NullFields []string `json:"-"`
37484}
37485
37486func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
37487	type NoMethod RouterBgpPeer
37488	raw := NoMethod(*s)
37489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37490}
37491
37492type RouterInterface struct {
37493	// IpRange: IP address and range of the interface. The IP range must be
37494	// in the RFC3927 link-local IP address space. The value must be a
37495	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
37496	// truncate the address as it represents the IP address of the
37497	// interface.
37498	IpRange string `json:"ipRange,omitempty"`
37499
37500	// LinkedInterconnectAttachment: URI of the linked Interconnect
37501	// attachment. It must be in the same region as the router. Each
37502	// interface can have one linked resource, which can be a VPN tunnel, an
37503	// Interconnect attachment, or a virtual machine instance.
37504	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
37505
37506	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
37507	// same region as the router. Each interface can have one linked
37508	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
37509	// virtual machine instance.
37510	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37511
37512	// ManagementType: [Output Only] The resource that configures and
37513	// manages this interface. - MANAGED_BY_USER is the default value and
37514	// can be managed directly by users. - MANAGED_BY_ATTACHMENT is an
37515	// interface that is configured and managed by Cloud Interconnect,
37516	// specifically, by an InterconnectAttachment of type PARTNER. Google
37517	// automatically creates, updates, and deletes this type of interface
37518	// when the PARTNER InterconnectAttachment is created, updated, or
37519	// deleted.
37520	//
37521	// Possible values:
37522	//   "MANAGED_BY_ATTACHMENT" - The interface is automatically created
37523	// for PARTNER type InterconnectAttachment, Google will automatically
37524	// create/update/delete this interface when the PARTNER
37525	// InterconnectAttachment is created/provisioned/deleted. This type of
37526	// interface cannot be manually managed by user.
37527	//   "MANAGED_BY_USER" - Default value, the interface is manually
37528	// created and managed by user.
37529	ManagementType string `json:"managementType,omitempty"`
37530
37531	// Name: Name of this interface entry. The name must be 1-63 characters
37532	// long, and comply with RFC1035. Specifically, the name must be 1-63
37533	// characters long and match the regular expression
37534	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
37535	// a lowercase letter, and all following characters must be a dash,
37536	// lowercase letter, or digit, except the last character, which cannot
37537	// be a dash.
37538	Name string `json:"name,omitempty"`
37539
37540	// ForceSendFields is a list of field names (e.g. "IpRange") to
37541	// unconditionally include in API requests. By default, fields with
37542	// empty or default values are omitted from API requests. However, any
37543	// non-pointer, non-interface field appearing in ForceSendFields will be
37544	// sent to the server regardless of whether the field is empty or not.
37545	// This may be used to include empty fields in Patch requests.
37546	ForceSendFields []string `json:"-"`
37547
37548	// NullFields is a list of field names (e.g. "IpRange") to include in
37549	// API requests with the JSON null value. By default, fields with empty
37550	// values are omitted from API requests. However, any field with an
37551	// empty value appearing in NullFields will be sent to the server as
37552	// null. It is an error if a field in this list has a non-empty value.
37553	// This may be used to include null fields in Patch requests.
37554	NullFields []string `json:"-"`
37555}
37556
37557func (s *RouterInterface) MarshalJSON() ([]byte, error) {
37558	type NoMethod RouterInterface
37559	raw := NoMethod(*s)
37560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37561}
37562
37563// RouterList: Contains a list of Router resources.
37564type RouterList struct {
37565	// Id: [Output Only] Unique identifier for the resource; defined by the
37566	// server.
37567	Id string `json:"id,omitempty"`
37568
37569	// Items: A list of Router resources.
37570	Items []*Router `json:"items,omitempty"`
37571
37572	// Kind: [Output Only] Type of resource. Always compute#router for
37573	// routers.
37574	Kind string `json:"kind,omitempty"`
37575
37576	// NextPageToken: [Output Only] This token allows you to get the next
37577	// page of results for list requests. If the number of results is larger
37578	// than maxResults, use the nextPageToken as a value for the query
37579	// parameter pageToken in the next list request. Subsequent list
37580	// requests will have their own nextPageToken to continue paging through
37581	// the results.
37582	NextPageToken string `json:"nextPageToken,omitempty"`
37583
37584	// SelfLink: [Output Only] Server-defined URL for this resource.
37585	SelfLink string `json:"selfLink,omitempty"`
37586
37587	// Warning: [Output Only] Informational warning message.
37588	Warning *RouterListWarning `json:"warning,omitempty"`
37589
37590	// ServerResponse contains the HTTP response code and headers from the
37591	// server.
37592	googleapi.ServerResponse `json:"-"`
37593
37594	// ForceSendFields is a list of field names (e.g. "Id") to
37595	// unconditionally include in API requests. By default, fields with
37596	// empty or default values are omitted from API requests. However, any
37597	// non-pointer, non-interface field appearing in ForceSendFields will be
37598	// sent to the server regardless of whether the field is empty or not.
37599	// This may be used to include empty fields in Patch requests.
37600	ForceSendFields []string `json:"-"`
37601
37602	// NullFields is a list of field names (e.g. "Id") to include in API
37603	// requests with the JSON null value. By default, fields with empty
37604	// values are omitted from API requests. However, any field with an
37605	// empty value appearing in NullFields will be sent to the server as
37606	// null. It is an error if a field in this list has a non-empty value.
37607	// This may be used to include null fields in Patch requests.
37608	NullFields []string `json:"-"`
37609}
37610
37611func (s *RouterList) MarshalJSON() ([]byte, error) {
37612	type NoMethod RouterList
37613	raw := NoMethod(*s)
37614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37615}
37616
37617// RouterListWarning: [Output Only] Informational warning message.
37618type RouterListWarning struct {
37619	// Code: [Output Only] A warning code, if applicable. For example,
37620	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37621	// the response.
37622	//
37623	// Possible values:
37624	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
37625	// changes made by a failed operation.
37626	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
37627	// created.
37628	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
37629	// resources has a type marked as deprecated
37630	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
37631	// that is larger than image size.
37632	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
37633	// resources has a type marked as experimental
37634	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
37635	// call
37636	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
37637	// overridden. Deprecated unused field.
37638	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
37639	// injected kernel, which is deprecated.
37640	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
37641	// exceedingly large number of resources
37642	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
37643	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
37644	// not assigned to an instance on the network.
37645	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
37646	// ip forward.
37647	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
37648	// refers to an instance that does not exist.
37649	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
37650	// URL refers to an instance that is not on the same network as the
37651	// route.
37652	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
37653	// have a status of RUNNING.
37654	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
37655	// continue the process despite the mentioned error.
37656	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
37657	// page.
37658	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
37659	// missing due to errors
37660	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
37661	// that requires a TOS they have not accepted.
37662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
37663	// resource is in use.
37664	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
37665	// auto-delete could not be deleted because they were in use.
37666	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
37667	// ignored.
37668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
37669	// instance group manager is valid as such, but its application does not
37670	// make a lot of sense, because it allows only single instance in
37671	// instance group.
37672	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
37673	// are present
37674	//   "UNREACHABLE" - A given scope cannot be reached.
37675	Code string `json:"code,omitempty"`
37676
37677	// Data: [Output Only] Metadata about this warning in key: value format.
37678	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
37679	// }
37680	Data []*RouterListWarningData `json:"data,omitempty"`
37681
37682	// Message: [Output Only] A human-readable description of the warning
37683	// code.
37684	Message string `json:"message,omitempty"`
37685
37686	// ForceSendFields is a list of field names (e.g. "Code") to
37687	// unconditionally include in API requests. By default, fields with
37688	// empty or default values are omitted from API requests. However, any
37689	// non-pointer, non-interface field appearing in ForceSendFields will be
37690	// sent to the server regardless of whether the field is empty or not.
37691	// This may be used to include empty fields in Patch requests.
37692	ForceSendFields []string `json:"-"`
37693
37694	// NullFields is a list of field names (e.g. "Code") to include in API
37695	// requests with the JSON null value. By default, fields with empty
37696	// values are omitted from API requests. However, any field with an
37697	// empty value appearing in NullFields will be sent to the server as
37698	// null. It is an error if a field in this list has a non-empty value.
37699	// This may be used to include null fields in Patch requests.
37700	NullFields []string `json:"-"`
37701}
37702
37703func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
37704	type NoMethod RouterListWarning
37705	raw := NoMethod(*s)
37706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37707}
37708
37709type RouterListWarningData struct {
37710	// Key: [Output Only] A key that provides more detail on the warning
37711	// being returned. For example, for warnings where there are no results
37712	// in a list request for a particular zone, this key might be scope and
37713	// the key value might be the zone name. Other examples might be a key
37714	// indicating a deprecated resource and a suggested replacement, or a
37715	// warning about invalid network settings (for example, if an instance
37716	// attempts to perform IP forwarding but is not enabled for IP
37717	// forwarding).
37718	Key string `json:"key,omitempty"`
37719
37720	// Value: [Output Only] A warning data value corresponding to the key.
37721	Value string `json:"value,omitempty"`
37722
37723	// ForceSendFields is a list of field names (e.g. "Key") to
37724	// unconditionally include in API requests. By default, fields with
37725	// empty or default values are omitted from API requests. However, any
37726	// non-pointer, non-interface field appearing in ForceSendFields will be
37727	// sent to the server regardless of whether the field is empty or not.
37728	// This may be used to include empty fields in Patch requests.
37729	ForceSendFields []string `json:"-"`
37730
37731	// NullFields is a list of field names (e.g. "Key") to include in API
37732	// requests with the JSON null value. By default, fields with empty
37733	// values are omitted from API requests. However, any field with an
37734	// empty value appearing in NullFields will be sent to the server as
37735	// null. It is an error if a field in this list has a non-empty value.
37736	// This may be used to include null fields in Patch requests.
37737	NullFields []string `json:"-"`
37738}
37739
37740func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
37741	type NoMethod RouterListWarningData
37742	raw := NoMethod(*s)
37743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37744}
37745
37746// RouterNat: Represents a Nat resource. It enables the VMs within the
37747// specified subnetworks to access Internet without external IP
37748// addresses. It specifies a list of subnetworks (and the ranges within)
37749// that want to use NAT. Customers can also provide the external IPs
37750// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
37751// no external IPs are provided.
37752type RouterNat struct {
37753	// DrainNatIps: A list of URLs of the IP resources to be drained. These
37754	// IPs must be valid static external IPs that have been assigned to the
37755	// NAT. These IPs should be used for updating/patching a NAT only.
37756	DrainNatIps []string `json:"drainNatIps,omitempty"`
37757
37758	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
37759
37760	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
37761	// Defaults to 30s if not set.
37762	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
37763
37764	// LogConfig: Configure logging on this NAT.
37765	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
37766
37767	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
37768	// NAT config. If not set, a default number of ports is allocated to a
37769	// VM. This is rounded up to the nearest power of 2. For example, if the
37770	// value of this field is 50, at least 64 ports are allocated to a VM.
37771	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
37772
37773	// Name: Unique name of this Nat service. The name must be 1-63
37774	// characters long and comply with RFC1035.
37775	Name string `json:"name,omitempty"`
37776
37777	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
37778	// one of the following values: - MANUAL_ONLY: Uses only Nat IP
37779	// addresses provided by customers. When there are not enough specified
37780	// Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are
37781	// allocated by Google Cloud Platform; customers can't specify any Nat
37782	// IPs. When choosing AUTO_ONLY, then nat_ip should be empty.
37783	//
37784	// Possible values:
37785	//   "AUTO_ONLY" - Nat IPs are allocated by GCP; customers can not
37786	// specify any Nat IPs.
37787	//   "MANUAL_ONLY" - Only use Nat IPs provided by customers. When
37788	// specified Nat IPs are not enough then the Nat service fails for new
37789	// VMs.
37790	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
37791
37792	// NatIps: A list of URLs of the IP resources used for this Nat service.
37793	// These IP addresses must be valid static external IP addresses
37794	// assigned to the project.
37795	NatIps []string `json:"natIps,omitempty"`
37796
37797	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
37798	// one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of
37799	// the IP ranges in every Subnetwork are allowed to Nat. -
37800	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
37801	// in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
37802	// of Subnetworks are allowed to Nat (specified in the field subnetwork
37803	// below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED.
37804	// Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
37805	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
37806	// other Router.Nat section in any Router for this network in this
37807	// region.
37808	//
37809	// Possible values:
37810	//   "ALL_SUBNETWORKS_ALL_IP_RANGES" - All the IP ranges in every
37811	// Subnetwork are allowed to Nat.
37812	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES" - All the primary IP ranges
37813	// in every Subnetwork are allowed to Nat.
37814	//   "LIST_OF_SUBNETWORKS" - A list of Subnetworks are allowed to Nat
37815	// (specified in the field subnetwork below)
37816	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
37817
37818	// Subnetworks: A list of Subnetwork resources whose traffic should be
37819	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
37820	// is selected for the SubnetworkIpRangeToNatOption above.
37821	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
37822
37823	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
37824	// established connections. Defaults to 1200s if not set.
37825	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
37826
37827	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
37828	// connections. Defaults to 30s if not set.
37829	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
37830
37831	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
37832	// to 30s if not set.
37833	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
37834
37835	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
37836	// unconditionally include in API requests. By default, fields with
37837	// empty or default values are omitted from API requests. However, any
37838	// non-pointer, non-interface field appearing in ForceSendFields will be
37839	// sent to the server regardless of whether the field is empty or not.
37840	// This may be used to include empty fields in Patch requests.
37841	ForceSendFields []string `json:"-"`
37842
37843	// NullFields is a list of field names (e.g. "DrainNatIps") to include
37844	// in API requests with the JSON null value. By default, fields with
37845	// empty values are omitted from API requests. However, any field with
37846	// an empty value appearing in NullFields will be sent to the server as
37847	// null. It is an error if a field in this list has a non-empty value.
37848	// This may be used to include null fields in Patch requests.
37849	NullFields []string `json:"-"`
37850}
37851
37852func (s *RouterNat) MarshalJSON() ([]byte, error) {
37853	type NoMethod RouterNat
37854	raw := NoMethod(*s)
37855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37856}
37857
37858// RouterNatLogConfig: Configuration of logging on a NAT.
37859type RouterNatLogConfig struct {
37860	// Enable: Indicates whether or not to export logs. This is false by
37861	// default.
37862	Enable bool `json:"enable,omitempty"`
37863
37864	// Filter: Specify the desired filtering of logs on this NAT. If
37865	// unspecified, logs are exported for all connections handled by this
37866	// NAT. This option can take one of the following values: - ERRORS_ONLY:
37867	// Export logs only for connection failures. - TRANSLATIONS_ONLY: Export
37868	// logs only for successful connections. - ALL: Export logs for all
37869	// connections, successful and unsuccessful.
37870	//
37871	// Possible values:
37872	//   "ALL" - Export logs for all (successful and unsuccessful)
37873	// connections.
37874	//   "ERRORS_ONLY" - Export logs for connection failures only.
37875	//   "TRANSLATIONS_ONLY" - Export logs for successful connections only.
37876	Filter string `json:"filter,omitempty"`
37877
37878	// ForceSendFields is a list of field names (e.g. "Enable") to
37879	// unconditionally include in API requests. By default, fields with
37880	// empty or default values are omitted from API requests. However, any
37881	// non-pointer, non-interface field appearing in ForceSendFields will be
37882	// sent to the server regardless of whether the field is empty or not.
37883	// This may be used to include empty fields in Patch requests.
37884	ForceSendFields []string `json:"-"`
37885
37886	// NullFields is a list of field names (e.g. "Enable") to include in API
37887	// requests with the JSON null value. By default, fields with empty
37888	// values are omitted from API requests. However, any field with an
37889	// empty value appearing in NullFields will be sent to the server as
37890	// null. It is an error if a field in this list has a non-empty value.
37891	// This may be used to include null fields in Patch requests.
37892	NullFields []string `json:"-"`
37893}
37894
37895func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
37896	type NoMethod RouterNatLogConfig
37897	raw := NoMethod(*s)
37898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37899}
37900
37901// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
37902// for a subnetwork.
37903type RouterNatSubnetworkToNat struct {
37904	// Name: URL for the subnetwork resource that will use NAT.
37905	Name string `json:"name,omitempty"`
37906
37907	// SecondaryIpRangeNames: A list of the secondary ranges of the
37908	// Subnetwork that are allowed to use NAT. This can be populated only if
37909	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
37910	// source_ip_ranges_to_nat.
37911	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
37912
37913	// SourceIpRangesToNat: Specify the options for NAT ranges in the
37914	// Subnetwork. All options of a single value are valid except
37915	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
37916	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
37917	// Default: [ALL_IP_RANGES]
37918	//
37919	// Possible values:
37920	//   "ALL_IP_RANGES" - The primary and all the secondary ranges are
37921	// allowed to Nat.
37922	//   "LIST_OF_SECONDARY_IP_RANGES" - A list of secondary ranges are
37923	// allowed to Nat.
37924	//   "PRIMARY_IP_RANGE" - The primary range is allowed to Nat.
37925	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
37926
37927	// ForceSendFields is a list of field names (e.g. "Name") to
37928	// unconditionally include in API requests. By default, fields with
37929	// empty or default values are omitted from API requests. However, any
37930	// non-pointer, non-interface field appearing in ForceSendFields will be
37931	// sent to the server regardless of whether the field is empty or not.
37932	// This may be used to include empty fields in Patch requests.
37933	ForceSendFields []string `json:"-"`
37934
37935	// NullFields is a list of field names (e.g. "Name") to include in API
37936	// requests with the JSON null value. By default, fields with empty
37937	// values are omitted from API requests. However, any field with an
37938	// empty value appearing in NullFields will be sent to the server as
37939	// null. It is an error if a field in this list has a non-empty value.
37940	// This may be used to include null fields in Patch requests.
37941	NullFields []string `json:"-"`
37942}
37943
37944func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
37945	type NoMethod RouterNatSubnetworkToNat
37946	raw := NoMethod(*s)
37947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37948}
37949
37950type RouterStatus struct {
37951	// BestRoutes: Best routes for this router's network.
37952	BestRoutes []*Route `json:"bestRoutes,omitempty"`
37953
37954	// BestRoutesForRouter: Best routes learned by this router.
37955	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
37956
37957	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
37958
37959	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
37960
37961	// Network: URI of the network to which this router belongs.
37962	Network string `json:"network,omitempty"`
37963
37964	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
37965	// unconditionally include in API requests. By default, fields with
37966	// empty or default values are omitted from API requests. However, any
37967	// non-pointer, non-interface field appearing in ForceSendFields will be
37968	// sent to the server regardless of whether the field is empty or not.
37969	// This may be used to include empty fields in Patch requests.
37970	ForceSendFields []string `json:"-"`
37971
37972	// NullFields is a list of field names (e.g. "BestRoutes") to include in
37973	// API requests with the JSON null value. By default, fields with empty
37974	// values are omitted from API requests. However, any field with an
37975	// empty value appearing in NullFields will be sent to the server as
37976	// null. It is an error if a field in this list has a non-empty value.
37977	// This may be used to include null fields in Patch requests.
37978	NullFields []string `json:"-"`
37979}
37980
37981func (s *RouterStatus) MarshalJSON() ([]byte, error) {
37982	type NoMethod RouterStatus
37983	raw := NoMethod(*s)
37984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37985}
37986
37987type RouterStatusBgpPeerStatus struct {
37988	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
37989	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
37990
37991	// IpAddress: IP address of the local BGP interface.
37992	IpAddress string `json:"ipAddress,omitempty"`
37993
37994	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
37995	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37996
37997	// Name: Name of this BGP peer. Unique within the Routers resource.
37998	Name string `json:"name,omitempty"`
37999
38000	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
38001	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
38002
38003	// PeerIpAddress: IP address of the remote BGP interface.
38004	PeerIpAddress string `json:"peerIpAddress,omitempty"`
38005
38006	// State: BGP state as specified in RFC1771.
38007	State string `json:"state,omitempty"`
38008
38009	// Status: Status of the BGP peer: {UP, DOWN}
38010	//
38011	// Possible values:
38012	//   "DOWN"
38013	//   "UNKNOWN"
38014	//   "UP"
38015	Status string `json:"status,omitempty"`
38016
38017	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
38018	// days, 23 hours, 59 minutes, 59 seconds
38019	Uptime string `json:"uptime,omitempty"`
38020
38021	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
38022	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
38023
38024	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
38025	// unconditionally include in API requests. By default, fields with
38026	// empty or default values are omitted from API requests. However, any
38027	// non-pointer, non-interface field appearing in ForceSendFields will be
38028	// sent to the server regardless of whether the field is empty or not.
38029	// This may be used to include empty fields in Patch requests.
38030	ForceSendFields []string `json:"-"`
38031
38032	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
38033	// include in API requests with the JSON null value. By default, fields
38034	// with empty values are omitted from API requests. However, any field
38035	// with an empty value appearing in NullFields will be sent to the
38036	// server as null. It is an error if a field in this list has a
38037	// non-empty value. This may be used to include null fields in Patch
38038	// requests.
38039	NullFields []string `json:"-"`
38040}
38041
38042func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
38043	type NoMethod RouterStatusBgpPeerStatus
38044	raw := NoMethod(*s)
38045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38046}
38047
38048// RouterStatusNatStatus: Status of a NAT contained in this router.
38049type RouterStatusNatStatus struct {
38050	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
38051	// ["1.1.1.1", "129.2.16.89"]
38052	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
38053
38054	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
38055	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
38056	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
38057
38058	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
38059	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
38060	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
38061
38062	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
38063	// be greater than 0 only if user-specified IPs are NOT enough to allow
38064	// all configured VMs to use NAT. This value is meaningful only when
38065	// auto-allocation of NAT IPs is *not* used.
38066	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
38067
38068	// Name: Unique name of this NAT.
38069	Name string `json:"name,omitempty"`
38070
38071	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
38072	// that can use NAT.
38073	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
38074
38075	// UserAllocatedNatIpResources: A list of fully qualified URLs of
38076	// reserved IP address resources.
38077	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
38078
38079	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
38080	// be raw IP strings like "179.12.26.133".
38081	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
38082
38083	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
38084	// to unconditionally include in API requests. By default, fields with
38085	// empty or default values are omitted from API requests. However, any
38086	// non-pointer, non-interface field appearing in ForceSendFields will be
38087	// sent to the server regardless of whether the field is empty or not.
38088	// This may be used to include empty fields in Patch requests.
38089	ForceSendFields []string `json:"-"`
38090
38091	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
38092	// include in API requests with the JSON null value. By default, fields
38093	// with empty values are omitted from API requests. However, any field
38094	// with an empty value appearing in NullFields will be sent to the
38095	// server as null. It is an error if a field in this list has a
38096	// non-empty value. This may be used to include null fields in Patch
38097	// requests.
38098	NullFields []string `json:"-"`
38099}
38100
38101func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
38102	type NoMethod RouterStatusNatStatus
38103	raw := NoMethod(*s)
38104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38105}
38106
38107type RouterStatusResponse struct {
38108	// Kind: Type of resource.
38109	Kind string `json:"kind,omitempty"`
38110
38111	Result *RouterStatus `json:"result,omitempty"`
38112
38113	// ServerResponse contains the HTTP response code and headers from the
38114	// server.
38115	googleapi.ServerResponse `json:"-"`
38116
38117	// ForceSendFields is a list of field names (e.g. "Kind") to
38118	// unconditionally include in API requests. By default, fields with
38119	// empty or default values are omitted from API requests. However, any
38120	// non-pointer, non-interface field appearing in ForceSendFields will be
38121	// sent to the server regardless of whether the field is empty or not.
38122	// This may be used to include empty fields in Patch requests.
38123	ForceSendFields []string `json:"-"`
38124
38125	// NullFields is a list of field names (e.g. "Kind") to include in API
38126	// requests with the JSON null value. By default, fields with empty
38127	// values are omitted from API requests. However, any field with an
38128	// empty value appearing in NullFields will be sent to the server as
38129	// null. It is an error if a field in this list has a non-empty value.
38130	// This may be used to include null fields in Patch requests.
38131	NullFields []string `json:"-"`
38132}
38133
38134func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
38135	type NoMethod RouterStatusResponse
38136	raw := NoMethod(*s)
38137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38138}
38139
38140type RoutersPreviewResponse struct {
38141	// Resource: Preview of given router.
38142	Resource *Router `json:"resource,omitempty"`
38143
38144	// ServerResponse contains the HTTP response code and headers from the
38145	// server.
38146	googleapi.ServerResponse `json:"-"`
38147
38148	// ForceSendFields is a list of field names (e.g. "Resource") to
38149	// unconditionally include in API requests. By default, fields with
38150	// empty or default values are omitted from API requests. However, any
38151	// non-pointer, non-interface field appearing in ForceSendFields will be
38152	// sent to the server regardless of whether the field is empty or not.
38153	// This may be used to include empty fields in Patch requests.
38154	ForceSendFields []string `json:"-"`
38155
38156	// NullFields is a list of field names (e.g. "Resource") to include in
38157	// API requests with the JSON null value. By default, fields with empty
38158	// values are omitted from API requests. However, any field with an
38159	// empty value appearing in NullFields will be sent to the server as
38160	// null. It is an error if a field in this list has a non-empty value.
38161	// This may be used to include null fields in Patch requests.
38162	NullFields []string `json:"-"`
38163}
38164
38165func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
38166	type NoMethod RoutersPreviewResponse
38167	raw := NoMethod(*s)
38168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38169}
38170
38171type RoutersScopedList struct {
38172	// Routers: A list of routers contained in this scope.
38173	Routers []*Router `json:"routers,omitempty"`
38174
38175	// Warning: Informational warning which replaces the list of routers
38176	// when the list is empty.
38177	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
38178
38179	// ForceSendFields is a list of field names (e.g. "Routers") to
38180	// unconditionally include in API requests. By default, fields with
38181	// empty or default values are omitted from API requests. However, any
38182	// non-pointer, non-interface field appearing in ForceSendFields will be
38183	// sent to the server regardless of whether the field is empty or not.
38184	// This may be used to include empty fields in Patch requests.
38185	ForceSendFields []string `json:"-"`
38186
38187	// NullFields is a list of field names (e.g. "Routers") to include in
38188	// API requests with the JSON null value. By default, fields with empty
38189	// values are omitted from API requests. However, any field with an
38190	// empty value appearing in NullFields will be sent to the server as
38191	// null. It is an error if a field in this list has a non-empty value.
38192	// This may be used to include null fields in Patch requests.
38193	NullFields []string `json:"-"`
38194}
38195
38196func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
38197	type NoMethod RoutersScopedList
38198	raw := NoMethod(*s)
38199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38200}
38201
38202// RoutersScopedListWarning: Informational warning which replaces the
38203// list of routers when the list is empty.
38204type RoutersScopedListWarning struct {
38205	// Code: [Output Only] A warning code, if applicable. For example,
38206	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38207	// the response.
38208	//
38209	// Possible values:
38210	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
38211	// changes made by a failed operation.
38212	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
38213	// created.
38214	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
38215	// resources has a type marked as deprecated
38216	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
38217	// that is larger than image size.
38218	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
38219	// resources has a type marked as experimental
38220	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
38221	// call
38222	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
38223	// overridden. Deprecated unused field.
38224	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
38225	// injected kernel, which is deprecated.
38226	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
38227	// exceedingly large number of resources
38228	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
38229	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
38230	// not assigned to an instance on the network.
38231	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
38232	// ip forward.
38233	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
38234	// refers to an instance that does not exist.
38235	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
38236	// URL refers to an instance that is not on the same network as the
38237	// route.
38238	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
38239	// have a status of RUNNING.
38240	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
38241	// continue the process despite the mentioned error.
38242	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
38243	// page.
38244	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
38245	// missing due to errors
38246	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
38247	// that requires a TOS they have not accepted.
38248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
38249	// resource is in use.
38250	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
38251	// auto-delete could not be deleted because they were in use.
38252	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
38253	// ignored.
38254	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
38255	// instance group manager is valid as such, but its application does not
38256	// make a lot of sense, because it allows only single instance in
38257	// instance group.
38258	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
38259	// are present
38260	//   "UNREACHABLE" - A given scope cannot be reached.
38261	Code string `json:"code,omitempty"`
38262
38263	// Data: [Output Only] Metadata about this warning in key: value format.
38264	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
38265	// }
38266	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
38267
38268	// Message: [Output Only] A human-readable description of the warning
38269	// code.
38270	Message string `json:"message,omitempty"`
38271
38272	// ForceSendFields is a list of field names (e.g. "Code") to
38273	// unconditionally include in API requests. By default, fields with
38274	// empty or default values are omitted from API requests. However, any
38275	// non-pointer, non-interface field appearing in ForceSendFields will be
38276	// sent to the server regardless of whether the field is empty or not.
38277	// This may be used to include empty fields in Patch requests.
38278	ForceSendFields []string `json:"-"`
38279
38280	// NullFields is a list of field names (e.g. "Code") to include in API
38281	// requests with the JSON null value. By default, fields with empty
38282	// values are omitted from API requests. However, any field with an
38283	// empty value appearing in NullFields will be sent to the server as
38284	// null. It is an error if a field in this list has a non-empty value.
38285	// This may be used to include null fields in Patch requests.
38286	NullFields []string `json:"-"`
38287}
38288
38289func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
38290	type NoMethod RoutersScopedListWarning
38291	raw := NoMethod(*s)
38292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38293}
38294
38295type RoutersScopedListWarningData struct {
38296	// Key: [Output Only] A key that provides more detail on the warning
38297	// being returned. For example, for warnings where there are no results
38298	// in a list request for a particular zone, this key might be scope and
38299	// the key value might be the zone name. Other examples might be a key
38300	// indicating a deprecated resource and a suggested replacement, or a
38301	// warning about invalid network settings (for example, if an instance
38302	// attempts to perform IP forwarding but is not enabled for IP
38303	// forwarding).
38304	Key string `json:"key,omitempty"`
38305
38306	// Value: [Output Only] A warning data value corresponding to the key.
38307	Value string `json:"value,omitempty"`
38308
38309	// ForceSendFields is a list of field names (e.g. "Key") to
38310	// unconditionally include in API requests. By default, fields with
38311	// empty or default values are omitted from API requests. However, any
38312	// non-pointer, non-interface field appearing in ForceSendFields will be
38313	// sent to the server regardless of whether the field is empty or not.
38314	// This may be used to include empty fields in Patch requests.
38315	ForceSendFields []string `json:"-"`
38316
38317	// NullFields is a list of field names (e.g. "Key") to include in API
38318	// requests with the JSON null value. By default, fields with empty
38319	// values are omitted from API requests. However, any field with an
38320	// empty value appearing in NullFields will be sent to the server as
38321	// null. It is an error if a field in this list has a non-empty value.
38322	// This may be used to include null fields in Patch requests.
38323	NullFields []string `json:"-"`
38324}
38325
38326func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
38327	type NoMethod RoutersScopedListWarningData
38328	raw := NoMethod(*s)
38329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38330}
38331
38332// Rule: This is deprecated and has no effect. Do not use.
38333type Rule struct {
38334	// Action: This is deprecated and has no effect. Do not use.
38335	//
38336	// Possible values:
38337	//   "ALLOW" - This is deprecated and has no effect. Do not use.
38338	//   "ALLOW_WITH_LOG" - This is deprecated and has no effect. Do not
38339	// use.
38340	//   "DENY" - This is deprecated and has no effect. Do not use.
38341	//   "DENY_WITH_LOG" - This is deprecated and has no effect. Do not use.
38342	//   "LOG" - This is deprecated and has no effect. Do not use.
38343	//   "NO_ACTION" - This is deprecated and has no effect. Do not use.
38344	Action string `json:"action,omitempty"`
38345
38346	// Conditions: This is deprecated and has no effect. Do not use.
38347	Conditions []*Condition `json:"conditions,omitempty"`
38348
38349	// Description: This is deprecated and has no effect. Do not use.
38350	Description string `json:"description,omitempty"`
38351
38352	// Ins: This is deprecated and has no effect. Do not use.
38353	Ins []string `json:"ins,omitempty"`
38354
38355	// LogConfigs: This is deprecated and has no effect. Do not use.
38356	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
38357
38358	// NotIns: This is deprecated and has no effect. Do not use.
38359	NotIns []string `json:"notIns,omitempty"`
38360
38361	// Permissions: This is deprecated and has no effect. Do not use.
38362	Permissions []string `json:"permissions,omitempty"`
38363
38364	// ForceSendFields is a list of field names (e.g. "Action") to
38365	// unconditionally include in API requests. By default, fields with
38366	// empty or default values are omitted from API requests. However, any
38367	// non-pointer, non-interface field appearing in ForceSendFields will be
38368	// sent to the server regardless of whether the field is empty or not.
38369	// This may be used to include empty fields in Patch requests.
38370	ForceSendFields []string `json:"-"`
38371
38372	// NullFields is a list of field names (e.g. "Action") to include in API
38373	// requests with the JSON null value. By default, fields with empty
38374	// values are omitted from API requests. However, any field with an
38375	// empty value appearing in NullFields will be sent to the server as
38376	// null. It is an error if a field in this list has a non-empty value.
38377	// This may be used to include null fields in Patch requests.
38378	NullFields []string `json:"-"`
38379}
38380
38381func (s *Rule) MarshalJSON() ([]byte, error) {
38382	type NoMethod Rule
38383	raw := NoMethod(*s)
38384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38385}
38386
38387type SSLHealthCheck struct {
38388	// Port: The TCP port number for the health check request. The default
38389	// value is 443. Valid values are 1 through 65535.
38390	Port int64 `json:"port,omitempty"`
38391
38392	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
38393	// both port and port_name are defined, port takes precedence.
38394	PortName string `json:"portName,omitempty"`
38395
38396	// PortSpecification: Specifies how port is selected for health
38397	// checking, can be one of following values: USE_FIXED_PORT: The port
38398	// number in port is used for health checking. USE_NAMED_PORT: The
38399	// portName is used for health checking. USE_SERVING_PORT: For
38400	// NetworkEndpointGroup, the port specified for each network endpoint is
38401	// used for health checking. For other backends, the port or named port
38402	// specified in the Backend Service is used for health checking. If not
38403	// specified, SSL health check follows behavior specified in port and
38404	// portName fields.
38405	//
38406	// Possible values:
38407	//   "USE_FIXED_PORT" - The port number in port is used for health
38408	// checking.
38409	//   "USE_NAMED_PORT" - The portName is used for health checking.
38410	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
38411	// for each network endpoint is used for health checking. For other
38412	// backends, the port or named port specified in the Backend Service is
38413	// used for health checking.
38414	PortSpecification string `json:"portSpecification,omitempty"`
38415
38416	// ProxyHeader: Specifies the type of proxy header to append before
38417	// sending data to the backend, either NONE or PROXY_V1. The default is
38418	// NONE.
38419	//
38420	// Possible values:
38421	//   "NONE"
38422	//   "PROXY_V1"
38423	ProxyHeader string `json:"proxyHeader,omitempty"`
38424
38425	// Request: The application data to send once the SSL connection has
38426	// been established (default value is empty). If both request and
38427	// response are empty, the connection establishment alone will indicate
38428	// health. The request data can only be ASCII.
38429	Request string `json:"request,omitempty"`
38430
38431	// Response: The bytes to match against the beginning of the response
38432	// data. If left empty (the default value), any response will indicate
38433	// health. The response data can only be ASCII.
38434	Response string `json:"response,omitempty"`
38435
38436	// ForceSendFields is a list of field names (e.g. "Port") to
38437	// unconditionally include in API requests. By default, fields with
38438	// empty or default values are omitted from API requests. However, any
38439	// non-pointer, non-interface field appearing in ForceSendFields will be
38440	// sent to the server regardless of whether the field is empty or not.
38441	// This may be used to include empty fields in Patch requests.
38442	ForceSendFields []string `json:"-"`
38443
38444	// NullFields is a list of field names (e.g. "Port") to include in API
38445	// requests with the JSON null value. By default, fields with empty
38446	// values are omitted from API requests. However, any field with an
38447	// empty value appearing in NullFields will be sent to the server as
38448	// null. It is an error if a field in this list has a non-empty value.
38449	// This may be used to include null fields in Patch requests.
38450	NullFields []string `json:"-"`
38451}
38452
38453func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
38454	type NoMethod SSLHealthCheck
38455	raw := NoMethod(*s)
38456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38457}
38458
38459type ScalingScheduleStatus struct {
38460	// LastStartTime: [Output Only] The last time the scaling schedule
38461	// became active. Note: this is a timestamp when a schedule actually
38462	// became active, not when it was planned to do so. The timestamp is in
38463	// RFC3339 text format.
38464	LastStartTime string `json:"lastStartTime,omitempty"`
38465
38466	// NextStartTime: [Output Only] The next time the scaling schedule is to
38467	// become active. Note: this is a timestamp when a schedule is planned
38468	// to run, but the actual time might be slightly different. The
38469	// timestamp is in RFC3339 text format.
38470	NextStartTime string `json:"nextStartTime,omitempty"`
38471
38472	// State: [Output Only] The current state of a scaling schedule.
38473	//
38474	// Possible values:
38475	//   "ACTIVE" - The current autoscaling recommendation is influenced by
38476	// this scaling schedule.
38477	//   "DISABLED" - This scaling schedule has been disabled by the user.
38478	//   "OBSOLETE" - This scaling schedule will never become active again.
38479	//   "READY" - The current autoscaling recommendation is not influenced
38480	// by this scaling schedule.
38481	State string `json:"state,omitempty"`
38482
38483	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
38484	// unconditionally include in API requests. By default, fields with
38485	// empty or default values are omitted from API requests. However, any
38486	// non-pointer, non-interface field appearing in ForceSendFields will be
38487	// sent to the server regardless of whether the field is empty or not.
38488	// This may be used to include empty fields in Patch requests.
38489	ForceSendFields []string `json:"-"`
38490
38491	// NullFields is a list of field names (e.g. "LastStartTime") to include
38492	// in API requests with the JSON null value. By default, fields with
38493	// empty values are omitted from API requests. However, any field with
38494	// an empty value appearing in NullFields will be sent to the server as
38495	// null. It is an error if a field in this list has a non-empty value.
38496	// This may be used to include null fields in Patch requests.
38497	NullFields []string `json:"-"`
38498}
38499
38500func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
38501	type NoMethod ScalingScheduleStatus
38502	raw := NoMethod(*s)
38503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38504}
38505
38506// Scheduling: Sets the scheduling options for an Instance. NextID: 21
38507type Scheduling struct {
38508	// AutomaticRestart: Specifies whether the instance should be
38509	// automatically restarted if it is terminated by Compute Engine (not
38510	// terminated by a user). You can only set the automatic restart option
38511	// for standard instances. Preemptible instances cannot be automatically
38512	// restarted. By default, this is set to true so an instance is
38513	// automatically restarted if it is terminated by Compute Engine.
38514	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
38515
38516	// LocationHint: An opaque location hint used to place the instance
38517	// close to other resources. This field is for use by internal tools
38518	// that use the public API.
38519	LocationHint string `json:"locationHint,omitempty"`
38520
38521	// MinNodeCpus: The minimum number of virtual CPUs this instance will
38522	// consume when running on a sole-tenant node.
38523	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
38524
38525	// NodeAffinities: A set of node affinity and anti-affinity
38526	// configurations. Refer to Configuring node affinity for more
38527	// information. Overrides reservationAffinity.
38528	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
38529
38530	// OnHostMaintenance: Defines the maintenance behavior for this
38531	// instance. For standard instances, the default behavior is MIGRATE.
38532	// For preemptible instances, the default and only possible behavior is
38533	// TERMINATE. For more information, see Setting Instance Scheduling
38534	// Options.
38535	//
38536	// Possible values:
38537	//   "MIGRATE" - *[Default]* Allows Compute Engine to automatically
38538	// migrate instances out of the way of maintenance events.
38539	//   "TERMINATE" - Tells Compute Engine to terminate and (optionally)
38540	// restart the instance away from the maintenance activity. If you would
38541	// like your instance to be restarted, set the automaticRestart flag to
38542	// true. Your instance may be restarted more than once, and it may be
38543	// restarted outside the window of maintenance events.
38544	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
38545
38546	// Preemptible: Defines whether the instance is preemptible. This can
38547	// only be set during instance creation or while the instance is stopped
38548	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
38549	// more information on the possible instance states.
38550	Preemptible bool `json:"preemptible,omitempty"`
38551
38552	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
38553	// unconditionally include in API requests. By default, fields with
38554	// empty or default values are omitted from API requests. However, any
38555	// non-pointer, non-interface field appearing in ForceSendFields will be
38556	// sent to the server regardless of whether the field is empty or not.
38557	// This may be used to include empty fields in Patch requests.
38558	ForceSendFields []string `json:"-"`
38559
38560	// NullFields is a list of field names (e.g. "AutomaticRestart") to
38561	// include in API requests with the JSON null value. By default, fields
38562	// with empty values are omitted from API requests. However, any field
38563	// with an empty value appearing in NullFields will be sent to the
38564	// server as null. It is an error if a field in this list has a
38565	// non-empty value. This may be used to include null fields in Patch
38566	// requests.
38567	NullFields []string `json:"-"`
38568}
38569
38570func (s *Scheduling) MarshalJSON() ([]byte, error) {
38571	type NoMethod Scheduling
38572	raw := NoMethod(*s)
38573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38574}
38575
38576// SchedulingNodeAffinity: Node Affinity: the configuration of desired
38577// nodes onto which this Instance could be scheduled.
38578type SchedulingNodeAffinity struct {
38579	// Key: Corresponds to the label key of Node resource.
38580	Key string `json:"key,omitempty"`
38581
38582	// Operator: Defines the operation of node selection. Valid operators
38583	// are IN for affinity and NOT_IN for anti-affinity.
38584	//
38585	// Possible values:
38586	//   "IN" - Requires Compute Engine to seek for matched nodes.
38587	//   "NOT_IN" - Requires Compute Engine to avoid certain nodes.
38588	//   "OPERATOR_UNSPECIFIED"
38589	Operator string `json:"operator,omitempty"`
38590
38591	// Values: Corresponds to the label values of Node resource.
38592	Values []string `json:"values,omitempty"`
38593
38594	// ForceSendFields is a list of field names (e.g. "Key") to
38595	// unconditionally include in API requests. By default, fields with
38596	// empty or default values are omitted from API requests. However, any
38597	// non-pointer, non-interface field appearing in ForceSendFields will be
38598	// sent to the server regardless of whether the field is empty or not.
38599	// This may be used to include empty fields in Patch requests.
38600	ForceSendFields []string `json:"-"`
38601
38602	// NullFields is a list of field names (e.g. "Key") to include in API
38603	// requests with the JSON null value. By default, fields with empty
38604	// values are omitted from API requests. However, any field with an
38605	// empty value appearing in NullFields will be sent to the server as
38606	// null. It is an error if a field in this list has a non-empty value.
38607	// This may be used to include null fields in Patch requests.
38608	NullFields []string `json:"-"`
38609}
38610
38611func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
38612	type NoMethod SchedulingNodeAffinity
38613	raw := NoMethod(*s)
38614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38615}
38616
38617// Screenshot: An instance's screenshot.
38618type Screenshot struct {
38619	// Contents: [Output Only] The Base64-encoded screenshot data.
38620	Contents string `json:"contents,omitempty"`
38621
38622	// Kind: [Output Only] Type of the resource. Always compute#screenshot
38623	// for the screenshots.
38624	Kind string `json:"kind,omitempty"`
38625
38626	// ServerResponse contains the HTTP response code and headers from the
38627	// server.
38628	googleapi.ServerResponse `json:"-"`
38629
38630	// ForceSendFields is a list of field names (e.g. "Contents") to
38631	// unconditionally include in API requests. By default, fields with
38632	// empty or default values are omitted from API requests. However, any
38633	// non-pointer, non-interface field appearing in ForceSendFields will be
38634	// sent to the server regardless of whether the field is empty or not.
38635	// This may be used to include empty fields in Patch requests.
38636	ForceSendFields []string `json:"-"`
38637
38638	// NullFields is a list of field names (e.g. "Contents") to include in
38639	// API requests with the JSON null value. By default, fields with empty
38640	// values are omitted from API requests. However, any field with an
38641	// empty value appearing in NullFields will be sent to the server as
38642	// null. It is an error if a field in this list has a non-empty value.
38643	// This may be used to include null fields in Patch requests.
38644	NullFields []string `json:"-"`
38645}
38646
38647func (s *Screenshot) MarshalJSON() ([]byte, error) {
38648	type NoMethod Screenshot
38649	raw := NoMethod(*s)
38650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38651}
38652
38653type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
38654	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
38655
38656	// ServerResponse contains the HTTP response code and headers from the
38657	// server.
38658	googleapi.ServerResponse `json:"-"`
38659
38660	// ForceSendFields is a list of field names (e.g.
38661	// "PreconfiguredExpressionSets") to unconditionally include in API
38662	// requests. By default, fields with empty or default values are omitted
38663	// from API requests. However, any non-pointer, non-interface field
38664	// appearing in ForceSendFields will be sent to the server regardless of
38665	// whether the field is empty or not. This may be used to include empty
38666	// fields in Patch requests.
38667	ForceSendFields []string `json:"-"`
38668
38669	// NullFields is a list of field names (e.g.
38670	// "PreconfiguredExpressionSets") to include in API requests with the
38671	// JSON null value. By default, fields with empty values are omitted
38672	// from API requests. However, any field with an empty value appearing
38673	// in NullFields will be sent to the server as null. It is an error if a
38674	// field in this list has a non-empty value. This may be used to include
38675	// null fields in Patch requests.
38676	NullFields []string `json:"-"`
38677}
38678
38679func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
38680	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
38681	raw := NoMethod(*s)
38682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38683}
38684
38685type SecurityPoliciesWafConfig struct {
38686	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
38687
38688	// ForceSendFields is a list of field names (e.g. "WafRules") to
38689	// unconditionally include in API requests. By default, fields with
38690	// empty or default values are omitted from API requests. However, any
38691	// non-pointer, non-interface field appearing in ForceSendFields will be
38692	// sent to the server regardless of whether the field is empty or not.
38693	// This may be used to include empty fields in Patch requests.
38694	ForceSendFields []string `json:"-"`
38695
38696	// NullFields is a list of field names (e.g. "WafRules") to include in
38697	// API requests with the JSON null value. By default, fields with empty
38698	// values are omitted from API requests. However, any field with an
38699	// empty value appearing in NullFields will be sent to the server as
38700	// null. It is an error if a field in this list has a non-empty value.
38701	// This may be used to include null fields in Patch requests.
38702	NullFields []string `json:"-"`
38703}
38704
38705func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
38706	type NoMethod SecurityPoliciesWafConfig
38707	raw := NoMethod(*s)
38708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38709}
38710
38711// SecurityPolicy: Represents a Google Cloud Armor security policy
38712// resource. Only external backend services that use load balancers can
38713// reference a security policy. For more information, see Google Cloud
38714// Armor security policy overview.
38715type SecurityPolicy struct {
38716	AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"`
38717
38718	AdvancedOptionsConfig *SecurityPolicyAdvancedOptionsConfig `json:"advancedOptionsConfig,omitempty"`
38719
38720	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38721	// format.
38722	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38723
38724	// Description: An optional description of this resource. Provide this
38725	// property when you create the resource.
38726	Description string `json:"description,omitempty"`
38727
38728	// Fingerprint: Specifies a fingerprint for this resource, which is
38729	// essentially a hash of the metadata's contents and used for optimistic
38730	// locking. The fingerprint is initially generated by Compute Engine and
38731	// changes after every request to modify or update metadata. You must
38732	// always provide an up-to-date fingerprint hash in order to update or
38733	// change metadata, otherwise the request will fail with error 412
38734	// conditionNotMet. To see the latest fingerprint, make get() request to
38735	// the security policy.
38736	Fingerprint string `json:"fingerprint,omitempty"`
38737
38738	// Id: [Output Only] The unique identifier for the resource. This
38739	// identifier is defined by the server.
38740	Id uint64 `json:"id,omitempty,string"`
38741
38742	// Kind: [Output only] Type of the resource. Always
38743	// compute#securityPolicyfor security policies
38744	Kind string `json:"kind,omitempty"`
38745
38746	// Name: Name of the resource. Provided by the client when the resource
38747	// is created. The name must be 1-63 characters long, and comply with
38748	// RFC1035. Specifically, the name must be 1-63 characters long and
38749	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38750	// the first character must be a lowercase letter, and all following
38751	// characters must be a dash, lowercase letter, or digit, except the
38752	// last character, which cannot be a dash.
38753	Name string `json:"name,omitempty"`
38754
38755	// Rules: A list of rules that belong to this policy. There must always
38756	// be a default rule (rule with priority 2147483647 and match "*"). If
38757	// no rules are provided when creating a security policy, a default rule
38758	// with action "allow" will be added.
38759	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
38760
38761	// SelfLink: [Output Only] Server-defined URL for the resource.
38762	SelfLink string `json:"selfLink,omitempty"`
38763
38764	// ServerResponse contains the HTTP response code and headers from the
38765	// server.
38766	googleapi.ServerResponse `json:"-"`
38767
38768	// ForceSendFields is a list of field names (e.g.
38769	// "AdaptiveProtectionConfig") to unconditionally include in API
38770	// requests. By default, fields with empty or default values are omitted
38771	// from API requests. However, any non-pointer, non-interface field
38772	// appearing in ForceSendFields will be sent to the server regardless of
38773	// whether the field is empty or not. This may be used to include empty
38774	// fields in Patch requests.
38775	ForceSendFields []string `json:"-"`
38776
38777	// NullFields is a list of field names (e.g. "AdaptiveProtectionConfig")
38778	// to include in API requests with the JSON null value. By default,
38779	// fields with empty values are omitted from API requests. However, any
38780	// field with an empty value appearing in NullFields will be sent to the
38781	// server as null. It is an error if a field in this list has a
38782	// non-empty value. This may be used to include null fields in Patch
38783	// requests.
38784	NullFields []string `json:"-"`
38785}
38786
38787func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
38788	type NoMethod SecurityPolicy
38789	raw := NoMethod(*s)
38790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38791}
38792
38793// SecurityPolicyAdaptiveProtectionConfig: Configuration options for
38794// Cloud Armor Adaptive Protection (CAAP).
38795type SecurityPolicyAdaptiveProtectionConfig struct {
38796	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
38797	// Learning.
38798	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
38799
38800	// ForceSendFields is a list of field names (e.g.
38801	// "Layer7DdosDefenseConfig") to unconditionally include in API
38802	// requests. By default, fields with empty or default values are omitted
38803	// from API requests. However, any non-pointer, non-interface field
38804	// appearing in ForceSendFields will be sent to the server regardless of
38805	// whether the field is empty or not. This may be used to include empty
38806	// fields in Patch requests.
38807	ForceSendFields []string `json:"-"`
38808
38809	// NullFields is a list of field names (e.g. "Layer7DdosDefenseConfig")
38810	// to include in API requests with the JSON null value. By default,
38811	// fields with empty values are omitted from API requests. However, any
38812	// field with an empty value appearing in NullFields will be sent to the
38813	// server as null. It is an error if a field in this list has a
38814	// non-empty value. This may be used to include null fields in Patch
38815	// requests.
38816	NullFields []string `json:"-"`
38817}
38818
38819func (s *SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) {
38820	type NoMethod SecurityPolicyAdaptiveProtectionConfig
38821	raw := NoMethod(*s)
38822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38823}
38824
38825// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:
38826// Configuration options for L7 DDoS detection.
38827type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct {
38828	// Enable: If set to true, enables CAAP for L7 DDoS detection.
38829	Enable bool `json:"enable,omitempty"`
38830
38831	// RuleVisibility: Rule visibility can be one of the following: STANDARD
38832	// - opaque rules. (default) PREMIUM - transparent rules.
38833	//
38834	// Possible values:
38835	//   "PREMIUM"
38836	//   "STANDARD"
38837	RuleVisibility string `json:"ruleVisibility,omitempty"`
38838
38839	// ForceSendFields is a list of field names (e.g. "Enable") to
38840	// unconditionally include in API requests. By default, fields with
38841	// empty or default values are omitted from API requests. However, any
38842	// non-pointer, non-interface field appearing in ForceSendFields will be
38843	// sent to the server regardless of whether the field is empty or not.
38844	// This may be used to include empty fields in Patch requests.
38845	ForceSendFields []string `json:"-"`
38846
38847	// NullFields is a list of field names (e.g. "Enable") to include in API
38848	// requests with the JSON null value. By default, fields with empty
38849	// values are omitted from API requests. However, any field with an
38850	// empty value appearing in NullFields will be sent to the server as
38851	// null. It is an error if a field in this list has a non-empty value.
38852	// This may be used to include null fields in Patch requests.
38853	NullFields []string `json:"-"`
38854}
38855
38856func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) {
38857	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
38858	raw := NoMethod(*s)
38859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38860}
38861
38862type SecurityPolicyAdvancedOptionsConfig struct {
38863	// Possible values:
38864	//   "DISABLED"
38865	//   "STANDARD"
38866	JsonParsing string `json:"jsonParsing,omitempty"`
38867
38868	// Possible values:
38869	//   "NORMAL"
38870	//   "VERBOSE"
38871	LogLevel string `json:"logLevel,omitempty"`
38872
38873	// ForceSendFields is a list of field names (e.g. "JsonParsing") to
38874	// unconditionally include in API requests. By default, fields with
38875	// empty or default values are omitted from API requests. However, any
38876	// non-pointer, non-interface field appearing in ForceSendFields will be
38877	// sent to the server regardless of whether the field is empty or not.
38878	// This may be used to include empty fields in Patch requests.
38879	ForceSendFields []string `json:"-"`
38880
38881	// NullFields is a list of field names (e.g. "JsonParsing") to include
38882	// in API requests with the JSON null value. By default, fields with
38883	// empty values are omitted from API requests. However, any field with
38884	// an empty value appearing in NullFields will be sent to the server as
38885	// null. It is an error if a field in this list has a non-empty value.
38886	// This may be used to include null fields in Patch requests.
38887	NullFields []string `json:"-"`
38888}
38889
38890func (s *SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) {
38891	type NoMethod SecurityPolicyAdvancedOptionsConfig
38892	raw := NoMethod(*s)
38893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38894}
38895
38896type SecurityPolicyList struct {
38897	// Id: [Output Only] Unique identifier for the resource; defined by the
38898	// server.
38899	Id string `json:"id,omitempty"`
38900
38901	// Items: A list of SecurityPolicy resources.
38902	Items []*SecurityPolicy `json:"items,omitempty"`
38903
38904	// Kind: [Output Only] Type of resource. Always
38905	// compute#securityPolicyList for listsof securityPolicies
38906	Kind string `json:"kind,omitempty"`
38907
38908	// NextPageToken: [Output Only] This token allows you to get the next
38909	// page of results for list requests. If the number of results is larger
38910	// than maxResults, use the nextPageToken as a value for the query
38911	// parameter pageToken in the next list request. Subsequent list
38912	// requests will have their own nextPageToken to continue paging through
38913	// the results.
38914	NextPageToken string `json:"nextPageToken,omitempty"`
38915
38916	// Warning: [Output Only] Informational warning message.
38917	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
38918
38919	// ServerResponse contains the HTTP response code and headers from the
38920	// server.
38921	googleapi.ServerResponse `json:"-"`
38922
38923	// ForceSendFields is a list of field names (e.g. "Id") to
38924	// unconditionally include in API requests. By default, fields with
38925	// empty or default values are omitted from API requests. However, any
38926	// non-pointer, non-interface field appearing in ForceSendFields will be
38927	// sent to the server regardless of whether the field is empty or not.
38928	// This may be used to include empty fields in Patch requests.
38929	ForceSendFields []string `json:"-"`
38930
38931	// NullFields is a list of field names (e.g. "Id") to include in API
38932	// requests with the JSON null value. By default, fields with empty
38933	// values are omitted from API requests. However, any field with an
38934	// empty value appearing in NullFields will be sent to the server as
38935	// null. It is an error if a field in this list has a non-empty value.
38936	// This may be used to include null fields in Patch requests.
38937	NullFields []string `json:"-"`
38938}
38939
38940func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
38941	type NoMethod SecurityPolicyList
38942	raw := NoMethod(*s)
38943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38944}
38945
38946// SecurityPolicyListWarning: [Output Only] Informational warning
38947// message.
38948type SecurityPolicyListWarning struct {
38949	// Code: [Output Only] A warning code, if applicable. For example,
38950	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38951	// the response.
38952	//
38953	// Possible values:
38954	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
38955	// changes made by a failed operation.
38956	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
38957	// created.
38958	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
38959	// resources has a type marked as deprecated
38960	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
38961	// that is larger than image size.
38962	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
38963	// resources has a type marked as experimental
38964	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
38965	// call
38966	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
38967	// overridden. Deprecated unused field.
38968	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
38969	// injected kernel, which is deprecated.
38970	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
38971	// exceedingly large number of resources
38972	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
38973	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
38974	// not assigned to an instance on the network.
38975	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
38976	// ip forward.
38977	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
38978	// refers to an instance that does not exist.
38979	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
38980	// URL refers to an instance that is not on the same network as the
38981	// route.
38982	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
38983	// have a status of RUNNING.
38984	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
38985	// continue the process despite the mentioned error.
38986	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
38987	// page.
38988	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
38989	// missing due to errors
38990	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
38991	// that requires a TOS they have not accepted.
38992	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
38993	// resource is in use.
38994	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
38995	// auto-delete could not be deleted because they were in use.
38996	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
38997	// ignored.
38998	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
38999	// instance group manager is valid as such, but its application does not
39000	// make a lot of sense, because it allows only single instance in
39001	// instance group.
39002	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
39003	// are present
39004	//   "UNREACHABLE" - A given scope cannot be reached.
39005	Code string `json:"code,omitempty"`
39006
39007	// Data: [Output Only] Metadata about this warning in key: value format.
39008	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
39009	// }
39010	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
39011
39012	// Message: [Output Only] A human-readable description of the warning
39013	// code.
39014	Message string `json:"message,omitempty"`
39015
39016	// ForceSendFields is a list of field names (e.g. "Code") to
39017	// unconditionally include in API requests. By default, fields with
39018	// empty or default values are omitted from API requests. However, any
39019	// non-pointer, non-interface field appearing in ForceSendFields will be
39020	// sent to the server regardless of whether the field is empty or not.
39021	// This may be used to include empty fields in Patch requests.
39022	ForceSendFields []string `json:"-"`
39023
39024	// NullFields is a list of field names (e.g. "Code") to include in API
39025	// requests with the JSON null value. By default, fields with empty
39026	// values are omitted from API requests. However, any field with an
39027	// empty value appearing in NullFields will be sent to the server as
39028	// null. It is an error if a field in this list has a non-empty value.
39029	// This may be used to include null fields in Patch requests.
39030	NullFields []string `json:"-"`
39031}
39032
39033func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
39034	type NoMethod SecurityPolicyListWarning
39035	raw := NoMethod(*s)
39036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39037}
39038
39039type SecurityPolicyListWarningData struct {
39040	// Key: [Output Only] A key that provides more detail on the warning
39041	// being returned. For example, for warnings where there are no results
39042	// in a list request for a particular zone, this key might be scope and
39043	// the key value might be the zone name. Other examples might be a key
39044	// indicating a deprecated resource and a suggested replacement, or a
39045	// warning about invalid network settings (for example, if an instance
39046	// attempts to perform IP forwarding but is not enabled for IP
39047	// forwarding).
39048	Key string `json:"key,omitempty"`
39049
39050	// Value: [Output Only] A warning data value corresponding to the key.
39051	Value string `json:"value,omitempty"`
39052
39053	// ForceSendFields is a list of field names (e.g. "Key") to
39054	// unconditionally include in API requests. By default, fields with
39055	// empty or default values are omitted from API requests. However, any
39056	// non-pointer, non-interface field appearing in ForceSendFields will be
39057	// sent to the server regardless of whether the field is empty or not.
39058	// This may be used to include empty fields in Patch requests.
39059	ForceSendFields []string `json:"-"`
39060
39061	// NullFields is a list of field names (e.g. "Key") to include in API
39062	// requests with the JSON null value. By default, fields with empty
39063	// values are omitted from API requests. However, any field with an
39064	// empty value appearing in NullFields will be sent to the server as
39065	// null. It is an error if a field in this list has a non-empty value.
39066	// This may be used to include null fields in Patch requests.
39067	NullFields []string `json:"-"`
39068}
39069
39070func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
39071	type NoMethod SecurityPolicyListWarningData
39072	raw := NoMethod(*s)
39073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39074}
39075
39076type SecurityPolicyReference struct {
39077	SecurityPolicy string `json:"securityPolicy,omitempty"`
39078
39079	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
39080	// unconditionally include in API requests. By default, fields with
39081	// empty or default values are omitted from API requests. However, any
39082	// non-pointer, non-interface field appearing in ForceSendFields will be
39083	// sent to the server regardless of whether the field is empty or not.
39084	// This may be used to include empty fields in Patch requests.
39085	ForceSendFields []string `json:"-"`
39086
39087	// NullFields is a list of field names (e.g. "SecurityPolicy") to
39088	// include in API requests with the JSON null value. By default, fields
39089	// with empty values are omitted from API requests. However, any field
39090	// with an empty value appearing in NullFields will be sent to the
39091	// server as null. It is an error if a field in this list has a
39092	// non-empty value. This may be used to include null fields in Patch
39093	// requests.
39094	NullFields []string `json:"-"`
39095}
39096
39097func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
39098	type NoMethod SecurityPolicyReference
39099	raw := NoMethod(*s)
39100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39101}
39102
39103// SecurityPolicyRule: Represents a rule that describes one or more
39104// match conditions along with the action to be taken when traffic
39105// matches this condition (allow or deny).
39106type SecurityPolicyRule struct {
39107	// Action: The Action to perform when the client connection triggers the
39108	// rule. Can currently be either "allow" or "deny()" where valid values
39109	// for status are 403, 404, and 502.
39110	Action string `json:"action,omitempty"`
39111
39112	// Description: An optional description of this resource. Provide this
39113	// property when you create the resource.
39114	Description string `json:"description,omitempty"`
39115
39116	// Kind: [Output only] Type of the resource. Always
39117	// compute#securityPolicyRule for security policy rules
39118	Kind string `json:"kind,omitempty"`
39119
39120	// Match: A match condition that incoming traffic is evaluated against.
39121	// If it evaluates to true, the corresponding 'action' is enforced.
39122	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
39123
39124	// Preview: If set to true, the specified action is not enforced.
39125	Preview bool `json:"preview,omitempty"`
39126
39127	// Priority: An integer indicating the priority of a rule in the list.
39128	// The priority must be a positive value between 0 and 2147483647. Rules
39129	// are evaluated from highest to lowest priority where 0 is the highest
39130	// priority and 2147483647 is the lowest priority.
39131	Priority int64 `json:"priority,omitempty"`
39132
39133	// ServerResponse contains the HTTP response code and headers from the
39134	// server.
39135	googleapi.ServerResponse `json:"-"`
39136
39137	// ForceSendFields is a list of field names (e.g. "Action") to
39138	// unconditionally include in API requests. By default, fields with
39139	// empty or default values are omitted from API requests. However, any
39140	// non-pointer, non-interface field appearing in ForceSendFields will be
39141	// sent to the server regardless of whether the field is empty or not.
39142	// This may be used to include empty fields in Patch requests.
39143	ForceSendFields []string `json:"-"`
39144
39145	// NullFields is a list of field names (e.g. "Action") to include in API
39146	// requests with the JSON null value. By default, fields with empty
39147	// values are omitted from API requests. However, any field with an
39148	// empty value appearing in NullFields will be sent to the server as
39149	// null. It is an error if a field in this list has a non-empty value.
39150	// This may be used to include null fields in Patch requests.
39151	NullFields []string `json:"-"`
39152}
39153
39154func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
39155	type NoMethod SecurityPolicyRule
39156	raw := NoMethod(*s)
39157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39158}
39159
39160// SecurityPolicyRuleMatcher: Represents a match condition that incoming
39161// traffic is evaluated against. Exactly one field must be specified.
39162type SecurityPolicyRuleMatcher struct {
39163	// Config: The configuration options available when specifying
39164	// versioned_expr. This field must be specified if versioned_expr is
39165	// specified and cannot be specified if versioned_expr is not specified.
39166	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
39167
39168	// Expr: User defined CEVAL expression. A CEVAL expression is used to
39169	// specify match criteria such as origin.ip, source.region_code and
39170	// contents in the request header.
39171	Expr *Expr `json:"expr,omitempty"`
39172
39173	// VersionedExpr: Preconfigured versioned expression. If this field is
39174	// specified, config must also be specified. Available preconfigured
39175	// expressions along with their requirements are: SRC_IPS_V1 - must
39176	// specify the corresponding src_ip_range field in config.
39177	//
39178	// Possible values:
39179	//   "SRC_IPS_V1" - Matches the source IP address of a request to the IP
39180	// ranges supplied in config.
39181	VersionedExpr string `json:"versionedExpr,omitempty"`
39182
39183	// ForceSendFields is a list of field names (e.g. "Config") to
39184	// unconditionally include in API requests. By default, fields with
39185	// empty or default values are omitted from API requests. However, any
39186	// non-pointer, non-interface field appearing in ForceSendFields will be
39187	// sent to the server regardless of whether the field is empty or not.
39188	// This may be used to include empty fields in Patch requests.
39189	ForceSendFields []string `json:"-"`
39190
39191	// NullFields is a list of field names (e.g. "Config") to include in API
39192	// requests with the JSON null value. By default, fields with empty
39193	// values are omitted from API requests. However, any field with an
39194	// empty value appearing in NullFields will be sent to the server as
39195	// null. It is an error if a field in this list has a non-empty value.
39196	// This may be used to include null fields in Patch requests.
39197	NullFields []string `json:"-"`
39198}
39199
39200func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
39201	type NoMethod SecurityPolicyRuleMatcher
39202	raw := NoMethod(*s)
39203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39204}
39205
39206type SecurityPolicyRuleMatcherConfig struct {
39207	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges
39208	// allowed is 10.
39209	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
39210
39211	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
39212	// unconditionally include in API requests. By default, fields with
39213	// empty or default values are omitted from API requests. However, any
39214	// non-pointer, non-interface field appearing in ForceSendFields will be
39215	// sent to the server regardless of whether the field is empty or not.
39216	// This may be used to include empty fields in Patch requests.
39217	ForceSendFields []string `json:"-"`
39218
39219	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
39220	// in API requests with the JSON null value. By default, fields with
39221	// empty values are omitted from API requests. However, any field with
39222	// an empty value appearing in NullFields will be sent to the server as
39223	// null. It is an error if a field in this list has a non-empty value.
39224	// This may be used to include null fields in Patch requests.
39225	NullFields []string `json:"-"`
39226}
39227
39228func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
39229	type NoMethod SecurityPolicyRuleMatcherConfig
39230	raw := NoMethod(*s)
39231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39232}
39233
39234// SecuritySettings: The authentication and authorization settings for a
39235// BackendService.
39236type SecuritySettings struct {
39237	// ClientTlsPolicy: Optional. A URL referring to a
39238	// networksecurity.ClientTlsPolicy resource that describes how clients
39239	// should authenticate with this service's backends. clientTlsPolicy
39240	// only applies to a global BackendService with the loadBalancingScheme
39241	// set to INTERNAL_SELF_MANAGED. If left blank, communications are not
39242	// encrypted. Note: This field currently has no impact.
39243	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
39244
39245	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
39246	// that the client verifies during a mutual TLS handshake with an
39247	// server/endpoint for this BackendService. When the server presents its
39248	// X.509 certificate to the client, the client inspects the
39249	// certificate's subjectAltName field. If the field contains one of the
39250	// specified values, the communication continues. Otherwise, it fails.
39251	// This additional check enables the client to verify that the server is
39252	// authorized to run the requested service. Note that the contents of
39253	// the server certificate's subjectAltName field are configured by the
39254	// Public Key Infrastructure which provisions server identities. Only
39255	// applies to a global BackendService with loadBalancingScheme set to
39256	// INTERNAL_SELF_MANAGED. Only applies when BackendService has an
39257	// attached clientTlsPolicy with clientCertificate (mTLS mode). Note:
39258	// This field currently has no impact.
39259	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
39260
39261	// ForceSendFields is a list of field names (e.g. "ClientTlsPolicy") to
39262	// unconditionally include in API requests. By default, fields with
39263	// empty or default values are omitted from API requests. However, any
39264	// non-pointer, non-interface field appearing in ForceSendFields will be
39265	// sent to the server regardless of whether the field is empty or not.
39266	// This may be used to include empty fields in Patch requests.
39267	ForceSendFields []string `json:"-"`
39268
39269	// NullFields is a list of field names (e.g. "ClientTlsPolicy") to
39270	// include in API requests with the JSON null value. By default, fields
39271	// with empty values are omitted from API requests. However, any field
39272	// with an empty value appearing in NullFields will be sent to the
39273	// server as null. It is an error if a field in this list has a
39274	// non-empty value. This may be used to include null fields in Patch
39275	// requests.
39276	NullFields []string `json:"-"`
39277}
39278
39279func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
39280	type NoMethod SecuritySettings
39281	raw := NoMethod(*s)
39282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39283}
39284
39285// SerialPortOutput: An instance serial console output.
39286type SerialPortOutput struct {
39287	// Contents: [Output Only] The contents of the console output.
39288	Contents string `json:"contents,omitempty"`
39289
39290	// Kind: [Output Only] Type of the resource. Always
39291	// compute#serialPortOutput for serial port output.
39292	Kind string `json:"kind,omitempty"`
39293
39294	// Next: [Output Only] The position of the next byte of content,
39295	// regardless of whether the content exists, following the output
39296	// returned in the `contents` property. Use this value in the next
39297	// request as the start parameter.
39298	Next int64 `json:"next,omitempty,string"`
39299
39300	// SelfLink: [Output Only] Server-defined URL for this resource.
39301	SelfLink string `json:"selfLink,omitempty"`
39302
39303	// Start: The starting byte position of the output that was returned.
39304	// This should match the start parameter sent with the request. If the
39305	// serial console output exceeds the size of the buffer (1 MB), older
39306	// output is overwritten by newer content. The output start value will
39307	// indicate the byte position of the output that was returned, which
39308	// might be different than the `start` value that was specified in the
39309	// request.
39310	Start int64 `json:"start,omitempty,string"`
39311
39312	// ServerResponse contains the HTTP response code and headers from the
39313	// server.
39314	googleapi.ServerResponse `json:"-"`
39315
39316	// ForceSendFields is a list of field names (e.g. "Contents") to
39317	// unconditionally include in API requests. By default, fields with
39318	// empty or default values are omitted from API requests. However, any
39319	// non-pointer, non-interface field appearing in ForceSendFields will be
39320	// sent to the server regardless of whether the field is empty or not.
39321	// This may be used to include empty fields in Patch requests.
39322	ForceSendFields []string `json:"-"`
39323
39324	// NullFields is a list of field names (e.g. "Contents") to include in
39325	// API requests with the JSON null value. By default, fields with empty
39326	// values are omitted from API requests. However, any field with an
39327	// empty value appearing in NullFields will be sent to the server as
39328	// null. It is an error if a field in this list has a non-empty value.
39329	// This may be used to include null fields in Patch requests.
39330	NullFields []string `json:"-"`
39331}
39332
39333func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
39334	type NoMethod SerialPortOutput
39335	raw := NoMethod(*s)
39336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39337}
39338
39339type ServerBinding struct {
39340	// Possible values:
39341	//   "RESTART_NODE_ON_ANY_SERVER" - Node may associate with any physical
39342	// server over its lifetime.
39343	//   "RESTART_NODE_ON_MINIMAL_SERVERS" - Node may associate with minimal
39344	// physical servers over its lifetime.
39345	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
39346	Type string `json:"type,omitempty"`
39347
39348	// ForceSendFields is a list of field names (e.g. "Type") to
39349	// unconditionally include in API requests. By default, fields with
39350	// empty or default values are omitted from API requests. However, any
39351	// non-pointer, non-interface field appearing in ForceSendFields will be
39352	// sent to the server regardless of whether the field is empty or not.
39353	// This may be used to include empty fields in Patch requests.
39354	ForceSendFields []string `json:"-"`
39355
39356	// NullFields is a list of field names (e.g. "Type") to include in API
39357	// requests with the JSON null value. By default, fields with empty
39358	// values are omitted from API requests. However, any field with an
39359	// empty value appearing in NullFields will be sent to the server as
39360	// null. It is an error if a field in this list has a non-empty value.
39361	// This may be used to include null fields in Patch requests.
39362	NullFields []string `json:"-"`
39363}
39364
39365func (s *ServerBinding) MarshalJSON() ([]byte, error) {
39366	type NoMethod ServerBinding
39367	raw := NoMethod(*s)
39368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39369}
39370
39371// ServiceAccount: A service account.
39372type ServiceAccount struct {
39373	// Email: Email address of the service account.
39374	Email string `json:"email,omitempty"`
39375
39376	// Scopes: The list of scopes to be made available for this service
39377	// account.
39378	Scopes []string `json:"scopes,omitempty"`
39379
39380	// ForceSendFields is a list of field names (e.g. "Email") to
39381	// unconditionally include in API requests. By default, fields with
39382	// empty or default values are omitted from API requests. However, any
39383	// non-pointer, non-interface field appearing in ForceSendFields will be
39384	// sent to the server regardless of whether the field is empty or not.
39385	// This may be used to include empty fields in Patch requests.
39386	ForceSendFields []string `json:"-"`
39387
39388	// NullFields is a list of field names (e.g. "Email") to include in API
39389	// requests with the JSON null value. By default, fields with empty
39390	// values are omitted from API requests. However, any field with an
39391	// empty value appearing in NullFields will be sent to the server as
39392	// null. It is an error if a field in this list has a non-empty value.
39393	// This may be used to include null fields in Patch requests.
39394	NullFields []string `json:"-"`
39395}
39396
39397func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
39398	type NoMethod ServiceAccount
39399	raw := NoMethod(*s)
39400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39401}
39402
39403// ServiceAttachment: Represents a ServiceAttachment resource. A service
39404// attachment represents a service that a producer has exposed. It
39405// encapsulates the load balancer which fronts the service runs and a
39406// list of NAT IP ranges that the producers uses to represent the
39407// consumers connecting to the service. next tag = 20
39408type ServiceAttachment struct {
39409	// ConnectedEndpoints: [Output Only] An array of connections for all the
39410	// consumers connected to this service attachment.
39411	ConnectedEndpoints []*ServiceAttachmentConnectedEndpoint `json:"connectedEndpoints,omitempty"`
39412
39413	// ConnectionPreference: The connection preference of service
39414	// attachment. The value can be set to ACCEPT_AUTOMATIC. An
39415	// ACCEPT_AUTOMATIC service attachment is one that always accepts the
39416	// connection from consumer forwarding rules.
39417	//
39418	// Possible values:
39419	//   "ACCEPT_AUTOMATIC"
39420	//   "ACCEPT_MANUAL"
39421	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
39422	ConnectionPreference string `json:"connectionPreference,omitempty"`
39423
39424	// ConsumerAcceptLists: Projects that are allowed to connect to this
39425	// service attachment.
39426	ConsumerAcceptLists []*ServiceAttachmentConsumerProjectLimit `json:"consumerAcceptLists,omitempty"`
39427
39428	// ConsumerRejectLists: Projects that are not allowed to connect to this
39429	// service attachment. The project can be specified using its id or
39430	// number.
39431	ConsumerRejectLists []string `json:"consumerRejectLists,omitempty"`
39432
39433	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39434	// format.
39435	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39436
39437	// Description: An optional description of this resource. Provide this
39438	// property when you create the resource.
39439	Description string `json:"description,omitempty"`
39440
39441	// EnableProxyProtocol: If true, enable the proxy protocol which is for
39442	// supplying client TCP/IP address data in TCP connections that traverse
39443	// proxies on their way to destination servers.
39444	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"`
39445
39446	// Fingerprint: Fingerprint of this resource. A hash of the contents
39447	// stored in this object. This field is used in optimistic locking. This
39448	// field will be ignored when inserting a ServiceAttachment. An
39449	// up-to-date fingerprint must be provided in order to patch/update the
39450	// ServiceAttachment; otherwise, the request will fail with error 412
39451	// conditionNotMet. To see the latest fingerprint, make a get() request
39452	// to retrieve the ServiceAttachment.
39453	Fingerprint string `json:"fingerprint,omitempty"`
39454
39455	// Id: [Output Only] The unique identifier for the resource type. The
39456	// server generates this identifier.
39457	Id uint64 `json:"id,omitempty,string"`
39458
39459	// Kind: [Output Only] Type of the resource. Always
39460	// compute#serviceAttachment for service attachments.
39461	Kind string `json:"kind,omitempty"`
39462
39463	// Name: Name of the resource. Provided by the client when the resource
39464	// is created. The name must be 1-63 characters long, and comply with
39465	// RFC1035. Specifically, the name must be 1-63 characters long and
39466	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39467	// the first character must be a lowercase letter, and all following
39468	// characters must be a dash, lowercase letter, or digit, except the
39469	// last character, which cannot be a dash.
39470	Name string `json:"name,omitempty"`
39471
39472	// NatSubnets: An array of URLs where each entry is the URL of a subnet
39473	// provided by the service producer to use for NAT in this service
39474	// attachment.
39475	NatSubnets []string `json:"natSubnets,omitempty"`
39476
39477	// ProducerForwardingRule: The URL of a forwarding rule with
39478	// loadBalancingScheme INTERNAL* that is serving the endpoint identified
39479	// by this service attachment.
39480	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
39481
39482	// PscServiceAttachmentId: [Output Only] An 128-bit global unique ID of
39483	// the PSC service attachment.
39484	PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"`
39485
39486	// Region: [Output Only] URL of the region where the service attachment
39487	// resides. This field applies only to the region resource. You must
39488	// specify this field as part of the HTTP request URL. It is not
39489	// settable as a field in the request body.
39490	Region string `json:"region,omitempty"`
39491
39492	// SelfLink: [Output Only] Server-defined URL for the resource.
39493	SelfLink string `json:"selfLink,omitempty"`
39494
39495	// TargetService: The URL of a service serving the endpoint identified
39496	// by this service attachment.
39497	TargetService string `json:"targetService,omitempty"`
39498
39499	// ServerResponse contains the HTTP response code and headers from the
39500	// server.
39501	googleapi.ServerResponse `json:"-"`
39502
39503	// ForceSendFields is a list of field names (e.g. "ConnectedEndpoints")
39504	// to unconditionally include in API requests. By default, fields with
39505	// empty or default values are omitted from API requests. However, any
39506	// non-pointer, non-interface field appearing in ForceSendFields will be
39507	// sent to the server regardless of whether the field is empty or not.
39508	// This may be used to include empty fields in Patch requests.
39509	ForceSendFields []string `json:"-"`
39510
39511	// NullFields is a list of field names (e.g. "ConnectedEndpoints") to
39512	// include in API requests with the JSON null value. By default, fields
39513	// with empty values are omitted from API requests. However, any field
39514	// with an empty value appearing in NullFields will be sent to the
39515	// server as null. It is an error if a field in this list has a
39516	// non-empty value. This may be used to include null fields in Patch
39517	// requests.
39518	NullFields []string `json:"-"`
39519}
39520
39521func (s *ServiceAttachment) MarshalJSON() ([]byte, error) {
39522	type NoMethod ServiceAttachment
39523	raw := NoMethod(*s)
39524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39525}
39526
39527// ServiceAttachmentAggregatedList: Contains a list of
39528// ServiceAttachmentsScopedList.
39529type ServiceAttachmentAggregatedList struct {
39530	// Id: [Output Only] Unique identifier for the resource; defined by the
39531	// server.
39532	Id string `json:"id,omitempty"`
39533
39534	// Items: A list of ServiceAttachmentsScopedList resources.
39535	Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"`
39536
39537	// Kind: Type of resource.
39538	Kind string `json:"kind,omitempty"`
39539
39540	// NextPageToken: [Output Only] This token allows you to get the next
39541	// page of results for list requests. If the number of results is larger
39542	// than maxResults, use the nextPageToken as a value for the query
39543	// parameter pageToken in the next list request. Subsequent list
39544	// requests will have their own nextPageToken to continue paging through
39545	// the results.
39546	NextPageToken string `json:"nextPageToken,omitempty"`
39547
39548	// SelfLink: [Output Only] Server-defined URL for this resource.
39549	SelfLink string `json:"selfLink,omitempty"`
39550
39551	// Unreachables: [Output Only] Unreachable resources.
39552	Unreachables []string `json:"unreachables,omitempty"`
39553
39554	// Warning: [Output Only] Informational warning message.
39555	Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"`
39556
39557	// ServerResponse contains the HTTP response code and headers from the
39558	// server.
39559	googleapi.ServerResponse `json:"-"`
39560
39561	// ForceSendFields is a list of field names (e.g. "Id") to
39562	// unconditionally include in API requests. By default, fields with
39563	// empty or default values are omitted from API requests. However, any
39564	// non-pointer, non-interface field appearing in ForceSendFields will be
39565	// sent to the server regardless of whether the field is empty or not.
39566	// This may be used to include empty fields in Patch requests.
39567	ForceSendFields []string `json:"-"`
39568
39569	// NullFields is a list of field names (e.g. "Id") to include in API
39570	// requests with the JSON null value. By default, fields with empty
39571	// values are omitted from API requests. However, any field with an
39572	// empty value appearing in NullFields will be sent to the server as
39573	// null. It is an error if a field in this list has a non-empty value.
39574	// This may be used to include null fields in Patch requests.
39575	NullFields []string `json:"-"`
39576}
39577
39578func (s *ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
39579	type NoMethod ServiceAttachmentAggregatedList
39580	raw := NoMethod(*s)
39581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39582}
39583
39584// ServiceAttachmentAggregatedListWarning: [Output Only] Informational
39585// warning message.
39586type ServiceAttachmentAggregatedListWarning struct {
39587	// Code: [Output Only] A warning code, if applicable. For example,
39588	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39589	// the response.
39590	//
39591	// Possible values:
39592	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
39593	// changes made by a failed operation.
39594	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
39595	// created.
39596	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
39597	// resources has a type marked as deprecated
39598	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
39599	// that is larger than image size.
39600	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
39601	// resources has a type marked as experimental
39602	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
39603	// call
39604	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
39605	// overridden. Deprecated unused field.
39606	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
39607	// injected kernel, which is deprecated.
39608	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
39609	// exceedingly large number of resources
39610	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
39611	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
39612	// not assigned to an instance on the network.
39613	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
39614	// ip forward.
39615	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
39616	// refers to an instance that does not exist.
39617	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
39618	// URL refers to an instance that is not on the same network as the
39619	// route.
39620	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
39621	// have a status of RUNNING.
39622	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
39623	// continue the process despite the mentioned error.
39624	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
39625	// page.
39626	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
39627	// missing due to errors
39628	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
39629	// that requires a TOS they have not accepted.
39630	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
39631	// resource is in use.
39632	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
39633	// auto-delete could not be deleted because they were in use.
39634	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
39635	// ignored.
39636	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
39637	// instance group manager is valid as such, but its application does not
39638	// make a lot of sense, because it allows only single instance in
39639	// instance group.
39640	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
39641	// are present
39642	//   "UNREACHABLE" - A given scope cannot be reached.
39643	Code string `json:"code,omitempty"`
39644
39645	// Data: [Output Only] Metadata about this warning in key: value format.
39646	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
39647	// }
39648	Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"`
39649
39650	// Message: [Output Only] A human-readable description of the warning
39651	// code.
39652	Message string `json:"message,omitempty"`
39653
39654	// ForceSendFields is a list of field names (e.g. "Code") to
39655	// unconditionally include in API requests. By default, fields with
39656	// empty or default values are omitted from API requests. However, any
39657	// non-pointer, non-interface field appearing in ForceSendFields will be
39658	// sent to the server regardless of whether the field is empty or not.
39659	// This may be used to include empty fields in Patch requests.
39660	ForceSendFields []string `json:"-"`
39661
39662	// NullFields is a list of field names (e.g. "Code") to include in API
39663	// requests with the JSON null value. By default, fields with empty
39664	// values are omitted from API requests. However, any field with an
39665	// empty value appearing in NullFields will be sent to the server as
39666	// null. It is an error if a field in this list has a non-empty value.
39667	// This may be used to include null fields in Patch requests.
39668	NullFields []string `json:"-"`
39669}
39670
39671func (s *ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
39672	type NoMethod ServiceAttachmentAggregatedListWarning
39673	raw := NoMethod(*s)
39674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39675}
39676
39677type ServiceAttachmentAggregatedListWarningData struct {
39678	// Key: [Output Only] A key that provides more detail on the warning
39679	// being returned. For example, for warnings where there are no results
39680	// in a list request for a particular zone, this key might be scope and
39681	// the key value might be the zone name. Other examples might be a key
39682	// indicating a deprecated resource and a suggested replacement, or a
39683	// warning about invalid network settings (for example, if an instance
39684	// attempts to perform IP forwarding but is not enabled for IP
39685	// forwarding).
39686	Key string `json:"key,omitempty"`
39687
39688	// Value: [Output Only] A warning data value corresponding to the key.
39689	Value string `json:"value,omitempty"`
39690
39691	// ForceSendFields is a list of field names (e.g. "Key") to
39692	// unconditionally include in API requests. By default, fields with
39693	// empty or default values are omitted from API requests. However, any
39694	// non-pointer, non-interface field appearing in ForceSendFields will be
39695	// sent to the server regardless of whether the field is empty or not.
39696	// This may be used to include empty fields in Patch requests.
39697	ForceSendFields []string `json:"-"`
39698
39699	// NullFields is a list of field names (e.g. "Key") to include in API
39700	// requests with the JSON null value. By default, fields with empty
39701	// values are omitted from API requests. However, any field with an
39702	// empty value appearing in NullFields will be sent to the server as
39703	// null. It is an error if a field in this list has a non-empty value.
39704	// This may be used to include null fields in Patch requests.
39705	NullFields []string `json:"-"`
39706}
39707
39708func (s *ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39709	type NoMethod ServiceAttachmentAggregatedListWarningData
39710	raw := NoMethod(*s)
39711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39712}
39713
39714// ServiceAttachmentConnectedEndpoint: [Output Only] A connection
39715// connected to this service attachment.
39716type ServiceAttachmentConnectedEndpoint struct {
39717	// Endpoint: The url of a connected endpoint.
39718	Endpoint string `json:"endpoint,omitempty"`
39719
39720	// PscConnectionId: The PSC connection id of the connected endpoint.
39721	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
39722
39723	// Status: The status of a connected endpoint to this service
39724	// attachment.
39725	//
39726	// Possible values:
39727	//   "ACCEPTED" - The connection has been accepted by the producer.
39728	//   "CLOSED" - The connection has been closed by the producer.
39729	//   "PENDING" - The connection is pending acceptance by the producer.
39730	//   "REJECTED" - The consumer is still connected but not using the
39731	// connection.
39732	//   "STATUS_UNSPECIFIED"
39733	Status string `json:"status,omitempty"`
39734
39735	// ForceSendFields is a list of field names (e.g. "Endpoint") to
39736	// unconditionally include in API requests. By default, fields with
39737	// empty or default values are omitted from API requests. However, any
39738	// non-pointer, non-interface field appearing in ForceSendFields will be
39739	// sent to the server regardless of whether the field is empty or not.
39740	// This may be used to include empty fields in Patch requests.
39741	ForceSendFields []string `json:"-"`
39742
39743	// NullFields is a list of field names (e.g. "Endpoint") to include in
39744	// API requests with the JSON null value. By default, fields with empty
39745	// values are omitted from API requests. However, any field with an
39746	// empty value appearing in NullFields will be sent to the server as
39747	// null. It is an error if a field in this list has a non-empty value.
39748	// This may be used to include null fields in Patch requests.
39749	NullFields []string `json:"-"`
39750}
39751
39752func (s *ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) {
39753	type NoMethod ServiceAttachmentConnectedEndpoint
39754	raw := NoMethod(*s)
39755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39756}
39757
39758type ServiceAttachmentConsumerProjectLimit struct {
39759	// ConnectionLimit: The value of the limit to set.
39760	ConnectionLimit int64 `json:"connectionLimit,omitempty"`
39761
39762	// ProjectIdOrNum: The project id or number for the project to set the
39763	// limit for.
39764	ProjectIdOrNum string `json:"projectIdOrNum,omitempty"`
39765
39766	// ForceSendFields is a list of field names (e.g. "ConnectionLimit") to
39767	// unconditionally include in API requests. By default, fields with
39768	// empty or default values are omitted from API requests. However, any
39769	// non-pointer, non-interface field appearing in ForceSendFields will be
39770	// sent to the server regardless of whether the field is empty or not.
39771	// This may be used to include empty fields in Patch requests.
39772	ForceSendFields []string `json:"-"`
39773
39774	// NullFields is a list of field names (e.g. "ConnectionLimit") to
39775	// include in API requests with the JSON null value. By default, fields
39776	// with empty values are omitted from API requests. However, any field
39777	// with an empty value appearing in NullFields will be sent to the
39778	// server as null. It is an error if a field in this list has a
39779	// non-empty value. This may be used to include null fields in Patch
39780	// requests.
39781	NullFields []string `json:"-"`
39782}
39783
39784func (s *ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) {
39785	type NoMethod ServiceAttachmentConsumerProjectLimit
39786	raw := NoMethod(*s)
39787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39788}
39789
39790type ServiceAttachmentList struct {
39791	// Id: [Output Only] Unique identifier for the resource; defined by the
39792	// server.
39793	Id string `json:"id,omitempty"`
39794
39795	// Items: A list of ServiceAttachment resources.
39796	Items []*ServiceAttachment `json:"items,omitempty"`
39797
39798	// Kind: [Output Only] Type of the resource. Always
39799	// compute#serviceAttachment for service attachments.
39800	Kind string `json:"kind,omitempty"`
39801
39802	// NextPageToken: [Output Only] This token allows you to get the next
39803	// page of results for list requests. If the number of results is larger
39804	// than maxResults, use the nextPageToken as a value for the query
39805	// parameter pageToken in the next list request. Subsequent list
39806	// requests will have their own nextPageToken to continue paging through
39807	// the results.
39808	NextPageToken string `json:"nextPageToken,omitempty"`
39809
39810	// SelfLink: [Output Only] Server-defined URL for this resource.
39811	SelfLink string `json:"selfLink,omitempty"`
39812
39813	// Warning: [Output Only] Informational warning message.
39814	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`
39815
39816	// ServerResponse contains the HTTP response code and headers from the
39817	// server.
39818	googleapi.ServerResponse `json:"-"`
39819
39820	// ForceSendFields is a list of field names (e.g. "Id") to
39821	// unconditionally include in API requests. By default, fields with
39822	// empty or default values are omitted from API requests. However, any
39823	// non-pointer, non-interface field appearing in ForceSendFields will be
39824	// sent to the server regardless of whether the field is empty or not.
39825	// This may be used to include empty fields in Patch requests.
39826	ForceSendFields []string `json:"-"`
39827
39828	// NullFields is a list of field names (e.g. "Id") to include in API
39829	// requests with the JSON null value. By default, fields with empty
39830	// values are omitted from API requests. However, any field with an
39831	// empty value appearing in NullFields will be sent to the server as
39832	// null. It is an error if a field in this list has a non-empty value.
39833	// This may be used to include null fields in Patch requests.
39834	NullFields []string `json:"-"`
39835}
39836
39837func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) {
39838	type NoMethod ServiceAttachmentList
39839	raw := NoMethod(*s)
39840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39841}
39842
39843// ServiceAttachmentListWarning: [Output Only] Informational warning
39844// message.
39845type ServiceAttachmentListWarning struct {
39846	// Code: [Output Only] A warning code, if applicable. For example,
39847	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39848	// the response.
39849	//
39850	// Possible values:
39851	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
39852	// changes made by a failed operation.
39853	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
39854	// created.
39855	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
39856	// resources has a type marked as deprecated
39857	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
39858	// that is larger than image size.
39859	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
39860	// resources has a type marked as experimental
39861	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
39862	// call
39863	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
39864	// overridden. Deprecated unused field.
39865	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
39866	// injected kernel, which is deprecated.
39867	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
39868	// exceedingly large number of resources
39869	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
39870	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
39871	// not assigned to an instance on the network.
39872	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
39873	// ip forward.
39874	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
39875	// refers to an instance that does not exist.
39876	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
39877	// URL refers to an instance that is not on the same network as the
39878	// route.
39879	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
39880	// have a status of RUNNING.
39881	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
39882	// continue the process despite the mentioned error.
39883	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
39884	// page.
39885	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
39886	// missing due to errors
39887	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
39888	// that requires a TOS they have not accepted.
39889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
39890	// resource is in use.
39891	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
39892	// auto-delete could not be deleted because they were in use.
39893	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
39894	// ignored.
39895	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
39896	// instance group manager is valid as such, but its application does not
39897	// make a lot of sense, because it allows only single instance in
39898	// instance group.
39899	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
39900	// are present
39901	//   "UNREACHABLE" - A given scope cannot be reached.
39902	Code string `json:"code,omitempty"`
39903
39904	// Data: [Output Only] Metadata about this warning in key: value format.
39905	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
39906	// }
39907	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
39908
39909	// Message: [Output Only] A human-readable description of the warning
39910	// code.
39911	Message string `json:"message,omitempty"`
39912
39913	// ForceSendFields is a list of field names (e.g. "Code") to
39914	// unconditionally include in API requests. By default, fields with
39915	// empty or default values are omitted from API requests. However, any
39916	// non-pointer, non-interface field appearing in ForceSendFields will be
39917	// sent to the server regardless of whether the field is empty or not.
39918	// This may be used to include empty fields in Patch requests.
39919	ForceSendFields []string `json:"-"`
39920
39921	// NullFields is a list of field names (e.g. "Code") to include in API
39922	// requests with the JSON null value. By default, fields with empty
39923	// values are omitted from API requests. However, any field with an
39924	// empty value appearing in NullFields will be sent to the server as
39925	// null. It is an error if a field in this list has a non-empty value.
39926	// This may be used to include null fields in Patch requests.
39927	NullFields []string `json:"-"`
39928}
39929
39930func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
39931	type NoMethod ServiceAttachmentListWarning
39932	raw := NoMethod(*s)
39933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39934}
39935
39936type ServiceAttachmentListWarningData struct {
39937	// Key: [Output Only] A key that provides more detail on the warning
39938	// being returned. For example, for warnings where there are no results
39939	// in a list request for a particular zone, this key might be scope and
39940	// the key value might be the zone name. Other examples might be a key
39941	// indicating a deprecated resource and a suggested replacement, or a
39942	// warning about invalid network settings (for example, if an instance
39943	// attempts to perform IP forwarding but is not enabled for IP
39944	// forwarding).
39945	Key string `json:"key,omitempty"`
39946
39947	// Value: [Output Only] A warning data value corresponding to the key.
39948	Value string `json:"value,omitempty"`
39949
39950	// ForceSendFields is a list of field names (e.g. "Key") to
39951	// unconditionally include in API requests. By default, fields with
39952	// empty or default values are omitted from API requests. However, any
39953	// non-pointer, non-interface field appearing in ForceSendFields will be
39954	// sent to the server regardless of whether the field is empty or not.
39955	// This may be used to include empty fields in Patch requests.
39956	ForceSendFields []string `json:"-"`
39957
39958	// NullFields is a list of field names (e.g. "Key") to include in API
39959	// requests with the JSON null value. By default, fields with empty
39960	// values are omitted from API requests. However, any field with an
39961	// empty value appearing in NullFields will be sent to the server as
39962	// null. It is an error if a field in this list has a non-empty value.
39963	// This may be used to include null fields in Patch requests.
39964	NullFields []string `json:"-"`
39965}
39966
39967func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
39968	type NoMethod ServiceAttachmentListWarningData
39969	raw := NoMethod(*s)
39970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39971}
39972
39973type ServiceAttachmentsScopedList struct {
39974	// ServiceAttachments: A list of ServiceAttachments contained in this
39975	// scope.
39976	ServiceAttachments []*ServiceAttachment `json:"serviceAttachments,omitempty"`
39977
39978	// Warning: Informational warning which replaces the list of service
39979	// attachments when the list is empty.
39980	Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"`
39981
39982	// ForceSendFields is a list of field names (e.g. "ServiceAttachments")
39983	// to unconditionally include in API requests. By default, fields with
39984	// empty or default values are omitted from API requests. However, any
39985	// non-pointer, non-interface field appearing in ForceSendFields will be
39986	// sent to the server regardless of whether the field is empty or not.
39987	// This may be used to include empty fields in Patch requests.
39988	ForceSendFields []string `json:"-"`
39989
39990	// NullFields is a list of field names (e.g. "ServiceAttachments") to
39991	// include in API requests with the JSON null value. By default, fields
39992	// with empty values are omitted from API requests. However, any field
39993	// with an empty value appearing in NullFields will be sent to the
39994	// server as null. It is an error if a field in this list has a
39995	// non-empty value. This may be used to include null fields in Patch
39996	// requests.
39997	NullFields []string `json:"-"`
39998}
39999
40000func (s *ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) {
40001	type NoMethod ServiceAttachmentsScopedList
40002	raw := NoMethod(*s)
40003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40004}
40005
40006// ServiceAttachmentsScopedListWarning: Informational warning which
40007// replaces the list of service attachments when the list is empty.
40008type ServiceAttachmentsScopedListWarning struct {
40009	// Code: [Output Only] A warning code, if applicable. For example,
40010	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40011	// the response.
40012	//
40013	// Possible values:
40014	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40015	// changes made by a failed operation.
40016	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40017	// created.
40018	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40019	// resources has a type marked as deprecated
40020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40021	// that is larger than image size.
40022	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40023	// resources has a type marked as experimental
40024	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40025	// call
40026	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40027	// overridden. Deprecated unused field.
40028	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40029	// injected kernel, which is deprecated.
40030	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40031	// exceedingly large number of resources
40032	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40033	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40034	// not assigned to an instance on the network.
40035	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40036	// ip forward.
40037	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40038	// refers to an instance that does not exist.
40039	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40040	// URL refers to an instance that is not on the same network as the
40041	// route.
40042	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40043	// have a status of RUNNING.
40044	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40045	// continue the process despite the mentioned error.
40046	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40047	// page.
40048	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40049	// missing due to errors
40050	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40051	// that requires a TOS they have not accepted.
40052	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40053	// resource is in use.
40054	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40055	// auto-delete could not be deleted because they were in use.
40056	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40057	// ignored.
40058	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40059	// instance group manager is valid as such, but its application does not
40060	// make a lot of sense, because it allows only single instance in
40061	// instance group.
40062	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40063	// are present
40064	//   "UNREACHABLE" - A given scope cannot be reached.
40065	Code string `json:"code,omitempty"`
40066
40067	// Data: [Output Only] Metadata about this warning in key: value format.
40068	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40069	// }
40070	Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"`
40071
40072	// Message: [Output Only] A human-readable description of the warning
40073	// code.
40074	Message string `json:"message,omitempty"`
40075
40076	// ForceSendFields is a list of field names (e.g. "Code") to
40077	// unconditionally include in API requests. By default, fields with
40078	// empty or default values are omitted from API requests. However, any
40079	// non-pointer, non-interface field appearing in ForceSendFields will be
40080	// sent to the server regardless of whether the field is empty or not.
40081	// This may be used to include empty fields in Patch requests.
40082	ForceSendFields []string `json:"-"`
40083
40084	// NullFields is a list of field names (e.g. "Code") to include in API
40085	// requests with the JSON null value. By default, fields with empty
40086	// values are omitted from API requests. However, any field with an
40087	// empty value appearing in NullFields will be sent to the server as
40088	// null. It is an error if a field in this list has a non-empty value.
40089	// This may be used to include null fields in Patch requests.
40090	NullFields []string `json:"-"`
40091}
40092
40093func (s *ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
40094	type NoMethod ServiceAttachmentsScopedListWarning
40095	raw := NoMethod(*s)
40096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40097}
40098
40099type ServiceAttachmentsScopedListWarningData struct {
40100	// Key: [Output Only] A key that provides more detail on the warning
40101	// being returned. For example, for warnings where there are no results
40102	// in a list request for a particular zone, this key might be scope and
40103	// the key value might be the zone name. Other examples might be a key
40104	// indicating a deprecated resource and a suggested replacement, or a
40105	// warning about invalid network settings (for example, if an instance
40106	// attempts to perform IP forwarding but is not enabled for IP
40107	// forwarding).
40108	Key string `json:"key,omitempty"`
40109
40110	// Value: [Output Only] A warning data value corresponding to the key.
40111	Value string `json:"value,omitempty"`
40112
40113	// ForceSendFields is a list of field names (e.g. "Key") to
40114	// unconditionally include in API requests. By default, fields with
40115	// empty or default values are omitted from API requests. However, any
40116	// non-pointer, non-interface field appearing in ForceSendFields will be
40117	// sent to the server regardless of whether the field is empty or not.
40118	// This may be used to include empty fields in Patch requests.
40119	ForceSendFields []string `json:"-"`
40120
40121	// NullFields is a list of field names (e.g. "Key") to include in API
40122	// requests with the JSON null value. By default, fields with empty
40123	// values are omitted from API requests. However, any field with an
40124	// empty value appearing in NullFields will be sent to the server as
40125	// null. It is an error if a field in this list has a non-empty value.
40126	// This may be used to include null fields in Patch requests.
40127	NullFields []string `json:"-"`
40128}
40129
40130func (s *ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
40131	type NoMethod ServiceAttachmentsScopedListWarningData
40132	raw := NoMethod(*s)
40133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40134}
40135
40136// ShieldedInstanceConfig: A set of Shielded Instance options.
40137type ShieldedInstanceConfig struct {
40138	// EnableIntegrityMonitoring: Defines whether the instance has integrity
40139	// monitoring enabled. Enabled by default.
40140	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
40141
40142	// EnableSecureBoot: Defines whether the instance has Secure Boot
40143	// enabled. Disabled by default.
40144	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
40145
40146	// EnableVtpm: Defines whether the instance has the vTPM enabled.
40147	// Enabled by default.
40148	EnableVtpm bool `json:"enableVtpm,omitempty"`
40149
40150	// ForceSendFields is a list of field names (e.g.
40151	// "EnableIntegrityMonitoring") to unconditionally include in API
40152	// requests. By default, fields with empty or default values are omitted
40153	// from API requests. However, any non-pointer, non-interface field
40154	// appearing in ForceSendFields will be sent to the server regardless of
40155	// whether the field is empty or not. This may be used to include empty
40156	// fields in Patch requests.
40157	ForceSendFields []string `json:"-"`
40158
40159	// NullFields is a list of field names (e.g.
40160	// "EnableIntegrityMonitoring") to include in API requests with the JSON
40161	// null value. By default, fields with empty values are omitted from API
40162	// requests. However, any field with an empty value appearing in
40163	// NullFields will be sent to the server as null. It is an error if a
40164	// field in this list has a non-empty value. This may be used to include
40165	// null fields in Patch requests.
40166	NullFields []string `json:"-"`
40167}
40168
40169func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
40170	type NoMethod ShieldedInstanceConfig
40171	raw := NoMethod(*s)
40172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40173}
40174
40175// ShieldedInstanceIdentity: A Shielded Instance Identity.
40176type ShieldedInstanceIdentity struct {
40177	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
40178	// issued to the Shielded Instance's vTPM.
40179	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
40180
40181	// Kind: [Output Only] Type of the resource. Always
40182	// compute#shieldedInstanceIdentity for shielded Instance identity
40183	// entry.
40184	Kind string `json:"kind,omitempty"`
40185
40186	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
40187	// issued to the Shielded Instance's vTPM.
40188	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
40189
40190	// ServerResponse contains the HTTP response code and headers from the
40191	// server.
40192	googleapi.ServerResponse `json:"-"`
40193
40194	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
40195	// unconditionally include in API requests. By default, fields with
40196	// empty or default values are omitted from API requests. However, any
40197	// non-pointer, non-interface field appearing in ForceSendFields will be
40198	// sent to the server regardless of whether the field is empty or not.
40199	// This may be used to include empty fields in Patch requests.
40200	ForceSendFields []string `json:"-"`
40201
40202	// NullFields is a list of field names (e.g. "EncryptionKey") to include
40203	// in API requests with the JSON null value. By default, fields with
40204	// empty values are omitted from API requests. However, any field with
40205	// an empty value appearing in NullFields will be sent to the server as
40206	// null. It is an error if a field in this list has a non-empty value.
40207	// This may be used to include null fields in Patch requests.
40208	NullFields []string `json:"-"`
40209}
40210
40211func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
40212	type NoMethod ShieldedInstanceIdentity
40213	raw := NoMethod(*s)
40214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40215}
40216
40217// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
40218type ShieldedInstanceIdentityEntry struct {
40219	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
40220	EkCert string `json:"ekCert,omitempty"`
40221
40222	// EkPub: A PEM-encoded public key.
40223	EkPub string `json:"ekPub,omitempty"`
40224
40225	// ForceSendFields is a list of field names (e.g. "EkCert") to
40226	// unconditionally include in API requests. By default, fields with
40227	// empty or default values are omitted from API requests. However, any
40228	// non-pointer, non-interface field appearing in ForceSendFields will be
40229	// sent to the server regardless of whether the field is empty or not.
40230	// This may be used to include empty fields in Patch requests.
40231	ForceSendFields []string `json:"-"`
40232
40233	// NullFields is a list of field names (e.g. "EkCert") to include in API
40234	// requests with the JSON null value. By default, fields with empty
40235	// values are omitted from API requests. However, any field with an
40236	// empty value appearing in NullFields will be sent to the server as
40237	// null. It is an error if a field in this list has a non-empty value.
40238	// This may be used to include null fields in Patch requests.
40239	NullFields []string `json:"-"`
40240}
40241
40242func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
40243	type NoMethod ShieldedInstanceIdentityEntry
40244	raw := NoMethod(*s)
40245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40246}
40247
40248// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
40249// against which Instance boot integrity is measured.
40250type ShieldedInstanceIntegrityPolicy struct {
40251	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
40252	// the measurements from the VM instance's most recent boot.
40253	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
40254
40255	// ForceSendFields is a list of field names (e.g.
40256	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
40257	// By default, fields with empty or default values are omitted from API
40258	// requests. However, any non-pointer, non-interface field appearing in
40259	// ForceSendFields will be sent to the server regardless of whether the
40260	// field is empty or not. This may be used to include empty fields in
40261	// Patch requests.
40262	ForceSendFields []string `json:"-"`
40263
40264	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
40265	// include in API requests with the JSON null value. By default, fields
40266	// with empty values are omitted from API requests. However, any field
40267	// with an empty value appearing in NullFields will be sent to the
40268	// server as null. It is an error if a field in this list has a
40269	// non-empty value. This may be used to include null fields in Patch
40270	// requests.
40271	NullFields []string `json:"-"`
40272}
40273
40274func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
40275	type NoMethod ShieldedInstanceIntegrityPolicy
40276	raw := NoMethod(*s)
40277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40278}
40279
40280// SignedUrlKey: Represents a customer-supplied Signing Key used by
40281// Cloud CDN Signed URLs
40282type SignedUrlKey struct {
40283	// KeyName: Name of the key. The name must be 1-63 characters long, and
40284	// comply with RFC1035. Specifically, the name must be 1-63 characters
40285	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
40286	// which means the first character must be a lowercase letter, and all
40287	// following characters must be a dash, lowercase letter, or digit,
40288	// except the last character, which cannot be a dash.
40289	KeyName string `json:"keyName,omitempty"`
40290
40291	// KeyValue: 128-bit key value used for signing the URL. The key value
40292	// must be a valid RFC 4648 Section 5 base64url encoded string.
40293	KeyValue string `json:"keyValue,omitempty"`
40294
40295	// ForceSendFields is a list of field names (e.g. "KeyName") to
40296	// unconditionally include in API requests. By default, fields with
40297	// empty or default values are omitted from API requests. However, any
40298	// non-pointer, non-interface field appearing in ForceSendFields will be
40299	// sent to the server regardless of whether the field is empty or not.
40300	// This may be used to include empty fields in Patch requests.
40301	ForceSendFields []string `json:"-"`
40302
40303	// NullFields is a list of field names (e.g. "KeyName") to include in
40304	// API requests with the JSON null value. By default, fields with empty
40305	// values are omitted from API requests. However, any field with an
40306	// empty value appearing in NullFields will be sent to the server as
40307	// null. It is an error if a field in this list has a non-empty value.
40308	// This may be used to include null fields in Patch requests.
40309	NullFields []string `json:"-"`
40310}
40311
40312func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
40313	type NoMethod SignedUrlKey
40314	raw := NoMethod(*s)
40315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40316}
40317
40318// Snapshot: Represents a Persistent Disk Snapshot resource. You can use
40319// snapshots to back up data on a regular interval. For more
40320// information, read Creating persistent disk snapshots.
40321type Snapshot struct {
40322	// AutoCreated: [Output Only] Set to true if snapshots are automatically
40323	// created by applying resource policy on the target disk.
40324	AutoCreated bool `json:"autoCreated,omitempty"`
40325
40326	// ChainName: Creates the new snapshot in the snapshot chain labeled
40327	// with the specified name. The chain name must be 1-63 characters long
40328	// and comply with RFC1035. This is an uncommon option only for advanced
40329	// service owners who needs to create separate snapshot chains, for
40330	// example, for chargeback tracking. When you describe your snapshot
40331	// resource, this field is visible only if it has a non-empty value.
40332	ChainName string `json:"chainName,omitempty"`
40333
40334	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40335	// format.
40336	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40337
40338	// Description: An optional description of this resource. Provide this
40339	// property when you create the resource.
40340	Description string `json:"description,omitempty"`
40341
40342	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
40343	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
40344
40345	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
40346	// snapshot to a disk.
40347	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
40348
40349	// Id: [Output Only] The unique identifier for the resource. This
40350	// identifier is defined by the server.
40351	Id uint64 `json:"id,omitempty,string"`
40352
40353	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
40354	// Snapshot resources.
40355	Kind string `json:"kind,omitempty"`
40356
40357	// LabelFingerprint: A fingerprint for the labels being applied to this
40358	// snapshot, which is essentially a hash of the labels set used for
40359	// optimistic locking. The fingerprint is initially generated by Compute
40360	// Engine and changes after every request to modify or update labels.
40361	// You must always provide an up-to-date fingerprint hash in order to
40362	// update or change labels, otherwise the request will fail with error
40363	// 412 conditionNotMet. To see the latest fingerprint, make a get()
40364	// request to retrieve a snapshot.
40365	LabelFingerprint string `json:"labelFingerprint,omitempty"`
40366
40367	// Labels: Labels to apply to this snapshot. These can be later modified
40368	// by the setLabels method. Label values may be empty.
40369	Labels map[string]string `json:"labels,omitempty"`
40370
40371	// LicenseCodes: [Output Only] Integer license codes indicating which
40372	// licenses are attached to this snapshot.
40373	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
40374
40375	// Licenses: [Output Only] A list of public visible licenses that apply
40376	// to this snapshot. This can be because the original image had licenses
40377	// attached (such as a Windows image).
40378	Licenses []string `json:"licenses,omitempty"`
40379
40380	// LocationHint: An opaque location hint used to place the snapshot
40381	// close to other resources. This field is for use by internal tools
40382	// that use the public API.
40383	LocationHint string `json:"locationHint,omitempty"`
40384
40385	// Name: Name of the resource; provided by the client when the resource
40386	// is created. The name must be 1-63 characters long, and comply with
40387	// RFC1035. Specifically, the name must be 1-63 characters long and
40388	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40389	// the first character must be a lowercase letter, and all following
40390	// characters must be a dash, lowercase letter, or digit, except the
40391	// last character, which cannot be a dash.
40392	Name string `json:"name,omitempty"`
40393
40394	// SatisfiesPzs: [Output Only] Reserved for future use.
40395	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
40396
40397	// SelfLink: [Output Only] Server-defined URL for the resource.
40398	SelfLink string `json:"selfLink,omitempty"`
40399
40400	// SnapshotEncryptionKey: Encrypts the snapshot using a
40401	// customer-supplied encryption key. After you encrypt a snapshot using
40402	// a customer-supplied key, you must provide the same key if you use the
40403	// snapshot later. For example, you must provide the encryption key when
40404	// you create a disk from the encrypted snapshot in a future request.
40405	// Customer-supplied encryption keys do not protect access to metadata
40406	// of the snapshot. If you do not provide an encryption key when
40407	// creating the snapshot, then the snapshot will be encrypted using an
40408	// automatically generated key and you do not need to provide a key to
40409	// use the snapshot later.
40410	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
40411
40412	// SourceDisk: The source disk used to create this snapshot.
40413	SourceDisk string `json:"sourceDisk,omitempty"`
40414
40415	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
40416	// source disk. Required if the source disk is protected by a
40417	// customer-supplied encryption key.
40418	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
40419
40420	// SourceDiskId: [Output Only] The ID value of the disk used to create
40421	// this snapshot. This value may be used to determine whether the
40422	// snapshot was taken from the current or a previous instance of a given
40423	// disk name.
40424	SourceDiskId string `json:"sourceDiskId,omitempty"`
40425
40426	// Status: [Output Only] The status of the snapshot. This can be
40427	// CREATING, DELETING, FAILED, READY, or UPLOADING.
40428	//
40429	// Possible values:
40430	//   "CREATING" - Snapshot creation is in progress.
40431	//   "DELETING" - Snapshot is currently being deleted.
40432	//   "FAILED" - Snapshot creation failed.
40433	//   "READY" - Snapshot has been created successfully.
40434	//   "UPLOADING" - Snapshot is being uploaded.
40435	Status string `json:"status,omitempty"`
40436
40437	// StorageBytes: [Output Only] A size of the storage used by the
40438	// snapshot. As snapshots share storage, this number is expected to
40439	// change with snapshot creation/deletion.
40440	StorageBytes int64 `json:"storageBytes,omitempty,string"`
40441
40442	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
40443	// is in a stable state or it is being adjusted as a result of shared
40444	// storage reallocation. This status can either be UPDATING, meaning the
40445	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
40446	// size of the snapshot is up-to-date.
40447	//
40448	// Possible values:
40449	//   "UPDATING"
40450	//   "UP_TO_DATE"
40451	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
40452
40453	// StorageLocations: Cloud Storage bucket storage location of the
40454	// snapshot (regional or multi-regional).
40455	StorageLocations []string `json:"storageLocations,omitempty"`
40456
40457	// ServerResponse contains the HTTP response code and headers from the
40458	// server.
40459	googleapi.ServerResponse `json:"-"`
40460
40461	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
40462	// unconditionally include in API requests. By default, fields with
40463	// empty or default values are omitted from API requests. However, any
40464	// non-pointer, non-interface field appearing in ForceSendFields will be
40465	// sent to the server regardless of whether the field is empty or not.
40466	// This may be used to include empty fields in Patch requests.
40467	ForceSendFields []string `json:"-"`
40468
40469	// NullFields is a list of field names (e.g. "AutoCreated") to include
40470	// in API requests with the JSON null value. By default, fields with
40471	// empty values are omitted from API requests. However, any field with
40472	// an empty value appearing in NullFields will be sent to the server as
40473	// null. It is an error if a field in this list has a non-empty value.
40474	// This may be used to include null fields in Patch requests.
40475	NullFields []string `json:"-"`
40476}
40477
40478func (s *Snapshot) MarshalJSON() ([]byte, error) {
40479	type NoMethod Snapshot
40480	raw := NoMethod(*s)
40481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40482}
40483
40484// SnapshotList: Contains a list of Snapshot resources.
40485type SnapshotList struct {
40486	// Id: [Output Only] Unique identifier for the resource; defined by the
40487	// server.
40488	Id string `json:"id,omitempty"`
40489
40490	// Items: A list of Snapshot resources.
40491	Items []*Snapshot `json:"items,omitempty"`
40492
40493	// Kind: Type of resource.
40494	Kind string `json:"kind,omitempty"`
40495
40496	// NextPageToken: [Output Only] This token allows you to get the next
40497	// page of results for list requests. If the number of results is larger
40498	// than maxResults, use the nextPageToken as a value for the query
40499	// parameter pageToken in the next list request. Subsequent list
40500	// requests will have their own nextPageToken to continue paging through
40501	// the results.
40502	NextPageToken string `json:"nextPageToken,omitempty"`
40503
40504	// SelfLink: [Output Only] Server-defined URL for this resource.
40505	SelfLink string `json:"selfLink,omitempty"`
40506
40507	// Warning: [Output Only] Informational warning message.
40508	Warning *SnapshotListWarning `json:"warning,omitempty"`
40509
40510	// ServerResponse contains the HTTP response code and headers from the
40511	// server.
40512	googleapi.ServerResponse `json:"-"`
40513
40514	// ForceSendFields is a list of field names (e.g. "Id") to
40515	// unconditionally include in API requests. By default, fields with
40516	// empty or default values are omitted from API requests. However, any
40517	// non-pointer, non-interface field appearing in ForceSendFields will be
40518	// sent to the server regardless of whether the field is empty or not.
40519	// This may be used to include empty fields in Patch requests.
40520	ForceSendFields []string `json:"-"`
40521
40522	// NullFields is a list of field names (e.g. "Id") to include in API
40523	// requests with the JSON null value. By default, fields with empty
40524	// values are omitted from API requests. However, any field with an
40525	// empty value appearing in NullFields will be sent to the server as
40526	// null. It is an error if a field in this list has a non-empty value.
40527	// This may be used to include null fields in Patch requests.
40528	NullFields []string `json:"-"`
40529}
40530
40531func (s *SnapshotList) MarshalJSON() ([]byte, error) {
40532	type NoMethod SnapshotList
40533	raw := NoMethod(*s)
40534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40535}
40536
40537// SnapshotListWarning: [Output Only] Informational warning message.
40538type SnapshotListWarning struct {
40539	// Code: [Output Only] A warning code, if applicable. For example,
40540	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40541	// the response.
40542	//
40543	// Possible values:
40544	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40545	// changes made by a failed operation.
40546	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40547	// created.
40548	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40549	// resources has a type marked as deprecated
40550	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40551	// that is larger than image size.
40552	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40553	// resources has a type marked as experimental
40554	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40555	// call
40556	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40557	// overridden. Deprecated unused field.
40558	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40559	// injected kernel, which is deprecated.
40560	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40561	// exceedingly large number of resources
40562	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40563	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40564	// not assigned to an instance on the network.
40565	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40566	// ip forward.
40567	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40568	// refers to an instance that does not exist.
40569	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40570	// URL refers to an instance that is not on the same network as the
40571	// route.
40572	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40573	// have a status of RUNNING.
40574	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40575	// continue the process despite the mentioned error.
40576	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40577	// page.
40578	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40579	// missing due to errors
40580	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40581	// that requires a TOS they have not accepted.
40582	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40583	// resource is in use.
40584	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40585	// auto-delete could not be deleted because they were in use.
40586	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40587	// ignored.
40588	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40589	// instance group manager is valid as such, but its application does not
40590	// make a lot of sense, because it allows only single instance in
40591	// instance group.
40592	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40593	// are present
40594	//   "UNREACHABLE" - A given scope cannot be reached.
40595	Code string `json:"code,omitempty"`
40596
40597	// Data: [Output Only] Metadata about this warning in key: value format.
40598	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40599	// }
40600	Data []*SnapshotListWarningData `json:"data,omitempty"`
40601
40602	// Message: [Output Only] A human-readable description of the warning
40603	// code.
40604	Message string `json:"message,omitempty"`
40605
40606	// ForceSendFields is a list of field names (e.g. "Code") to
40607	// unconditionally include in API requests. By default, fields with
40608	// empty or default values are omitted from API requests. However, any
40609	// non-pointer, non-interface field appearing in ForceSendFields will be
40610	// sent to the server regardless of whether the field is empty or not.
40611	// This may be used to include empty fields in Patch requests.
40612	ForceSendFields []string `json:"-"`
40613
40614	// NullFields is a list of field names (e.g. "Code") to include in API
40615	// requests with the JSON null value. By default, fields with empty
40616	// values are omitted from API requests. However, any field with an
40617	// empty value appearing in NullFields will be sent to the server as
40618	// null. It is an error if a field in this list has a non-empty value.
40619	// This may be used to include null fields in Patch requests.
40620	NullFields []string `json:"-"`
40621}
40622
40623func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
40624	type NoMethod SnapshotListWarning
40625	raw := NoMethod(*s)
40626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40627}
40628
40629type SnapshotListWarningData struct {
40630	// Key: [Output Only] A key that provides more detail on the warning
40631	// being returned. For example, for warnings where there are no results
40632	// in a list request for a particular zone, this key might be scope and
40633	// the key value might be the zone name. Other examples might be a key
40634	// indicating a deprecated resource and a suggested replacement, or a
40635	// warning about invalid network settings (for example, if an instance
40636	// attempts to perform IP forwarding but is not enabled for IP
40637	// forwarding).
40638	Key string `json:"key,omitempty"`
40639
40640	// Value: [Output Only] A warning data value corresponding to the key.
40641	Value string `json:"value,omitempty"`
40642
40643	// ForceSendFields is a list of field names (e.g. "Key") to
40644	// unconditionally include in API requests. By default, fields with
40645	// empty or default values are omitted from API requests. However, any
40646	// non-pointer, non-interface field appearing in ForceSendFields will be
40647	// sent to the server regardless of whether the field is empty or not.
40648	// This may be used to include empty fields in Patch requests.
40649	ForceSendFields []string `json:"-"`
40650
40651	// NullFields is a list of field names (e.g. "Key") to include in API
40652	// requests with the JSON null value. By default, fields with empty
40653	// values are omitted from API requests. However, any field with an
40654	// empty value appearing in NullFields will be sent to the server as
40655	// null. It is an error if a field in this list has a non-empty value.
40656	// This may be used to include null fields in Patch requests.
40657	NullFields []string `json:"-"`
40658}
40659
40660func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
40661	type NoMethod SnapshotListWarningData
40662	raw := NoMethod(*s)
40663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40664}
40665
40666// SourceInstanceParams: A specification of the parameters to use when
40667// creating the instance template from a source instance.
40668type SourceInstanceParams struct {
40669	// DiskConfigs: Attached disks configuration. If not provided, defaults
40670	// are applied: For boot disk and any other R/W disks, new custom images
40671	// will be created from each disk. For read-only disks, they will be
40672	// attached in read-only mode. Local SSD disks will be created as blank
40673	// volumes.
40674	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
40675
40676	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
40677	// unconditionally include in API requests. By default, fields with
40678	// empty or default values are omitted from API requests. However, any
40679	// non-pointer, non-interface field appearing in ForceSendFields will be
40680	// sent to the server regardless of whether the field is empty or not.
40681	// This may be used to include empty fields in Patch requests.
40682	ForceSendFields []string `json:"-"`
40683
40684	// NullFields is a list of field names (e.g. "DiskConfigs") to include
40685	// in API requests with the JSON null value. By default, fields with
40686	// empty values are omitted from API requests. However, any field with
40687	// an empty value appearing in NullFields will be sent to the server as
40688	// null. It is an error if a field in this list has a non-empty value.
40689	// This may be used to include null fields in Patch requests.
40690	NullFields []string `json:"-"`
40691}
40692
40693func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
40694	type NoMethod SourceInstanceParams
40695	raw := NoMethod(*s)
40696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40697}
40698
40699// SslCertificate: Represents an SSL Certificate resource. Google
40700// Compute Engine has two SSL Certificate resources: * Global
40701// (/compute/docs/reference/rest/v1/sslCertificates) * Regional
40702// (/compute/docs/reference/rest/v1/regionSslCertificates) The
40703// sslCertificates are used by: - external HTTPS load balancers - SSL
40704// proxy load balancers The regionSslCertificates are used by internal
40705// HTTPS load balancers. Optionally, certificate file contents that you
40706// upload can contain a set of up to five PEM-encoded certificates. The
40707// API call creates an object (sslCertificate) that holds this data. You
40708// can use SSL keys and certificates to secure connections to a load
40709// balancer. For more information, read Creating and using SSL
40710// certificates, SSL certificates quotas and limits, and Troubleshooting
40711// SSL certificates.
40712type SslCertificate struct {
40713	// Certificate: A value read into memory from a certificate file. The
40714	// certificate file must be in PEM format. The certificate chain must be
40715	// no greater than 5 certs long. The chain must include at least one
40716	// intermediate cert.
40717	Certificate string `json:"certificate,omitempty"`
40718
40719	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40720	// format.
40721	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40722
40723	// Description: An optional description of this resource. Provide this
40724	// property when you create the resource.
40725	Description string `json:"description,omitempty"`
40726
40727	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
40728	ExpireTime string `json:"expireTime,omitempty"`
40729
40730	// Id: [Output Only] The unique identifier for the resource. This
40731	// identifier is defined by the server.
40732	Id uint64 `json:"id,omitempty,string"`
40733
40734	// Kind: [Output Only] Type of the resource. Always
40735	// compute#sslCertificate for SSL certificates.
40736	Kind string `json:"kind,omitempty"`
40737
40738	// Managed: Configuration and status of a managed SSL certificate.
40739	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
40740
40741	// Name: Name of the resource. Provided by the client when the resource
40742	// is created. The name must be 1-63 characters long, and comply with
40743	// RFC1035. Specifically, the name must be 1-63 characters long and
40744	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40745	// the first character must be a lowercase letter, and all following
40746	// characters must be a dash, lowercase letter, or digit, except the
40747	// last character, which cannot be a dash.
40748	Name string `json:"name,omitempty"`
40749
40750	// PrivateKey: A value read into memory from a write-only private key
40751	// file. The private key file must be in PEM format. For security, only
40752	// insert requests include this field.
40753	PrivateKey string `json:"privateKey,omitempty"`
40754
40755	// Region: [Output Only] URL of the region where the regional SSL
40756	// Certificate resides. This field is not applicable to global SSL
40757	// Certificate.
40758	Region string `json:"region,omitempty"`
40759
40760	// SelfLink: [Output only] Server-defined URL for the resource.
40761	SelfLink string `json:"selfLink,omitempty"`
40762
40763	// SelfManaged: Configuration and status of a self-managed SSL
40764	// certificate.
40765	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
40766
40767	// SubjectAlternativeNames: [Output Only] Domains associated with the
40768	// certificate via Subject Alternative Name.
40769	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
40770
40771	// Type: (Optional) Specifies the type of SSL certificate, either
40772	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
40773	// self-managed and the fields certificate and private_key are used.
40774	//
40775	// Possible values:
40776	//   "MANAGED" - Google-managed SSLCertificate.
40777	//   "SELF_MANAGED" - Certificate uploaded by user.
40778	//   "TYPE_UNSPECIFIED"
40779	Type string `json:"type,omitempty"`
40780
40781	// ServerResponse contains the HTTP response code and headers from the
40782	// server.
40783	googleapi.ServerResponse `json:"-"`
40784
40785	// ForceSendFields is a list of field names (e.g. "Certificate") to
40786	// unconditionally include in API requests. By default, fields with
40787	// empty or default values are omitted from API requests. However, any
40788	// non-pointer, non-interface field appearing in ForceSendFields will be
40789	// sent to the server regardless of whether the field is empty or not.
40790	// This may be used to include empty fields in Patch requests.
40791	ForceSendFields []string `json:"-"`
40792
40793	// NullFields is a list of field names (e.g. "Certificate") to include
40794	// in API requests with the JSON null value. By default, fields with
40795	// empty values are omitted from API requests. However, any field with
40796	// an empty value appearing in NullFields will be sent to the server as
40797	// null. It is an error if a field in this list has a non-empty value.
40798	// This may be used to include null fields in Patch requests.
40799	NullFields []string `json:"-"`
40800}
40801
40802func (s *SslCertificate) MarshalJSON() ([]byte, error) {
40803	type NoMethod SslCertificate
40804	raw := NoMethod(*s)
40805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40806}
40807
40808type SslCertificateAggregatedList struct {
40809	// Id: [Output Only] Unique identifier for the resource; defined by the
40810	// server.
40811	Id string `json:"id,omitempty"`
40812
40813	// Items: A list of SslCertificatesScopedList resources.
40814	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
40815
40816	// Kind: [Output Only] Type of resource. Always
40817	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
40818	Kind string `json:"kind,omitempty"`
40819
40820	// NextPageToken: [Output Only] This token allows you to get the next
40821	// page of results for list requests. If the number of results is larger
40822	// than maxResults, use the nextPageToken as a value for the query
40823	// parameter pageToken in the next list request. Subsequent list
40824	// requests will have their own nextPageToken to continue paging through
40825	// the results.
40826	NextPageToken string `json:"nextPageToken,omitempty"`
40827
40828	// SelfLink: [Output Only] Server-defined URL for this resource.
40829	SelfLink string `json:"selfLink,omitempty"`
40830
40831	// Unreachables: [Output Only] Unreachable resources.
40832	Unreachables []string `json:"unreachables,omitempty"`
40833
40834	// Warning: [Output Only] Informational warning message.
40835	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
40836
40837	// ServerResponse contains the HTTP response code and headers from the
40838	// server.
40839	googleapi.ServerResponse `json:"-"`
40840
40841	// ForceSendFields is a list of field names (e.g. "Id") to
40842	// unconditionally include in API requests. By default, fields with
40843	// empty or default values are omitted from API requests. However, any
40844	// non-pointer, non-interface field appearing in ForceSendFields will be
40845	// sent to the server regardless of whether the field is empty or not.
40846	// This may be used to include empty fields in Patch requests.
40847	ForceSendFields []string `json:"-"`
40848
40849	// NullFields is a list of field names (e.g. "Id") to include in API
40850	// requests with the JSON null value. By default, fields with empty
40851	// values are omitted from API requests. However, any field with an
40852	// empty value appearing in NullFields will be sent to the server as
40853	// null. It is an error if a field in this list has a non-empty value.
40854	// This may be used to include null fields in Patch requests.
40855	NullFields []string `json:"-"`
40856}
40857
40858func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
40859	type NoMethod SslCertificateAggregatedList
40860	raw := NoMethod(*s)
40861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40862}
40863
40864// SslCertificateAggregatedListWarning: [Output Only] Informational
40865// warning message.
40866type SslCertificateAggregatedListWarning struct {
40867	// Code: [Output Only] A warning code, if applicable. For example,
40868	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40869	// the response.
40870	//
40871	// Possible values:
40872	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40873	// changes made by a failed operation.
40874	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40875	// created.
40876	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40877	// resources has a type marked as deprecated
40878	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40879	// that is larger than image size.
40880	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40881	// resources has a type marked as experimental
40882	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40883	// call
40884	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40885	// overridden. Deprecated unused field.
40886	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40887	// injected kernel, which is deprecated.
40888	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40889	// exceedingly large number of resources
40890	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40891	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40892	// not assigned to an instance on the network.
40893	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40894	// ip forward.
40895	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40896	// refers to an instance that does not exist.
40897	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40898	// URL refers to an instance that is not on the same network as the
40899	// route.
40900	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40901	// have a status of RUNNING.
40902	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40903	// continue the process despite the mentioned error.
40904	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40905	// page.
40906	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40907	// missing due to errors
40908	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40909	// that requires a TOS they have not accepted.
40910	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40911	// resource is in use.
40912	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40913	// auto-delete could not be deleted because they were in use.
40914	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40915	// ignored.
40916	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40917	// instance group manager is valid as such, but its application does not
40918	// make a lot of sense, because it allows only single instance in
40919	// instance group.
40920	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40921	// are present
40922	//   "UNREACHABLE" - A given scope cannot be reached.
40923	Code string `json:"code,omitempty"`
40924
40925	// Data: [Output Only] Metadata about this warning in key: value format.
40926	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40927	// }
40928	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
40929
40930	// Message: [Output Only] A human-readable description of the warning
40931	// code.
40932	Message string `json:"message,omitempty"`
40933
40934	// ForceSendFields is a list of field names (e.g. "Code") to
40935	// unconditionally include in API requests. By default, fields with
40936	// empty or default values are omitted from API requests. However, any
40937	// non-pointer, non-interface field appearing in ForceSendFields will be
40938	// sent to the server regardless of whether the field is empty or not.
40939	// This may be used to include empty fields in Patch requests.
40940	ForceSendFields []string `json:"-"`
40941
40942	// NullFields is a list of field names (e.g. "Code") to include in API
40943	// requests with the JSON null value. By default, fields with empty
40944	// values are omitted from API requests. However, any field with an
40945	// empty value appearing in NullFields will be sent to the server as
40946	// null. It is an error if a field in this list has a non-empty value.
40947	// This may be used to include null fields in Patch requests.
40948	NullFields []string `json:"-"`
40949}
40950
40951func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
40952	type NoMethod SslCertificateAggregatedListWarning
40953	raw := NoMethod(*s)
40954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40955}
40956
40957type SslCertificateAggregatedListWarningData struct {
40958	// Key: [Output Only] A key that provides more detail on the warning
40959	// being returned. For example, for warnings where there are no results
40960	// in a list request for a particular zone, this key might be scope and
40961	// the key value might be the zone name. Other examples might be a key
40962	// indicating a deprecated resource and a suggested replacement, or a
40963	// warning about invalid network settings (for example, if an instance
40964	// attempts to perform IP forwarding but is not enabled for IP
40965	// forwarding).
40966	Key string `json:"key,omitempty"`
40967
40968	// Value: [Output Only] A warning data value corresponding to the key.
40969	Value string `json:"value,omitempty"`
40970
40971	// ForceSendFields is a list of field names (e.g. "Key") to
40972	// unconditionally include in API requests. By default, fields with
40973	// empty or default values are omitted from API requests. However, any
40974	// non-pointer, non-interface field appearing in ForceSendFields will be
40975	// sent to the server regardless of whether the field is empty or not.
40976	// This may be used to include empty fields in Patch requests.
40977	ForceSendFields []string `json:"-"`
40978
40979	// NullFields is a list of field names (e.g. "Key") to include in API
40980	// requests with the JSON null value. By default, fields with empty
40981	// values are omitted from API requests. However, any field with an
40982	// empty value appearing in NullFields will be sent to the server as
40983	// null. It is an error if a field in this list has a non-empty value.
40984	// This may be used to include null fields in Patch requests.
40985	NullFields []string `json:"-"`
40986}
40987
40988func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40989	type NoMethod SslCertificateAggregatedListWarningData
40990	raw := NoMethod(*s)
40991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40992}
40993
40994// SslCertificateList: Contains a list of SslCertificate resources.
40995type SslCertificateList struct {
40996	// Id: [Output Only] Unique identifier for the resource; defined by the
40997	// server.
40998	Id string `json:"id,omitempty"`
40999
41000	// Items: A list of SslCertificate resources.
41001	Items []*SslCertificate `json:"items,omitempty"`
41002
41003	// Kind: Type of resource.
41004	Kind string `json:"kind,omitempty"`
41005
41006	// NextPageToken: [Output Only] This token allows you to get the next
41007	// page of results for list requests. If the number of results is larger
41008	// than maxResults, use the nextPageToken as a value for the query
41009	// parameter pageToken in the next list request. Subsequent list
41010	// requests will have their own nextPageToken to continue paging through
41011	// the results.
41012	NextPageToken string `json:"nextPageToken,omitempty"`
41013
41014	// SelfLink: [Output Only] Server-defined URL for this resource.
41015	SelfLink string `json:"selfLink,omitempty"`
41016
41017	// Warning: [Output Only] Informational warning message.
41018	Warning *SslCertificateListWarning `json:"warning,omitempty"`
41019
41020	// ServerResponse contains the HTTP response code and headers from the
41021	// server.
41022	googleapi.ServerResponse `json:"-"`
41023
41024	// ForceSendFields is a list of field names (e.g. "Id") to
41025	// unconditionally include in API requests. By default, fields with
41026	// empty or default values are omitted from API requests. However, any
41027	// non-pointer, non-interface field appearing in ForceSendFields will be
41028	// sent to the server regardless of whether the field is empty or not.
41029	// This may be used to include empty fields in Patch requests.
41030	ForceSendFields []string `json:"-"`
41031
41032	// NullFields is a list of field names (e.g. "Id") to include in API
41033	// requests with the JSON null value. By default, fields with empty
41034	// values are omitted from API requests. However, any field with an
41035	// empty value appearing in NullFields will be sent to the server as
41036	// null. It is an error if a field in this list has a non-empty value.
41037	// This may be used to include null fields in Patch requests.
41038	NullFields []string `json:"-"`
41039}
41040
41041func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
41042	type NoMethod SslCertificateList
41043	raw := NoMethod(*s)
41044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41045}
41046
41047// SslCertificateListWarning: [Output Only] Informational warning
41048// message.
41049type SslCertificateListWarning struct {
41050	// Code: [Output Only] A warning code, if applicable. For example,
41051	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41052	// the response.
41053	//
41054	// Possible values:
41055	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41056	// changes made by a failed operation.
41057	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41058	// created.
41059	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41060	// resources has a type marked as deprecated
41061	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41062	// that is larger than image size.
41063	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41064	// resources has a type marked as experimental
41065	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41066	// call
41067	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41068	// overridden. Deprecated unused field.
41069	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41070	// injected kernel, which is deprecated.
41071	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41072	// exceedingly large number of resources
41073	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41074	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41075	// not assigned to an instance on the network.
41076	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41077	// ip forward.
41078	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41079	// refers to an instance that does not exist.
41080	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41081	// URL refers to an instance that is not on the same network as the
41082	// route.
41083	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41084	// have a status of RUNNING.
41085	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41086	// continue the process despite the mentioned error.
41087	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41088	// page.
41089	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41090	// missing due to errors
41091	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41092	// that requires a TOS they have not accepted.
41093	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41094	// resource is in use.
41095	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41096	// auto-delete could not be deleted because they were in use.
41097	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41098	// ignored.
41099	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41100	// instance group manager is valid as such, but its application does not
41101	// make a lot of sense, because it allows only single instance in
41102	// instance group.
41103	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41104	// are present
41105	//   "UNREACHABLE" - A given scope cannot be reached.
41106	Code string `json:"code,omitempty"`
41107
41108	// Data: [Output Only] Metadata about this warning in key: value format.
41109	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41110	// }
41111	Data []*SslCertificateListWarningData `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 or default values are omitted from API requests. However, any
41120	// non-pointer, non-interface field appearing in ForceSendFields will be
41121	// sent to the server regardless of whether the field is empty or not.
41122	// This may be 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 *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
41135	type NoMethod SslCertificateListWarning
41136	raw := NoMethod(*s)
41137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41138}
41139
41140type SslCertificateListWarningData 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 or default values are omitted from API requests. However, any
41157	// non-pointer, non-interface field appearing in ForceSendFields will be
41158	// sent to the server regardless of whether the field is empty or not.
41159	// This may be 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 *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
41172	type NoMethod SslCertificateListWarningData
41173	raw := NoMethod(*s)
41174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41175}
41176
41177// SslCertificateManagedSslCertificate: Configuration and status of a
41178// managed SSL certificate.
41179type SslCertificateManagedSslCertificate struct {
41180	// DomainStatus: [Output only] Detailed statuses of the domains
41181	// specified for managed certificate resource.
41182	DomainStatus map[string]string `json:"domainStatus,omitempty"`
41183
41184	// Domains: The domains for which a managed SSL certificate will be
41185	// generated. Each Google-managed SSL certificate supports up to the
41186	// maximum number of domains per Google-managed SSL certificate
41187	// (/load-balancing/docs/quotas#ssl_certificates).
41188	Domains []string `json:"domains,omitempty"`
41189
41190	// Status: [Output only] Status of the managed certificate resource.
41191	//
41192	// Possible values:
41193	//   "ACTIVE" - The certificate management is working, and a certificate
41194	// has been provisioned.
41195	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
41196	//   "PROVISIONING" - The certificate management is working. GCP will
41197	// attempt to provision the first certificate.
41198	//   "PROVISIONING_FAILED" - Certificate provisioning failed due to an
41199	// issue with the DNS or load balancing configuration. For details of
41200	// which domain failed, consult domain_status field.
41201	//   "PROVISIONING_FAILED_PERMANENTLY" - Certificate provisioning failed
41202	// due to an issue with the DNS or load balancing configuration. It
41203	// won't be retried. To try again delete and create a new managed
41204	// SslCertificate resource. For details of which domain failed, consult
41205	// domain_status field.
41206	//   "RENEWAL_FAILED" - Renewal of the certificate has failed due to an
41207	// issue with the DNS or load balancing configuration. The existing cert
41208	// is still serving; however, it will expire shortly. To provision a
41209	// renewed certificate, delete and create a new managed SslCertificate
41210	// resource. For details on which domain failed, consult domain_status
41211	// field.
41212	Status string `json:"status,omitempty"`
41213
41214	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
41215	// unconditionally include in API requests. By default, fields with
41216	// empty or default values are omitted from API requests. However, any
41217	// non-pointer, non-interface field appearing in ForceSendFields will be
41218	// sent to the server regardless of whether the field is empty or not.
41219	// This may be used to include empty fields in Patch requests.
41220	ForceSendFields []string `json:"-"`
41221
41222	// NullFields is a list of field names (e.g. "DomainStatus") to include
41223	// in API requests with the JSON null value. By default, fields with
41224	// empty values are omitted from API requests. However, any field with
41225	// an empty value appearing in NullFields will be sent to the server as
41226	// null. It is an error if a field in this list has a non-empty value.
41227	// This may be used to include null fields in Patch requests.
41228	NullFields []string `json:"-"`
41229}
41230
41231func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
41232	type NoMethod SslCertificateManagedSslCertificate
41233	raw := NoMethod(*s)
41234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41235}
41236
41237// SslCertificateSelfManagedSslCertificate: Configuration and status of
41238// a self-managed SSL certificate.
41239type SslCertificateSelfManagedSslCertificate struct {
41240	// Certificate: A local certificate file. The certificate must be in PEM
41241	// format. The certificate chain must be no greater than 5 certs long.
41242	// The chain must include at least one intermediate cert.
41243	Certificate string `json:"certificate,omitempty"`
41244
41245	// PrivateKey: A write-only private key in PEM format. Only insert
41246	// requests will include this field.
41247	PrivateKey string `json:"privateKey,omitempty"`
41248
41249	// ForceSendFields is a list of field names (e.g. "Certificate") to
41250	// unconditionally include in API requests. By default, fields with
41251	// empty or default values are omitted from API requests. However, any
41252	// non-pointer, non-interface field appearing in ForceSendFields will be
41253	// sent to the server regardless of whether the field is empty or not.
41254	// This may be used to include empty fields in Patch requests.
41255	ForceSendFields []string `json:"-"`
41256
41257	// NullFields is a list of field names (e.g. "Certificate") to include
41258	// in API requests with the JSON null value. By default, fields with
41259	// empty values are omitted from API requests. However, any field with
41260	// an empty value appearing in NullFields will be sent to the server as
41261	// null. It is an error if a field in this list has a non-empty value.
41262	// This may be used to include null fields in Patch requests.
41263	NullFields []string `json:"-"`
41264}
41265
41266func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
41267	type NoMethod SslCertificateSelfManagedSslCertificate
41268	raw := NoMethod(*s)
41269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41270}
41271
41272type SslCertificatesScopedList struct {
41273	// SslCertificates: List of SslCertificates contained in this scope.
41274	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
41275
41276	// Warning: Informational warning which replaces the list of backend
41277	// services when the list is empty.
41278	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
41279
41280	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
41281	// unconditionally include in API requests. By default, fields with
41282	// empty or default values are omitted from API requests. However, any
41283	// non-pointer, non-interface field appearing in ForceSendFields will be
41284	// sent to the server regardless of whether the field is empty or not.
41285	// This may be used to include empty fields in Patch requests.
41286	ForceSendFields []string `json:"-"`
41287
41288	// NullFields is a list of field names (e.g. "SslCertificates") to
41289	// include in API requests with the JSON null value. By default, fields
41290	// with empty values are omitted from API requests. However, any field
41291	// with an empty value appearing in NullFields will be sent to the
41292	// server as null. It is an error if a field in this list has a
41293	// non-empty value. This may be used to include null fields in Patch
41294	// requests.
41295	NullFields []string `json:"-"`
41296}
41297
41298func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
41299	type NoMethod SslCertificatesScopedList
41300	raw := NoMethod(*s)
41301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41302}
41303
41304// SslCertificatesScopedListWarning: Informational warning which
41305// replaces the list of backend services when the list is empty.
41306type SslCertificatesScopedListWarning struct {
41307	// Code: [Output Only] A warning code, if applicable. For example,
41308	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41309	// the response.
41310	//
41311	// Possible values:
41312	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41313	// changes made by a failed operation.
41314	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41315	// created.
41316	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41317	// resources has a type marked as deprecated
41318	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41319	// that is larger than image size.
41320	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41321	// resources has a type marked as experimental
41322	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41323	// call
41324	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41325	// overridden. Deprecated unused field.
41326	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41327	// injected kernel, which is deprecated.
41328	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41329	// exceedingly large number of resources
41330	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41331	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41332	// not assigned to an instance on the network.
41333	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41334	// ip forward.
41335	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41336	// refers to an instance that does not exist.
41337	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41338	// URL refers to an instance that is not on the same network as the
41339	// route.
41340	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41341	// have a status of RUNNING.
41342	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41343	// continue the process despite the mentioned error.
41344	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41345	// page.
41346	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41347	// missing due to errors
41348	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41349	// that requires a TOS they have not accepted.
41350	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41351	// resource is in use.
41352	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41353	// auto-delete could not be deleted because they were in use.
41354	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41355	// ignored.
41356	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41357	// instance group manager is valid as such, but its application does not
41358	// make a lot of sense, because it allows only single instance in
41359	// instance group.
41360	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41361	// are present
41362	//   "UNREACHABLE" - A given scope cannot be reached.
41363	Code string `json:"code,omitempty"`
41364
41365	// Data: [Output Only] Metadata about this warning in key: value format.
41366	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41367	// }
41368	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
41369
41370	// Message: [Output Only] A human-readable description of the warning
41371	// code.
41372	Message string `json:"message,omitempty"`
41373
41374	// ForceSendFields is a list of field names (e.g. "Code") to
41375	// unconditionally include in API requests. By default, fields with
41376	// empty or default values are omitted from API requests. However, any
41377	// non-pointer, non-interface field appearing in ForceSendFields will be
41378	// sent to the server regardless of whether the field is empty or not.
41379	// This may be used to include empty fields in Patch requests.
41380	ForceSendFields []string `json:"-"`
41381
41382	// NullFields is a list of field names (e.g. "Code") to include in API
41383	// requests with the JSON null value. By default, fields with empty
41384	// values are omitted from API requests. However, any field with an
41385	// empty value appearing in NullFields will be sent to the server as
41386	// null. It is an error if a field in this list has a non-empty value.
41387	// This may be used to include null fields in Patch requests.
41388	NullFields []string `json:"-"`
41389}
41390
41391func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
41392	type NoMethod SslCertificatesScopedListWarning
41393	raw := NoMethod(*s)
41394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41395}
41396
41397type SslCertificatesScopedListWarningData struct {
41398	// Key: [Output Only] A key that provides more detail on the warning
41399	// being returned. For example, for warnings where there are no results
41400	// in a list request for a particular zone, this key might be scope and
41401	// the key value might be the zone name. Other examples might be a key
41402	// indicating a deprecated resource and a suggested replacement, or a
41403	// warning about invalid network settings (for example, if an instance
41404	// attempts to perform IP forwarding but is not enabled for IP
41405	// forwarding).
41406	Key string `json:"key,omitempty"`
41407
41408	// Value: [Output Only] A warning data value corresponding to the key.
41409	Value string `json:"value,omitempty"`
41410
41411	// ForceSendFields is a list of field names (e.g. "Key") to
41412	// unconditionally include in API requests. By default, fields with
41413	// empty or default values are omitted from API requests. However, any
41414	// non-pointer, non-interface field appearing in ForceSendFields will be
41415	// sent to the server regardless of whether the field is empty or not.
41416	// This may be used to include empty fields in Patch requests.
41417	ForceSendFields []string `json:"-"`
41418
41419	// NullFields is a list of field names (e.g. "Key") to include in API
41420	// requests with the JSON null value. By default, fields with empty
41421	// values are omitted from API requests. However, any field with an
41422	// empty value appearing in NullFields will be sent to the server as
41423	// null. It is an error if a field in this list has a non-empty value.
41424	// This may be used to include null fields in Patch requests.
41425	NullFields []string `json:"-"`
41426}
41427
41428func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
41429	type NoMethod SslCertificatesScopedListWarningData
41430	raw := NoMethod(*s)
41431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41432}
41433
41434type SslPoliciesList struct {
41435	// Id: [Output Only] Unique identifier for the resource; defined by the
41436	// server.
41437	Id string `json:"id,omitempty"`
41438
41439	// Items: A list of SslPolicy resources.
41440	Items []*SslPolicy `json:"items,omitempty"`
41441
41442	// Kind: [Output Only] Type of the resource. Always
41443	// compute#sslPoliciesList for lists of sslPolicies.
41444	Kind string `json:"kind,omitempty"`
41445
41446	// NextPageToken: [Output Only] This token allows you to get the next
41447	// page of results for list requests. If the number of results is larger
41448	// than maxResults, use the nextPageToken as a value for the query
41449	// parameter pageToken in the next list request. Subsequent list
41450	// requests will have their own nextPageToken to continue paging through
41451	// the results.
41452	NextPageToken string `json:"nextPageToken,omitempty"`
41453
41454	// SelfLink: [Output Only] Server-defined URL for this resource.
41455	SelfLink string `json:"selfLink,omitempty"`
41456
41457	// Warning: [Output Only] Informational warning message.
41458	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
41459
41460	// ServerResponse contains the HTTP response code and headers from the
41461	// server.
41462	googleapi.ServerResponse `json:"-"`
41463
41464	// ForceSendFields is a list of field names (e.g. "Id") to
41465	// unconditionally include in API requests. By default, fields with
41466	// empty or default values are omitted from API requests. However, any
41467	// non-pointer, non-interface field appearing in ForceSendFields will be
41468	// sent to the server regardless of whether the field is empty or not.
41469	// This may be used to include empty fields in Patch requests.
41470	ForceSendFields []string `json:"-"`
41471
41472	// NullFields is a list of field names (e.g. "Id") to include in API
41473	// requests with the JSON null value. By default, fields with empty
41474	// values are omitted from API requests. However, any field with an
41475	// empty value appearing in NullFields will be sent to the server as
41476	// null. It is an error if a field in this list has a non-empty value.
41477	// This may be used to include null fields in Patch requests.
41478	NullFields []string `json:"-"`
41479}
41480
41481func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
41482	type NoMethod SslPoliciesList
41483	raw := NoMethod(*s)
41484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41485}
41486
41487// SslPoliciesListWarning: [Output Only] Informational warning message.
41488type SslPoliciesListWarning struct {
41489	// Code: [Output Only] A warning code, if applicable. For example,
41490	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41491	// the response.
41492	//
41493	// Possible values:
41494	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41495	// changes made by a failed operation.
41496	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41497	// created.
41498	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41499	// resources has a type marked as deprecated
41500	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41501	// that is larger than image size.
41502	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41503	// resources has a type marked as experimental
41504	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41505	// call
41506	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41507	// overridden. Deprecated unused field.
41508	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41509	// injected kernel, which is deprecated.
41510	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41511	// exceedingly large number of resources
41512	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41513	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41514	// not assigned to an instance on the network.
41515	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41516	// ip forward.
41517	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41518	// refers to an instance that does not exist.
41519	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41520	// URL refers to an instance that is not on the same network as the
41521	// route.
41522	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41523	// have a status of RUNNING.
41524	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41525	// continue the process despite the mentioned error.
41526	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41527	// page.
41528	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41529	// missing due to errors
41530	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41531	// that requires a TOS they have not accepted.
41532	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41533	// resource is in use.
41534	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41535	// auto-delete could not be deleted because they were in use.
41536	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41537	// ignored.
41538	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41539	// instance group manager is valid as such, but its application does not
41540	// make a lot of sense, because it allows only single instance in
41541	// instance group.
41542	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41543	// are present
41544	//   "UNREACHABLE" - A given scope cannot be reached.
41545	Code string `json:"code,omitempty"`
41546
41547	// Data: [Output Only] Metadata about this warning in key: value format.
41548	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41549	// }
41550	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
41551
41552	// Message: [Output Only] A human-readable description of the warning
41553	// code.
41554	Message string `json:"message,omitempty"`
41555
41556	// ForceSendFields is a list of field names (e.g. "Code") to
41557	// unconditionally include in API requests. By default, fields with
41558	// empty or default values are omitted from API requests. However, any
41559	// non-pointer, non-interface field appearing in ForceSendFields will be
41560	// sent to the server regardless of whether the field is empty or not.
41561	// This may be used to include empty fields in Patch requests.
41562	ForceSendFields []string `json:"-"`
41563
41564	// NullFields is a list of field names (e.g. "Code") to include in API
41565	// requests with the JSON null value. By default, fields with empty
41566	// values are omitted from API requests. However, any field with an
41567	// empty value appearing in NullFields will be sent to the server as
41568	// null. It is an error if a field in this list has a non-empty value.
41569	// This may be used to include null fields in Patch requests.
41570	NullFields []string `json:"-"`
41571}
41572
41573func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
41574	type NoMethod SslPoliciesListWarning
41575	raw := NoMethod(*s)
41576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41577}
41578
41579type SslPoliciesListWarningData struct {
41580	// Key: [Output Only] A key that provides more detail on the warning
41581	// being returned. For example, for warnings where there are no results
41582	// in a list request for a particular zone, this key might be scope and
41583	// the key value might be the zone name. Other examples might be a key
41584	// indicating a deprecated resource and a suggested replacement, or a
41585	// warning about invalid network settings (for example, if an instance
41586	// attempts to perform IP forwarding but is not enabled for IP
41587	// forwarding).
41588	Key string `json:"key,omitempty"`
41589
41590	// Value: [Output Only] A warning data value corresponding to the key.
41591	Value string `json:"value,omitempty"`
41592
41593	// ForceSendFields is a list of field names (e.g. "Key") to
41594	// unconditionally include in API requests. By default, fields with
41595	// empty or default values are omitted from API requests. However, any
41596	// non-pointer, non-interface field appearing in ForceSendFields will be
41597	// sent to the server regardless of whether the field is empty or not.
41598	// This may be used to include empty fields in Patch requests.
41599	ForceSendFields []string `json:"-"`
41600
41601	// NullFields is a list of field names (e.g. "Key") to include in API
41602	// requests with the JSON null value. By default, fields with empty
41603	// values are omitted from API requests. However, any field with an
41604	// empty value appearing in NullFields will be sent to the server as
41605	// null. It is an error if a field in this list has a non-empty value.
41606	// This may be used to include null fields in Patch requests.
41607	NullFields []string `json:"-"`
41608}
41609
41610func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
41611	type NoMethod SslPoliciesListWarningData
41612	raw := NoMethod(*s)
41613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41614}
41615
41616type SslPoliciesListAvailableFeaturesResponse struct {
41617	Features []string `json:"features,omitempty"`
41618
41619	// ServerResponse contains the HTTP response code and headers from the
41620	// server.
41621	googleapi.ServerResponse `json:"-"`
41622
41623	// ForceSendFields is a list of field names (e.g. "Features") to
41624	// unconditionally include in API requests. By default, fields with
41625	// empty or default values are omitted from API requests. However, any
41626	// non-pointer, non-interface field appearing in ForceSendFields will be
41627	// sent to the server regardless of whether the field is empty or not.
41628	// This may be used to include empty fields in Patch requests.
41629	ForceSendFields []string `json:"-"`
41630
41631	// NullFields is a list of field names (e.g. "Features") to include in
41632	// API requests with the JSON null value. By default, fields with empty
41633	// values are omitted from API requests. However, any field with an
41634	// empty value appearing in NullFields will be sent to the server as
41635	// null. It is an error if a field in this list has a non-empty value.
41636	// This may be used to include null fields in Patch requests.
41637	NullFields []string `json:"-"`
41638}
41639
41640func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
41641	type NoMethod SslPoliciesListAvailableFeaturesResponse
41642	raw := NoMethod(*s)
41643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41644}
41645
41646// SslPolicy: Represents an SSL Policy resource. Use SSL policies to
41647// control the SSL features, such as versions and cipher suites, offered
41648// by an HTTPS or SSL Proxy load balancer. For more information, read
41649// SSL Policy Concepts.
41650type SslPolicy struct {
41651	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41652	// format.
41653	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41654
41655	// CustomFeatures: A list of features enabled when the selected profile
41656	// is CUSTOM. The method returns the set of features that can be
41657	// specified in this list. This field must be empty if the profile is
41658	// not CUSTOM.
41659	CustomFeatures []string `json:"customFeatures,omitempty"`
41660
41661	// Description: An optional description of this resource. Provide this
41662	// property when you create the resource.
41663	Description string `json:"description,omitempty"`
41664
41665	// EnabledFeatures: [Output Only] The list of features enabled in the
41666	// SSL policy.
41667	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
41668
41669	// Fingerprint: Fingerprint of this resource. A hash of the contents
41670	// stored in this object. This field is used in optimistic locking. This
41671	// field will be ignored when inserting a SslPolicy. An up-to-date
41672	// fingerprint must be provided in order to update the SslPolicy,
41673	// otherwise the request will fail with error 412 conditionNotMet. To
41674	// see the latest fingerprint, make a get() request to retrieve an
41675	// SslPolicy.
41676	Fingerprint string `json:"fingerprint,omitempty"`
41677
41678	// Id: [Output Only] The unique identifier for the resource. This
41679	// identifier is defined by the server.
41680	Id uint64 `json:"id,omitempty,string"`
41681
41682	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
41683	// SSL policies.
41684	Kind string `json:"kind,omitempty"`
41685
41686	// MinTlsVersion: The minimum version of SSL protocol that can be used
41687	// by the clients to establish a connection with the load balancer. This
41688	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
41689	//
41690	// Possible values:
41691	//   "TLS_1_0" - TLS 1.0
41692	//   "TLS_1_1" - TLS 1.1
41693	//   "TLS_1_2" - TLS 1.2
41694	MinTlsVersion string `json:"minTlsVersion,omitempty"`
41695
41696	// Name: Name of the resource. The name must be 1-63 characters long,
41697	// and comply with RFC1035. Specifically, the name must be 1-63
41698	// characters long and match the regular expression
41699	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
41700	// a lowercase letter, and all following characters must be a dash,
41701	// lowercase letter, or digit, except the last character, which cannot
41702	// be a dash.
41703	Name string `json:"name,omitempty"`
41704
41705	// Profile: Profile specifies the set of SSL features that can be used
41706	// by the load balancer when negotiating SSL with clients. This can be
41707	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
41708	// the set of SSL features to enable must be specified in the
41709	// customFeatures field.
41710	//
41711	// Possible values:
41712	//   "COMPATIBLE" - Compatible profile. Allows the broadset set of
41713	// clients, even those which support only out-of-date SSL features to
41714	// negotiate with the load balancer.
41715	//   "CUSTOM" - Custom profile. Allow only the set of allowed SSL
41716	// features specified in the customFeatures field.
41717	//   "MODERN" - Modern profile. Supports a wide set of SSL features,
41718	// allowing modern clients to negotiate SSL with the load balancer.
41719	//   "RESTRICTED" - Restricted profile. Supports a reduced set of SSL
41720	// features, intended to meet stricter compliance requirements.
41721	Profile string `json:"profile,omitempty"`
41722
41723	// SelfLink: [Output Only] Server-defined URL for the resource.
41724	SelfLink string `json:"selfLink,omitempty"`
41725
41726	// Warnings: [Output Only] If potential misconfigurations are detected
41727	// for this SSL policy, this field will be populated with warning
41728	// messages.
41729	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
41730
41731	// ServerResponse contains the HTTP response code and headers from the
41732	// server.
41733	googleapi.ServerResponse `json:"-"`
41734
41735	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41736	// to unconditionally include in API requests. By default, fields with
41737	// empty or default values are omitted from API requests. However, any
41738	// non-pointer, non-interface field appearing in ForceSendFields will be
41739	// sent to the server regardless of whether the field is empty or not.
41740	// This may be used to include empty fields in Patch requests.
41741	ForceSendFields []string `json:"-"`
41742
41743	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41744	// include in API requests with the JSON null value. By default, fields
41745	// with empty values are omitted from API requests. However, any field
41746	// with an empty value appearing in NullFields will be sent to the
41747	// server as null. It is an error if a field in this list has a
41748	// non-empty value. This may be used to include null fields in Patch
41749	// requests.
41750	NullFields []string `json:"-"`
41751}
41752
41753func (s *SslPolicy) MarshalJSON() ([]byte, error) {
41754	type NoMethod SslPolicy
41755	raw := NoMethod(*s)
41756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41757}
41758
41759type SslPolicyWarnings struct {
41760	// Code: [Output Only] A warning code, if applicable. For example,
41761	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41762	// the response.
41763	//
41764	// Possible values:
41765	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41766	// changes made by a failed operation.
41767	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41768	// created.
41769	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41770	// resources has a type marked as deprecated
41771	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41772	// that is larger than image size.
41773	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41774	// resources has a type marked as experimental
41775	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41776	// call
41777	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41778	// overridden. Deprecated unused field.
41779	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41780	// injected kernel, which is deprecated.
41781	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41782	// exceedingly large number of resources
41783	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41784	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41785	// not assigned to an instance on the network.
41786	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41787	// ip forward.
41788	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41789	// refers to an instance that does not exist.
41790	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41791	// URL refers to an instance that is not on the same network as the
41792	// route.
41793	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41794	// have a status of RUNNING.
41795	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41796	// continue the process despite the mentioned error.
41797	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41798	// page.
41799	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41800	// missing due to errors
41801	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41802	// that requires a TOS they have not accepted.
41803	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41804	// resource is in use.
41805	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41806	// auto-delete could not be deleted because they were in use.
41807	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41808	// ignored.
41809	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41810	// instance group manager is valid as such, but its application does not
41811	// make a lot of sense, because it allows only single instance in
41812	// instance group.
41813	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41814	// are present
41815	//   "UNREACHABLE" - A given scope cannot be reached.
41816	Code string `json:"code,omitempty"`
41817
41818	// Data: [Output Only] Metadata about this warning in key: value format.
41819	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41820	// }
41821	Data []*SslPolicyWarningsData `json:"data,omitempty"`
41822
41823	// Message: [Output Only] A human-readable description of the warning
41824	// code.
41825	Message string `json:"message,omitempty"`
41826
41827	// ForceSendFields is a list of field names (e.g. "Code") to
41828	// unconditionally include in API requests. By default, fields with
41829	// empty or default values are omitted from API requests. However, any
41830	// non-pointer, non-interface field appearing in ForceSendFields will be
41831	// sent to the server regardless of whether the field is empty or not.
41832	// This may be used to include empty fields in Patch requests.
41833	ForceSendFields []string `json:"-"`
41834
41835	// NullFields is a list of field names (e.g. "Code") to include in API
41836	// requests with the JSON null value. By default, fields with empty
41837	// values are omitted from API requests. However, any field with an
41838	// empty value appearing in NullFields will be sent to the server as
41839	// null. It is an error if a field in this list has a non-empty value.
41840	// This may be used to include null fields in Patch requests.
41841	NullFields []string `json:"-"`
41842}
41843
41844func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
41845	type NoMethod SslPolicyWarnings
41846	raw := NoMethod(*s)
41847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41848}
41849
41850type SslPolicyWarningsData struct {
41851	// Key: [Output Only] A key that provides more detail on the warning
41852	// being returned. For example, for warnings where there are no results
41853	// in a list request for a particular zone, this key might be scope and
41854	// the key value might be the zone name. Other examples might be a key
41855	// indicating a deprecated resource and a suggested replacement, or a
41856	// warning about invalid network settings (for example, if an instance
41857	// attempts to perform IP forwarding but is not enabled for IP
41858	// forwarding).
41859	Key string `json:"key,omitempty"`
41860
41861	// Value: [Output Only] A warning data value corresponding to the key.
41862	Value string `json:"value,omitempty"`
41863
41864	// ForceSendFields is a list of field names (e.g. "Key") to
41865	// unconditionally include in API requests. By default, fields with
41866	// empty or default values are omitted from API requests. However, any
41867	// non-pointer, non-interface field appearing in ForceSendFields will be
41868	// sent to the server regardless of whether the field is empty or not.
41869	// This may be used to include empty fields in Patch requests.
41870	ForceSendFields []string `json:"-"`
41871
41872	// NullFields is a list of field names (e.g. "Key") to include in API
41873	// requests with the JSON null value. By default, fields with empty
41874	// values are omitted from API requests. However, any field with an
41875	// empty value appearing in NullFields will be sent to the server as
41876	// null. It is an error if a field in this list has a non-empty value.
41877	// This may be used to include null fields in Patch requests.
41878	NullFields []string `json:"-"`
41879}
41880
41881func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
41882	type NoMethod SslPolicyWarningsData
41883	raw := NoMethod(*s)
41884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41885}
41886
41887type SslPolicyReference struct {
41888	// SslPolicy: URL of the SSL policy resource. Set this to empty string
41889	// to clear any existing SSL policy associated with the target proxy
41890	// resource.
41891	SslPolicy string `json:"sslPolicy,omitempty"`
41892
41893	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
41894	// unconditionally include in API requests. By default, fields with
41895	// empty or default values are omitted from API requests. However, any
41896	// non-pointer, non-interface field appearing in ForceSendFields will be
41897	// sent to the server regardless of whether the field is empty or not.
41898	// This may be used to include empty fields in Patch requests.
41899	ForceSendFields []string `json:"-"`
41900
41901	// NullFields is a list of field names (e.g. "SslPolicy") to include in
41902	// API requests with the JSON null value. By default, fields with empty
41903	// values are omitted from API requests. However, any field with an
41904	// empty value appearing in NullFields will be sent to the server as
41905	// null. It is an error if a field in this list has a non-empty value.
41906	// This may be used to include null fields in Patch requests.
41907	NullFields []string `json:"-"`
41908}
41909
41910func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
41911	type NoMethod SslPolicyReference
41912	raw := NoMethod(*s)
41913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41914}
41915
41916type StatefulPolicy struct {
41917	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
41918
41919	// ForceSendFields is a list of field names (e.g. "PreservedState") to
41920	// unconditionally include in API requests. By default, fields with
41921	// empty or default values are omitted from API requests. However, any
41922	// non-pointer, non-interface field appearing in ForceSendFields will be
41923	// sent to the server regardless of whether the field is empty or not.
41924	// This may be used to include empty fields in Patch requests.
41925	ForceSendFields []string `json:"-"`
41926
41927	// NullFields is a list of field names (e.g. "PreservedState") to
41928	// include in API requests with the JSON null value. By default, fields
41929	// with empty values are omitted from API requests. However, any field
41930	// with an empty value appearing in NullFields will be sent to the
41931	// server as null. It is an error if a field in this list has a
41932	// non-empty value. This may be used to include null fields in Patch
41933	// requests.
41934	NullFields []string `json:"-"`
41935}
41936
41937func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
41938	type NoMethod StatefulPolicy
41939	raw := NoMethod(*s)
41940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41941}
41942
41943// StatefulPolicyPreservedState: Configuration of preserved resources.
41944type StatefulPolicyPreservedState struct {
41945	// Disks: Disks created on the instances that will be preserved on
41946	// instance delete, update, etc. This map is keyed with the device names
41947	// of the disks.
41948	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
41949
41950	// ForceSendFields is a list of field names (e.g. "Disks") to
41951	// unconditionally include in API requests. By default, fields with
41952	// empty or default values are omitted from API requests. However, any
41953	// non-pointer, non-interface field appearing in ForceSendFields will be
41954	// sent to the server regardless of whether the field is empty or not.
41955	// This may be used to include empty fields in Patch requests.
41956	ForceSendFields []string `json:"-"`
41957
41958	// NullFields is a list of field names (e.g. "Disks") to include in API
41959	// requests with the JSON null value. By default, fields with empty
41960	// values are omitted from API requests. However, any field with an
41961	// empty value appearing in NullFields will be sent to the server as
41962	// null. It is an error if a field in this list has a non-empty value.
41963	// This may be used to include null fields in Patch requests.
41964	NullFields []string `json:"-"`
41965}
41966
41967func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
41968	type NoMethod StatefulPolicyPreservedState
41969	raw := NoMethod(*s)
41970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41971}
41972
41973type StatefulPolicyPreservedStateDiskDevice struct {
41974	// AutoDelete: These stateful disks will never be deleted during
41975	// autohealing, update or VM instance recreate operations. This flag is
41976	// used to configure if the disk should be deleted after it is no longer
41977	// used by the group, e.g. when the given instance or the whole group is
41978	// deleted. Note: disks attached in READ_ONLY mode cannot be
41979	// auto-deleted.
41980	//
41981	// Possible values:
41982	//   "NEVER"
41983	//   "ON_PERMANENT_INSTANCE_DELETION"
41984	AutoDelete string `json:"autoDelete,omitempty"`
41985
41986	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
41987	// unconditionally include in API requests. By default, fields with
41988	// empty or default values are omitted from API requests. However, any
41989	// non-pointer, non-interface field appearing in ForceSendFields will be
41990	// sent to the server regardless of whether the field is empty or not.
41991	// This may be used to include empty fields in Patch requests.
41992	ForceSendFields []string `json:"-"`
41993
41994	// NullFields is a list of field names (e.g. "AutoDelete") to include in
41995	// API requests with the JSON null value. By default, fields with empty
41996	// values are omitted from API requests. However, any field with an
41997	// empty value appearing in NullFields will be sent to the server as
41998	// null. It is an error if a field in this list has a non-empty value.
41999	// This may be used to include null fields in Patch requests.
42000	NullFields []string `json:"-"`
42001}
42002
42003func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
42004	type NoMethod StatefulPolicyPreservedStateDiskDevice
42005	raw := NoMethod(*s)
42006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42007}
42008
42009// Subnetwork: Represents a Subnetwork resource. A subnetwork (also
42010// known as a subnet) is a logical partition of a Virtual Private Cloud
42011// network with one primary IP range and zero or more secondary IP
42012// ranges. For more information, read Virtual Private Cloud (VPC)
42013// Network.
42014type Subnetwork struct {
42015	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42016	// format.
42017	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42018
42019	// Description: An optional description of this resource. Provide this
42020	// property when you create the resource. This field can be set only at
42021	// resource creation time.
42022	Description string `json:"description,omitempty"`
42023
42024	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
42025	// If this field is not explicitly set, it will not appear in get
42026	// listings. If not set the default behavior is to disable flow logging.
42027	// This field isn't supported with the purpose field set to
42028	// INTERNAL_HTTPS_LOAD_BALANCER.
42029	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
42030
42031	// ExternalIpv6Prefix: [Output Only] The range of external IPv6
42032	// addresses that are owned by this subnetwork.
42033	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
42034
42035	// Fingerprint: Fingerprint of this resource. A hash of the contents
42036	// stored in this object. This field is used in optimistic locking. This
42037	// field will be ignored when inserting a Subnetwork. An up-to-date
42038	// fingerprint must be provided in order to update the Subnetwork,
42039	// otherwise the request will fail with error 412 conditionNotMet. To
42040	// see the latest fingerprint, make a get() request to retrieve a
42041	// Subnetwork.
42042	Fingerprint string `json:"fingerprint,omitempty"`
42043
42044	// GatewayAddress: [Output Only] The gateway address for default routes
42045	// to reach destination addresses outside this subnetwork.
42046	GatewayAddress string `json:"gatewayAddress,omitempty"`
42047
42048	// Id: [Output Only] The unique identifier for the resource. This
42049	// identifier is defined by the server.
42050	Id uint64 `json:"id,omitempty,string"`
42051
42052	// IpCidrRange: The range of internal addresses that are owned by this
42053	// subnetwork. Provide this property when you create the subnetwork. For
42054	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
42055	// non-overlapping within a network. Only IPv4 is supported. This field
42056	// is set at resource creation time. The range can be any range listed
42057	// in the Valid ranges list. The range can be expanded after creation
42058	// using expandIpCidrRange.
42059	IpCidrRange string `json:"ipCidrRange,omitempty"`
42060
42061	// Ipv6AccessType: The access type of IPv6 address this subnet holds.
42062	// It's immutable and can only be specified during creation or the first
42063	// time the subnet is updated into IPV4_IPV6 dual stack. If the
42064	// ipv6_type is EXTERNAL then this subnet cannot enable direct path.
42065	//
42066	// Possible values:
42067	//   "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses
42068	// that are accesible via the Internet, as well as the VPC network.
42069	//   "UNSPECIFIED_IPV6_ACCESS_TYPE" - IPv6 access type not set. Means
42070	// this subnet hasn't been turned on IPv6 yet.
42071	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
42072
42073	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
42074	// that are owned by this subnetwork.
42075	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
42076
42077	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
42078	// for Subnetwork resources.
42079	Kind string `json:"kind,omitempty"`
42080
42081	// LogConfig: This field denotes the VPC flow logging options for this
42082	// subnetwork. If logging is enabled, logs are exported to Cloud
42083	// Logging.
42084	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
42085
42086	// Name: The name of the resource, provided by the client when initially
42087	// creating the resource. The name must be 1-63 characters long, and
42088	// comply with RFC1035. Specifically, the name must be 1-63 characters
42089	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
42090	// which means the first character must be a lowercase letter, and all
42091	// following characters must be a dash, lowercase letter, or digit,
42092	// except the last character, which cannot be a dash.
42093	Name string `json:"name,omitempty"`
42094
42095	// Network: The URL of the network to which this subnetwork belongs,
42096	// provided by the client when initially creating the subnetwork. Only
42097	// networks that are in the distributed mode can have subnetworks. This
42098	// field can be set only at resource creation time.
42099	Network string `json:"network,omitempty"`
42100
42101	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
42102	// Google services without assigned external IP addresses. This field
42103	// can be both set at resource creation time and updated using
42104	// setPrivateIpGoogleAccess.
42105	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
42106
42107	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
42108	// VMs in this subnet. This is an expanded field of
42109	// enablePrivateV6Access. If both fields are set,
42110	// privateIpv6GoogleAccess will take priority. This field can be both
42111	// set at resource creation time and updated using patch.
42112	//
42113	// Possible values:
42114	//   "DISABLE_GOOGLE_ACCESS" - Disable private IPv6 access to/from
42115	// Google services.
42116	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
42117	// IPv6 access to/from Google services.
42118	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
42119	// access from VMs in this subnet to Google services.
42120	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
42121
42122	// Purpose: The purpose of the resource. This field can be either
42123	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
42124	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
42125	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
42126	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
42127	// enableFlowLogs field isn't supported with the purpose field set to
42128	// INTERNAL_HTTPS_LOAD_BALANCER.
42129	//
42130	// Possible values:
42131	//   "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal
42132	// HTTP(S) Load Balancing.
42133	//   "PRIVATE" - Regular user created or automatically created subnet.
42134	//   "PRIVATE_RFC_1918" - Regular user created or automatically created
42135	// subnet.
42136	//   "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service
42137	// Connect in the producer network.
42138	Purpose string `json:"purpose,omitempty"`
42139
42140	// Region: URL of the region where the Subnetwork resides. This field
42141	// can be set only at resource creation time.
42142	Region string `json:"region,omitempty"`
42143
42144	// Role: The role of subnetwork. Currently, this field is only used when
42145	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
42146	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
42147	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
42148	// that is ready to be promoted to ACTIVE or is currently draining. This
42149	// field can be updated with a patch request.
42150	//
42151	// Possible values:
42152	//   "ACTIVE" - The ACTIVE subnet that is currently used.
42153	//   "BACKUP" - The BACKUP subnet that could be promoted to ACTIVE.
42154	Role string `json:"role,omitempty"`
42155
42156	// SecondaryIpRanges: An array of configurations for secondary IP ranges
42157	// for VM instances contained in this subnetwork. The primary IP of such
42158	// VM must belong to the primary ipCidrRange of the subnetwork. The
42159	// alias IPs may belong to either primary or secondary ranges. This
42160	// field can be updated with a patch request.
42161	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
42162
42163	// SelfLink: [Output Only] Server-defined URL for the resource.
42164	SelfLink string `json:"selfLink,omitempty"`
42165
42166	// StackType: The stack type for this subnet to identify whether the
42167	// IPv6 feature is enabled or not. If not specified IPV4_ONLY will be
42168	// used. This field can be both set at resource creation time and
42169	// updated using patch.
42170	//
42171	// Possible values:
42172	//   "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6
42173	// addresses.
42174	//   "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4
42175	// addresses.
42176	//   "UNSPECIFIED_STACK_TYPE"
42177	StackType string `json:"stackType,omitempty"`
42178
42179	// State: [Output Only] The state of the subnetwork, which can be one of
42180	// the following values: READY: Subnetwork is created and ready to use
42181	// DRAINING: only applicable to subnetworks that have the purpose set to
42182	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the
42183	// load balancer are being drained. A subnetwork that is draining cannot
42184	// be used or modified until it reaches a status of READY
42185	//
42186	// Possible values:
42187	//   "DRAINING" - Subnetwork is being drained.
42188	//   "READY" - Subnetwork is ready for use.
42189	State string `json:"state,omitempty"`
42190
42191	// ServerResponse contains the HTTP response code and headers from the
42192	// server.
42193	googleapi.ServerResponse `json:"-"`
42194
42195	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42196	// to unconditionally include in API requests. By default, fields with
42197	// empty or default values are omitted from API requests. However, any
42198	// non-pointer, non-interface field appearing in ForceSendFields will be
42199	// sent to the server regardless of whether the field is empty or not.
42200	// This may be used to include empty fields in Patch requests.
42201	ForceSendFields []string `json:"-"`
42202
42203	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42204	// include in API requests with the JSON null value. By default, fields
42205	// with empty values are omitted from API requests. However, any field
42206	// with an empty value appearing in NullFields will be sent to the
42207	// server as null. It is an error if a field in this list has a
42208	// non-empty value. This may be used to include null fields in Patch
42209	// requests.
42210	NullFields []string `json:"-"`
42211}
42212
42213func (s *Subnetwork) MarshalJSON() ([]byte, error) {
42214	type NoMethod Subnetwork
42215	raw := NoMethod(*s)
42216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42217}
42218
42219type SubnetworkAggregatedList struct {
42220	// Id: [Output Only] Unique identifier for the resource; defined by the
42221	// server.
42222	Id string `json:"id,omitempty"`
42223
42224	// Items: A list of SubnetworksScopedList resources.
42225	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
42226
42227	// Kind: [Output Only] Type of resource. Always
42228	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
42229	Kind string `json:"kind,omitempty"`
42230
42231	// NextPageToken: [Output Only] This token allows you to get the next
42232	// page of results for list requests. If the number of results is larger
42233	// than maxResults, use the nextPageToken as a value for the query
42234	// parameter pageToken in the next list request. Subsequent list
42235	// requests will have their own nextPageToken to continue paging through
42236	// the results.
42237	NextPageToken string `json:"nextPageToken,omitempty"`
42238
42239	// SelfLink: [Output Only] Server-defined URL for this resource.
42240	SelfLink string `json:"selfLink,omitempty"`
42241
42242	// Unreachables: [Output Only] Unreachable resources.
42243	Unreachables []string `json:"unreachables,omitempty"`
42244
42245	// Warning: [Output Only] Informational warning message.
42246	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
42247
42248	// ServerResponse contains the HTTP response code and headers from the
42249	// server.
42250	googleapi.ServerResponse `json:"-"`
42251
42252	// ForceSendFields is a list of field names (e.g. "Id") to
42253	// unconditionally include in API requests. By default, fields with
42254	// empty or default values are omitted from API requests. However, any
42255	// non-pointer, non-interface field appearing in ForceSendFields will be
42256	// sent to the server regardless of whether the field is empty or not.
42257	// This may be used to include empty fields in Patch requests.
42258	ForceSendFields []string `json:"-"`
42259
42260	// NullFields is a list of field names (e.g. "Id") to include in API
42261	// requests with the JSON null value. By default, fields with empty
42262	// values are omitted from API requests. However, any field with an
42263	// empty value appearing in NullFields will be sent to the server as
42264	// null. It is an error if a field in this list has a non-empty value.
42265	// This may be used to include null fields in Patch requests.
42266	NullFields []string `json:"-"`
42267}
42268
42269func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
42270	type NoMethod SubnetworkAggregatedList
42271	raw := NoMethod(*s)
42272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42273}
42274
42275// SubnetworkAggregatedListWarning: [Output Only] Informational warning
42276// message.
42277type SubnetworkAggregatedListWarning struct {
42278	// Code: [Output Only] A warning code, if applicable. For example,
42279	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42280	// the response.
42281	//
42282	// Possible values:
42283	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42284	// changes made by a failed operation.
42285	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42286	// created.
42287	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42288	// resources has a type marked as deprecated
42289	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42290	// that is larger than image size.
42291	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42292	// resources has a type marked as experimental
42293	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42294	// call
42295	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42296	// overridden. Deprecated unused field.
42297	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42298	// injected kernel, which is deprecated.
42299	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42300	// exceedingly large number of resources
42301	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42302	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42303	// not assigned to an instance on the network.
42304	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42305	// ip forward.
42306	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42307	// refers to an instance that does not exist.
42308	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42309	// URL refers to an instance that is not on the same network as the
42310	// route.
42311	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42312	// have a status of RUNNING.
42313	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42314	// continue the process despite the mentioned error.
42315	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42316	// page.
42317	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42318	// missing due to errors
42319	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42320	// that requires a TOS they have not accepted.
42321	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42322	// resource is in use.
42323	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42324	// auto-delete could not be deleted because they were in use.
42325	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42326	// ignored.
42327	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42328	// instance group manager is valid as such, but its application does not
42329	// make a lot of sense, because it allows only single instance in
42330	// instance group.
42331	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42332	// are present
42333	//   "UNREACHABLE" - A given scope cannot be reached.
42334	Code string `json:"code,omitempty"`
42335
42336	// Data: [Output Only] Metadata about this warning in key: value format.
42337	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42338	// }
42339	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
42340
42341	// Message: [Output Only] A human-readable description of the warning
42342	// code.
42343	Message string `json:"message,omitempty"`
42344
42345	// ForceSendFields is a list of field names (e.g. "Code") to
42346	// unconditionally include in API requests. By default, fields with
42347	// empty or default values are omitted from API requests. However, any
42348	// non-pointer, non-interface field appearing in ForceSendFields will be
42349	// sent to the server regardless of whether the field is empty or not.
42350	// This may be used to include empty fields in Patch requests.
42351	ForceSendFields []string `json:"-"`
42352
42353	// NullFields is a list of field names (e.g. "Code") to include in API
42354	// requests with the JSON null value. By default, fields with empty
42355	// values are omitted from API requests. However, any field with an
42356	// empty value appearing in NullFields will be sent to the server as
42357	// null. It is an error if a field in this list has a non-empty value.
42358	// This may be used to include null fields in Patch requests.
42359	NullFields []string `json:"-"`
42360}
42361
42362func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
42363	type NoMethod SubnetworkAggregatedListWarning
42364	raw := NoMethod(*s)
42365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42366}
42367
42368type SubnetworkAggregatedListWarningData struct {
42369	// Key: [Output Only] A key that provides more detail on the warning
42370	// being returned. For example, for warnings where there are no results
42371	// in a list request for a particular zone, this key might be scope and
42372	// the key value might be the zone name. Other examples might be a key
42373	// indicating a deprecated resource and a suggested replacement, or a
42374	// warning about invalid network settings (for example, if an instance
42375	// attempts to perform IP forwarding but is not enabled for IP
42376	// forwarding).
42377	Key string `json:"key,omitempty"`
42378
42379	// Value: [Output Only] A warning data value corresponding to the key.
42380	Value string `json:"value,omitempty"`
42381
42382	// ForceSendFields is a list of field names (e.g. "Key") to
42383	// unconditionally include in API requests. By default, fields with
42384	// empty or default values are omitted from API requests. However, any
42385	// non-pointer, non-interface field appearing in ForceSendFields will be
42386	// sent to the server regardless of whether the field is empty or not.
42387	// This may be used to include empty fields in Patch requests.
42388	ForceSendFields []string `json:"-"`
42389
42390	// NullFields is a list of field names (e.g. "Key") to include in API
42391	// requests with the JSON null value. By default, fields with empty
42392	// values are omitted from API requests. However, any field with an
42393	// empty value appearing in NullFields will be sent to the server as
42394	// null. It is an error if a field in this list has a non-empty value.
42395	// This may be used to include null fields in Patch requests.
42396	NullFields []string `json:"-"`
42397}
42398
42399func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42400	type NoMethod SubnetworkAggregatedListWarningData
42401	raw := NoMethod(*s)
42402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42403}
42404
42405// SubnetworkList: Contains a list of Subnetwork resources.
42406type SubnetworkList struct {
42407	// Id: [Output Only] Unique identifier for the resource; defined by the
42408	// server.
42409	Id string `json:"id,omitempty"`
42410
42411	// Items: A list of Subnetwork resources.
42412	Items []*Subnetwork `json:"items,omitempty"`
42413
42414	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
42415	// for lists of subnetworks.
42416	Kind string `json:"kind,omitempty"`
42417
42418	// NextPageToken: [Output Only] This token allows you to get the next
42419	// page of results for list requests. If the number of results is larger
42420	// than maxResults, use the nextPageToken as a value for the query
42421	// parameter pageToken in the next list request. Subsequent list
42422	// requests will have their own nextPageToken to continue paging through
42423	// the results.
42424	NextPageToken string `json:"nextPageToken,omitempty"`
42425
42426	// SelfLink: [Output Only] Server-defined URL for this resource.
42427	SelfLink string `json:"selfLink,omitempty"`
42428
42429	// Warning: [Output Only] Informational warning message.
42430	Warning *SubnetworkListWarning `json:"warning,omitempty"`
42431
42432	// ServerResponse contains the HTTP response code and headers from the
42433	// server.
42434	googleapi.ServerResponse `json:"-"`
42435
42436	// ForceSendFields is a list of field names (e.g. "Id") to
42437	// unconditionally include in API requests. By default, fields with
42438	// empty or default values are omitted from API requests. However, any
42439	// non-pointer, non-interface field appearing in ForceSendFields will be
42440	// sent to the server regardless of whether the field is empty or not.
42441	// This may be used to include empty fields in Patch requests.
42442	ForceSendFields []string `json:"-"`
42443
42444	// NullFields is a list of field names (e.g. "Id") to include in API
42445	// requests with the JSON null value. By default, fields with empty
42446	// values are omitted from API requests. However, any field with an
42447	// empty value appearing in NullFields will be sent to the server as
42448	// null. It is an error if a field in this list has a non-empty value.
42449	// This may be used to include null fields in Patch requests.
42450	NullFields []string `json:"-"`
42451}
42452
42453func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
42454	type NoMethod SubnetworkList
42455	raw := NoMethod(*s)
42456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42457}
42458
42459// SubnetworkListWarning: [Output Only] Informational warning message.
42460type SubnetworkListWarning struct {
42461	// Code: [Output Only] A warning code, if applicable. For example,
42462	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42463	// the response.
42464	//
42465	// Possible values:
42466	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42467	// changes made by a failed operation.
42468	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42469	// created.
42470	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42471	// resources has a type marked as deprecated
42472	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42473	// that is larger than image size.
42474	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42475	// resources has a type marked as experimental
42476	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42477	// call
42478	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42479	// overridden. Deprecated unused field.
42480	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42481	// injected kernel, which is deprecated.
42482	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42483	// exceedingly large number of resources
42484	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42485	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42486	// not assigned to an instance on the network.
42487	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42488	// ip forward.
42489	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42490	// refers to an instance that does not exist.
42491	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42492	// URL refers to an instance that is not on the same network as the
42493	// route.
42494	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42495	// have a status of RUNNING.
42496	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42497	// continue the process despite the mentioned error.
42498	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42499	// page.
42500	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42501	// missing due to errors
42502	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42503	// that requires a TOS they have not accepted.
42504	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42505	// resource is in use.
42506	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42507	// auto-delete could not be deleted because they were in use.
42508	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42509	// ignored.
42510	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42511	// instance group manager is valid as such, but its application does not
42512	// make a lot of sense, because it allows only single instance in
42513	// instance group.
42514	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42515	// are present
42516	//   "UNREACHABLE" - A given scope cannot be reached.
42517	Code string `json:"code,omitempty"`
42518
42519	// Data: [Output Only] Metadata about this warning in key: value format.
42520	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42521	// }
42522	Data []*SubnetworkListWarningData `json:"data,omitempty"`
42523
42524	// Message: [Output Only] A human-readable description of the warning
42525	// code.
42526	Message string `json:"message,omitempty"`
42527
42528	// ForceSendFields is a list of field names (e.g. "Code") to
42529	// unconditionally include in API requests. By default, fields with
42530	// empty or default values are omitted from API requests. However, any
42531	// non-pointer, non-interface field appearing in ForceSendFields will be
42532	// sent to the server regardless of whether the field is empty or not.
42533	// This may be used to include empty fields in Patch requests.
42534	ForceSendFields []string `json:"-"`
42535
42536	// NullFields is a list of field names (e.g. "Code") to include in API
42537	// requests with the JSON null value. By default, fields with empty
42538	// values are omitted from API requests. However, any field with an
42539	// empty value appearing in NullFields will be sent to the server as
42540	// null. It is an error if a field in this list has a non-empty value.
42541	// This may be used to include null fields in Patch requests.
42542	NullFields []string `json:"-"`
42543}
42544
42545func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
42546	type NoMethod SubnetworkListWarning
42547	raw := NoMethod(*s)
42548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42549}
42550
42551type SubnetworkListWarningData struct {
42552	// Key: [Output Only] A key that provides more detail on the warning
42553	// being returned. For example, for warnings where there are no results
42554	// in a list request for a particular zone, this key might be scope and
42555	// the key value might be the zone name. Other examples might be a key
42556	// indicating a deprecated resource and a suggested replacement, or a
42557	// warning about invalid network settings (for example, if an instance
42558	// attempts to perform IP forwarding but is not enabled for IP
42559	// forwarding).
42560	Key string `json:"key,omitempty"`
42561
42562	// Value: [Output Only] A warning data value corresponding to the key.
42563	Value string `json:"value,omitempty"`
42564
42565	// ForceSendFields is a list of field names (e.g. "Key") to
42566	// unconditionally include in API requests. By default, fields with
42567	// empty or default values are omitted from API requests. However, any
42568	// non-pointer, non-interface field appearing in ForceSendFields will be
42569	// sent to the server regardless of whether the field is empty or not.
42570	// This may be used to include empty fields in Patch requests.
42571	ForceSendFields []string `json:"-"`
42572
42573	// NullFields is a list of field names (e.g. "Key") to include in API
42574	// requests with the JSON null value. By default, fields with empty
42575	// values are omitted from API requests. However, any field with an
42576	// empty value appearing in NullFields will be sent to the server as
42577	// null. It is an error if a field in this list has a non-empty value.
42578	// This may be used to include null fields in Patch requests.
42579	NullFields []string `json:"-"`
42580}
42581
42582func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
42583	type NoMethod SubnetworkListWarningData
42584	raw := NoMethod(*s)
42585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42586}
42587
42588// SubnetworkLogConfig: The available logging options for this
42589// subnetwork.
42590type SubnetworkLogConfig struct {
42591	// AggregationInterval: Can only be specified if VPC flow logging for
42592	// this subnetwork is enabled. Toggles the aggregation interval for
42593	// collecting flow logs. Increasing the interval time will reduce the
42594	// amount of generated flow logs for long lasting connections. Default
42595	// is an interval of 5 seconds per connection.
42596	//
42597	// Possible values:
42598	//   "INTERVAL_10_MIN"
42599	//   "INTERVAL_15_MIN"
42600	//   "INTERVAL_1_MIN"
42601	//   "INTERVAL_30_SEC"
42602	//   "INTERVAL_5_MIN"
42603	//   "INTERVAL_5_SEC"
42604	AggregationInterval string `json:"aggregationInterval,omitempty"`
42605
42606	// Enable: Whether to enable flow logging for this subnetwork. If this
42607	// field is not explicitly set, it will not appear in get listings. If
42608	// not set the default behavior is to disable flow logging.
42609	Enable bool `json:"enable,omitempty"`
42610
42611	// FilterExpr: Can only be specified if VPC flow logs for this
42612	// subnetwork is enabled. Export filter used to define which VPC flow
42613	// logs should be logged.
42614	FilterExpr string `json:"filterExpr,omitempty"`
42615
42616	// FlowSampling: Can only be specified if VPC flow logging for this
42617	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
42618	// the sampling rate of VPC flow logs within the subnetwork where 1.0
42619	// means all collected logs are reported and 0.0 means no logs are
42620	// reported. Default is 0.5, which means half of all collected logs are
42621	// reported.
42622	FlowSampling float64 `json:"flowSampling,omitempty"`
42623
42624	// Metadata: Can only be specified if VPC flow logs for this subnetwork
42625	// is enabled. Configures whether all, none or a subset of metadata
42626	// fields should be added to the reported VPC flow logs. Default is
42627	// EXCLUDE_ALL_METADATA.
42628	//
42629	// Possible values:
42630	//   "CUSTOM_METADATA"
42631	//   "EXCLUDE_ALL_METADATA"
42632	//   "INCLUDE_ALL_METADATA"
42633	Metadata string `json:"metadata,omitempty"`
42634
42635	// MetadataFields: Can only be specified if VPC flow logs for this
42636	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
42637	MetadataFields []string `json:"metadataFields,omitempty"`
42638
42639	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
42640	// to unconditionally include in API requests. By default, fields with
42641	// empty or default values are omitted from API requests. However, any
42642	// non-pointer, non-interface field appearing in ForceSendFields will be
42643	// sent to the server regardless of whether the field is empty or not.
42644	// This may be used to include empty fields in Patch requests.
42645	ForceSendFields []string `json:"-"`
42646
42647	// NullFields is a list of field names (e.g. "AggregationInterval") to
42648	// include in API requests with the JSON null value. By default, fields
42649	// with empty values are omitted from API requests. However, any field
42650	// with an empty value appearing in NullFields will be sent to the
42651	// server as null. It is an error if a field in this list has a
42652	// non-empty value. This may be used to include null fields in Patch
42653	// requests.
42654	NullFields []string `json:"-"`
42655}
42656
42657func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
42658	type NoMethod SubnetworkLogConfig
42659	raw := NoMethod(*s)
42660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42661}
42662
42663func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
42664	type NoMethod SubnetworkLogConfig
42665	var s1 struct {
42666		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
42667		*NoMethod
42668	}
42669	s1.NoMethod = (*NoMethod)(s)
42670	if err := json.Unmarshal(data, &s1); err != nil {
42671		return err
42672	}
42673	s.FlowSampling = float64(s1.FlowSampling)
42674	return nil
42675}
42676
42677// SubnetworkSecondaryRange: Represents a secondary IP range of a
42678// subnetwork.
42679type SubnetworkSecondaryRange struct {
42680	// IpCidrRange: The range of IP addresses belonging to this subnetwork
42681	// secondary range. Provide this property when you create the
42682	// subnetwork. Ranges must be unique and non-overlapping with all
42683	// primary and secondary IP ranges within a network. Only IPv4 is
42684	// supported. The range can be any range listed in the Valid ranges
42685	// list.
42686	IpCidrRange string `json:"ipCidrRange,omitempty"`
42687
42688	// RangeName: The name associated with this subnetwork secondary range,
42689	// used when adding an alias IP range to a VM instance. The name must be
42690	// 1-63 characters long, and comply with RFC1035. The name must be
42691	// unique within the subnetwork.
42692	RangeName string `json:"rangeName,omitempty"`
42693
42694	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42695	// unconditionally include in API requests. By default, fields with
42696	// empty or default values are omitted from API requests. However, any
42697	// non-pointer, non-interface field appearing in ForceSendFields will be
42698	// sent to the server regardless of whether the field is empty or not.
42699	// This may be used to include empty fields in Patch requests.
42700	ForceSendFields []string `json:"-"`
42701
42702	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42703	// in API requests with the JSON null value. By default, fields with
42704	// empty values are omitted from API requests. However, any field with
42705	// an empty value appearing in NullFields will be sent to the server as
42706	// null. It is an error if a field in this list has a non-empty value.
42707	// This may be used to include null fields in Patch requests.
42708	NullFields []string `json:"-"`
42709}
42710
42711func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
42712	type NoMethod SubnetworkSecondaryRange
42713	raw := NoMethod(*s)
42714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42715}
42716
42717type SubnetworksExpandIpCidrRangeRequest struct {
42718	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
42719	// that are legal on this Subnetwork. This range should be disjoint from
42720	// other subnetworks within this network. This range can only be larger
42721	// than (i.e. a superset of) the range previously defined before the
42722	// update.
42723	IpCidrRange string `json:"ipCidrRange,omitempty"`
42724
42725	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42726	// unconditionally include in API requests. By default, fields with
42727	// empty or default values are omitted from API requests. However, any
42728	// non-pointer, non-interface field appearing in ForceSendFields will be
42729	// sent to the server regardless of whether the field is empty or not.
42730	// This may be used to include empty fields in Patch requests.
42731	ForceSendFields []string `json:"-"`
42732
42733	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42734	// in API requests with the JSON null value. By default, fields with
42735	// empty values are omitted from API requests. However, any field with
42736	// an empty value appearing in NullFields will be sent to the server as
42737	// null. It is an error if a field in this list has a non-empty value.
42738	// This may be used to include null fields in Patch requests.
42739	NullFields []string `json:"-"`
42740}
42741
42742func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
42743	type NoMethod SubnetworksExpandIpCidrRangeRequest
42744	raw := NoMethod(*s)
42745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42746}
42747
42748type SubnetworksScopedList struct {
42749	// Subnetworks: A list of subnetworks contained in this scope.
42750	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
42751
42752	// Warning: An informational warning that appears when the list of
42753	// addresses is empty.
42754	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
42755
42756	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
42757	// unconditionally include in API requests. By default, fields with
42758	// empty or default values are omitted from API requests. However, any
42759	// non-pointer, non-interface field appearing in ForceSendFields will be
42760	// sent to the server regardless of whether the field is empty or not.
42761	// This may be used to include empty fields in Patch requests.
42762	ForceSendFields []string `json:"-"`
42763
42764	// NullFields is a list of field names (e.g. "Subnetworks") to include
42765	// in API requests with the JSON null value. By default, fields with
42766	// empty values are omitted from API requests. However, any field with
42767	// an empty value appearing in NullFields will be sent to the server as
42768	// null. It is an error if a field in this list has a non-empty value.
42769	// This may be used to include null fields in Patch requests.
42770	NullFields []string `json:"-"`
42771}
42772
42773func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
42774	type NoMethod SubnetworksScopedList
42775	raw := NoMethod(*s)
42776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42777}
42778
42779// SubnetworksScopedListWarning: An informational warning that appears
42780// when the list of addresses is empty.
42781type SubnetworksScopedListWarning struct {
42782	// Code: [Output Only] A warning code, if applicable. For example,
42783	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42784	// the response.
42785	//
42786	// Possible values:
42787	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42788	// changes made by a failed operation.
42789	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42790	// created.
42791	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42792	// resources has a type marked as deprecated
42793	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42794	// that is larger than image size.
42795	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42796	// resources has a type marked as experimental
42797	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42798	// call
42799	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42800	// overridden. Deprecated unused field.
42801	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42802	// injected kernel, which is deprecated.
42803	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42804	// exceedingly large number of resources
42805	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42806	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42807	// not assigned to an instance on the network.
42808	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42809	// ip forward.
42810	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42811	// refers to an instance that does not exist.
42812	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42813	// URL refers to an instance that is not on the same network as the
42814	// route.
42815	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42816	// have a status of RUNNING.
42817	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42818	// continue the process despite the mentioned error.
42819	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42820	// page.
42821	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42822	// missing due to errors
42823	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42824	// that requires a TOS they have not accepted.
42825	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42826	// resource is in use.
42827	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42828	// auto-delete could not be deleted because they were in use.
42829	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42830	// ignored.
42831	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42832	// instance group manager is valid as such, but its application does not
42833	// make a lot of sense, because it allows only single instance in
42834	// instance group.
42835	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42836	// are present
42837	//   "UNREACHABLE" - A given scope cannot be reached.
42838	Code string `json:"code,omitempty"`
42839
42840	// Data: [Output Only] Metadata about this warning in key: value format.
42841	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42842	// }
42843	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
42844
42845	// Message: [Output Only] A human-readable description of the warning
42846	// code.
42847	Message string `json:"message,omitempty"`
42848
42849	// ForceSendFields is a list of field names (e.g. "Code") to
42850	// unconditionally include in API requests. By default, fields with
42851	// empty or default values are omitted from API requests. However, any
42852	// non-pointer, non-interface field appearing in ForceSendFields will be
42853	// sent to the server regardless of whether the field is empty or not.
42854	// This may be used to include empty fields in Patch requests.
42855	ForceSendFields []string `json:"-"`
42856
42857	// NullFields is a list of field names (e.g. "Code") to include in API
42858	// requests with the JSON null value. By default, fields with empty
42859	// values are omitted from API requests. However, any field with an
42860	// empty value appearing in NullFields will be sent to the server as
42861	// null. It is an error if a field in this list has a non-empty value.
42862	// This may be used to include null fields in Patch requests.
42863	NullFields []string `json:"-"`
42864}
42865
42866func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
42867	type NoMethod SubnetworksScopedListWarning
42868	raw := NoMethod(*s)
42869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42870}
42871
42872type SubnetworksScopedListWarningData struct {
42873	// Key: [Output Only] A key that provides more detail on the warning
42874	// being returned. For example, for warnings where there are no results
42875	// in a list request for a particular zone, this key might be scope and
42876	// the key value might be the zone name. Other examples might be a key
42877	// indicating a deprecated resource and a suggested replacement, or a
42878	// warning about invalid network settings (for example, if an instance
42879	// attempts to perform IP forwarding but is not enabled for IP
42880	// forwarding).
42881	Key string `json:"key,omitempty"`
42882
42883	// Value: [Output Only] A warning data value corresponding to the key.
42884	Value string `json:"value,omitempty"`
42885
42886	// ForceSendFields is a list of field names (e.g. "Key") to
42887	// unconditionally include in API requests. By default, fields with
42888	// empty or default values are omitted from API requests. However, any
42889	// non-pointer, non-interface field appearing in ForceSendFields will be
42890	// sent to the server regardless of whether the field is empty or not.
42891	// This may be used to include empty fields in Patch requests.
42892	ForceSendFields []string `json:"-"`
42893
42894	// NullFields is a list of field names (e.g. "Key") to include in API
42895	// requests with the JSON null value. By default, fields with empty
42896	// values are omitted from API requests. However, any field with an
42897	// empty value appearing in NullFields will be sent to the server as
42898	// null. It is an error if a field in this list has a non-empty value.
42899	// This may be used to include null fields in Patch requests.
42900	NullFields []string `json:"-"`
42901}
42902
42903func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
42904	type NoMethod SubnetworksScopedListWarningData
42905	raw := NoMethod(*s)
42906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42907}
42908
42909type SubnetworksSetPrivateIpGoogleAccessRequest struct {
42910	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
42911
42912	// ForceSendFields is a list of field names (e.g.
42913	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
42914	// By default, fields with empty or default values are omitted from API
42915	// requests. However, any non-pointer, non-interface field appearing in
42916	// ForceSendFields will be sent to the server regardless of whether the
42917	// field is empty or not. This may be used to include empty fields in
42918	// Patch requests.
42919	ForceSendFields []string `json:"-"`
42920
42921	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
42922	// include in API requests with the JSON null value. By default, fields
42923	// with empty values are omitted from API requests. However, any field
42924	// with an empty value appearing in NullFields will be sent to the
42925	// server as null. It is an error if a field in this list has a
42926	// non-empty value. This may be used to include null fields in Patch
42927	// requests.
42928	NullFields []string `json:"-"`
42929}
42930
42931func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
42932	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
42933	raw := NoMethod(*s)
42934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42935}
42936
42937type TCPHealthCheck struct {
42938	// Port: The TCP port number for the health check request. The default
42939	// value is 80. Valid values are 1 through 65535.
42940	Port int64 `json:"port,omitempty"`
42941
42942	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
42943	// both port and port_name are defined, port takes precedence.
42944	PortName string `json:"portName,omitempty"`
42945
42946	// PortSpecification: Specifies how port is selected for health
42947	// checking, can be one of following values: USE_FIXED_PORT: The port
42948	// number in port is used for health checking. USE_NAMED_PORT: The
42949	// portName is used for health checking. USE_SERVING_PORT: For
42950	// NetworkEndpointGroup, the port specified for each network endpoint is
42951	// used for health checking. For other backends, the port or named port
42952	// specified in the Backend Service is used for health checking. If not
42953	// specified, TCP health check follows behavior specified in port and
42954	// portName fields.
42955	//
42956	// Possible values:
42957	//   "USE_FIXED_PORT" - The port number in port is used for health
42958	// checking.
42959	//   "USE_NAMED_PORT" - The portName is used for health checking.
42960	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
42961	// for each network endpoint is used for health checking. For other
42962	// backends, the port or named port specified in the Backend Service is
42963	// used for health checking.
42964	PortSpecification string `json:"portSpecification,omitempty"`
42965
42966	// ProxyHeader: Specifies the type of proxy header to append before
42967	// sending data to the backend, either NONE or PROXY_V1. The default is
42968	// NONE.
42969	//
42970	// Possible values:
42971	//   "NONE"
42972	//   "PROXY_V1"
42973	ProxyHeader string `json:"proxyHeader,omitempty"`
42974
42975	// Request: The application data to send once the TCP connection has
42976	// been established (default value is empty). If both request and
42977	// response are empty, the connection establishment alone will indicate
42978	// health. The request data can only be ASCII.
42979	Request string `json:"request,omitempty"`
42980
42981	// Response: The bytes to match against the beginning of the response
42982	// data. If left empty (the default value), any response will indicate
42983	// health. The response data can only be ASCII.
42984	Response string `json:"response,omitempty"`
42985
42986	// ForceSendFields is a list of field names (e.g. "Port") to
42987	// unconditionally include in API requests. By default, fields with
42988	// empty or default values are omitted from API requests. However, any
42989	// non-pointer, non-interface field appearing in ForceSendFields will be
42990	// sent to the server regardless of whether the field is empty or not.
42991	// This may be used to include empty fields in Patch requests.
42992	ForceSendFields []string `json:"-"`
42993
42994	// NullFields is a list of field names (e.g. "Port") to include in API
42995	// requests with the JSON null value. By default, fields with empty
42996	// values are omitted from API requests. However, any field with an
42997	// empty value appearing in NullFields will be sent to the server as
42998	// null. It is an error if a field in this list has a non-empty value.
42999	// This may be used to include null fields in Patch requests.
43000	NullFields []string `json:"-"`
43001}
43002
43003func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
43004	type NoMethod TCPHealthCheck
43005	raw := NoMethod(*s)
43006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43007}
43008
43009// Tags: A set of instance tags.
43010type Tags struct {
43011	// Fingerprint: Specifies a fingerprint for this request, which is
43012	// essentially a hash of the tags' contents and used for optimistic
43013	// locking. The fingerprint is initially generated by Compute Engine and
43014	// changes after every request to modify or update tags. You must always
43015	// provide an up-to-date fingerprint hash in order to update or change
43016	// tags. To see the latest fingerprint, make get() request to the
43017	// instance.
43018	Fingerprint string `json:"fingerprint,omitempty"`
43019
43020	// Items: An array of tags. Each tag must be 1-63 characters long, and
43021	// comply with RFC1035.
43022	Items []string `json:"items,omitempty"`
43023
43024	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
43025	// unconditionally include in API requests. By default, fields with
43026	// empty or default values are omitted from API requests. However, any
43027	// non-pointer, non-interface field appearing in ForceSendFields will be
43028	// sent to the server regardless of whether the field is empty or not.
43029	// This may be used to include empty fields in Patch requests.
43030	ForceSendFields []string `json:"-"`
43031
43032	// NullFields is a list of field names (e.g. "Fingerprint") to include
43033	// in API requests with the JSON null value. By default, fields with
43034	// empty values are omitted from API requests. However, any field with
43035	// an empty value appearing in NullFields will be sent to the server as
43036	// null. It is an error if a field in this list has a non-empty value.
43037	// This may be used to include null fields in Patch requests.
43038	NullFields []string `json:"-"`
43039}
43040
43041func (s *Tags) MarshalJSON() ([]byte, error) {
43042	type NoMethod Tags
43043	raw := NoMethod(*s)
43044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43045}
43046
43047// TargetGrpcProxy: Represents a Target gRPC Proxy resource. A target
43048// gRPC proxy is a component of load balancers intended for load
43049// balancing gRPC traffic. Only global forwarding rules with load
43050// balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC
43051// proxy. The target gRPC Proxy references a URL map that specifies how
43052// traffic is routed to gRPC backend services.
43053type TargetGrpcProxy struct {
43054	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43055	// format.
43056	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43057
43058	// Description: An optional description of this resource. Provide this
43059	// property when you create the resource.
43060	Description string `json:"description,omitempty"`
43061
43062	// Fingerprint: Fingerprint of this resource. A hash of the contents
43063	// stored in this object. This field is used in optimistic locking. This
43064	// field will be ignored when inserting a TargetGrpcProxy. An up-to-date
43065	// fingerprint must be provided in order to patch/update the
43066	// TargetGrpcProxy; otherwise, the request will fail with error 412
43067	// conditionNotMet. To see the latest fingerprint, make a get() request
43068	// to retrieve the TargetGrpcProxy.
43069	Fingerprint string `json:"fingerprint,omitempty"`
43070
43071	// Id: [Output Only] The unique identifier for the resource type. The
43072	// server generates this identifier.
43073	Id uint64 `json:"id,omitempty,string"`
43074
43075	// Kind: [Output Only] Type of the resource. Always
43076	// compute#targetGrpcProxy for target grpc proxies.
43077	Kind string `json:"kind,omitempty"`
43078
43079	// Name: Name of the resource. Provided by the client when the resource
43080	// is created. The name must be 1-63 characters long, and comply with
43081	// RFC1035. Specifically, the name must be 1-63 characters long and
43082	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43083	// the first character must be a lowercase letter, and all following
43084	// characters must be a dash, lowercase letter, or digit, except the
43085	// last character, which cannot be a dash.
43086	Name string `json:"name,omitempty"`
43087
43088	// SelfLink: [Output Only] Server-defined URL for the resource.
43089	SelfLink string `json:"selfLink,omitempty"`
43090
43091	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
43092	// resource.
43093	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
43094
43095	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
43096	// to the BackendService. The protocol field in the BackendService must
43097	// be set to GRPC.
43098	UrlMap string `json:"urlMap,omitempty"`
43099
43100	// ValidateForProxyless: If true, indicates that the BackendServices
43101	// referenced by the urlMap may be accessed by gRPC applications without
43102	// using a sidecar proxy. This will enable configuration checks on
43103	// urlMap and its referenced BackendServices to not allow unsupported
43104	// features. A gRPC application must use "xds:///" scheme in the target
43105	// URI of the service it is connecting to. If false, indicates that the
43106	// BackendServices referenced by the urlMap will be accessed by gRPC
43107	// applications via a sidecar proxy. In this case, a gRPC application
43108	// must not use "xds:///" scheme in the target URI of the service it is
43109	// connecting to
43110	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
43111
43112	// ServerResponse contains the HTTP response code and headers from the
43113	// server.
43114	googleapi.ServerResponse `json:"-"`
43115
43116	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43117	// to unconditionally include in API requests. By default, fields with
43118	// empty or default values are omitted from API requests. However, any
43119	// non-pointer, non-interface field appearing in ForceSendFields will be
43120	// sent to the server regardless of whether the field is empty or not.
43121	// This may be used to include empty fields in Patch requests.
43122	ForceSendFields []string `json:"-"`
43123
43124	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43125	// include in API requests with the JSON null value. By default, fields
43126	// with empty values are omitted from API requests. However, any field
43127	// with an empty value appearing in NullFields will be sent to the
43128	// server as null. It is an error if a field in this list has a
43129	// non-empty value. This may be used to include null fields in Patch
43130	// requests.
43131	NullFields []string `json:"-"`
43132}
43133
43134func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
43135	type NoMethod TargetGrpcProxy
43136	raw := NoMethod(*s)
43137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43138}
43139
43140type TargetGrpcProxyList struct {
43141	// Id: [Output Only] Unique identifier for the resource; defined by the
43142	// server.
43143	Id string `json:"id,omitempty"`
43144
43145	// Items: A list of TargetGrpcProxy resources.
43146	Items []*TargetGrpcProxy `json:"items,omitempty"`
43147
43148	// Kind: [Output Only] Type of the resource. Always
43149	// compute#targetGrpcProxy for target grpc proxies.
43150	Kind string `json:"kind,omitempty"`
43151
43152	// NextPageToken: [Output Only] This token allows you to get the next
43153	// page of results for list requests. If the number of results is larger
43154	// than maxResults, use the nextPageToken as a value for the query
43155	// parameter pageToken in the next list request. Subsequent list
43156	// requests will have their own nextPageToken to continue paging through
43157	// the results.
43158	NextPageToken string `json:"nextPageToken,omitempty"`
43159
43160	// SelfLink: [Output Only] Server-defined URL for this resource.
43161	SelfLink string `json:"selfLink,omitempty"`
43162
43163	// Warning: [Output Only] Informational warning message.
43164	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
43165
43166	// ServerResponse contains the HTTP response code and headers from the
43167	// server.
43168	googleapi.ServerResponse `json:"-"`
43169
43170	// ForceSendFields is a list of field names (e.g. "Id") to
43171	// unconditionally include in API requests. By default, fields with
43172	// empty or default values are omitted from API requests. However, any
43173	// non-pointer, non-interface field appearing in ForceSendFields will be
43174	// sent to the server regardless of whether the field is empty or not.
43175	// This may be used to include empty fields in Patch requests.
43176	ForceSendFields []string `json:"-"`
43177
43178	// NullFields is a list of field names (e.g. "Id") to include in API
43179	// requests with the JSON null value. By default, fields with empty
43180	// values are omitted from API requests. However, any field with an
43181	// empty value appearing in NullFields will be sent to the server as
43182	// null. It is an error if a field in this list has a non-empty value.
43183	// This may be used to include null fields in Patch requests.
43184	NullFields []string `json:"-"`
43185}
43186
43187func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
43188	type NoMethod TargetGrpcProxyList
43189	raw := NoMethod(*s)
43190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43191}
43192
43193// TargetGrpcProxyListWarning: [Output Only] Informational warning
43194// message.
43195type TargetGrpcProxyListWarning struct {
43196	// Code: [Output Only] A warning code, if applicable. For example,
43197	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43198	// the response.
43199	//
43200	// Possible values:
43201	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43202	// changes made by a failed operation.
43203	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43204	// created.
43205	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43206	// resources has a type marked as deprecated
43207	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43208	// that is larger than image size.
43209	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43210	// resources has a type marked as experimental
43211	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43212	// call
43213	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43214	// overridden. Deprecated unused field.
43215	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43216	// injected kernel, which is deprecated.
43217	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43218	// exceedingly large number of resources
43219	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43220	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43221	// not assigned to an instance on the network.
43222	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43223	// ip forward.
43224	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43225	// refers to an instance that does not exist.
43226	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43227	// URL refers to an instance that is not on the same network as the
43228	// route.
43229	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43230	// have a status of RUNNING.
43231	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43232	// continue the process despite the mentioned error.
43233	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43234	// page.
43235	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43236	// missing due to errors
43237	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43238	// that requires a TOS they have not accepted.
43239	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43240	// resource is in use.
43241	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43242	// auto-delete could not be deleted because they were in use.
43243	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43244	// ignored.
43245	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43246	// instance group manager is valid as such, but its application does not
43247	// make a lot of sense, because it allows only single instance in
43248	// instance group.
43249	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43250	// are present
43251	//   "UNREACHABLE" - A given scope cannot be reached.
43252	Code string `json:"code,omitempty"`
43253
43254	// Data: [Output Only] Metadata about this warning in key: value format.
43255	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43256	// }
43257	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
43258
43259	// Message: [Output Only] A human-readable description of the warning
43260	// code.
43261	Message string `json:"message,omitempty"`
43262
43263	// ForceSendFields is a list of field names (e.g. "Code") to
43264	// unconditionally include in API requests. By default, fields with
43265	// empty or default values are omitted from API requests. However, any
43266	// non-pointer, non-interface field appearing in ForceSendFields will be
43267	// sent to the server regardless of whether the field is empty or not.
43268	// This may be used to include empty fields in Patch requests.
43269	ForceSendFields []string `json:"-"`
43270
43271	// NullFields is a list of field names (e.g. "Code") to include in API
43272	// requests with the JSON null value. By default, fields with empty
43273	// values are omitted from API requests. However, any field with an
43274	// empty value appearing in NullFields will be sent to the server as
43275	// null. It is an error if a field in this list has a non-empty value.
43276	// This may be used to include null fields in Patch requests.
43277	NullFields []string `json:"-"`
43278}
43279
43280func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
43281	type NoMethod TargetGrpcProxyListWarning
43282	raw := NoMethod(*s)
43283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43284}
43285
43286type TargetGrpcProxyListWarningData struct {
43287	// Key: [Output Only] A key that provides more detail on the warning
43288	// being returned. For example, for warnings where there are no results
43289	// in a list request for a particular zone, this key might be scope and
43290	// the key value might be the zone name. Other examples might be a key
43291	// indicating a deprecated resource and a suggested replacement, or a
43292	// warning about invalid network settings (for example, if an instance
43293	// attempts to perform IP forwarding but is not enabled for IP
43294	// forwarding).
43295	Key string `json:"key,omitempty"`
43296
43297	// Value: [Output Only] A warning data value corresponding to the key.
43298	Value string `json:"value,omitempty"`
43299
43300	// ForceSendFields is a list of field names (e.g. "Key") to
43301	// unconditionally include in API requests. By default, fields with
43302	// empty or default values are omitted from API requests. However, any
43303	// non-pointer, non-interface field appearing in ForceSendFields will be
43304	// sent to the server regardless of whether the field is empty or not.
43305	// This may be used to include empty fields in Patch requests.
43306	ForceSendFields []string `json:"-"`
43307
43308	// NullFields is a list of field names (e.g. "Key") to include in API
43309	// requests with the JSON null value. By default, fields with empty
43310	// values are omitted from API requests. However, any field with an
43311	// empty value appearing in NullFields will be sent to the server as
43312	// null. It is an error if a field in this list has a non-empty value.
43313	// This may be used to include null fields in Patch requests.
43314	NullFields []string `json:"-"`
43315}
43316
43317func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
43318	type NoMethod TargetGrpcProxyListWarningData
43319	raw := NoMethod(*s)
43320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43321}
43322
43323type TargetHttpProxiesScopedList struct {
43324	// TargetHttpProxies: A list of TargetHttpProxies contained in this
43325	// scope.
43326	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
43327
43328	// Warning: Informational warning which replaces the list of backend
43329	// services when the list is empty.
43330	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
43331
43332	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
43333	// to unconditionally include in API requests. By default, fields with
43334	// empty or default values are omitted from API requests. However, any
43335	// non-pointer, non-interface field appearing in ForceSendFields will be
43336	// sent to the server regardless of whether the field is empty or not.
43337	// This may be used to include empty fields in Patch requests.
43338	ForceSendFields []string `json:"-"`
43339
43340	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
43341	// include in API requests with the JSON null value. By default, fields
43342	// with empty values are omitted from API requests. However, any field
43343	// with an empty value appearing in NullFields will be sent to the
43344	// server as null. It is an error if a field in this list has a
43345	// non-empty value. This may be used to include null fields in Patch
43346	// requests.
43347	NullFields []string `json:"-"`
43348}
43349
43350func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
43351	type NoMethod TargetHttpProxiesScopedList
43352	raw := NoMethod(*s)
43353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43354}
43355
43356// TargetHttpProxiesScopedListWarning: Informational warning which
43357// replaces the list of backend services when the list is empty.
43358type TargetHttpProxiesScopedListWarning struct {
43359	// Code: [Output Only] A warning code, if applicable. For example,
43360	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43361	// the response.
43362	//
43363	// Possible values:
43364	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43365	// changes made by a failed operation.
43366	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43367	// created.
43368	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43369	// resources has a type marked as deprecated
43370	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43371	// that is larger than image size.
43372	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43373	// resources has a type marked as experimental
43374	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43375	// call
43376	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43377	// overridden. Deprecated unused field.
43378	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43379	// injected kernel, which is deprecated.
43380	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43381	// exceedingly large number of resources
43382	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43383	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43384	// not assigned to an instance on the network.
43385	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43386	// ip forward.
43387	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43388	// refers to an instance that does not exist.
43389	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43390	// URL refers to an instance that is not on the same network as the
43391	// route.
43392	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43393	// have a status of RUNNING.
43394	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43395	// continue the process despite the mentioned error.
43396	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43397	// page.
43398	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43399	// missing due to errors
43400	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43401	// that requires a TOS they have not accepted.
43402	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43403	// resource is in use.
43404	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43405	// auto-delete could not be deleted because they were in use.
43406	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43407	// ignored.
43408	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43409	// instance group manager is valid as such, but its application does not
43410	// make a lot of sense, because it allows only single instance in
43411	// instance group.
43412	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43413	// are present
43414	//   "UNREACHABLE" - A given scope cannot be reached.
43415	Code string `json:"code,omitempty"`
43416
43417	// Data: [Output Only] Metadata about this warning in key: value format.
43418	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43419	// }
43420	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
43421
43422	// Message: [Output Only] A human-readable description of the warning
43423	// code.
43424	Message string `json:"message,omitempty"`
43425
43426	// ForceSendFields is a list of field names (e.g. "Code") to
43427	// unconditionally include in API requests. By default, fields with
43428	// empty or default values are omitted from API requests. However, any
43429	// non-pointer, non-interface field appearing in ForceSendFields will be
43430	// sent to the server regardless of whether the field is empty or not.
43431	// This may be used to include empty fields in Patch requests.
43432	ForceSendFields []string `json:"-"`
43433
43434	// NullFields is a list of field names (e.g. "Code") to include in API
43435	// requests with the JSON null value. By default, fields with empty
43436	// values are omitted from API requests. However, any field with an
43437	// empty value appearing in NullFields will be sent to the server as
43438	// null. It is an error if a field in this list has a non-empty value.
43439	// This may be used to include null fields in Patch requests.
43440	NullFields []string `json:"-"`
43441}
43442
43443func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43444	type NoMethod TargetHttpProxiesScopedListWarning
43445	raw := NoMethod(*s)
43446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43447}
43448
43449type TargetHttpProxiesScopedListWarningData struct {
43450	// Key: [Output Only] A key that provides more detail on the warning
43451	// being returned. For example, for warnings where there are no results
43452	// in a list request for a particular zone, this key might be scope and
43453	// the key value might be the zone name. Other examples might be a key
43454	// indicating a deprecated resource and a suggested replacement, or a
43455	// warning about invalid network settings (for example, if an instance
43456	// attempts to perform IP forwarding but is not enabled for IP
43457	// forwarding).
43458	Key string `json:"key,omitempty"`
43459
43460	// Value: [Output Only] A warning data value corresponding to the key.
43461	Value string `json:"value,omitempty"`
43462
43463	// ForceSendFields is a list of field names (e.g. "Key") to
43464	// unconditionally include in API requests. By default, fields with
43465	// empty or default values are omitted from API requests. However, any
43466	// non-pointer, non-interface field appearing in ForceSendFields will be
43467	// sent to the server regardless of whether the field is empty or not.
43468	// This may be used to include empty fields in Patch requests.
43469	ForceSendFields []string `json:"-"`
43470
43471	// NullFields is a list of field names (e.g. "Key") to include in API
43472	// requests with the JSON null value. By default, fields with empty
43473	// values are omitted from API requests. However, any field with an
43474	// empty value appearing in NullFields will be sent to the server as
43475	// null. It is an error if a field in this list has a non-empty value.
43476	// This may be used to include null fields in Patch requests.
43477	NullFields []string `json:"-"`
43478}
43479
43480func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43481	type NoMethod TargetHttpProxiesScopedListWarningData
43482	raw := NoMethod(*s)
43483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43484}
43485
43486// TargetHttpProxy: Represents a Target HTTP Proxy resource. Google
43487// Compute Engine has two Target HTTP Proxy resources: * Global
43488// (/compute/docs/reference/rest/v1/targetHttpProxies) * Regional
43489// (/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target
43490// HTTP proxy is a component of GCP HTTP load balancers. *
43491// targetHttpProxies are used by external HTTP load balancers and
43492// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
43493// load balancers. Forwarding rules reference a target HTTP proxy, and
43494// the target proxy then references a URL map. For more information,
43495// read Using Target Proxies and Forwarding rule concepts.
43496type TargetHttpProxy struct {
43497	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43498	// format.
43499	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43500
43501	// Description: An optional description of this resource. Provide this
43502	// property when you create the resource.
43503	Description string `json:"description,omitempty"`
43504
43505	// Fingerprint: Fingerprint of this resource. A hash of the contents
43506	// stored in this object. This field is used in optimistic locking. This
43507	// field will be ignored when inserting a TargetHttpProxy. An up-to-date
43508	// fingerprint must be provided in order to patch/update the
43509	// TargetHttpProxy; otherwise, the request will fail with error 412
43510	// conditionNotMet. To see the latest fingerprint, make a get() request
43511	// to retrieve the TargetHttpProxy.
43512	Fingerprint string `json:"fingerprint,omitempty"`
43513
43514	// Id: [Output Only] The unique identifier for the resource. This
43515	// identifier is defined by the server.
43516	Id uint64 `json:"id,omitempty,string"`
43517
43518	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
43519	// for target HTTP proxies.
43520	Kind string `json:"kind,omitempty"`
43521
43522	// Name: Name of the resource. Provided by the client when the resource
43523	// is created. The name must be 1-63 characters long, and comply with
43524	// RFC1035. Specifically, the name must be 1-63 characters long and
43525	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43526	// the first character must be a lowercase letter, and all following
43527	// characters must be a dash, lowercase letter, or digit, except the
43528	// last character, which cannot be a dash.
43529	Name string `json:"name,omitempty"`
43530
43531	// ProxyBind: This field only applies when the forwarding rule that
43532	// references this target proxy has a loadBalancingScheme set to
43533	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
43534	// set up inbound traffic interception and bind to the IP address and
43535	// port specified in the forwarding rule. This is generally useful when
43536	// using Traffic Director to configure Envoy as a gateway or middle
43537	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
43538	// for inbound requests and handles requests when it receives them. The
43539	// default is false.
43540	ProxyBind bool `json:"proxyBind,omitempty"`
43541
43542	// Region: [Output Only] URL of the region where the regional Target
43543	// HTTP Proxy resides. This field is not applicable to global Target
43544	// HTTP Proxies.
43545	Region string `json:"region,omitempty"`
43546
43547	// SelfLink: [Output Only] Server-defined URL for the resource.
43548	SelfLink string `json:"selfLink,omitempty"`
43549
43550	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
43551	// to the BackendService.
43552	UrlMap string `json:"urlMap,omitempty"`
43553
43554	// ServerResponse contains the HTTP response code and headers from the
43555	// server.
43556	googleapi.ServerResponse `json:"-"`
43557
43558	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43559	// to unconditionally include in API requests. By default, fields with
43560	// empty or default values are omitted from API requests. However, any
43561	// non-pointer, non-interface field appearing in ForceSendFields will be
43562	// sent to the server regardless of whether the field is empty or not.
43563	// This may be used to include empty fields in Patch requests.
43564	ForceSendFields []string `json:"-"`
43565
43566	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43567	// include in API requests with the JSON null value. By default, fields
43568	// with empty values are omitted from API requests. However, any field
43569	// with an empty value appearing in NullFields will be sent to the
43570	// server as null. It is an error if a field in this list has a
43571	// non-empty value. This may be used to include null fields in Patch
43572	// requests.
43573	NullFields []string `json:"-"`
43574}
43575
43576func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
43577	type NoMethod TargetHttpProxy
43578	raw := NoMethod(*s)
43579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43580}
43581
43582type TargetHttpProxyAggregatedList struct {
43583	// Id: [Output Only] Unique identifier for the resource; defined by the
43584	// server.
43585	Id string `json:"id,omitempty"`
43586
43587	// Items: A list of TargetHttpProxiesScopedList resources.
43588	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
43589
43590	// Kind: [Output Only] Type of resource. Always
43591	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
43592	// Proxies.
43593	Kind string `json:"kind,omitempty"`
43594
43595	// NextPageToken: [Output Only] This token allows you to get the next
43596	// page of results for list requests. If the number of results is larger
43597	// than maxResults, use the nextPageToken as a value for the query
43598	// parameter pageToken in the next list request. Subsequent list
43599	// requests will have their own nextPageToken to continue paging through
43600	// the results.
43601	NextPageToken string `json:"nextPageToken,omitempty"`
43602
43603	// SelfLink: [Output Only] Server-defined URL for this resource.
43604	SelfLink string `json:"selfLink,omitempty"`
43605
43606	// Unreachables: [Output Only] Unreachable resources.
43607	Unreachables []string `json:"unreachables,omitempty"`
43608
43609	// ServerResponse contains the HTTP response code and headers from the
43610	// server.
43611	googleapi.ServerResponse `json:"-"`
43612
43613	// ForceSendFields is a list of field names (e.g. "Id") to
43614	// unconditionally include in API requests. By default, fields with
43615	// empty or default values are omitted from API requests. However, any
43616	// non-pointer, non-interface field appearing in ForceSendFields will be
43617	// sent to the server regardless of whether the field is empty or not.
43618	// This may be used to include empty fields in Patch requests.
43619	ForceSendFields []string `json:"-"`
43620
43621	// NullFields is a list of field names (e.g. "Id") to include in API
43622	// requests with the JSON null value. By default, fields with empty
43623	// values are omitted from API requests. However, any field with an
43624	// empty value appearing in NullFields will be sent to the server as
43625	// null. It is an error if a field in this list has a non-empty value.
43626	// This may be used to include null fields in Patch requests.
43627	NullFields []string `json:"-"`
43628}
43629
43630func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
43631	type NoMethod TargetHttpProxyAggregatedList
43632	raw := NoMethod(*s)
43633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43634}
43635
43636// TargetHttpProxyList: A list of TargetHttpProxy resources.
43637type TargetHttpProxyList struct {
43638	// Id: [Output Only] Unique identifier for the resource; defined by the
43639	// server.
43640	Id string `json:"id,omitempty"`
43641
43642	// Items: A list of TargetHttpProxy resources.
43643	Items []*TargetHttpProxy `json:"items,omitempty"`
43644
43645	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
43646	// of target HTTP proxies.
43647	Kind string `json:"kind,omitempty"`
43648
43649	// NextPageToken: [Output Only] This token allows you to get the next
43650	// page of results for list requests. If the number of results is larger
43651	// than maxResults, use the nextPageToken as a value for the query
43652	// parameter pageToken in the next list request. Subsequent list
43653	// requests will have their own nextPageToken to continue paging through
43654	// the results.
43655	NextPageToken string `json:"nextPageToken,omitempty"`
43656
43657	// SelfLink: [Output Only] Server-defined URL for this resource.
43658	SelfLink string `json:"selfLink,omitempty"`
43659
43660	// Warning: [Output Only] Informational warning message.
43661	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
43662
43663	// ServerResponse contains the HTTP response code and headers from the
43664	// server.
43665	googleapi.ServerResponse `json:"-"`
43666
43667	// ForceSendFields is a list of field names (e.g. "Id") to
43668	// unconditionally include in API requests. By default, fields with
43669	// empty or default values are omitted from API requests. However, any
43670	// non-pointer, non-interface field appearing in ForceSendFields will be
43671	// sent to the server regardless of whether the field is empty or not.
43672	// This may be used to include empty fields in Patch requests.
43673	ForceSendFields []string `json:"-"`
43674
43675	// NullFields is a list of field names (e.g. "Id") to include in API
43676	// requests with the JSON null value. By default, fields with empty
43677	// values are omitted from API requests. However, any field with an
43678	// empty value appearing in NullFields will be sent to the server as
43679	// null. It is an error if a field in this list has a non-empty value.
43680	// This may be used to include null fields in Patch requests.
43681	NullFields []string `json:"-"`
43682}
43683
43684func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
43685	type NoMethod TargetHttpProxyList
43686	raw := NoMethod(*s)
43687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43688}
43689
43690// TargetHttpProxyListWarning: [Output Only] Informational warning
43691// message.
43692type TargetHttpProxyListWarning struct {
43693	// Code: [Output Only] A warning code, if applicable. For example,
43694	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43695	// the response.
43696	//
43697	// Possible values:
43698	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43699	// changes made by a failed operation.
43700	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43701	// created.
43702	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43703	// resources has a type marked as deprecated
43704	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43705	// that is larger than image size.
43706	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43707	// resources has a type marked as experimental
43708	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43709	// call
43710	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43711	// overridden. Deprecated unused field.
43712	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43713	// injected kernel, which is deprecated.
43714	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43715	// exceedingly large number of resources
43716	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43717	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43718	// not assigned to an instance on the network.
43719	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43720	// ip forward.
43721	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43722	// refers to an instance that does not exist.
43723	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43724	// URL refers to an instance that is not on the same network as the
43725	// route.
43726	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43727	// have a status of RUNNING.
43728	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43729	// continue the process despite the mentioned error.
43730	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43731	// page.
43732	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43733	// missing due to errors
43734	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43735	// that requires a TOS they have not accepted.
43736	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43737	// resource is in use.
43738	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43739	// auto-delete could not be deleted because they were in use.
43740	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43741	// ignored.
43742	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43743	// instance group manager is valid as such, but its application does not
43744	// make a lot of sense, because it allows only single instance in
43745	// instance group.
43746	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43747	// are present
43748	//   "UNREACHABLE" - A given scope cannot be reached.
43749	Code string `json:"code,omitempty"`
43750
43751	// Data: [Output Only] Metadata about this warning in key: value format.
43752	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43753	// }
43754	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
43755
43756	// Message: [Output Only] A human-readable description of the warning
43757	// code.
43758	Message string `json:"message,omitempty"`
43759
43760	// ForceSendFields is a list of field names (e.g. "Code") to
43761	// unconditionally include in API requests. By default, fields with
43762	// empty or default values are omitted from API requests. However, any
43763	// non-pointer, non-interface field appearing in ForceSendFields will be
43764	// sent to the server regardless of whether the field is empty or not.
43765	// This may be used to include empty fields in Patch requests.
43766	ForceSendFields []string `json:"-"`
43767
43768	// NullFields is a list of field names (e.g. "Code") to include in API
43769	// requests with the JSON null value. By default, fields with empty
43770	// values are omitted from API requests. However, any field with an
43771	// empty value appearing in NullFields will be sent to the server as
43772	// null. It is an error if a field in this list has a non-empty value.
43773	// This may be used to include null fields in Patch requests.
43774	NullFields []string `json:"-"`
43775}
43776
43777func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
43778	type NoMethod TargetHttpProxyListWarning
43779	raw := NoMethod(*s)
43780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43781}
43782
43783type TargetHttpProxyListWarningData struct {
43784	// Key: [Output Only] A key that provides more detail on the warning
43785	// being returned. For example, for warnings where there are no results
43786	// in a list request for a particular zone, this key might be scope and
43787	// the key value might be the zone name. Other examples might be a key
43788	// indicating a deprecated resource and a suggested replacement, or a
43789	// warning about invalid network settings (for example, if an instance
43790	// attempts to perform IP forwarding but is not enabled for IP
43791	// forwarding).
43792	Key string `json:"key,omitempty"`
43793
43794	// Value: [Output Only] A warning data value corresponding to the key.
43795	Value string `json:"value,omitempty"`
43796
43797	// ForceSendFields is a list of field names (e.g. "Key") to
43798	// unconditionally include in API requests. By default, fields with
43799	// empty or default values are omitted from API requests. However, any
43800	// non-pointer, non-interface field appearing in ForceSendFields will be
43801	// sent to the server regardless of whether the field is empty or not.
43802	// This may be used to include empty fields in Patch requests.
43803	ForceSendFields []string `json:"-"`
43804
43805	// NullFields is a list of field names (e.g. "Key") to include in API
43806	// requests with the JSON null value. By default, fields with empty
43807	// values are omitted from API requests. However, any field with an
43808	// empty value appearing in NullFields will be sent to the server as
43809	// null. It is an error if a field in this list has a non-empty value.
43810	// This may be used to include null fields in Patch requests.
43811	NullFields []string `json:"-"`
43812}
43813
43814func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
43815	type NoMethod TargetHttpProxyListWarningData
43816	raw := NoMethod(*s)
43817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43818}
43819
43820type TargetHttpsProxiesScopedList struct {
43821	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
43822	// scope.
43823	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
43824
43825	// Warning: Informational warning which replaces the list of backend
43826	// services when the list is empty.
43827	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
43828
43829	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
43830	// to unconditionally include in API requests. By default, fields with
43831	// empty or default values are omitted from API requests. However, any
43832	// non-pointer, non-interface field appearing in ForceSendFields will be
43833	// sent to the server regardless of whether the field is empty or not.
43834	// This may be used to include empty fields in Patch requests.
43835	ForceSendFields []string `json:"-"`
43836
43837	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
43838	// include in API requests with the JSON null value. By default, fields
43839	// with empty values are omitted from API requests. However, any field
43840	// with an empty value appearing in NullFields will be sent to the
43841	// server as null. It is an error if a field in this list has a
43842	// non-empty value. This may be used to include null fields in Patch
43843	// requests.
43844	NullFields []string `json:"-"`
43845}
43846
43847func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
43848	type NoMethod TargetHttpsProxiesScopedList
43849	raw := NoMethod(*s)
43850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43851}
43852
43853// TargetHttpsProxiesScopedListWarning: Informational warning which
43854// replaces the list of backend services when the list is empty.
43855type TargetHttpsProxiesScopedListWarning struct {
43856	// Code: [Output Only] A warning code, if applicable. For example,
43857	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43858	// the response.
43859	//
43860	// Possible values:
43861	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43862	// changes made by a failed operation.
43863	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43864	// created.
43865	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43866	// resources has a type marked as deprecated
43867	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43868	// that is larger than image size.
43869	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43870	// resources has a type marked as experimental
43871	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43872	// call
43873	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43874	// overridden. Deprecated unused field.
43875	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43876	// injected kernel, which is deprecated.
43877	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43878	// exceedingly large number of resources
43879	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43880	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43881	// not assigned to an instance on the network.
43882	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43883	// ip forward.
43884	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43885	// refers to an instance that does not exist.
43886	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43887	// URL refers to an instance that is not on the same network as the
43888	// route.
43889	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43890	// have a status of RUNNING.
43891	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43892	// continue the process despite the mentioned error.
43893	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43894	// page.
43895	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43896	// missing due to errors
43897	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43898	// that requires a TOS they have not accepted.
43899	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43900	// resource is in use.
43901	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43902	// auto-delete could not be deleted because they were in use.
43903	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43904	// ignored.
43905	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43906	// instance group manager is valid as such, but its application does not
43907	// make a lot of sense, because it allows only single instance in
43908	// instance group.
43909	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43910	// are present
43911	//   "UNREACHABLE" - A given scope cannot be reached.
43912	Code string `json:"code,omitempty"`
43913
43914	// Data: [Output Only] Metadata about this warning in key: value format.
43915	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43916	// }
43917	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
43918
43919	// Message: [Output Only] A human-readable description of the warning
43920	// code.
43921	Message string `json:"message,omitempty"`
43922
43923	// ForceSendFields is a list of field names (e.g. "Code") to
43924	// unconditionally include in API requests. By default, fields with
43925	// empty or default values are omitted from API requests. However, any
43926	// non-pointer, non-interface field appearing in ForceSendFields will be
43927	// sent to the server regardless of whether the field is empty or not.
43928	// This may be used to include empty fields in Patch requests.
43929	ForceSendFields []string `json:"-"`
43930
43931	// NullFields is a list of field names (e.g. "Code") to include in API
43932	// requests with the JSON null value. By default, fields with empty
43933	// values are omitted from API requests. However, any field with an
43934	// empty value appearing in NullFields will be sent to the server as
43935	// null. It is an error if a field in this list has a non-empty value.
43936	// This may be used to include null fields in Patch requests.
43937	NullFields []string `json:"-"`
43938}
43939
43940func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43941	type NoMethod TargetHttpsProxiesScopedListWarning
43942	raw := NoMethod(*s)
43943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43944}
43945
43946type TargetHttpsProxiesScopedListWarningData struct {
43947	// Key: [Output Only] A key that provides more detail on the warning
43948	// being returned. For example, for warnings where there are no results
43949	// in a list request for a particular zone, this key might be scope and
43950	// the key value might be the zone name. Other examples might be a key
43951	// indicating a deprecated resource and a suggested replacement, or a
43952	// warning about invalid network settings (for example, if an instance
43953	// attempts to perform IP forwarding but is not enabled for IP
43954	// forwarding).
43955	Key string `json:"key,omitempty"`
43956
43957	// Value: [Output Only] A warning data value corresponding to the key.
43958	Value string `json:"value,omitempty"`
43959
43960	// ForceSendFields is a list of field names (e.g. "Key") to
43961	// unconditionally include in API requests. By default, fields with
43962	// empty or default values are omitted from API requests. However, any
43963	// non-pointer, non-interface field appearing in ForceSendFields will be
43964	// sent to the server regardless of whether the field is empty or not.
43965	// This may be used to include empty fields in Patch requests.
43966	ForceSendFields []string `json:"-"`
43967
43968	// NullFields is a list of field names (e.g. "Key") to include in API
43969	// requests with the JSON null value. By default, fields with empty
43970	// values are omitted from API requests. However, any field with an
43971	// empty value appearing in NullFields will be sent to the server as
43972	// null. It is an error if a field in this list has a non-empty value.
43973	// This may be used to include null fields in Patch requests.
43974	NullFields []string `json:"-"`
43975}
43976
43977func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43978	type NoMethod TargetHttpsProxiesScopedListWarningData
43979	raw := NoMethod(*s)
43980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43981}
43982
43983type TargetHttpsProxiesSetQuicOverrideRequest struct {
43984	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
43985	//
43986	// Possible values:
43987	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC
43988	// with clients.
43989	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with
43990	// clients.
43991	//   "NONE" - No overrides to the default QUIC policy. This option is
43992	// implicit if no QUIC override has been specified in the request.
43993	QuicOverride string `json:"quicOverride,omitempty"`
43994
43995	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
43996	// unconditionally include in API requests. By default, fields with
43997	// empty or default values are omitted from API requests. However, any
43998	// non-pointer, non-interface field appearing in ForceSendFields will be
43999	// sent to the server regardless of whether the field is empty or not.
44000	// This may be used to include empty fields in Patch requests.
44001	ForceSendFields []string `json:"-"`
44002
44003	// NullFields is a list of field names (e.g. "QuicOverride") to include
44004	// in API requests with the JSON null value. By default, fields with
44005	// empty values are omitted from API requests. However, any field with
44006	// an empty value appearing in NullFields will be sent to the server as
44007	// null. It is an error if a field in this list has a non-empty value.
44008	// This may be used to include null fields in Patch requests.
44009	NullFields []string `json:"-"`
44010}
44011
44012func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
44013	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
44014	raw := NoMethod(*s)
44015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44016}
44017
44018type TargetHttpsProxiesSetSslCertificatesRequest struct {
44019	// SslCertificates: New set of SslCertificate resources to associate
44020	// with this TargetHttpsProxy resource. At least one SSL certificate
44021	// must be specified. Currently, you may specify up to 15 SSL
44022	// certificates.
44023	SslCertificates []string `json:"sslCertificates,omitempty"`
44024
44025	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
44026	// unconditionally include in API requests. By default, fields with
44027	// empty or default values are omitted from API requests. However, any
44028	// non-pointer, non-interface field appearing in ForceSendFields will be
44029	// sent to the server regardless of whether the field is empty or not.
44030	// This may be used to include empty fields in Patch requests.
44031	ForceSendFields []string `json:"-"`
44032
44033	// NullFields is a list of field names (e.g. "SslCertificates") to
44034	// include in API requests with the JSON null value. By default, fields
44035	// with empty values are omitted from API requests. However, any field
44036	// with an empty value appearing in NullFields will be sent to the
44037	// server as null. It is an error if a field in this list has a
44038	// non-empty value. This may be used to include null fields in Patch
44039	// requests.
44040	NullFields []string `json:"-"`
44041}
44042
44043func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
44044	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
44045	raw := NoMethod(*s)
44046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44047}
44048
44049// TargetHttpsProxy: Represents a Target HTTPS Proxy resource. Google
44050// Compute Engine has two Target HTTPS Proxy resources: * Global
44051// (/compute/docs/reference/rest/v1/targetHttpsProxies) * Regional
44052// (/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target
44053// HTTPS proxy is a component of GCP HTTPS load balancers. *
44054// targetHttpsProxies are used by external HTTPS load balancers. *
44055// regionTargetHttpsProxies are used by internal HTTPS load balancers.
44056// Forwarding rules reference a target HTTPS proxy, and the target proxy
44057// then references a URL map. For more information, read Using Target
44058// Proxies and Forwarding rule concepts.
44059type TargetHttpsProxy struct {
44060	// AuthorizationPolicy: Optional. A URL referring to a
44061	// networksecurity.AuthorizationPolicy resource that describes how the
44062	// proxy should authorize inbound traffic. If left blank, access will
44063	// not be restricted by an authorization policy. Refer to the
44064	// AuthorizationPolicy resource for additional details.
44065	// authorizationPolicy only applies to a global TargetHttpsProxy
44066	// attached to globalForwardingRules with the loadBalancingScheme set to
44067	// INTERNAL_SELF_MANAGED. Note: This field currently has no impact.
44068	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
44069
44070	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44071	// format.
44072	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44073
44074	// Description: An optional description of this resource. Provide this
44075	// property when you create the resource.
44076	Description string `json:"description,omitempty"`
44077
44078	// Fingerprint: Fingerprint of this resource. A hash of the contents
44079	// stored in this object. This field is used in optimistic locking. This
44080	// field will be ignored when inserting a TargetHttpsProxy. An
44081	// up-to-date fingerprint must be provided in order to patch the
44082	// TargetHttpsProxy; otherwise, the request will fail with error 412
44083	// conditionNotMet. To see the latest fingerprint, make a get() request
44084	// to retrieve the TargetHttpsProxy.
44085	Fingerprint string `json:"fingerprint,omitempty"`
44086
44087	// Id: [Output Only] The unique identifier for the resource. This
44088	// identifier is defined by the server.
44089	Id uint64 `json:"id,omitempty,string"`
44090
44091	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
44092	// for target HTTPS proxies.
44093	Kind string `json:"kind,omitempty"`
44094
44095	// Name: Name of the resource. Provided by the client when the resource
44096	// is created. The name must be 1-63 characters long, and comply with
44097	// RFC1035. Specifically, the name must be 1-63 characters long and
44098	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44099	// the first character must be a lowercase letter, and all following
44100	// characters must be a dash, lowercase letter, or digit, except the
44101	// last character, which cannot be a dash.
44102	Name string `json:"name,omitempty"`
44103
44104	// ProxyBind: This field only applies when the forwarding rule that
44105	// references this target proxy has a loadBalancingScheme set to
44106	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
44107	// set up inbound traffic interception and bind to the IP address and
44108	// port specified in the forwarding rule. This is generally useful when
44109	// using Traffic Director to configure Envoy as a gateway or middle
44110	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
44111	// for inbound requests and handles requests when it receives them. The
44112	// default is false.
44113	ProxyBind bool `json:"proxyBind,omitempty"`
44114
44115	// QuicOverride: Specifies the QUIC override policy for this
44116	// TargetHttpsProxy resource. This setting determines whether the load
44117	// balancer attempts to negotiate QUIC with clients. You can specify
44118	// NONE, ENABLE, or DISABLE. - When quic-override is set to NONE, Google
44119	// manages whether QUIC is used. - When quic-override is set to ENABLE,
44120	// the load balancer uses QUIC when possible. - When quic-override is
44121	// set to DISABLE, the load balancer doesn't use QUIC. - If the
44122	// quic-override flag is not specified, NONE is implied.
44123	//
44124	// Possible values:
44125	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC
44126	// with clients.
44127	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with
44128	// clients.
44129	//   "NONE" - No overrides to the default QUIC policy. This option is
44130	// implicit if no QUIC override has been specified in the request.
44131	QuicOverride string `json:"quicOverride,omitempty"`
44132
44133	// Region: [Output Only] URL of the region where the regional
44134	// TargetHttpsProxy resides. This field is not applicable to global
44135	// TargetHttpsProxies.
44136	Region string `json:"region,omitempty"`
44137
44138	// SelfLink: [Output Only] Server-defined URL for the resource.
44139	SelfLink string `json:"selfLink,omitempty"`
44140
44141	// ServerTlsPolicy: Optional. A URL referring to a
44142	// networksecurity.ServerTlsPolicy resource that describes how the proxy
44143	// should authenticate inbound traffic. serverTlsPolicy only applies to
44144	// a global TargetHttpsProxy attached to globalForwardingRules with the
44145	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank,
44146	// communications are not encrypted. Note: This field currently has no
44147	// impact.
44148	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
44149
44150	// SslCertificates: URLs to SslCertificate resources that are used to
44151	// authenticate connections between users and the load balancer. At
44152	// least one SSL certificate must be specified. Currently, you may
44153	// specify up to 15 SSL certificates. sslCertificates do not apply when
44154	// the load balancing scheme is set to INTERNAL_SELF_MANAGED.
44155	SslCertificates []string `json:"sslCertificates,omitempty"`
44156
44157	// SslPolicy: URL of SslPolicy resource that will be associated with the
44158	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
44159	// has no SSL policy configured.
44160	SslPolicy string `json:"sslPolicy,omitempty"`
44161
44162	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
44163	// that defines the mapping from URL to the BackendService. For example,
44164	// the following are all valid URLs for specifying a URL map: -
44165	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/
44166	// url-map - projects/project/global/urlMaps/url-map -
44167	// global/urlMaps/url-map
44168	UrlMap string `json:"urlMap,omitempty"`
44169
44170	// ServerResponse contains the HTTP response code and headers from the
44171	// server.
44172	googleapi.ServerResponse `json:"-"`
44173
44174	// ForceSendFields is a list of field names (e.g. "AuthorizationPolicy")
44175	// to unconditionally include in API requests. By default, fields with
44176	// empty or default values are omitted from API requests. However, any
44177	// non-pointer, non-interface field appearing in ForceSendFields will be
44178	// sent to the server regardless of whether the field is empty or not.
44179	// This may be used to include empty fields in Patch requests.
44180	ForceSendFields []string `json:"-"`
44181
44182	// NullFields is a list of field names (e.g. "AuthorizationPolicy") to
44183	// include in API requests with the JSON null value. By default, fields
44184	// with empty values are omitted from API requests. However, any field
44185	// with an empty value appearing in NullFields will be sent to the
44186	// server as null. It is an error if a field in this list has a
44187	// non-empty value. This may be used to include null fields in Patch
44188	// requests.
44189	NullFields []string `json:"-"`
44190}
44191
44192func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
44193	type NoMethod TargetHttpsProxy
44194	raw := NoMethod(*s)
44195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44196}
44197
44198type TargetHttpsProxyAggregatedList struct {
44199	// Id: [Output Only] Unique identifier for the resource; defined by the
44200	// server.
44201	Id string `json:"id,omitempty"`
44202
44203	// Items: A list of TargetHttpsProxiesScopedList resources.
44204	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
44205
44206	// Kind: [Output Only] Type of resource. Always
44207	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
44208	// Proxies.
44209	Kind string `json:"kind,omitempty"`
44210
44211	// NextPageToken: [Output Only] This token allows you to get the next
44212	// page of results for list requests. If the number of results is larger
44213	// than maxResults, use the nextPageToken as a value for the query
44214	// parameter pageToken in the next list request. Subsequent list
44215	// requests will have their own nextPageToken to continue paging through
44216	// the results.
44217	NextPageToken string `json:"nextPageToken,omitempty"`
44218
44219	// SelfLink: [Output Only] Server-defined URL for this resource.
44220	SelfLink string `json:"selfLink,omitempty"`
44221
44222	// Unreachables: [Output Only] Unreachable resources.
44223	Unreachables []string `json:"unreachables,omitempty"`
44224
44225	// Warning: [Output Only] Informational warning message.
44226	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
44227
44228	// ServerResponse contains the HTTP response code and headers from the
44229	// server.
44230	googleapi.ServerResponse `json:"-"`
44231
44232	// ForceSendFields is a list of field names (e.g. "Id") to
44233	// unconditionally include in API requests. By default, fields with
44234	// empty or default values are omitted from API requests. However, any
44235	// non-pointer, non-interface field appearing in ForceSendFields will be
44236	// sent to the server regardless of whether the field is empty or not.
44237	// This may be used to include empty fields in Patch requests.
44238	ForceSendFields []string `json:"-"`
44239
44240	// NullFields is a list of field names (e.g. "Id") to include in API
44241	// requests with the JSON null value. By default, fields with empty
44242	// values are omitted from API requests. However, any field with an
44243	// empty value appearing in NullFields will be sent to the server as
44244	// null. It is an error if a field in this list has a non-empty value.
44245	// This may be used to include null fields in Patch requests.
44246	NullFields []string `json:"-"`
44247}
44248
44249func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
44250	type NoMethod TargetHttpsProxyAggregatedList
44251	raw := NoMethod(*s)
44252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44253}
44254
44255// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
44256// warning message.
44257type TargetHttpsProxyAggregatedListWarning struct {
44258	// Code: [Output Only] A warning code, if applicable. For example,
44259	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44260	// the response.
44261	//
44262	// Possible values:
44263	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44264	// changes made by a failed operation.
44265	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44266	// created.
44267	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44268	// resources has a type marked as deprecated
44269	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44270	// that is larger than image size.
44271	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44272	// resources has a type marked as experimental
44273	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44274	// call
44275	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44276	// overridden. Deprecated unused field.
44277	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44278	// injected kernel, which is deprecated.
44279	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44280	// exceedingly large number of resources
44281	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44282	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44283	// not assigned to an instance on the network.
44284	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44285	// ip forward.
44286	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44287	// refers to an instance that does not exist.
44288	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44289	// URL refers to an instance that is not on the same network as the
44290	// route.
44291	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44292	// have a status of RUNNING.
44293	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44294	// continue the process despite the mentioned error.
44295	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44296	// page.
44297	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44298	// missing due to errors
44299	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44300	// that requires a TOS they have not accepted.
44301	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44302	// resource is in use.
44303	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44304	// auto-delete could not be deleted because they were in use.
44305	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44306	// ignored.
44307	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44308	// instance group manager is valid as such, but its application does not
44309	// make a lot of sense, because it allows only single instance in
44310	// instance group.
44311	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44312	// are present
44313	//   "UNREACHABLE" - A given scope cannot be reached.
44314	Code string `json:"code,omitempty"`
44315
44316	// Data: [Output Only] Metadata about this warning in key: value format.
44317	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44318	// }
44319	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
44320
44321	// Message: [Output Only] A human-readable description of the warning
44322	// code.
44323	Message string `json:"message,omitempty"`
44324
44325	// ForceSendFields is a list of field names (e.g. "Code") to
44326	// unconditionally include in API requests. By default, fields with
44327	// empty or default values are omitted from API requests. However, any
44328	// non-pointer, non-interface field appearing in ForceSendFields will be
44329	// sent to the server regardless of whether the field is empty or not.
44330	// This may be used to include empty fields in Patch requests.
44331	ForceSendFields []string `json:"-"`
44332
44333	// NullFields is a list of field names (e.g. "Code") to include in API
44334	// requests with the JSON null value. By default, fields with empty
44335	// values are omitted from API requests. However, any field with an
44336	// empty value appearing in NullFields will be sent to the server as
44337	// null. It is an error if a field in this list has a non-empty value.
44338	// This may be used to include null fields in Patch requests.
44339	NullFields []string `json:"-"`
44340}
44341
44342func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
44343	type NoMethod TargetHttpsProxyAggregatedListWarning
44344	raw := NoMethod(*s)
44345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44346}
44347
44348type TargetHttpsProxyAggregatedListWarningData struct {
44349	// Key: [Output Only] A key that provides more detail on the warning
44350	// being returned. For example, for warnings where there are no results
44351	// in a list request for a particular zone, this key might be scope and
44352	// the key value might be the zone name. Other examples might be a key
44353	// indicating a deprecated resource and a suggested replacement, or a
44354	// warning about invalid network settings (for example, if an instance
44355	// attempts to perform IP forwarding but is not enabled for IP
44356	// forwarding).
44357	Key string `json:"key,omitempty"`
44358
44359	// Value: [Output Only] A warning data value corresponding to the key.
44360	Value string `json:"value,omitempty"`
44361
44362	// ForceSendFields is a list of field names (e.g. "Key") to
44363	// unconditionally include in API requests. By default, fields with
44364	// empty or default values are omitted from API requests. However, any
44365	// non-pointer, non-interface field appearing in ForceSendFields will be
44366	// sent to the server regardless of whether the field is empty or not.
44367	// This may be used to include empty fields in Patch requests.
44368	ForceSendFields []string `json:"-"`
44369
44370	// NullFields is a list of field names (e.g. "Key") to include in API
44371	// requests with the JSON null value. By default, fields with empty
44372	// values are omitted from API requests. However, any field with an
44373	// empty value appearing in NullFields will be sent to the server as
44374	// null. It is an error if a field in this list has a non-empty value.
44375	// This may be used to include null fields in Patch requests.
44376	NullFields []string `json:"-"`
44377}
44378
44379func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44380	type NoMethod TargetHttpsProxyAggregatedListWarningData
44381	raw := NoMethod(*s)
44382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44383}
44384
44385// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
44386type TargetHttpsProxyList struct {
44387	// Id: [Output Only] Unique identifier for the resource; defined by the
44388	// server.
44389	Id string `json:"id,omitempty"`
44390
44391	// Items: A list of TargetHttpsProxy resources.
44392	Items []*TargetHttpsProxy `json:"items,omitempty"`
44393
44394	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
44395	// of target HTTPS proxies.
44396	Kind string `json:"kind,omitempty"`
44397
44398	// NextPageToken: [Output Only] This token allows you to get the next
44399	// page of results for list requests. If the number of results is larger
44400	// than maxResults, use the nextPageToken as a value for the query
44401	// parameter pageToken in the next list request. Subsequent list
44402	// requests will have their own nextPageToken to continue paging through
44403	// the results.
44404	NextPageToken string `json:"nextPageToken,omitempty"`
44405
44406	// SelfLink: [Output Only] Server-defined URL for this resource.
44407	SelfLink string `json:"selfLink,omitempty"`
44408
44409	// Warning: [Output Only] Informational warning message.
44410	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
44411
44412	// ServerResponse contains the HTTP response code and headers from the
44413	// server.
44414	googleapi.ServerResponse `json:"-"`
44415
44416	// ForceSendFields is a list of field names (e.g. "Id") to
44417	// unconditionally include in API requests. By default, fields with
44418	// empty or default values are omitted from API requests. However, any
44419	// non-pointer, non-interface field appearing in ForceSendFields will be
44420	// sent to the server regardless of whether the field is empty or not.
44421	// This may be used to include empty fields in Patch requests.
44422	ForceSendFields []string `json:"-"`
44423
44424	// NullFields is a list of field names (e.g. "Id") to include in API
44425	// requests with the JSON null value. By default, fields with empty
44426	// values are omitted from API requests. However, any field with an
44427	// empty value appearing in NullFields will be sent to the server as
44428	// null. It is an error if a field in this list has a non-empty value.
44429	// This may be used to include null fields in Patch requests.
44430	NullFields []string `json:"-"`
44431}
44432
44433func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
44434	type NoMethod TargetHttpsProxyList
44435	raw := NoMethod(*s)
44436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44437}
44438
44439// TargetHttpsProxyListWarning: [Output Only] Informational warning
44440// message.
44441type TargetHttpsProxyListWarning struct {
44442	// Code: [Output Only] A warning code, if applicable. For example,
44443	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44444	// the response.
44445	//
44446	// Possible values:
44447	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44448	// changes made by a failed operation.
44449	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44450	// created.
44451	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44452	// resources has a type marked as deprecated
44453	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44454	// that is larger than image size.
44455	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44456	// resources has a type marked as experimental
44457	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44458	// call
44459	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44460	// overridden. Deprecated unused field.
44461	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44462	// injected kernel, which is deprecated.
44463	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44464	// exceedingly large number of resources
44465	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44466	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44467	// not assigned to an instance on the network.
44468	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44469	// ip forward.
44470	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44471	// refers to an instance that does not exist.
44472	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44473	// URL refers to an instance that is not on the same network as the
44474	// route.
44475	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44476	// have a status of RUNNING.
44477	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44478	// continue the process despite the mentioned error.
44479	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44480	// page.
44481	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44482	// missing due to errors
44483	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44484	// that requires a TOS they have not accepted.
44485	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44486	// resource is in use.
44487	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44488	// auto-delete could not be deleted because they were in use.
44489	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44490	// ignored.
44491	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44492	// instance group manager is valid as such, but its application does not
44493	// make a lot of sense, because it allows only single instance in
44494	// instance group.
44495	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44496	// are present
44497	//   "UNREACHABLE" - A given scope cannot be reached.
44498	Code string `json:"code,omitempty"`
44499
44500	// Data: [Output Only] Metadata about this warning in key: value format.
44501	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44502	// }
44503	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
44504
44505	// Message: [Output Only] A human-readable description of the warning
44506	// code.
44507	Message string `json:"message,omitempty"`
44508
44509	// ForceSendFields is a list of field names (e.g. "Code") to
44510	// unconditionally include in API requests. By default, fields with
44511	// empty or default values are omitted from API requests. However, any
44512	// non-pointer, non-interface field appearing in ForceSendFields will be
44513	// sent to the server regardless of whether the field is empty or not.
44514	// This may be used to include empty fields in Patch requests.
44515	ForceSendFields []string `json:"-"`
44516
44517	// NullFields is a list of field names (e.g. "Code") to include in API
44518	// requests with the JSON null value. By default, fields with empty
44519	// values are omitted from API requests. However, any field with an
44520	// empty value appearing in NullFields will be sent to the server as
44521	// null. It is an error if a field in this list has a non-empty value.
44522	// This may be used to include null fields in Patch requests.
44523	NullFields []string `json:"-"`
44524}
44525
44526func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
44527	type NoMethod TargetHttpsProxyListWarning
44528	raw := NoMethod(*s)
44529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44530}
44531
44532type TargetHttpsProxyListWarningData struct {
44533	// Key: [Output Only] A key that provides more detail on the warning
44534	// being returned. For example, for warnings where there are no results
44535	// in a list request for a particular zone, this key might be scope and
44536	// the key value might be the zone name. Other examples might be a key
44537	// indicating a deprecated resource and a suggested replacement, or a
44538	// warning about invalid network settings (for example, if an instance
44539	// attempts to perform IP forwarding but is not enabled for IP
44540	// forwarding).
44541	Key string `json:"key,omitempty"`
44542
44543	// Value: [Output Only] A warning data value corresponding to the key.
44544	Value string `json:"value,omitempty"`
44545
44546	// ForceSendFields is a list of field names (e.g. "Key") to
44547	// unconditionally include in API requests. By default, fields with
44548	// empty or default values are omitted from API requests. However, any
44549	// non-pointer, non-interface field appearing in ForceSendFields will be
44550	// sent to the server regardless of whether the field is empty or not.
44551	// This may be used to include empty fields in Patch requests.
44552	ForceSendFields []string `json:"-"`
44553
44554	// NullFields is a list of field names (e.g. "Key") to include in API
44555	// requests with the JSON null value. By default, fields with empty
44556	// values are omitted from API requests. However, any field with an
44557	// empty value appearing in NullFields will be sent to the server as
44558	// null. It is an error if a field in this list has a non-empty value.
44559	// This may be used to include null fields in Patch requests.
44560	NullFields []string `json:"-"`
44561}
44562
44563func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
44564	type NoMethod TargetHttpsProxyListWarningData
44565	raw := NoMethod(*s)
44566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44567}
44568
44569// TargetInstance: Represents a Target Instance resource. You can use a
44570// target instance to handle traffic for one or more forwarding rules,
44571// which is ideal for forwarding protocol traffic that is managed by a
44572// single source. For example, ESP, AH, TCP, or UDP. For more
44573// information, read Target instances.
44574type TargetInstance struct {
44575	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44576	// format.
44577	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44578
44579	// Description: An optional description of this resource. Provide this
44580	// property when you create the resource.
44581	Description string `json:"description,omitempty"`
44582
44583	// Id: [Output Only] The unique identifier for the resource. This
44584	// identifier is defined by the server.
44585	Id uint64 `json:"id,omitempty,string"`
44586
44587	// Instance: A URL to the virtual machine instance that handles traffic
44588	// for this target instance. When creating a target instance, you can
44589	// provide the fully-qualified URL or a valid partial URL to the desired
44590	// virtual machine. For example, the following are all valid URLs: -
44591	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
44592	// /instances/instance - projects/project/zones/zone/instances/instance
44593	// - zones/zone/instances/instance
44594	Instance string `json:"instance,omitempty"`
44595
44596	// Kind: [Output Only] The type of the resource. Always
44597	// compute#targetInstance for target instances.
44598	Kind string `json:"kind,omitempty"`
44599
44600	// Name: Name of the resource. Provided by the client when the resource
44601	// is created. The name must be 1-63 characters long, and comply with
44602	// RFC1035. Specifically, the name must be 1-63 characters long and
44603	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44604	// the first character must be a lowercase letter, and all following
44605	// characters must be a dash, lowercase letter, or digit, except the
44606	// last character, which cannot be a dash.
44607	Name string `json:"name,omitempty"`
44608
44609	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
44610	// Currently only NO_NAT (default value) is supported.
44611	//
44612	// Possible values:
44613	//   "NO_NAT" - No NAT performed.
44614	NatPolicy string `json:"natPolicy,omitempty"`
44615
44616	// SelfLink: [Output Only] Server-defined URL for the resource.
44617	SelfLink string `json:"selfLink,omitempty"`
44618
44619	// Zone: [Output Only] URL of the zone where the target instance
44620	// resides. You must specify this field as part of the HTTP request URL.
44621	// It is not settable as a field in the request body.
44622	Zone string `json:"zone,omitempty"`
44623
44624	// ServerResponse contains the HTTP response code and headers from the
44625	// server.
44626	googleapi.ServerResponse `json:"-"`
44627
44628	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
44629	// to unconditionally include in API requests. By default, fields with
44630	// empty or default values are omitted from API requests. However, any
44631	// non-pointer, non-interface field appearing in ForceSendFields will be
44632	// sent to the server regardless of whether the field is empty or not.
44633	// This may be used to include empty fields in Patch requests.
44634	ForceSendFields []string `json:"-"`
44635
44636	// NullFields is a list of field names (e.g. "CreationTimestamp") to
44637	// include in API requests with the JSON null value. By default, fields
44638	// with empty values are omitted from API requests. However, any field
44639	// with an empty value appearing in NullFields will be sent to the
44640	// server as null. It is an error if a field in this list has a
44641	// non-empty value. This may be used to include null fields in Patch
44642	// requests.
44643	NullFields []string `json:"-"`
44644}
44645
44646func (s *TargetInstance) MarshalJSON() ([]byte, error) {
44647	type NoMethod TargetInstance
44648	raw := NoMethod(*s)
44649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44650}
44651
44652type TargetInstanceAggregatedList struct {
44653	// Id: [Output Only] Unique identifier for the resource; defined by the
44654	// server.
44655	Id string `json:"id,omitempty"`
44656
44657	// Items: A list of TargetInstance resources.
44658	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
44659
44660	// Kind: Type of resource.
44661	Kind string `json:"kind,omitempty"`
44662
44663	// NextPageToken: [Output Only] This token allows you to get the next
44664	// page of results for list requests. If the number of results is larger
44665	// than maxResults, use the nextPageToken as a value for the query
44666	// parameter pageToken in the next list request. Subsequent list
44667	// requests will have their own nextPageToken to continue paging through
44668	// the results.
44669	NextPageToken string `json:"nextPageToken,omitempty"`
44670
44671	// SelfLink: [Output Only] Server-defined URL for this resource.
44672	SelfLink string `json:"selfLink,omitempty"`
44673
44674	// Unreachables: [Output Only] Unreachable resources.
44675	Unreachables []string `json:"unreachables,omitempty"`
44676
44677	// Warning: [Output Only] Informational warning message.
44678	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
44679
44680	// ServerResponse contains the HTTP response code and headers from the
44681	// server.
44682	googleapi.ServerResponse `json:"-"`
44683
44684	// ForceSendFields is a list of field names (e.g. "Id") to
44685	// unconditionally include in API requests. By default, fields with
44686	// empty or default values are omitted from API requests. However, any
44687	// non-pointer, non-interface field appearing in ForceSendFields will be
44688	// sent to the server regardless of whether the field is empty or not.
44689	// This may be used to include empty fields in Patch requests.
44690	ForceSendFields []string `json:"-"`
44691
44692	// NullFields is a list of field names (e.g. "Id") to include in API
44693	// requests with the JSON null value. By default, fields with empty
44694	// values are omitted from API requests. However, any field with an
44695	// empty value appearing in NullFields will be sent to the server as
44696	// null. It is an error if a field in this list has a non-empty value.
44697	// This may be used to include null fields in Patch requests.
44698	NullFields []string `json:"-"`
44699}
44700
44701func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
44702	type NoMethod TargetInstanceAggregatedList
44703	raw := NoMethod(*s)
44704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44705}
44706
44707// TargetInstanceAggregatedListWarning: [Output Only] Informational
44708// warning message.
44709type TargetInstanceAggregatedListWarning struct {
44710	// Code: [Output Only] A warning code, if applicable. For example,
44711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44712	// the response.
44713	//
44714	// Possible values:
44715	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44716	// changes made by a failed operation.
44717	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44718	// created.
44719	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44720	// resources has a type marked as deprecated
44721	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44722	// that is larger than image size.
44723	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44724	// resources has a type marked as experimental
44725	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44726	// call
44727	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44728	// overridden. Deprecated unused field.
44729	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44730	// injected kernel, which is deprecated.
44731	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44732	// exceedingly large number of resources
44733	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44734	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44735	// not assigned to an instance on the network.
44736	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44737	// ip forward.
44738	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44739	// refers to an instance that does not exist.
44740	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44741	// URL refers to an instance that is not on the same network as the
44742	// route.
44743	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44744	// have a status of RUNNING.
44745	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44746	// continue the process despite the mentioned error.
44747	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44748	// page.
44749	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44750	// missing due to errors
44751	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44752	// that requires a TOS they have not accepted.
44753	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44754	// resource is in use.
44755	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44756	// auto-delete could not be deleted because they were in use.
44757	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44758	// ignored.
44759	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44760	// instance group manager is valid as such, but its application does not
44761	// make a lot of sense, because it allows only single instance in
44762	// instance group.
44763	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44764	// are present
44765	//   "UNREACHABLE" - A given scope cannot be reached.
44766	Code string `json:"code,omitempty"`
44767
44768	// Data: [Output Only] Metadata about this warning in key: value format.
44769	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44770	// }
44771	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
44772
44773	// Message: [Output Only] A human-readable description of the warning
44774	// code.
44775	Message string `json:"message,omitempty"`
44776
44777	// ForceSendFields is a list of field names (e.g. "Code") to
44778	// unconditionally include in API requests. By default, fields with
44779	// empty or default values are omitted from API requests. However, any
44780	// non-pointer, non-interface field appearing in ForceSendFields will be
44781	// sent to the server regardless of whether the field is empty or not.
44782	// This may be used to include empty fields in Patch requests.
44783	ForceSendFields []string `json:"-"`
44784
44785	// NullFields is a list of field names (e.g. "Code") to include in API
44786	// requests with the JSON null value. By default, fields with empty
44787	// values are omitted from API requests. However, any field with an
44788	// empty value appearing in NullFields will be sent to the server as
44789	// null. It is an error if a field in this list has a non-empty value.
44790	// This may be used to include null fields in Patch requests.
44791	NullFields []string `json:"-"`
44792}
44793
44794func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
44795	type NoMethod TargetInstanceAggregatedListWarning
44796	raw := NoMethod(*s)
44797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44798}
44799
44800type TargetInstanceAggregatedListWarningData struct {
44801	// Key: [Output Only] A key that provides more detail on the warning
44802	// being returned. For example, for warnings where there are no results
44803	// in a list request for a particular zone, this key might be scope and
44804	// the key value might be the zone name. Other examples might be a key
44805	// indicating a deprecated resource and a suggested replacement, or a
44806	// warning about invalid network settings (for example, if an instance
44807	// attempts to perform IP forwarding but is not enabled for IP
44808	// forwarding).
44809	Key string `json:"key,omitempty"`
44810
44811	// Value: [Output Only] A warning data value corresponding to the key.
44812	Value string `json:"value,omitempty"`
44813
44814	// ForceSendFields is a list of field names (e.g. "Key") to
44815	// unconditionally include in API requests. By default, fields with
44816	// empty or default values are omitted from API requests. However, any
44817	// non-pointer, non-interface field appearing in ForceSendFields will be
44818	// sent to the server regardless of whether the field is empty or not.
44819	// This may be used to include empty fields in Patch requests.
44820	ForceSendFields []string `json:"-"`
44821
44822	// NullFields is a list of field names (e.g. "Key") to include in API
44823	// requests with the JSON null value. By default, fields with empty
44824	// values are omitted from API requests. However, any field with an
44825	// empty value appearing in NullFields will be sent to the server as
44826	// null. It is an error if a field in this list has a non-empty value.
44827	// This may be used to include null fields in Patch requests.
44828	NullFields []string `json:"-"`
44829}
44830
44831func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44832	type NoMethod TargetInstanceAggregatedListWarningData
44833	raw := NoMethod(*s)
44834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44835}
44836
44837// TargetInstanceList: Contains a list of TargetInstance resources.
44838type TargetInstanceList struct {
44839	// Id: [Output Only] Unique identifier for the resource; defined by the
44840	// server.
44841	Id string `json:"id,omitempty"`
44842
44843	// Items: A list of TargetInstance resources.
44844	Items []*TargetInstance `json:"items,omitempty"`
44845
44846	// Kind: Type of resource.
44847	Kind string `json:"kind,omitempty"`
44848
44849	// NextPageToken: [Output Only] This token allows you to get the next
44850	// page of results for list requests. If the number of results is larger
44851	// than maxResults, use the nextPageToken as a value for the query
44852	// parameter pageToken in the next list request. Subsequent list
44853	// requests will have their own nextPageToken to continue paging through
44854	// the results.
44855	NextPageToken string `json:"nextPageToken,omitempty"`
44856
44857	// SelfLink: [Output Only] Server-defined URL for this resource.
44858	SelfLink string `json:"selfLink,omitempty"`
44859
44860	// Warning: [Output Only] Informational warning message.
44861	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
44862
44863	// ServerResponse contains the HTTP response code and headers from the
44864	// server.
44865	googleapi.ServerResponse `json:"-"`
44866
44867	// ForceSendFields is a list of field names (e.g. "Id") to
44868	// unconditionally include in API requests. By default, fields with
44869	// empty or default values are omitted from API requests. However, any
44870	// non-pointer, non-interface field appearing in ForceSendFields will be
44871	// sent to the server regardless of whether the field is empty or not.
44872	// This may be used to include empty fields in Patch requests.
44873	ForceSendFields []string `json:"-"`
44874
44875	// NullFields is a list of field names (e.g. "Id") to include in API
44876	// requests with the JSON null value. By default, fields with empty
44877	// values are omitted from API requests. However, any field with an
44878	// empty value appearing in NullFields will be sent to the server as
44879	// null. It is an error if a field in this list has a non-empty value.
44880	// This may be used to include null fields in Patch requests.
44881	NullFields []string `json:"-"`
44882}
44883
44884func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
44885	type NoMethod TargetInstanceList
44886	raw := NoMethod(*s)
44887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44888}
44889
44890// TargetInstanceListWarning: [Output Only] Informational warning
44891// message.
44892type TargetInstanceListWarning struct {
44893	// Code: [Output Only] A warning code, if applicable. For example,
44894	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44895	// the response.
44896	//
44897	// Possible values:
44898	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44899	// changes made by a failed operation.
44900	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44901	// created.
44902	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44903	// resources has a type marked as deprecated
44904	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44905	// that is larger than image size.
44906	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44907	// resources has a type marked as experimental
44908	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44909	// call
44910	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44911	// overridden. Deprecated unused field.
44912	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44913	// injected kernel, which is deprecated.
44914	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44915	// exceedingly large number of resources
44916	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44917	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44918	// not assigned to an instance on the network.
44919	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44920	// ip forward.
44921	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44922	// refers to an instance that does not exist.
44923	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44924	// URL refers to an instance that is not on the same network as the
44925	// route.
44926	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44927	// have a status of RUNNING.
44928	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44929	// continue the process despite the mentioned error.
44930	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44931	// page.
44932	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44933	// missing due to errors
44934	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44935	// that requires a TOS they have not accepted.
44936	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44937	// resource is in use.
44938	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44939	// auto-delete could not be deleted because they were in use.
44940	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44941	// ignored.
44942	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44943	// instance group manager is valid as such, but its application does not
44944	// make a lot of sense, because it allows only single instance in
44945	// instance group.
44946	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44947	// are present
44948	//   "UNREACHABLE" - A given scope cannot be reached.
44949	Code string `json:"code,omitempty"`
44950
44951	// Data: [Output Only] Metadata about this warning in key: value format.
44952	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44953	// }
44954	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
44955
44956	// Message: [Output Only] A human-readable description of the warning
44957	// code.
44958	Message string `json:"message,omitempty"`
44959
44960	// ForceSendFields is a list of field names (e.g. "Code") to
44961	// unconditionally include in API requests. By default, fields with
44962	// empty or default values are omitted from API requests. However, any
44963	// non-pointer, non-interface field appearing in ForceSendFields will be
44964	// sent to the server regardless of whether the field is empty or not.
44965	// This may be used to include empty fields in Patch requests.
44966	ForceSendFields []string `json:"-"`
44967
44968	// NullFields is a list of field names (e.g. "Code") to include in API
44969	// requests with the JSON null value. By default, fields with empty
44970	// values are omitted from API requests. However, any field with an
44971	// empty value appearing in NullFields will be sent to the server as
44972	// null. It is an error if a field in this list has a non-empty value.
44973	// This may be used to include null fields in Patch requests.
44974	NullFields []string `json:"-"`
44975}
44976
44977func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
44978	type NoMethod TargetInstanceListWarning
44979	raw := NoMethod(*s)
44980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44981}
44982
44983type TargetInstanceListWarningData struct {
44984	// Key: [Output Only] A key that provides more detail on the warning
44985	// being returned. For example, for warnings where there are no results
44986	// in a list request for a particular zone, this key might be scope and
44987	// the key value might be the zone name. Other examples might be a key
44988	// indicating a deprecated resource and a suggested replacement, or a
44989	// warning about invalid network settings (for example, if an instance
44990	// attempts to perform IP forwarding but is not enabled for IP
44991	// forwarding).
44992	Key string `json:"key,omitempty"`
44993
44994	// Value: [Output Only] A warning data value corresponding to the key.
44995	Value string `json:"value,omitempty"`
44996
44997	// ForceSendFields is a list of field names (e.g. "Key") to
44998	// unconditionally include in API requests. By default, fields with
44999	// empty or default values are omitted from API requests. However, any
45000	// non-pointer, non-interface field appearing in ForceSendFields will be
45001	// sent to the server regardless of whether the field is empty or not.
45002	// This may be used to include empty fields in Patch requests.
45003	ForceSendFields []string `json:"-"`
45004
45005	// NullFields is a list of field names (e.g. "Key") to include in API
45006	// requests with the JSON null value. By default, fields with empty
45007	// values are omitted from API requests. However, any field with an
45008	// empty value appearing in NullFields will be sent to the server as
45009	// null. It is an error if a field in this list has a non-empty value.
45010	// This may be used to include null fields in Patch requests.
45011	NullFields []string `json:"-"`
45012}
45013
45014func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
45015	type NoMethod TargetInstanceListWarningData
45016	raw := NoMethod(*s)
45017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45018}
45019
45020type TargetInstancesScopedList struct {
45021	// TargetInstances: A list of target instances contained in this scope.
45022	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
45023
45024	// Warning: Informational warning which replaces the list of addresses
45025	// when the list is empty.
45026	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
45027
45028	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
45029	// unconditionally include in API requests. By default, fields with
45030	// empty or default values are omitted from API requests. However, any
45031	// non-pointer, non-interface field appearing in ForceSendFields will be
45032	// sent to the server regardless of whether the field is empty or not.
45033	// This may be used to include empty fields in Patch requests.
45034	ForceSendFields []string `json:"-"`
45035
45036	// NullFields is a list of field names (e.g. "TargetInstances") to
45037	// include in API requests with the JSON null value. By default, fields
45038	// with empty values are omitted from API requests. However, any field
45039	// with an empty value appearing in NullFields will be sent to the
45040	// server as null. It is an error if a field in this list has a
45041	// non-empty value. This may be used to include null fields in Patch
45042	// requests.
45043	NullFields []string `json:"-"`
45044}
45045
45046func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
45047	type NoMethod TargetInstancesScopedList
45048	raw := NoMethod(*s)
45049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45050}
45051
45052// TargetInstancesScopedListWarning: Informational warning which
45053// replaces the list of addresses when the list is empty.
45054type TargetInstancesScopedListWarning struct {
45055	// Code: [Output Only] A warning code, if applicable. For example,
45056	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45057	// the response.
45058	//
45059	// Possible values:
45060	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45061	// changes made by a failed operation.
45062	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45063	// created.
45064	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45065	// resources has a type marked as deprecated
45066	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45067	// that is larger than image size.
45068	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45069	// resources has a type marked as experimental
45070	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45071	// call
45072	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45073	// overridden. Deprecated unused field.
45074	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45075	// injected kernel, which is deprecated.
45076	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45077	// exceedingly large number of resources
45078	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45079	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45080	// not assigned to an instance on the network.
45081	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45082	// ip forward.
45083	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45084	// refers to an instance that does not exist.
45085	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45086	// URL refers to an instance that is not on the same network as the
45087	// route.
45088	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45089	// have a status of RUNNING.
45090	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45091	// continue the process despite the mentioned error.
45092	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45093	// page.
45094	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45095	// missing due to errors
45096	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45097	// that requires a TOS they have not accepted.
45098	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45099	// resource is in use.
45100	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45101	// auto-delete could not be deleted because they were in use.
45102	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45103	// ignored.
45104	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45105	// instance group manager is valid as such, but its application does not
45106	// make a lot of sense, because it allows only single instance in
45107	// instance group.
45108	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45109	// are present
45110	//   "UNREACHABLE" - A given scope cannot be reached.
45111	Code string `json:"code,omitempty"`
45112
45113	// Data: [Output Only] Metadata about this warning in key: value format.
45114	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45115	// }
45116	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
45117
45118	// Message: [Output Only] A human-readable description of the warning
45119	// code.
45120	Message string `json:"message,omitempty"`
45121
45122	// ForceSendFields is a list of field names (e.g. "Code") to
45123	// unconditionally include in API requests. By default, fields with
45124	// empty or default values are omitted from API requests. However, any
45125	// non-pointer, non-interface field appearing in ForceSendFields will be
45126	// sent to the server regardless of whether the field is empty or not.
45127	// This may be used to include empty fields in Patch requests.
45128	ForceSendFields []string `json:"-"`
45129
45130	// NullFields is a list of field names (e.g. "Code") to include in API
45131	// requests with the JSON null value. By default, fields with empty
45132	// values are omitted from API requests. However, any field with an
45133	// empty value appearing in NullFields will be sent to the server as
45134	// null. It is an error if a field in this list has a non-empty value.
45135	// This may be used to include null fields in Patch requests.
45136	NullFields []string `json:"-"`
45137}
45138
45139func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
45140	type NoMethod TargetInstancesScopedListWarning
45141	raw := NoMethod(*s)
45142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45143}
45144
45145type TargetInstancesScopedListWarningData struct {
45146	// Key: [Output Only] A key that provides more detail on the warning
45147	// being returned. For example, for warnings where there are no results
45148	// in a list request for a particular zone, this key might be scope and
45149	// the key value might be the zone name. Other examples might be a key
45150	// indicating a deprecated resource and a suggested replacement, or a
45151	// warning about invalid network settings (for example, if an instance
45152	// attempts to perform IP forwarding but is not enabled for IP
45153	// forwarding).
45154	Key string `json:"key,omitempty"`
45155
45156	// Value: [Output Only] A warning data value corresponding to the key.
45157	Value string `json:"value,omitempty"`
45158
45159	// ForceSendFields is a list of field names (e.g. "Key") to
45160	// unconditionally include in API requests. By default, fields with
45161	// empty or default values are omitted from API requests. However, any
45162	// non-pointer, non-interface field appearing in ForceSendFields will be
45163	// sent to the server regardless of whether the field is empty or not.
45164	// This may be used to include empty fields in Patch requests.
45165	ForceSendFields []string `json:"-"`
45166
45167	// NullFields is a list of field names (e.g. "Key") to include in API
45168	// requests with the JSON null value. By default, fields with empty
45169	// values are omitted from API requests. However, any field with an
45170	// empty value appearing in NullFields will be sent to the server as
45171	// null. It is an error if a field in this list has a non-empty value.
45172	// This may be used to include null fields in Patch requests.
45173	NullFields []string `json:"-"`
45174}
45175
45176func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
45177	type NoMethod TargetInstancesScopedListWarningData
45178	raw := NoMethod(*s)
45179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45180}
45181
45182// TargetPool: Represents a Target Pool resource. Target pools are used
45183// for network TCP/UDP load balancing. A target pool references member
45184// instances, an associated legacy HttpHealthCheck resource, and,
45185// optionally, a backup target pool. For more information, read Using
45186// target pools.
45187type TargetPool struct {
45188	// BackupPool: The server-defined URL for the resource. This field is
45189	// applicable only when the containing target pool is serving a
45190	// forwarding rule as the primary pool, and its failoverRatio field is
45191	// properly set to a value between [0, 1]. backupPool and failoverRatio
45192	// together define the fallback behavior of the primary target pool: if
45193	// the ratio of the healthy instances in the primary pool is at or below
45194	// failoverRatio, traffic arriving at the load-balanced IP will be
45195	// directed to the backup pool. In case where failoverRatio and
45196	// backupPool are not set, or all the instances in the backup pool are
45197	// unhealthy, the traffic will be directed back to the primary pool in
45198	// the "force" mode, where traffic will be spread to the healthy
45199	// instances with the best effort, or to all instances when no instance
45200	// is healthy.
45201	BackupPool string `json:"backupPool,omitempty"`
45202
45203	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45204	// format.
45205	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45206
45207	// Description: An optional description of this resource. Provide this
45208	// property when you create the resource.
45209	Description string `json:"description,omitempty"`
45210
45211	// FailoverRatio: This field is applicable only when the containing
45212	// target pool is serving a forwarding rule as the primary pool (i.e.,
45213	// not as a backup pool to some other target pool). The value of the
45214	// field must be in [0, 1]. If set, backupPool must also be set. They
45215	// together define the fallback behavior of the primary target pool: if
45216	// the ratio of the healthy instances in the primary pool is at or below
45217	// this number, traffic arriving at the load-balanced IP will be
45218	// directed to the backup pool. In case where failoverRatio is not set
45219	// or all the instances in the backup pool are unhealthy, the traffic
45220	// will be directed back to the primary pool in the "force" mode, where
45221	// traffic will be spread to the healthy instances with the best effort,
45222	// or to all instances when no instance is healthy.
45223	FailoverRatio float64 `json:"failoverRatio,omitempty"`
45224
45225	// HealthChecks: The URL of the HttpHealthCheck resource. A member
45226	// instance in this pool is considered healthy if and only if the health
45227	// checks pass. Only legacy HttpHealthChecks are supported. Only one
45228	// health check may be specified.
45229	HealthChecks []string `json:"healthChecks,omitempty"`
45230
45231	// Id: [Output Only] The unique identifier for the resource. This
45232	// identifier is defined by the server.
45233	Id uint64 `json:"id,omitempty,string"`
45234
45235	// Instances: A list of resource URLs to the virtual machine instances
45236	// serving this pool. They must live in zones contained in the same
45237	// region as this pool.
45238	Instances []string `json:"instances,omitempty"`
45239
45240	// Kind: [Output Only] Type of the resource. Always compute#targetPool
45241	// for target pools.
45242	Kind string `json:"kind,omitempty"`
45243
45244	// Name: Name of the resource. Provided by the client when the resource
45245	// is created. The name must be 1-63 characters long, and comply with
45246	// RFC1035. Specifically, the name must be 1-63 characters long and
45247	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45248	// the first character must be a lowercase letter, and all following
45249	// characters must be a dash, lowercase letter, or digit, except the
45250	// last character, which cannot be a dash.
45251	Name string `json:"name,omitempty"`
45252
45253	// Region: [Output Only] URL of the region where the target pool
45254	// resides.
45255	Region string `json:"region,omitempty"`
45256
45257	// SelfLink: [Output Only] Server-defined URL for the resource.
45258	SelfLink string `json:"selfLink,omitempty"`
45259
45260	// SessionAffinity: Session affinity option, must be one of the
45261	// following values: NONE: Connections from the same client IP may go to
45262	// any instance in the pool. CLIENT_IP: Connections from the same client
45263	// IP will go to the same instance in the pool while that instance
45264	// remains healthy. CLIENT_IP_PROTO: Connections from the same client IP
45265	// with the same IP protocol will go to the same instance in the pool
45266	// while that instance remains healthy.
45267	//
45268	// Possible values:
45269	//   "CLIENT_IP" - 2-tuple hash on packet's source and destination IP
45270	// addresses. Connections from the same source IP address to the same
45271	// destination IP address will be served by the same backend VM while
45272	// that VM remains healthy.
45273	//   "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source
45274	// IP address. Connections from the same source IP address will be
45275	// served by the same backend VM while that VM remains healthy. This
45276	// option can only be used for Internal TCP/UDP Load Balancing.
45277	//   "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and
45278	// destination IP addresses, IP protocol, and source and destination
45279	// ports. Connections for the same IP protocol from the same source IP
45280	// address and port to the same destination IP address and port will be
45281	// served by the same backend VM while that VM remains healthy. This
45282	// option cannot be used for HTTP(S) load balancing.
45283	//   "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination
45284	// IP addresses, and IP protocol. Connections for the same IP protocol
45285	// from the same source IP address to the same destination IP address
45286	// will be served by the same backend VM while that VM remains healthy.
45287	// This option cannot be used for HTTP(S) load balancing.
45288	//   "GENERATED_COOKIE" - Hash based on a cookie generated by the L7
45289	// loadbalancer. Only valid for HTTP(S) load balancing.
45290	//   "HEADER_FIELD" - The hash is based on a user specified header
45291	// field.
45292	//   "HTTP_COOKIE" - The hash is based on a user provided cookie.
45293	//   "NONE" - No session affinity. Connections from the same client IP
45294	// may go to any instance in the pool.
45295	SessionAffinity string `json:"sessionAffinity,omitempty"`
45296
45297	// ServerResponse contains the HTTP response code and headers from the
45298	// server.
45299	googleapi.ServerResponse `json:"-"`
45300
45301	// ForceSendFields is a list of field names (e.g. "BackupPool") to
45302	// unconditionally include in API requests. By default, fields with
45303	// empty or default values are omitted from API requests. However, any
45304	// non-pointer, non-interface field appearing in ForceSendFields will be
45305	// sent to the server regardless of whether the field is empty or not.
45306	// This may be used to include empty fields in Patch requests.
45307	ForceSendFields []string `json:"-"`
45308
45309	// NullFields is a list of field names (e.g. "BackupPool") to include in
45310	// API requests with the JSON null value. By default, fields with empty
45311	// values are omitted from API requests. However, any field with an
45312	// empty value appearing in NullFields will be sent to the server as
45313	// null. It is an error if a field in this list has a non-empty value.
45314	// This may be used to include null fields in Patch requests.
45315	NullFields []string `json:"-"`
45316}
45317
45318func (s *TargetPool) MarshalJSON() ([]byte, error) {
45319	type NoMethod TargetPool
45320	raw := NoMethod(*s)
45321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45322}
45323
45324func (s *TargetPool) UnmarshalJSON(data []byte) error {
45325	type NoMethod TargetPool
45326	var s1 struct {
45327		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
45328		*NoMethod
45329	}
45330	s1.NoMethod = (*NoMethod)(s)
45331	if err := json.Unmarshal(data, &s1); err != nil {
45332		return err
45333	}
45334	s.FailoverRatio = float64(s1.FailoverRatio)
45335	return nil
45336}
45337
45338type TargetPoolAggregatedList struct {
45339	// Id: [Output Only] Unique identifier for the resource; defined by the
45340	// server.
45341	Id string `json:"id,omitempty"`
45342
45343	// Items: A list of TargetPool resources.
45344	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
45345
45346	// Kind: [Output Only] Type of resource. Always
45347	// compute#targetPoolAggregatedList for aggregated lists of target
45348	// pools.
45349	Kind string `json:"kind,omitempty"`
45350
45351	// NextPageToken: [Output Only] This token allows you to get the next
45352	// page of results for list requests. If the number of results is larger
45353	// than maxResults, use the nextPageToken as a value for the query
45354	// parameter pageToken in the next list request. Subsequent list
45355	// requests will have their own nextPageToken to continue paging through
45356	// the results.
45357	NextPageToken string `json:"nextPageToken,omitempty"`
45358
45359	// SelfLink: [Output Only] Server-defined URL for this resource.
45360	SelfLink string `json:"selfLink,omitempty"`
45361
45362	// Unreachables: [Output Only] Unreachable resources.
45363	Unreachables []string `json:"unreachables,omitempty"`
45364
45365	// Warning: [Output Only] Informational warning message.
45366	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
45367
45368	// ServerResponse contains the HTTP response code and headers from the
45369	// server.
45370	googleapi.ServerResponse `json:"-"`
45371
45372	// ForceSendFields is a list of field names (e.g. "Id") to
45373	// unconditionally include in API requests. By default, fields with
45374	// empty or default values are omitted from API requests. However, any
45375	// non-pointer, non-interface field appearing in ForceSendFields will be
45376	// sent to the server regardless of whether the field is empty or not.
45377	// This may be used to include empty fields in Patch requests.
45378	ForceSendFields []string `json:"-"`
45379
45380	// NullFields is a list of field names (e.g. "Id") to include in API
45381	// requests with the JSON null value. By default, fields with empty
45382	// values are omitted from API requests. However, any field with an
45383	// empty value appearing in NullFields will be sent to the server as
45384	// null. It is an error if a field in this list has a non-empty value.
45385	// This may be used to include null fields in Patch requests.
45386	NullFields []string `json:"-"`
45387}
45388
45389func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
45390	type NoMethod TargetPoolAggregatedList
45391	raw := NoMethod(*s)
45392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45393}
45394
45395// TargetPoolAggregatedListWarning: [Output Only] Informational warning
45396// message.
45397type TargetPoolAggregatedListWarning struct {
45398	// Code: [Output Only] A warning code, if applicable. For example,
45399	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45400	// the response.
45401	//
45402	// Possible values:
45403	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45404	// changes made by a failed operation.
45405	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45406	// created.
45407	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45408	// resources has a type marked as deprecated
45409	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45410	// that is larger than image size.
45411	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45412	// resources has a type marked as experimental
45413	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45414	// call
45415	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45416	// overridden. Deprecated unused field.
45417	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45418	// injected kernel, which is deprecated.
45419	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45420	// exceedingly large number of resources
45421	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45422	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45423	// not assigned to an instance on the network.
45424	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45425	// ip forward.
45426	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45427	// refers to an instance that does not exist.
45428	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45429	// URL refers to an instance that is not on the same network as the
45430	// route.
45431	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45432	// have a status of RUNNING.
45433	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45434	// continue the process despite the mentioned error.
45435	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45436	// page.
45437	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45438	// missing due to errors
45439	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45440	// that requires a TOS they have not accepted.
45441	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45442	// resource is in use.
45443	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45444	// auto-delete could not be deleted because they were in use.
45445	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45446	// ignored.
45447	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45448	// instance group manager is valid as such, but its application does not
45449	// make a lot of sense, because it allows only single instance in
45450	// instance group.
45451	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45452	// are present
45453	//   "UNREACHABLE" - A given scope cannot be reached.
45454	Code string `json:"code,omitempty"`
45455
45456	// Data: [Output Only] Metadata about this warning in key: value format.
45457	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45458	// }
45459	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
45460
45461	// Message: [Output Only] A human-readable description of the warning
45462	// code.
45463	Message string `json:"message,omitempty"`
45464
45465	// ForceSendFields is a list of field names (e.g. "Code") to
45466	// unconditionally include in API requests. By default, fields with
45467	// empty or default values are omitted from API requests. However, any
45468	// non-pointer, non-interface field appearing in ForceSendFields will be
45469	// sent to the server regardless of whether the field is empty or not.
45470	// This may be used to include empty fields in Patch requests.
45471	ForceSendFields []string `json:"-"`
45472
45473	// NullFields is a list of field names (e.g. "Code") to include in API
45474	// requests with the JSON null value. By default, fields with empty
45475	// values are omitted from API requests. However, any field with an
45476	// empty value appearing in NullFields will be sent to the server as
45477	// null. It is an error if a field in this list has a non-empty value.
45478	// This may be used to include null fields in Patch requests.
45479	NullFields []string `json:"-"`
45480}
45481
45482func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
45483	type NoMethod TargetPoolAggregatedListWarning
45484	raw := NoMethod(*s)
45485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45486}
45487
45488type TargetPoolAggregatedListWarningData struct {
45489	// Key: [Output Only] A key that provides more detail on the warning
45490	// being returned. For example, for warnings where there are no results
45491	// in a list request for a particular zone, this key might be scope and
45492	// the key value might be the zone name. Other examples might be a key
45493	// indicating a deprecated resource and a suggested replacement, or a
45494	// warning about invalid network settings (for example, if an instance
45495	// attempts to perform IP forwarding but is not enabled for IP
45496	// forwarding).
45497	Key string `json:"key,omitempty"`
45498
45499	// Value: [Output Only] A warning data value corresponding to the key.
45500	Value string `json:"value,omitempty"`
45501
45502	// ForceSendFields is a list of field names (e.g. "Key") to
45503	// unconditionally include in API requests. By default, fields with
45504	// empty or default values are omitted from API requests. However, any
45505	// non-pointer, non-interface field appearing in ForceSendFields will be
45506	// sent to the server regardless of whether the field is empty or not.
45507	// This may be used to include empty fields in Patch requests.
45508	ForceSendFields []string `json:"-"`
45509
45510	// NullFields is a list of field names (e.g. "Key") to include in API
45511	// requests with the JSON null value. By default, fields with empty
45512	// values are omitted from API requests. However, any field with an
45513	// empty value appearing in NullFields will be sent to the server as
45514	// null. It is an error if a field in this list has a non-empty value.
45515	// This may be used to include null fields in Patch requests.
45516	NullFields []string `json:"-"`
45517}
45518
45519func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45520	type NoMethod TargetPoolAggregatedListWarningData
45521	raw := NoMethod(*s)
45522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45523}
45524
45525type TargetPoolInstanceHealth struct {
45526	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
45527
45528	// Kind: [Output Only] Type of resource. Always
45529	// compute#targetPoolInstanceHealth when checking the health of an
45530	// instance.
45531	Kind string `json:"kind,omitempty"`
45532
45533	// ServerResponse contains the HTTP response code and headers from the
45534	// server.
45535	googleapi.ServerResponse `json:"-"`
45536
45537	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
45538	// unconditionally include in API requests. By default, fields with
45539	// empty or default values are omitted from API requests. However, any
45540	// non-pointer, non-interface field appearing in ForceSendFields will be
45541	// sent to the server regardless of whether the field is empty or not.
45542	// This may be used to include empty fields in Patch requests.
45543	ForceSendFields []string `json:"-"`
45544
45545	// NullFields is a list of field names (e.g. "HealthStatus") to include
45546	// in API requests with the JSON null value. By default, fields with
45547	// empty values are omitted from API requests. However, any field with
45548	// an empty value appearing in NullFields will be sent to the server as
45549	// null. It is an error if a field in this list has a non-empty value.
45550	// This may be used to include null fields in Patch requests.
45551	NullFields []string `json:"-"`
45552}
45553
45554func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
45555	type NoMethod TargetPoolInstanceHealth
45556	raw := NoMethod(*s)
45557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45558}
45559
45560// TargetPoolList: Contains a list of TargetPool resources.
45561type TargetPoolList struct {
45562	// Id: [Output Only] Unique identifier for the resource; defined by the
45563	// server.
45564	Id string `json:"id,omitempty"`
45565
45566	// Items: A list of TargetPool resources.
45567	Items []*TargetPool `json:"items,omitempty"`
45568
45569	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
45570	// for lists of target pools.
45571	Kind string `json:"kind,omitempty"`
45572
45573	// NextPageToken: [Output Only] This token allows you to get the next
45574	// page of results for list requests. If the number of results is larger
45575	// than maxResults, use the nextPageToken as a value for the query
45576	// parameter pageToken in the next list request. Subsequent list
45577	// requests will have their own nextPageToken to continue paging through
45578	// the results.
45579	NextPageToken string `json:"nextPageToken,omitempty"`
45580
45581	// SelfLink: [Output Only] Server-defined URL for this resource.
45582	SelfLink string `json:"selfLink,omitempty"`
45583
45584	// Warning: [Output Only] Informational warning message.
45585	Warning *TargetPoolListWarning `json:"warning,omitempty"`
45586
45587	// ServerResponse contains the HTTP response code and headers from the
45588	// server.
45589	googleapi.ServerResponse `json:"-"`
45590
45591	// ForceSendFields is a list of field names (e.g. "Id") to
45592	// unconditionally include in API requests. By default, fields with
45593	// empty or default values are omitted from API requests. However, any
45594	// non-pointer, non-interface field appearing in ForceSendFields will be
45595	// sent to the server regardless of whether the field is empty or not.
45596	// This may be used to include empty fields in Patch requests.
45597	ForceSendFields []string `json:"-"`
45598
45599	// NullFields is a list of field names (e.g. "Id") to include in API
45600	// requests with the JSON null value. By default, fields with empty
45601	// values are omitted from API requests. However, any field with an
45602	// empty value appearing in NullFields will be sent to the server as
45603	// null. It is an error if a field in this list has a non-empty value.
45604	// This may be used to include null fields in Patch requests.
45605	NullFields []string `json:"-"`
45606}
45607
45608func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
45609	type NoMethod TargetPoolList
45610	raw := NoMethod(*s)
45611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45612}
45613
45614// TargetPoolListWarning: [Output Only] Informational warning message.
45615type TargetPoolListWarning struct {
45616	// Code: [Output Only] A warning code, if applicable. For example,
45617	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45618	// the response.
45619	//
45620	// Possible values:
45621	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45622	// changes made by a failed operation.
45623	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45624	// created.
45625	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45626	// resources has a type marked as deprecated
45627	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45628	// that is larger than image size.
45629	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45630	// resources has a type marked as experimental
45631	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45632	// call
45633	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45634	// overridden. Deprecated unused field.
45635	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45636	// injected kernel, which is deprecated.
45637	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45638	// exceedingly large number of resources
45639	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45640	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45641	// not assigned to an instance on the network.
45642	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45643	// ip forward.
45644	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45645	// refers to an instance that does not exist.
45646	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45647	// URL refers to an instance that is not on the same network as the
45648	// route.
45649	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45650	// have a status of RUNNING.
45651	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45652	// continue the process despite the mentioned error.
45653	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45654	// page.
45655	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45656	// missing due to errors
45657	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45658	// that requires a TOS they have not accepted.
45659	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45660	// resource is in use.
45661	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45662	// auto-delete could not be deleted because they were in use.
45663	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45664	// ignored.
45665	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45666	// instance group manager is valid as such, but its application does not
45667	// make a lot of sense, because it allows only single instance in
45668	// instance group.
45669	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45670	// are present
45671	//   "UNREACHABLE" - A given scope cannot be reached.
45672	Code string `json:"code,omitempty"`
45673
45674	// Data: [Output Only] Metadata about this warning in key: value format.
45675	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45676	// }
45677	Data []*TargetPoolListWarningData `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 or default values are omitted from API requests. However, any
45686	// non-pointer, non-interface field appearing in ForceSendFields will be
45687	// sent to the server regardless of whether the field is empty or not.
45688	// This may be 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 *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
45701	type NoMethod TargetPoolListWarning
45702	raw := NoMethod(*s)
45703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45704}
45705
45706type TargetPoolListWarningData 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 or default values are omitted from API requests. However, any
45723	// non-pointer, non-interface field appearing in ForceSendFields will be
45724	// sent to the server regardless of whether the field is empty or not.
45725	// This may be 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 *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
45738	type NoMethod TargetPoolListWarningData
45739	raw := NoMethod(*s)
45740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45741}
45742
45743type TargetPoolsAddHealthCheckRequest struct {
45744	// HealthChecks: The HttpHealthCheck to add to the target pool.
45745	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
45746
45747	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
45748	// unconditionally include in API requests. By default, fields with
45749	// empty or default values are omitted from API requests. However, any
45750	// non-pointer, non-interface field appearing in ForceSendFields will be
45751	// sent to the server regardless of whether the field is empty or not.
45752	// This may be used to include empty fields in Patch requests.
45753	ForceSendFields []string `json:"-"`
45754
45755	// NullFields is a list of field names (e.g. "HealthChecks") to include
45756	// in API requests with the JSON null value. By default, fields with
45757	// empty values are omitted from API requests. However, any field with
45758	// an empty value appearing in NullFields will be sent to the server as
45759	// null. It is an error if a field in this list has a non-empty value.
45760	// This may be used to include null fields in Patch requests.
45761	NullFields []string `json:"-"`
45762}
45763
45764func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
45765	type NoMethod TargetPoolsAddHealthCheckRequest
45766	raw := NoMethod(*s)
45767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45768}
45769
45770type TargetPoolsAddInstanceRequest struct {
45771	// Instances: A full or partial URL to an instance to add to this target
45772	// pool. This can be a full or partial URL. For example, the following
45773	// are valid URLs: -
45774	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone
45775	// /instances/instance-name -
45776	// projects/project-id/zones/zone/instances/instance-name -
45777	// zones/zone/instances/instance-name
45778	Instances []*InstanceReference `json:"instances,omitempty"`
45779
45780	// ForceSendFields is a list of field names (e.g. "Instances") to
45781	// unconditionally include in API requests. By default, fields with
45782	// empty or default values are omitted from API requests. However, any
45783	// non-pointer, non-interface field appearing in ForceSendFields will be
45784	// sent to the server regardless of whether the field is empty or not.
45785	// This may be used to include empty fields in Patch requests.
45786	ForceSendFields []string `json:"-"`
45787
45788	// NullFields is a list of field names (e.g. "Instances") to include in
45789	// API requests with the JSON null value. By default, fields with empty
45790	// values are omitted from API requests. However, any field with an
45791	// empty value appearing in NullFields will be sent to the server as
45792	// null. It is an error if a field in this list has a non-empty value.
45793	// This may be used to include null fields in Patch requests.
45794	NullFields []string `json:"-"`
45795}
45796
45797func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
45798	type NoMethod TargetPoolsAddInstanceRequest
45799	raw := NoMethod(*s)
45800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45801}
45802
45803type TargetPoolsRemoveHealthCheckRequest struct {
45804	// HealthChecks: Health check URL to be removed. This can be a full or
45805	// valid partial URL. For example, the following are valid URLs: -
45806	// https://www.googleapis.com/compute/beta/projects/project
45807	// /global/httpHealthChecks/health-check -
45808	// projects/project/global/httpHealthChecks/health-check -
45809	// global/httpHealthChecks/health-check
45810	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
45811
45812	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
45813	// unconditionally include in API requests. By default, fields with
45814	// empty or default values are omitted from API requests. However, any
45815	// non-pointer, non-interface field appearing in ForceSendFields will be
45816	// sent to the server regardless of whether the field is empty or not.
45817	// This may be used to include empty fields in Patch requests.
45818	ForceSendFields []string `json:"-"`
45819
45820	// NullFields is a list of field names (e.g. "HealthChecks") to include
45821	// in API requests with the JSON null value. By default, fields with
45822	// empty values are omitted from API requests. However, any field with
45823	// an empty value appearing in NullFields will be sent to the server as
45824	// null. It is an error if a field in this list has a non-empty value.
45825	// This may be used to include null fields in Patch requests.
45826	NullFields []string `json:"-"`
45827}
45828
45829func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
45830	type NoMethod TargetPoolsRemoveHealthCheckRequest
45831	raw := NoMethod(*s)
45832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45833}
45834
45835type TargetPoolsRemoveInstanceRequest struct {
45836	// Instances: URLs of the instances to be removed from target pool.
45837	Instances []*InstanceReference `json:"instances,omitempty"`
45838
45839	// ForceSendFields is a list of field names (e.g. "Instances") to
45840	// unconditionally include in API requests. By default, fields with
45841	// empty or default values are omitted from API requests. However, any
45842	// non-pointer, non-interface field appearing in ForceSendFields will be
45843	// sent to the server regardless of whether the field is empty or not.
45844	// This may be used to include empty fields in Patch requests.
45845	ForceSendFields []string `json:"-"`
45846
45847	// NullFields is a list of field names (e.g. "Instances") to include in
45848	// API requests with the JSON null value. By default, fields with empty
45849	// values are omitted from API requests. However, any field with an
45850	// empty value appearing in NullFields will be sent to the server as
45851	// null. It is an error if a field in this list has a non-empty value.
45852	// This may be used to include null fields in Patch requests.
45853	NullFields []string `json:"-"`
45854}
45855
45856func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
45857	type NoMethod TargetPoolsRemoveInstanceRequest
45858	raw := NoMethod(*s)
45859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45860}
45861
45862type TargetPoolsScopedList struct {
45863	// TargetPools: A list of target pools contained in this scope.
45864	TargetPools []*TargetPool `json:"targetPools,omitempty"`
45865
45866	// Warning: Informational warning which replaces the list of addresses
45867	// when the list is empty.
45868	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
45869
45870	// ForceSendFields is a list of field names (e.g. "TargetPools") to
45871	// unconditionally include in API requests. By default, fields with
45872	// empty or default values are omitted from API requests. However, any
45873	// non-pointer, non-interface field appearing in ForceSendFields will be
45874	// sent to the server regardless of whether the field is empty or not.
45875	// This may be used to include empty fields in Patch requests.
45876	ForceSendFields []string `json:"-"`
45877
45878	// NullFields is a list of field names (e.g. "TargetPools") to include
45879	// in API requests with the JSON null value. By default, fields with
45880	// empty values are omitted from API requests. However, any field with
45881	// an empty value appearing in NullFields will be sent to the server as
45882	// null. It is an error if a field in this list has a non-empty value.
45883	// This may be used to include null fields in Patch requests.
45884	NullFields []string `json:"-"`
45885}
45886
45887func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
45888	type NoMethod TargetPoolsScopedList
45889	raw := NoMethod(*s)
45890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45891}
45892
45893// TargetPoolsScopedListWarning: Informational warning which replaces
45894// the list of addresses when the list is empty.
45895type TargetPoolsScopedListWarning struct {
45896	// Code: [Output Only] A warning code, if applicable. For example,
45897	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45898	// the response.
45899	//
45900	// Possible values:
45901	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45902	// changes made by a failed operation.
45903	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45904	// created.
45905	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45906	// resources has a type marked as deprecated
45907	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45908	// that is larger than image size.
45909	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45910	// resources has a type marked as experimental
45911	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45912	// call
45913	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45914	// overridden. Deprecated unused field.
45915	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45916	// injected kernel, which is deprecated.
45917	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45918	// exceedingly large number of resources
45919	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45920	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45921	// not assigned to an instance on the network.
45922	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45923	// ip forward.
45924	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45925	// refers to an instance that does not exist.
45926	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45927	// URL refers to an instance that is not on the same network as the
45928	// route.
45929	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45930	// have a status of RUNNING.
45931	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45932	// continue the process despite the mentioned error.
45933	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45934	// page.
45935	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45936	// missing due to errors
45937	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45938	// that requires a TOS they have not accepted.
45939	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45940	// resource is in use.
45941	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45942	// auto-delete could not be deleted because they were in use.
45943	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45944	// ignored.
45945	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45946	// instance group manager is valid as such, but its application does not
45947	// make a lot of sense, because it allows only single instance in
45948	// instance group.
45949	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45950	// are present
45951	//   "UNREACHABLE" - A given scope cannot be reached.
45952	Code string `json:"code,omitempty"`
45953
45954	// Data: [Output Only] Metadata about this warning in key: value format.
45955	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45956	// }
45957	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
45958
45959	// Message: [Output Only] A human-readable description of the warning
45960	// code.
45961	Message string `json:"message,omitempty"`
45962
45963	// ForceSendFields is a list of field names (e.g. "Code") to
45964	// unconditionally include in API requests. By default, fields with
45965	// empty or default values are omitted from API requests. However, any
45966	// non-pointer, non-interface field appearing in ForceSendFields will be
45967	// sent to the server regardless of whether the field is empty or not.
45968	// This may be used to include empty fields in Patch requests.
45969	ForceSendFields []string `json:"-"`
45970
45971	// NullFields is a list of field names (e.g. "Code") to include in API
45972	// requests with the JSON null value. By default, fields with empty
45973	// values are omitted from API requests. However, any field with an
45974	// empty value appearing in NullFields will be sent to the server as
45975	// null. It is an error if a field in this list has a non-empty value.
45976	// This may be used to include null fields in Patch requests.
45977	NullFields []string `json:"-"`
45978}
45979
45980func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
45981	type NoMethod TargetPoolsScopedListWarning
45982	raw := NoMethod(*s)
45983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45984}
45985
45986type TargetPoolsScopedListWarningData struct {
45987	// Key: [Output Only] A key that provides more detail on the warning
45988	// being returned. For example, for warnings where there are no results
45989	// in a list request for a particular zone, this key might be scope and
45990	// the key value might be the zone name. Other examples might be a key
45991	// indicating a deprecated resource and a suggested replacement, or a
45992	// warning about invalid network settings (for example, if an instance
45993	// attempts to perform IP forwarding but is not enabled for IP
45994	// forwarding).
45995	Key string `json:"key,omitempty"`
45996
45997	// Value: [Output Only] A warning data value corresponding to the key.
45998	Value string `json:"value,omitempty"`
45999
46000	// ForceSendFields is a list of field names (e.g. "Key") to
46001	// unconditionally include in API requests. By default, fields with
46002	// empty or default values are omitted from API requests. However, any
46003	// non-pointer, non-interface field appearing in ForceSendFields will be
46004	// sent to the server regardless of whether the field is empty or not.
46005	// This may be used to include empty fields in Patch requests.
46006	ForceSendFields []string `json:"-"`
46007
46008	// NullFields is a list of field names (e.g. "Key") to include in API
46009	// requests with the JSON null value. By default, fields with empty
46010	// values are omitted from API requests. However, any field with an
46011	// empty value appearing in NullFields will be sent to the server as
46012	// null. It is an error if a field in this list has a non-empty value.
46013	// This may be used to include null fields in Patch requests.
46014	NullFields []string `json:"-"`
46015}
46016
46017func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
46018	type NoMethod TargetPoolsScopedListWarningData
46019	raw := NoMethod(*s)
46020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46021}
46022
46023type TargetReference struct {
46024	Target string `json:"target,omitempty"`
46025
46026	// ForceSendFields is a list of field names (e.g. "Target") to
46027	// unconditionally include in API requests. By default, fields with
46028	// empty or default values are omitted from API requests. However, any
46029	// non-pointer, non-interface field appearing in ForceSendFields will be
46030	// sent to the server regardless of whether the field is empty or not.
46031	// This may be used to include empty fields in Patch requests.
46032	ForceSendFields []string `json:"-"`
46033
46034	// NullFields is a list of field names (e.g. "Target") to include in API
46035	// requests with the JSON null value. By default, fields with empty
46036	// values are omitted from API requests. However, any field with an
46037	// empty value appearing in NullFields will be sent to the server as
46038	// null. It is an error if a field in this list has a non-empty value.
46039	// This may be used to include null fields in Patch requests.
46040	NullFields []string `json:"-"`
46041}
46042
46043func (s *TargetReference) MarshalJSON() ([]byte, error) {
46044	type NoMethod TargetReference
46045	raw := NoMethod(*s)
46046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46047}
46048
46049type TargetSslProxiesSetBackendServiceRequest struct {
46050	// Service: The URL of the new BackendService resource for the
46051	// targetSslProxy.
46052	Service string `json:"service,omitempty"`
46053
46054	// ForceSendFields is a list of field names (e.g. "Service") to
46055	// unconditionally include in API requests. By default, fields with
46056	// empty or default values are omitted from API requests. However, any
46057	// non-pointer, non-interface field appearing in ForceSendFields will be
46058	// sent to the server regardless of whether the field is empty or not.
46059	// This may be used to include empty fields in Patch requests.
46060	ForceSendFields []string `json:"-"`
46061
46062	// NullFields is a list of field names (e.g. "Service") to include in
46063	// API requests with the JSON null value. By default, fields with empty
46064	// values are omitted from API requests. However, any field with an
46065	// empty value appearing in NullFields will be sent to the server as
46066	// null. It is an error if a field in this list has a non-empty value.
46067	// This may be used to include null fields in Patch requests.
46068	NullFields []string `json:"-"`
46069}
46070
46071func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
46072	type NoMethod TargetSslProxiesSetBackendServiceRequest
46073	raw := NoMethod(*s)
46074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46075}
46076
46077type TargetSslProxiesSetProxyHeaderRequest struct {
46078	// ProxyHeader: The new type of proxy header to append before sending
46079	// data to the backend. NONE or PROXY_V1 are allowed.
46080	//
46081	// Possible values:
46082	//   "NONE"
46083	//   "PROXY_V1"
46084	ProxyHeader string `json:"proxyHeader,omitempty"`
46085
46086	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
46087	// unconditionally include in API requests. By default, fields with
46088	// empty or default values are omitted from API requests. However, any
46089	// non-pointer, non-interface field appearing in ForceSendFields will be
46090	// sent to the server regardless of whether the field is empty or not.
46091	// This may be used to include empty fields in Patch requests.
46092	ForceSendFields []string `json:"-"`
46093
46094	// NullFields is a list of field names (e.g. "ProxyHeader") to include
46095	// in API requests with the JSON null value. By default, fields with
46096	// empty values are omitted from API requests. However, any field with
46097	// an empty value appearing in NullFields will be sent to the server as
46098	// null. It is an error if a field in this list has a non-empty value.
46099	// This may be used to include null fields in Patch requests.
46100	NullFields []string `json:"-"`
46101}
46102
46103func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
46104	type NoMethod TargetSslProxiesSetProxyHeaderRequest
46105	raw := NoMethod(*s)
46106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46107}
46108
46109type TargetSslProxiesSetSslCertificatesRequest struct {
46110	// SslCertificates: New set of URLs to SslCertificate resources to
46111	// associate with this TargetSslProxy. At least one SSL certificate must
46112	// be specified. Currently, you may specify up to 15 SSL certificates.
46113	SslCertificates []string `json:"sslCertificates,omitempty"`
46114
46115	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
46116	// unconditionally include in API requests. By default, fields with
46117	// empty or default values are omitted from API requests. However, any
46118	// non-pointer, non-interface field appearing in ForceSendFields will be
46119	// sent to the server regardless of whether the field is empty or not.
46120	// This may be used to include empty fields in Patch requests.
46121	ForceSendFields []string `json:"-"`
46122
46123	// NullFields is a list of field names (e.g. "SslCertificates") to
46124	// include in API requests with the JSON null value. By default, fields
46125	// with empty values are omitted from API requests. However, any field
46126	// with an empty value appearing in NullFields will be sent to the
46127	// server as null. It is an error if a field in this list has a
46128	// non-empty value. This may be used to include null fields in Patch
46129	// requests.
46130	NullFields []string `json:"-"`
46131}
46132
46133func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
46134	type NoMethod TargetSslProxiesSetSslCertificatesRequest
46135	raw := NoMethod(*s)
46136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46137}
46138
46139// TargetSslProxy: Represents a Target SSL Proxy resource. A target SSL
46140// proxy is a component of a SSL Proxy load balancer. Global forwarding
46141// rules reference a target SSL proxy, and the target proxy then
46142// references an external backend service. For more information, read
46143// Using Target Proxies.
46144type TargetSslProxy struct {
46145	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46146	// format.
46147	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46148
46149	// Description: An optional description of this resource. Provide this
46150	// property when you create the resource.
46151	Description string `json:"description,omitempty"`
46152
46153	// Id: [Output Only] The unique identifier for the resource. This
46154	// identifier is defined by the server.
46155	Id uint64 `json:"id,omitempty,string"`
46156
46157	// Kind: [Output Only] Type of the resource. Always
46158	// compute#targetSslProxy for target SSL proxies.
46159	Kind string `json:"kind,omitempty"`
46160
46161	// Name: Name of the resource. Provided by the client when the resource
46162	// is created. The name must be 1-63 characters long, and comply with
46163	// RFC1035. Specifically, the name must be 1-63 characters long and
46164	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46165	// the first character must be a lowercase letter, and all following
46166	// characters must be a dash, lowercase letter, or digit, except the
46167	// last character, which cannot be a dash.
46168	Name string `json:"name,omitempty"`
46169
46170	// ProxyHeader: Specifies the type of proxy header to append before
46171	// sending data to the backend, either NONE or PROXY_V1. The default is
46172	// NONE.
46173	//
46174	// Possible values:
46175	//   "NONE"
46176	//   "PROXY_V1"
46177	ProxyHeader string `json:"proxyHeader,omitempty"`
46178
46179	// SelfLink: [Output Only] Server-defined URL for the resource.
46180	SelfLink string `json:"selfLink,omitempty"`
46181
46182	// Service: URL to the BackendService resource.
46183	Service string `json:"service,omitempty"`
46184
46185	// SslCertificates: URLs to SslCertificate resources that are used to
46186	// authenticate connections to Backends. At least one SSL certificate
46187	// must be specified. Currently, you may specify up to 15 SSL
46188	// certificates. sslCertificates do not apply when the load balancing
46189	// scheme is set to INTERNAL_SELF_MANAGED.
46190	SslCertificates []string `json:"sslCertificates,omitempty"`
46191
46192	// SslPolicy: URL of SslPolicy resource that will be associated with the
46193	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
46194	// not have any SSL policy configured.
46195	SslPolicy string `json:"sslPolicy,omitempty"`
46196
46197	// ServerResponse contains the HTTP response code and headers from the
46198	// server.
46199	googleapi.ServerResponse `json:"-"`
46200
46201	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46202	// to unconditionally include in API requests. By default, fields with
46203	// empty or default values are omitted from API requests. However, any
46204	// non-pointer, non-interface field appearing in ForceSendFields will be
46205	// sent to the server regardless of whether the field is empty or not.
46206	// This may be used to include empty fields in Patch requests.
46207	ForceSendFields []string `json:"-"`
46208
46209	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46210	// include in API requests with the JSON null value. By default, fields
46211	// with empty values are omitted from API requests. However, any field
46212	// with an empty value appearing in NullFields will be sent to the
46213	// server as null. It is an error if a field in this list has a
46214	// non-empty value. This may be used to include null fields in Patch
46215	// requests.
46216	NullFields []string `json:"-"`
46217}
46218
46219func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
46220	type NoMethod TargetSslProxy
46221	raw := NoMethod(*s)
46222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46223}
46224
46225// TargetSslProxyList: Contains a list of TargetSslProxy resources.
46226type TargetSslProxyList struct {
46227	// Id: [Output Only] Unique identifier for the resource; defined by the
46228	// server.
46229	Id string `json:"id,omitempty"`
46230
46231	// Items: A list of TargetSslProxy resources.
46232	Items []*TargetSslProxy `json:"items,omitempty"`
46233
46234	// Kind: Type of resource.
46235	Kind string `json:"kind,omitempty"`
46236
46237	// NextPageToken: [Output Only] This token allows you to get the next
46238	// page of results for list requests. If the number of results is larger
46239	// than maxResults, use the nextPageToken as a value for the query
46240	// parameter pageToken in the next list request. Subsequent list
46241	// requests will have their own nextPageToken to continue paging through
46242	// the results.
46243	NextPageToken string `json:"nextPageToken,omitempty"`
46244
46245	// SelfLink: [Output Only] Server-defined URL for this resource.
46246	SelfLink string `json:"selfLink,omitempty"`
46247
46248	// Warning: [Output Only] Informational warning message.
46249	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
46250
46251	// ServerResponse contains the HTTP response code and headers from the
46252	// server.
46253	googleapi.ServerResponse `json:"-"`
46254
46255	// ForceSendFields is a list of field names (e.g. "Id") to
46256	// unconditionally include in API requests. By default, fields with
46257	// empty or default values are omitted from API requests. However, any
46258	// non-pointer, non-interface field appearing in ForceSendFields will be
46259	// sent to the server regardless of whether the field is empty or not.
46260	// This may be used to include empty fields in Patch requests.
46261	ForceSendFields []string `json:"-"`
46262
46263	// NullFields is a list of field names (e.g. "Id") to include in API
46264	// requests with the JSON null value. By default, fields with empty
46265	// values are omitted from API requests. However, any field with an
46266	// empty value appearing in NullFields will be sent to the server as
46267	// null. It is an error if a field in this list has a non-empty value.
46268	// This may be used to include null fields in Patch requests.
46269	NullFields []string `json:"-"`
46270}
46271
46272func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
46273	type NoMethod TargetSslProxyList
46274	raw := NoMethod(*s)
46275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46276}
46277
46278// TargetSslProxyListWarning: [Output Only] Informational warning
46279// message.
46280type TargetSslProxyListWarning struct {
46281	// Code: [Output Only] A warning code, if applicable. For example,
46282	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46283	// the response.
46284	//
46285	// Possible values:
46286	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46287	// changes made by a failed operation.
46288	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46289	// created.
46290	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46291	// resources has a type marked as deprecated
46292	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46293	// that is larger than image size.
46294	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46295	// resources has a type marked as experimental
46296	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46297	// call
46298	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46299	// overridden. Deprecated unused field.
46300	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46301	// injected kernel, which is deprecated.
46302	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46303	// exceedingly large number of resources
46304	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46305	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46306	// not assigned to an instance on the network.
46307	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46308	// ip forward.
46309	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46310	// refers to an instance that does not exist.
46311	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46312	// URL refers to an instance that is not on the same network as the
46313	// route.
46314	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46315	// have a status of RUNNING.
46316	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46317	// continue the process despite the mentioned error.
46318	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46319	// page.
46320	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46321	// missing due to errors
46322	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46323	// that requires a TOS they have not accepted.
46324	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46325	// resource is in use.
46326	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46327	// auto-delete could not be deleted because they were in use.
46328	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46329	// ignored.
46330	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46331	// instance group manager is valid as such, but its application does not
46332	// make a lot of sense, because it allows only single instance in
46333	// instance group.
46334	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46335	// are present
46336	//   "UNREACHABLE" - A given scope cannot be reached.
46337	Code string `json:"code,omitempty"`
46338
46339	// Data: [Output Only] Metadata about this warning in key: value format.
46340	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46341	// }
46342	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
46343
46344	// Message: [Output Only] A human-readable description of the warning
46345	// code.
46346	Message string `json:"message,omitempty"`
46347
46348	// ForceSendFields is a list of field names (e.g. "Code") to
46349	// unconditionally include in API requests. By default, fields with
46350	// empty or default values are omitted from API requests. However, any
46351	// non-pointer, non-interface field appearing in ForceSendFields will be
46352	// sent to the server regardless of whether the field is empty or not.
46353	// This may be used to include empty fields in Patch requests.
46354	ForceSendFields []string `json:"-"`
46355
46356	// NullFields is a list of field names (e.g. "Code") to include in API
46357	// requests with the JSON null value. By default, fields with empty
46358	// values are omitted from API requests. However, any field with an
46359	// empty value appearing in NullFields will be sent to the server as
46360	// null. It is an error if a field in this list has a non-empty value.
46361	// This may be used to include null fields in Patch requests.
46362	NullFields []string `json:"-"`
46363}
46364
46365func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
46366	type NoMethod TargetSslProxyListWarning
46367	raw := NoMethod(*s)
46368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46369}
46370
46371type TargetSslProxyListWarningData struct {
46372	// Key: [Output Only] A key that provides more detail on the warning
46373	// being returned. For example, for warnings where there are no results
46374	// in a list request for a particular zone, this key might be scope and
46375	// the key value might be the zone name. Other examples might be a key
46376	// indicating a deprecated resource and a suggested replacement, or a
46377	// warning about invalid network settings (for example, if an instance
46378	// attempts to perform IP forwarding but is not enabled for IP
46379	// forwarding).
46380	Key string `json:"key,omitempty"`
46381
46382	// Value: [Output Only] A warning data value corresponding to the key.
46383	Value string `json:"value,omitempty"`
46384
46385	// ForceSendFields is a list of field names (e.g. "Key") to
46386	// unconditionally include in API requests. By default, fields with
46387	// empty or default values are omitted from API requests. However, any
46388	// non-pointer, non-interface field appearing in ForceSendFields will be
46389	// sent to the server regardless of whether the field is empty or not.
46390	// This may be used to include empty fields in Patch requests.
46391	ForceSendFields []string `json:"-"`
46392
46393	// NullFields is a list of field names (e.g. "Key") to include in API
46394	// requests with the JSON null value. By default, fields with empty
46395	// values are omitted from API requests. However, any field with an
46396	// empty value appearing in NullFields will be sent to the server as
46397	// null. It is an error if a field in this list has a non-empty value.
46398	// This may be used to include null fields in Patch requests.
46399	NullFields []string `json:"-"`
46400}
46401
46402func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
46403	type NoMethod TargetSslProxyListWarningData
46404	raw := NoMethod(*s)
46405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46406}
46407
46408type TargetTcpProxiesSetBackendServiceRequest struct {
46409	// Service: The URL of the new BackendService resource for the
46410	// targetTcpProxy.
46411	Service string `json:"service,omitempty"`
46412
46413	// ForceSendFields is a list of field names (e.g. "Service") to
46414	// unconditionally include in API requests. By default, fields with
46415	// empty or default values are omitted from API requests. However, any
46416	// non-pointer, non-interface field appearing in ForceSendFields will be
46417	// sent to the server regardless of whether the field is empty or not.
46418	// This may be used to include empty fields in Patch requests.
46419	ForceSendFields []string `json:"-"`
46420
46421	// NullFields is a list of field names (e.g. "Service") to include in
46422	// API requests with the JSON null value. By default, fields with empty
46423	// values are omitted from API requests. However, any field with an
46424	// empty value appearing in NullFields will be sent to the server as
46425	// null. It is an error if a field in this list has a non-empty value.
46426	// This may be used to include null fields in Patch requests.
46427	NullFields []string `json:"-"`
46428}
46429
46430func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
46431	type NoMethod TargetTcpProxiesSetBackendServiceRequest
46432	raw := NoMethod(*s)
46433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46434}
46435
46436type TargetTcpProxiesSetProxyHeaderRequest struct {
46437	// ProxyHeader: The new type of proxy header to append before sending
46438	// data to the backend. NONE or PROXY_V1 are allowed.
46439	//
46440	// Possible values:
46441	//   "NONE"
46442	//   "PROXY_V1"
46443	ProxyHeader string `json:"proxyHeader,omitempty"`
46444
46445	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
46446	// unconditionally include in API requests. By default, fields with
46447	// empty or default values are omitted from API requests. However, any
46448	// non-pointer, non-interface field appearing in ForceSendFields will be
46449	// sent to the server regardless of whether the field is empty or not.
46450	// This may be used to include empty fields in Patch requests.
46451	ForceSendFields []string `json:"-"`
46452
46453	// NullFields is a list of field names (e.g. "ProxyHeader") to include
46454	// in API requests with the JSON null value. By default, fields with
46455	// empty values are omitted from API requests. However, any field with
46456	// an empty value appearing in NullFields will be sent to the server as
46457	// null. It is an error if a field in this list has a non-empty value.
46458	// This may be used to include null fields in Patch requests.
46459	NullFields []string `json:"-"`
46460}
46461
46462func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
46463	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
46464	raw := NoMethod(*s)
46465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46466}
46467
46468// TargetTcpProxy: Represents a Target TCP Proxy resource. A target TCP
46469// proxy is a component of a TCP Proxy load balancer. Global forwarding
46470// rules reference target TCP proxy, and the target proxy then
46471// references an external backend service. For more information, read
46472// TCP Proxy Load Balancing overview.
46473type TargetTcpProxy struct {
46474	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46475	// format.
46476	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46477
46478	// Description: An optional description of this resource. Provide this
46479	// property when you create the resource.
46480	Description string `json:"description,omitempty"`
46481
46482	// Id: [Output Only] The unique identifier for the resource. This
46483	// identifier is defined by the server.
46484	Id uint64 `json:"id,omitempty,string"`
46485
46486	// Kind: [Output Only] Type of the resource. Always
46487	// compute#targetTcpProxy for target TCP proxies.
46488	Kind string `json:"kind,omitempty"`
46489
46490	// Name: Name of the resource. Provided by the client when the resource
46491	// is created. The name must be 1-63 characters long, and comply with
46492	// RFC1035. Specifically, the name must be 1-63 characters long and
46493	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46494	// the first character must be a lowercase letter, and all following
46495	// characters must be a dash, lowercase letter, or digit, except the
46496	// last character, which cannot be a dash.
46497	Name string `json:"name,omitempty"`
46498
46499	// ProxyBind: This field only applies when the forwarding rule that
46500	// references this target proxy has a loadBalancingScheme set to
46501	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
46502	// set up inbound traffic interception and bind to the IP address and
46503	// port specified in the forwarding rule. This is generally useful when
46504	// using Traffic Director to configure Envoy as a gateway or middle
46505	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
46506	// for inbound requests and handles requests when it receives them. The
46507	// default is false.
46508	ProxyBind bool `json:"proxyBind,omitempty"`
46509
46510	// ProxyHeader: Specifies the type of proxy header to append before
46511	// sending data to the backend, either NONE or PROXY_V1. The default is
46512	// NONE.
46513	//
46514	// Possible values:
46515	//   "NONE"
46516	//   "PROXY_V1"
46517	ProxyHeader string `json:"proxyHeader,omitempty"`
46518
46519	// SelfLink: [Output Only] Server-defined URL for the resource.
46520	SelfLink string `json:"selfLink,omitempty"`
46521
46522	// Service: URL to the BackendService resource.
46523	Service string `json:"service,omitempty"`
46524
46525	// ServerResponse contains the HTTP response code and headers from the
46526	// server.
46527	googleapi.ServerResponse `json:"-"`
46528
46529	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46530	// to unconditionally include in API requests. By default, fields with
46531	// empty or default values are omitted from API requests. However, any
46532	// non-pointer, non-interface field appearing in ForceSendFields will be
46533	// sent to the server regardless of whether the field is empty or not.
46534	// This may be used to include empty fields in Patch requests.
46535	ForceSendFields []string `json:"-"`
46536
46537	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46538	// include in API requests with the JSON null value. By default, fields
46539	// with empty values are omitted from API requests. However, any field
46540	// with an empty value appearing in NullFields will be sent to the
46541	// server as null. It is an error if a field in this list has a
46542	// non-empty value. This may be used to include null fields in Patch
46543	// requests.
46544	NullFields []string `json:"-"`
46545}
46546
46547func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
46548	type NoMethod TargetTcpProxy
46549	raw := NoMethod(*s)
46550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46551}
46552
46553// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
46554type TargetTcpProxyList struct {
46555	// Id: [Output Only] Unique identifier for the resource; defined by the
46556	// server.
46557	Id string `json:"id,omitempty"`
46558
46559	// Items: A list of TargetTcpProxy resources.
46560	Items []*TargetTcpProxy `json:"items,omitempty"`
46561
46562	// Kind: Type of resource.
46563	Kind string `json:"kind,omitempty"`
46564
46565	// NextPageToken: [Output Only] This token allows you to get the next
46566	// page of results for list requests. If the number of results is larger
46567	// than maxResults, use the nextPageToken as a value for the query
46568	// parameter pageToken in the next list request. Subsequent list
46569	// requests will have their own nextPageToken to continue paging through
46570	// the results.
46571	NextPageToken string `json:"nextPageToken,omitempty"`
46572
46573	// SelfLink: [Output Only] Server-defined URL for this resource.
46574	SelfLink string `json:"selfLink,omitempty"`
46575
46576	// Warning: [Output Only] Informational warning message.
46577	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
46578
46579	// ServerResponse contains the HTTP response code and headers from the
46580	// server.
46581	googleapi.ServerResponse `json:"-"`
46582
46583	// ForceSendFields is a list of field names (e.g. "Id") to
46584	// unconditionally include in API requests. By default, fields with
46585	// empty or default values are omitted from API requests. However, any
46586	// non-pointer, non-interface field appearing in ForceSendFields will be
46587	// sent to the server regardless of whether the field is empty or not.
46588	// This may be used to include empty fields in Patch requests.
46589	ForceSendFields []string `json:"-"`
46590
46591	// NullFields is a list of field names (e.g. "Id") to include in API
46592	// requests with the JSON null value. By default, fields with empty
46593	// values are omitted from API requests. However, any field with an
46594	// empty value appearing in NullFields will be sent to the server as
46595	// null. It is an error if a field in this list has a non-empty value.
46596	// This may be used to include null fields in Patch requests.
46597	NullFields []string `json:"-"`
46598}
46599
46600func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
46601	type NoMethod TargetTcpProxyList
46602	raw := NoMethod(*s)
46603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46604}
46605
46606// TargetTcpProxyListWarning: [Output Only] Informational warning
46607// message.
46608type TargetTcpProxyListWarning struct {
46609	// Code: [Output Only] A warning code, if applicable. For example,
46610	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46611	// the response.
46612	//
46613	// Possible values:
46614	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46615	// changes made by a failed operation.
46616	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46617	// created.
46618	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46619	// resources has a type marked as deprecated
46620	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46621	// that is larger than image size.
46622	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46623	// resources has a type marked as experimental
46624	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46625	// call
46626	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46627	// overridden. Deprecated unused field.
46628	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46629	// injected kernel, which is deprecated.
46630	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46631	// exceedingly large number of resources
46632	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46633	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46634	// not assigned to an instance on the network.
46635	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46636	// ip forward.
46637	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46638	// refers to an instance that does not exist.
46639	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46640	// URL refers to an instance that is not on the same network as the
46641	// route.
46642	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46643	// have a status of RUNNING.
46644	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46645	// continue the process despite the mentioned error.
46646	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46647	// page.
46648	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46649	// missing due to errors
46650	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46651	// that requires a TOS they have not accepted.
46652	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46653	// resource is in use.
46654	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46655	// auto-delete could not be deleted because they were in use.
46656	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46657	// ignored.
46658	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46659	// instance group manager is valid as such, but its application does not
46660	// make a lot of sense, because it allows only single instance in
46661	// instance group.
46662	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46663	// are present
46664	//   "UNREACHABLE" - A given scope cannot be reached.
46665	Code string `json:"code,omitempty"`
46666
46667	// Data: [Output Only] Metadata about this warning in key: value format.
46668	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46669	// }
46670	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
46671
46672	// Message: [Output Only] A human-readable description of the warning
46673	// code.
46674	Message string `json:"message,omitempty"`
46675
46676	// ForceSendFields is a list of field names (e.g. "Code") to
46677	// unconditionally include in API requests. By default, fields with
46678	// empty or default values are omitted from API requests. However, any
46679	// non-pointer, non-interface field appearing in ForceSendFields will be
46680	// sent to the server regardless of whether the field is empty or not.
46681	// This may be used to include empty fields in Patch requests.
46682	ForceSendFields []string `json:"-"`
46683
46684	// NullFields is a list of field names (e.g. "Code") to include in API
46685	// requests with the JSON null value. By default, fields with empty
46686	// values are omitted from API requests. However, any field with an
46687	// empty value appearing in NullFields will be sent to the server as
46688	// null. It is an error if a field in this list has a non-empty value.
46689	// This may be used to include null fields in Patch requests.
46690	NullFields []string `json:"-"`
46691}
46692
46693func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
46694	type NoMethod TargetTcpProxyListWarning
46695	raw := NoMethod(*s)
46696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46697}
46698
46699type TargetTcpProxyListWarningData struct {
46700	// Key: [Output Only] A key that provides more detail on the warning
46701	// being returned. For example, for warnings where there are no results
46702	// in a list request for a particular zone, this key might be scope and
46703	// the key value might be the zone name. Other examples might be a key
46704	// indicating a deprecated resource and a suggested replacement, or a
46705	// warning about invalid network settings (for example, if an instance
46706	// attempts to perform IP forwarding but is not enabled for IP
46707	// forwarding).
46708	Key string `json:"key,omitempty"`
46709
46710	// Value: [Output Only] A warning data value corresponding to the key.
46711	Value string `json:"value,omitempty"`
46712
46713	// ForceSendFields is a list of field names (e.g. "Key") to
46714	// unconditionally include in API requests. By default, fields with
46715	// empty or default values are omitted from API requests. However, any
46716	// non-pointer, non-interface field appearing in ForceSendFields will be
46717	// sent to the server regardless of whether the field is empty or not.
46718	// This may be used to include empty fields in Patch requests.
46719	ForceSendFields []string `json:"-"`
46720
46721	// NullFields is a list of field names (e.g. "Key") to include in API
46722	// requests with the JSON null value. By default, fields with empty
46723	// values are omitted from API requests. However, any field with an
46724	// empty value appearing in NullFields will be sent to the server as
46725	// null. It is an error if a field in this list has a non-empty value.
46726	// This may be used to include null fields in Patch requests.
46727	NullFields []string `json:"-"`
46728}
46729
46730func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
46731	type NoMethod TargetTcpProxyListWarningData
46732	raw := NoMethod(*s)
46733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46734}
46735
46736// TargetVpnGateway: Represents a Target VPN Gateway resource. The
46737// target VPN gateway resource represents a Classic Cloud VPN gateway.
46738// For more information, read the the Cloud VPN Overview.
46739type TargetVpnGateway struct {
46740	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46741	// format.
46742	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46743
46744	// Description: An optional description of this resource. Provide this
46745	// property when you create the resource.
46746	Description string `json:"description,omitempty"`
46747
46748	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
46749	// resources. ForwardingRules are created using
46750	// compute.forwardingRules.insert and associated with a VPN gateway.
46751	ForwardingRules []string `json:"forwardingRules,omitempty"`
46752
46753	// Id: [Output Only] The unique identifier for the resource. This
46754	// identifier is defined by the server.
46755	Id uint64 `json:"id,omitempty,string"`
46756
46757	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46758	// for target VPN gateways.
46759	Kind string `json:"kind,omitempty"`
46760
46761	// Name: Name of the resource. Provided by the client when the resource
46762	// is created. The name must be 1-63 characters long, and comply with
46763	// RFC1035. Specifically, the name must be 1-63 characters long and
46764	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46765	// the first character must be a lowercase letter, and all following
46766	// characters must be a dash, lowercase letter, or digit, except the
46767	// last character, which cannot be a dash.
46768	Name string `json:"name,omitempty"`
46769
46770	// Network: URL of the network to which this VPN gateway is attached.
46771	// Provided by the client when the VPN gateway is created.
46772	Network string `json:"network,omitempty"`
46773
46774	// Region: [Output Only] URL of the region where the target VPN gateway
46775	// resides. You must specify this field as part of the HTTP request URL.
46776	// It is not settable as a field in the request body.
46777	Region string `json:"region,omitempty"`
46778
46779	// SelfLink: [Output Only] Server-defined URL for the resource.
46780	SelfLink string `json:"selfLink,omitempty"`
46781
46782	// Status: [Output Only] The status of the VPN gateway, which can be one
46783	// of the following: CREATING, READY, FAILED, or DELETING.
46784	//
46785	// Possible values:
46786	//   "CREATING"
46787	//   "DELETING"
46788	//   "FAILED"
46789	//   "READY"
46790	Status string `json:"status,omitempty"`
46791
46792	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
46793	// VpnTunnels are created using the compute.vpntunnels.insert method and
46794	// associated with a VPN gateway.
46795	Tunnels []string `json:"tunnels,omitempty"`
46796
46797	// ServerResponse contains the HTTP response code and headers from the
46798	// server.
46799	googleapi.ServerResponse `json:"-"`
46800
46801	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46802	// to unconditionally include in API requests. By default, fields with
46803	// empty or default values are omitted from API requests. However, any
46804	// non-pointer, non-interface field appearing in ForceSendFields will be
46805	// sent to the server regardless of whether the field is empty or not.
46806	// This may be used to include empty fields in Patch requests.
46807	ForceSendFields []string `json:"-"`
46808
46809	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46810	// include in API requests with the JSON null value. By default, fields
46811	// with empty values are omitted from API requests. However, any field
46812	// with an empty value appearing in NullFields will be sent to the
46813	// server as null. It is an error if a field in this list has a
46814	// non-empty value. This may be used to include null fields in Patch
46815	// requests.
46816	NullFields []string `json:"-"`
46817}
46818
46819func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
46820	type NoMethod TargetVpnGateway
46821	raw := NoMethod(*s)
46822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46823}
46824
46825type TargetVpnGatewayAggregatedList struct {
46826	// Id: [Output Only] Unique identifier for the resource; defined by the
46827	// server.
46828	Id string `json:"id,omitempty"`
46829
46830	// Items: A list of TargetVpnGateway resources.
46831	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
46832
46833	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46834	// for target VPN gateways.
46835	Kind string `json:"kind,omitempty"`
46836
46837	// NextPageToken: [Output Only] This token allows you to get the next
46838	// page of results for list requests. If the number of results is larger
46839	// than maxResults, use the nextPageToken as a value for the query
46840	// parameter pageToken in the next list request. Subsequent list
46841	// requests will have their own nextPageToken to continue paging through
46842	// the results.
46843	NextPageToken string `json:"nextPageToken,omitempty"`
46844
46845	// SelfLink: [Output Only] Server-defined URL for this resource.
46846	SelfLink string `json:"selfLink,omitempty"`
46847
46848	// Unreachables: [Output Only] Unreachable resources.
46849	Unreachables []string `json:"unreachables,omitempty"`
46850
46851	// Warning: [Output Only] Informational warning message.
46852	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
46853
46854	// ServerResponse contains the HTTP response code and headers from the
46855	// server.
46856	googleapi.ServerResponse `json:"-"`
46857
46858	// ForceSendFields is a list of field names (e.g. "Id") to
46859	// unconditionally include in API requests. By default, fields with
46860	// empty or default values are omitted from API requests. However, any
46861	// non-pointer, non-interface field appearing in ForceSendFields will be
46862	// sent to the server regardless of whether the field is empty or not.
46863	// This may be used to include empty fields in Patch requests.
46864	ForceSendFields []string `json:"-"`
46865
46866	// NullFields is a list of field names (e.g. "Id") to include in API
46867	// requests with the JSON null value. By default, fields with empty
46868	// values are omitted from API requests. However, any field with an
46869	// empty value appearing in NullFields will be sent to the server as
46870	// null. It is an error if a field in this list has a non-empty value.
46871	// This may be used to include null fields in Patch requests.
46872	NullFields []string `json:"-"`
46873}
46874
46875func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
46876	type NoMethod TargetVpnGatewayAggregatedList
46877	raw := NoMethod(*s)
46878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46879}
46880
46881// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
46882// warning message.
46883type TargetVpnGatewayAggregatedListWarning struct {
46884	// Code: [Output Only] A warning code, if applicable. For example,
46885	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46886	// the response.
46887	//
46888	// Possible values:
46889	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46890	// changes made by a failed operation.
46891	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46892	// created.
46893	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46894	// resources has a type marked as deprecated
46895	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46896	// that is larger than image size.
46897	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46898	// resources has a type marked as experimental
46899	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46900	// call
46901	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46902	// overridden. Deprecated unused field.
46903	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46904	// injected kernel, which is deprecated.
46905	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46906	// exceedingly large number of resources
46907	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46908	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46909	// not assigned to an instance on the network.
46910	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46911	// ip forward.
46912	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46913	// refers to an instance that does not exist.
46914	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46915	// URL refers to an instance that is not on the same network as the
46916	// route.
46917	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46918	// have a status of RUNNING.
46919	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46920	// continue the process despite the mentioned error.
46921	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46922	// page.
46923	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46924	// missing due to errors
46925	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46926	// that requires a TOS they have not accepted.
46927	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46928	// resource is in use.
46929	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46930	// auto-delete could not be deleted because they were in use.
46931	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46932	// ignored.
46933	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46934	// instance group manager is valid as such, but its application does not
46935	// make a lot of sense, because it allows only single instance in
46936	// instance group.
46937	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46938	// are present
46939	//   "UNREACHABLE" - A given scope cannot be reached.
46940	Code string `json:"code,omitempty"`
46941
46942	// Data: [Output Only] Metadata about this warning in key: value format.
46943	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46944	// }
46945	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
46946
46947	// Message: [Output Only] A human-readable description of the warning
46948	// code.
46949	Message string `json:"message,omitempty"`
46950
46951	// ForceSendFields is a list of field names (e.g. "Code") to
46952	// unconditionally include in API requests. By default, fields with
46953	// empty or default values are omitted from API requests. However, any
46954	// non-pointer, non-interface field appearing in ForceSendFields will be
46955	// sent to the server regardless of whether the field is empty or not.
46956	// This may be used to include empty fields in Patch requests.
46957	ForceSendFields []string `json:"-"`
46958
46959	// NullFields is a list of field names (e.g. "Code") to include in API
46960	// requests with the JSON null value. By default, fields with empty
46961	// values are omitted from API requests. However, any field with an
46962	// empty value appearing in NullFields will be sent to the server as
46963	// null. It is an error if a field in this list has a non-empty value.
46964	// This may be used to include null fields in Patch requests.
46965	NullFields []string `json:"-"`
46966}
46967
46968func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
46969	type NoMethod TargetVpnGatewayAggregatedListWarning
46970	raw := NoMethod(*s)
46971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46972}
46973
46974type TargetVpnGatewayAggregatedListWarningData struct {
46975	// Key: [Output Only] A key that provides more detail on the warning
46976	// being returned. For example, for warnings where there are no results
46977	// in a list request for a particular zone, this key might be scope and
46978	// the key value might be the zone name. Other examples might be a key
46979	// indicating a deprecated resource and a suggested replacement, or a
46980	// warning about invalid network settings (for example, if an instance
46981	// attempts to perform IP forwarding but is not enabled for IP
46982	// forwarding).
46983	Key string `json:"key,omitempty"`
46984
46985	// Value: [Output Only] A warning data value corresponding to the key.
46986	Value string `json:"value,omitempty"`
46987
46988	// ForceSendFields is a list of field names (e.g. "Key") to
46989	// unconditionally include in API requests. By default, fields with
46990	// empty or default values are omitted from API requests. However, any
46991	// non-pointer, non-interface field appearing in ForceSendFields will be
46992	// sent to the server regardless of whether the field is empty or not.
46993	// This may be used to include empty fields in Patch requests.
46994	ForceSendFields []string `json:"-"`
46995
46996	// NullFields is a list of field names (e.g. "Key") to include in API
46997	// requests with the JSON null value. By default, fields with empty
46998	// values are omitted from API requests. However, any field with an
46999	// empty value appearing in NullFields will be sent to the server as
47000	// null. It is an error if a field in this list has a non-empty value.
47001	// This may be used to include null fields in Patch requests.
47002	NullFields []string `json:"-"`
47003}
47004
47005func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47006	type NoMethod TargetVpnGatewayAggregatedListWarningData
47007	raw := NoMethod(*s)
47008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47009}
47010
47011// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
47012type TargetVpnGatewayList struct {
47013	// Id: [Output Only] Unique identifier for the resource; defined by the
47014	// server.
47015	Id string `json:"id,omitempty"`
47016
47017	// Items: A list of TargetVpnGateway resources.
47018	Items []*TargetVpnGateway `json:"items,omitempty"`
47019
47020	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
47021	// for target VPN gateways.
47022	Kind string `json:"kind,omitempty"`
47023
47024	// NextPageToken: [Output Only] This token allows you to get the next
47025	// page of results for list requests. If the number of results is larger
47026	// than maxResults, use the nextPageToken as a value for the query
47027	// parameter pageToken in the next list request. Subsequent list
47028	// requests will have their own nextPageToken to continue paging through
47029	// the results.
47030	NextPageToken string `json:"nextPageToken,omitempty"`
47031
47032	// SelfLink: [Output Only] Server-defined URL for this resource.
47033	SelfLink string `json:"selfLink,omitempty"`
47034
47035	// Warning: [Output Only] Informational warning message.
47036	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
47037
47038	// ServerResponse contains the HTTP response code and headers from the
47039	// server.
47040	googleapi.ServerResponse `json:"-"`
47041
47042	// ForceSendFields is a list of field names (e.g. "Id") to
47043	// unconditionally include in API requests. By default, fields with
47044	// empty or default values are omitted from API requests. However, any
47045	// non-pointer, non-interface field appearing in ForceSendFields will be
47046	// sent to the server regardless of whether the field is empty or not.
47047	// This may be used to include empty fields in Patch requests.
47048	ForceSendFields []string `json:"-"`
47049
47050	// NullFields is a list of field names (e.g. "Id") to include in API
47051	// requests with the JSON null value. By default, fields with empty
47052	// values are omitted from API requests. However, any field with an
47053	// empty value appearing in NullFields will be sent to the server as
47054	// null. It is an error if a field in this list has a non-empty value.
47055	// This may be used to include null fields in Patch requests.
47056	NullFields []string `json:"-"`
47057}
47058
47059func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
47060	type NoMethod TargetVpnGatewayList
47061	raw := NoMethod(*s)
47062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47063}
47064
47065// TargetVpnGatewayListWarning: [Output Only] Informational warning
47066// message.
47067type TargetVpnGatewayListWarning struct {
47068	// Code: [Output Only] A warning code, if applicable. For example,
47069	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47070	// the response.
47071	//
47072	// Possible values:
47073	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47074	// changes made by a failed operation.
47075	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47076	// created.
47077	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47078	// resources has a type marked as deprecated
47079	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47080	// that is larger than image size.
47081	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47082	// resources has a type marked as experimental
47083	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47084	// call
47085	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47086	// overridden. Deprecated unused field.
47087	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47088	// injected kernel, which is deprecated.
47089	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47090	// exceedingly large number of resources
47091	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47092	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47093	// not assigned to an instance on the network.
47094	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47095	// ip forward.
47096	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47097	// refers to an instance that does not exist.
47098	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47099	// URL refers to an instance that is not on the same network as the
47100	// route.
47101	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47102	// have a status of RUNNING.
47103	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47104	// continue the process despite the mentioned error.
47105	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47106	// page.
47107	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47108	// missing due to errors
47109	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47110	// that requires a TOS they have not accepted.
47111	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47112	// resource is in use.
47113	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47114	// auto-delete could not be deleted because they were in use.
47115	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47116	// ignored.
47117	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47118	// instance group manager is valid as such, but its application does not
47119	// make a lot of sense, because it allows only single instance in
47120	// instance group.
47121	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47122	// are present
47123	//   "UNREACHABLE" - A given scope cannot be reached.
47124	Code string `json:"code,omitempty"`
47125
47126	// Data: [Output Only] Metadata about this warning in key: value format.
47127	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47128	// }
47129	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
47130
47131	// Message: [Output Only] A human-readable description of the warning
47132	// code.
47133	Message string `json:"message,omitempty"`
47134
47135	// ForceSendFields is a list of field names (e.g. "Code") to
47136	// unconditionally include in API requests. By default, fields with
47137	// empty or default values are omitted from API requests. However, any
47138	// non-pointer, non-interface field appearing in ForceSendFields will be
47139	// sent to the server regardless of whether the field is empty or not.
47140	// This may be used to include empty fields in Patch requests.
47141	ForceSendFields []string `json:"-"`
47142
47143	// NullFields is a list of field names (e.g. "Code") to include in API
47144	// requests with the JSON null value. By default, fields with empty
47145	// values are omitted from API requests. However, any field with an
47146	// empty value appearing in NullFields will be sent to the server as
47147	// null. It is an error if a field in this list has a non-empty value.
47148	// This may be used to include null fields in Patch requests.
47149	NullFields []string `json:"-"`
47150}
47151
47152func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
47153	type NoMethod TargetVpnGatewayListWarning
47154	raw := NoMethod(*s)
47155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47156}
47157
47158type TargetVpnGatewayListWarningData struct {
47159	// Key: [Output Only] A key that provides more detail on the warning
47160	// being returned. For example, for warnings where there are no results
47161	// in a list request for a particular zone, this key might be scope and
47162	// the key value might be the zone name. Other examples might be a key
47163	// indicating a deprecated resource and a suggested replacement, or a
47164	// warning about invalid network settings (for example, if an instance
47165	// attempts to perform IP forwarding but is not enabled for IP
47166	// forwarding).
47167	Key string `json:"key,omitempty"`
47168
47169	// Value: [Output Only] A warning data value corresponding to the key.
47170	Value string `json:"value,omitempty"`
47171
47172	// ForceSendFields is a list of field names (e.g. "Key") to
47173	// unconditionally include in API requests. By default, fields with
47174	// empty or default values are omitted from API requests. However, any
47175	// non-pointer, non-interface field appearing in ForceSendFields will be
47176	// sent to the server regardless of whether the field is empty or not.
47177	// This may be used to include empty fields in Patch requests.
47178	ForceSendFields []string `json:"-"`
47179
47180	// NullFields is a list of field names (e.g. "Key") to include in API
47181	// requests with the JSON null value. By default, fields with empty
47182	// values are omitted from API requests. However, any field with an
47183	// empty value appearing in NullFields will be sent to the server as
47184	// null. It is an error if a field in this list has a non-empty value.
47185	// This may be used to include null fields in Patch requests.
47186	NullFields []string `json:"-"`
47187}
47188
47189func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
47190	type NoMethod TargetVpnGatewayListWarningData
47191	raw := NoMethod(*s)
47192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47193}
47194
47195type TargetVpnGatewaysScopedList struct {
47196	// TargetVpnGateways: [Output Only] A list of target VPN gateways
47197	// contained in this scope.
47198	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
47199
47200	// Warning: [Output Only] Informational warning which replaces the list
47201	// of addresses when the list is empty.
47202	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
47203
47204	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
47205	// to unconditionally include in API requests. By default, fields with
47206	// empty or default values are omitted from API requests. However, any
47207	// non-pointer, non-interface field appearing in ForceSendFields will be
47208	// sent to the server regardless of whether the field is empty or not.
47209	// This may be used to include empty fields in Patch requests.
47210	ForceSendFields []string `json:"-"`
47211
47212	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
47213	// include in API requests with the JSON null value. By default, fields
47214	// with empty values are omitted from API requests. However, any field
47215	// with an empty value appearing in NullFields will be sent to the
47216	// server as null. It is an error if a field in this list has a
47217	// non-empty value. This may be used to include null fields in Patch
47218	// requests.
47219	NullFields []string `json:"-"`
47220}
47221
47222func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
47223	type NoMethod TargetVpnGatewaysScopedList
47224	raw := NoMethod(*s)
47225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47226}
47227
47228// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
47229// warning which replaces the list of addresses when the list is empty.
47230type TargetVpnGatewaysScopedListWarning struct {
47231	// Code: [Output Only] A warning code, if applicable. For example,
47232	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47233	// the response.
47234	//
47235	// Possible values:
47236	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47237	// changes made by a failed operation.
47238	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47239	// created.
47240	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47241	// resources has a type marked as deprecated
47242	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47243	// that is larger than image size.
47244	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47245	// resources has a type marked as experimental
47246	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47247	// call
47248	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47249	// overridden. Deprecated unused field.
47250	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47251	// injected kernel, which is deprecated.
47252	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47253	// exceedingly large number of resources
47254	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47255	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47256	// not assigned to an instance on the network.
47257	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47258	// ip forward.
47259	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47260	// refers to an instance that does not exist.
47261	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47262	// URL refers to an instance that is not on the same network as the
47263	// route.
47264	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47265	// have a status of RUNNING.
47266	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47267	// continue the process despite the mentioned error.
47268	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47269	// page.
47270	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47271	// missing due to errors
47272	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47273	// that requires a TOS they have not accepted.
47274	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47275	// resource is in use.
47276	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47277	// auto-delete could not be deleted because they were in use.
47278	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47279	// ignored.
47280	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47281	// instance group manager is valid as such, but its application does not
47282	// make a lot of sense, because it allows only single instance in
47283	// instance group.
47284	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47285	// are present
47286	//   "UNREACHABLE" - A given scope cannot be reached.
47287	Code string `json:"code,omitempty"`
47288
47289	// Data: [Output Only] Metadata about this warning in key: value format.
47290	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47291	// }
47292	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
47293
47294	// Message: [Output Only] A human-readable description of the warning
47295	// code.
47296	Message string `json:"message,omitempty"`
47297
47298	// ForceSendFields is a list of field names (e.g. "Code") to
47299	// unconditionally include in API requests. By default, fields with
47300	// empty or default values are omitted from API requests. However, any
47301	// non-pointer, non-interface field appearing in ForceSendFields will be
47302	// sent to the server regardless of whether the field is empty or not.
47303	// This may be used to include empty fields in Patch requests.
47304	ForceSendFields []string `json:"-"`
47305
47306	// NullFields is a list of field names (e.g. "Code") to include in API
47307	// requests with the JSON null value. By default, fields with empty
47308	// values are omitted from API requests. However, any field with an
47309	// empty value appearing in NullFields will be sent to the server as
47310	// null. It is an error if a field in this list has a non-empty value.
47311	// This may be used to include null fields in Patch requests.
47312	NullFields []string `json:"-"`
47313}
47314
47315func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
47316	type NoMethod TargetVpnGatewaysScopedListWarning
47317	raw := NoMethod(*s)
47318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47319}
47320
47321type TargetVpnGatewaysScopedListWarningData struct {
47322	// Key: [Output Only] A key that provides more detail on the warning
47323	// being returned. For example, for warnings where there are no results
47324	// in a list request for a particular zone, this key might be scope and
47325	// the key value might be the zone name. Other examples might be a key
47326	// indicating a deprecated resource and a suggested replacement, or a
47327	// warning about invalid network settings (for example, if an instance
47328	// attempts to perform IP forwarding but is not enabled for IP
47329	// forwarding).
47330	Key string `json:"key,omitempty"`
47331
47332	// Value: [Output Only] A warning data value corresponding to the key.
47333	Value string `json:"value,omitempty"`
47334
47335	// ForceSendFields is a list of field names (e.g. "Key") to
47336	// unconditionally include in API requests. By default, fields with
47337	// empty or default values are omitted from API requests. However, any
47338	// non-pointer, non-interface field appearing in ForceSendFields will be
47339	// sent to the server regardless of whether the field is empty or not.
47340	// This may be used to include empty fields in Patch requests.
47341	ForceSendFields []string `json:"-"`
47342
47343	// NullFields is a list of field names (e.g. "Key") to include in API
47344	// requests with the JSON null value. By default, fields with empty
47345	// values are omitted from API requests. However, any field with an
47346	// empty value appearing in NullFields will be sent to the server as
47347	// null. It is an error if a field in this list has a non-empty value.
47348	// This may be used to include null fields in Patch requests.
47349	NullFields []string `json:"-"`
47350}
47351
47352func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
47353	type NoMethod TargetVpnGatewaysScopedListWarningData
47354	raw := NoMethod(*s)
47355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47356}
47357
47358type TestFailure struct {
47359	// ActualOutputUrl: The actual output URL evaluated by load balancer
47360	// containing the scheme, host, path and query parameters.
47361	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
47362
47363	// ActualRedirectResponseCode: Actual HTTP status code for rule with
47364	// `urlRedirect` calculated by load balancer
47365	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
47366
47367	// ActualService: BackendService or BackendBucket returned by load
47368	// balancer.
47369	ActualService string `json:"actualService,omitempty"`
47370
47371	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
47372	// containing the scheme, host, path and query parameters.
47373	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
47374
47375	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
47376	// `urlRedirect` calculated by load balancer
47377	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
47378
47379	// ExpectedService: Expected BackendService or BackendBucket resource
47380	// the given URL should be mapped to.
47381	ExpectedService string `json:"expectedService,omitempty"`
47382
47383	// Headers: HTTP headers of the request.
47384	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
47385
47386	// Host: Host portion of the URL.
47387	Host string `json:"host,omitempty"`
47388
47389	// Path: Path portion including query parameters in the URL.
47390	Path string `json:"path,omitempty"`
47391
47392	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
47393	// unconditionally include in API requests. By default, fields with
47394	// empty or default values are omitted from API requests. However, any
47395	// non-pointer, non-interface field appearing in ForceSendFields will be
47396	// sent to the server regardless of whether the field is empty or not.
47397	// This may be used to include empty fields in Patch requests.
47398	ForceSendFields []string `json:"-"`
47399
47400	// NullFields is a list of field names (e.g. "ActualOutputUrl") to
47401	// include in API requests with the JSON null value. By default, fields
47402	// with empty values are omitted from API requests. However, any field
47403	// with an empty value appearing in NullFields will be sent to the
47404	// server as null. It is an error if a field in this list has a
47405	// non-empty value. This may be used to include null fields in Patch
47406	// requests.
47407	NullFields []string `json:"-"`
47408}
47409
47410func (s *TestFailure) MarshalJSON() ([]byte, error) {
47411	type NoMethod TestFailure
47412	raw := NoMethod(*s)
47413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47414}
47415
47416type TestPermissionsRequest struct {
47417	// Permissions: The set of permissions to check for the 'resource'.
47418	// Permissions with wildcards (such as '*' or 'storage.*') are not
47419	// allowed.
47420	Permissions []string `json:"permissions,omitempty"`
47421
47422	// ForceSendFields is a list of field names (e.g. "Permissions") to
47423	// unconditionally include in API requests. By default, fields with
47424	// empty or default values are omitted from API requests. However, any
47425	// non-pointer, non-interface field appearing in ForceSendFields will be
47426	// sent to the server regardless of whether the field is empty or not.
47427	// This may be used to include empty fields in Patch requests.
47428	ForceSendFields []string `json:"-"`
47429
47430	// NullFields is a list of field names (e.g. "Permissions") to include
47431	// in API requests with the JSON null value. By default, fields with
47432	// empty values are omitted from API requests. However, any field with
47433	// an empty value appearing in NullFields will be sent to the server as
47434	// null. It is an error if a field in this list has a non-empty value.
47435	// This may be used to include null fields in Patch requests.
47436	NullFields []string `json:"-"`
47437}
47438
47439func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
47440	type NoMethod TestPermissionsRequest
47441	raw := NoMethod(*s)
47442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47443}
47444
47445type TestPermissionsResponse struct {
47446	// Permissions: A subset of `TestPermissionsRequest.permissions` that
47447	// the caller is allowed.
47448	Permissions []string `json:"permissions,omitempty"`
47449
47450	// ServerResponse contains the HTTP response code and headers from the
47451	// server.
47452	googleapi.ServerResponse `json:"-"`
47453
47454	// ForceSendFields is a list of field names (e.g. "Permissions") to
47455	// unconditionally include in API requests. By default, fields with
47456	// empty or default values are omitted from API requests. However, any
47457	// non-pointer, non-interface field appearing in ForceSendFields will be
47458	// sent to the server regardless of whether the field is empty or not.
47459	// This may be used to include empty fields in Patch requests.
47460	ForceSendFields []string `json:"-"`
47461
47462	// NullFields is a list of field names (e.g. "Permissions") to include
47463	// in API requests with the JSON null value. By default, fields with
47464	// empty values are omitted from API requests. However, any field with
47465	// an empty value appearing in NullFields will be sent to the server as
47466	// null. It is an error if a field in this list has a non-empty value.
47467	// This may be used to include null fields in Patch requests.
47468	NullFields []string `json:"-"`
47469}
47470
47471func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
47472	type NoMethod TestPermissionsResponse
47473	raw := NoMethod(*s)
47474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47475}
47476
47477type Uint128 struct {
47478	High uint64 `json:"high,omitempty,string"`
47479
47480	Low uint64 `json:"low,omitempty,string"`
47481
47482	// ForceSendFields is a list of field names (e.g. "High") to
47483	// unconditionally include in API requests. By default, fields with
47484	// empty or default values are omitted from API requests. However, any
47485	// non-pointer, non-interface field appearing in ForceSendFields will be
47486	// sent to the server regardless of whether the field is empty or not.
47487	// This may be used to include empty fields in Patch requests.
47488	ForceSendFields []string `json:"-"`
47489
47490	// NullFields is a list of field names (e.g. "High") to include in API
47491	// requests with the JSON null value. By default, fields with empty
47492	// values are omitted from API requests. However, any field with an
47493	// empty value appearing in NullFields will be sent to the server as
47494	// null. It is an error if a field in this list has a non-empty value.
47495	// This may be used to include null fields in Patch requests.
47496	NullFields []string `json:"-"`
47497}
47498
47499func (s *Uint128) MarshalJSON() ([]byte, error) {
47500	type NoMethod Uint128
47501	raw := NoMethod(*s)
47502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47503}
47504
47505// UrlMap: Represents a URL Map resource. Google Compute Engine has two
47506// URL Map resources: * Global (/compute/docs/reference/rest/v1/urlMaps)
47507// * Regional (/compute/docs/reference/rest/v1/regionUrlMaps) A URL map
47508// resource is a component of certain types of GCP load balancers and
47509// Traffic Director. * urlMaps are used by external HTTP(S) load
47510// balancers and Traffic Director. * regionUrlMaps are used by internal
47511// HTTP(S) load balancers. For a list of supported URL map features by
47512// load balancer type, see the Load balancing features: Routing and
47513// traffic management table. For a list of supported URL map features
47514// for Traffic Director, see the Traffic Director features: Routing and
47515// traffic management table. This resource defines mappings from host
47516// names and URL paths to either a backend service or a backend bucket.
47517// To use the global urlMaps resource, the backend service must have a
47518// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
47519// use the regionUrlMaps resource, the backend service must have a
47520// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
47521// URL Map Concepts.
47522type UrlMap struct {
47523	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47524	// format.
47525	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47526
47527	// DefaultRouteAction: defaultRouteAction takes effect when none of the
47528	// hostRules match. The load balancer performs advanced routing actions
47529	// like URL rewrites, header transformations, etc. prior to forwarding
47530	// the request to the selected backend. If defaultRouteAction specifies
47531	// any weightedBackendServices, defaultService must not be set.
47532	// Conversely if defaultService is set, defaultRouteAction cannot
47533	// contain any weightedBackendServices. Only one of defaultRouteAction
47534	// or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load
47535	// balancers support only the urlRewrite action within
47536	// defaultRouteAction. defaultRouteAction has no effect when the URL map
47537	// is bound to target gRPC proxy that has validateForProxyless field set
47538	// to true.
47539	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
47540
47541	// DefaultService: The full or partial URL of the defaultService
47542	// resource to which traffic is directed if none of the hostRules match.
47543	// If defaultRouteAction is additionally specified, advanced routing
47544	// actions like URL Rewrites, etc. take effect prior to sending the
47545	// request to the backend. However, if defaultService is specified,
47546	// defaultRouteAction cannot contain any weightedBackendServices.
47547	// Conversely, if routeAction specifies any weightedBackendServices,
47548	// service must not be specified. Only one of defaultService,
47549	// defaultUrlRedirect or defaultRouteAction.weightedBackendService must
47550	// be set. defaultService has no effect when the URL map is bound to
47551	// target gRPC proxy that has validateForProxyless field set to true.
47552	DefaultService string `json:"defaultService,omitempty"`
47553
47554	// DefaultUrlRedirect: When none of the specified hostRules match, the
47555	// request is redirected to a URL specified by defaultUrlRedirect. If
47556	// defaultUrlRedirect is specified, defaultService or defaultRouteAction
47557	// must not be set. Not supported when the URL map is bound to target
47558	// gRPC proxy.
47559	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
47560
47561	// Description: An optional description of this resource. Provide this
47562	// property when you create the resource.
47563	Description string `json:"description,omitempty"`
47564
47565	// Fingerprint: Fingerprint of this resource. A hash of the contents
47566	// stored in this object. This field is used in optimistic locking. This
47567	// field will be ignored when inserting a UrlMap. An up-to-date
47568	// fingerprint must be provided in order to update the UrlMap, otherwise
47569	// the request will fail with error 412 conditionNotMet. To see the
47570	// latest fingerprint, make a get() request to retrieve a UrlMap.
47571	Fingerprint string `json:"fingerprint,omitempty"`
47572
47573	// HeaderAction: Specifies changes to request and response headers that
47574	// need to take effect for the selected backendService. The headerAction
47575	// specified here take effect after headerAction specified under
47576	// pathMatcher. Note that headerAction is not supported for
47577	// Loadbalancers that have their loadBalancingScheme set to EXTERNAL.
47578	// Not supported when the URL map is bound to target gRPC proxy that has
47579	// validateForProxyless field set to true.
47580	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
47581
47582	// HostRules: The list of HostRules to use against the URL.
47583	HostRules []*HostRule `json:"hostRules,omitempty"`
47584
47585	// Id: [Output Only] The unique identifier for the resource. This
47586	// identifier is defined by the server.
47587	Id uint64 `json:"id,omitempty,string"`
47588
47589	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
47590	// url maps.
47591	Kind string `json:"kind,omitempty"`
47592
47593	// Name: Name of the resource. Provided by the client when the resource
47594	// is created. The name must be 1-63 characters long, and comply with
47595	// RFC1035. Specifically, the name must be 1-63 characters long and
47596	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47597	// the first character must be a lowercase letter, and all following
47598	// characters must be a dash, lowercase letter, or digit, except the
47599	// last character, which cannot be a dash.
47600	Name string `json:"name,omitempty"`
47601
47602	// PathMatchers: The list of named PathMatchers to use against the URL.
47603	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
47604
47605	// Region: [Output Only] URL of the region where the regional URL map
47606	// resides. This field is not applicable to global URL maps. You must
47607	// specify this field as part of the HTTP request URL. It is not
47608	// settable as a field in the request body.
47609	Region string `json:"region,omitempty"`
47610
47611	// SelfLink: [Output Only] Server-defined URL for the resource.
47612	SelfLink string `json:"selfLink,omitempty"`
47613
47614	// Tests: The list of expected URL mapping tests. Request to update this
47615	// UrlMap will succeed only if all of the test cases pass. You can
47616	// specify a maximum of 100 tests per UrlMap. Not supported when the URL
47617	// map is bound to target gRPC proxy that has validateForProxyless field
47618	// set to true.
47619	Tests []*UrlMapTest `json:"tests,omitempty"`
47620
47621	// ServerResponse contains the HTTP response code and headers from the
47622	// server.
47623	googleapi.ServerResponse `json:"-"`
47624
47625	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47626	// to unconditionally include in API requests. By default, fields with
47627	// empty or default values are omitted from API requests. However, any
47628	// non-pointer, non-interface field appearing in ForceSendFields will be
47629	// sent to the server regardless of whether the field is empty or not.
47630	// This may be used to include empty fields in Patch requests.
47631	ForceSendFields []string `json:"-"`
47632
47633	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47634	// include in API requests with the JSON null value. By default, fields
47635	// with empty values are omitted from API requests. However, any field
47636	// with an empty value appearing in NullFields will be sent to the
47637	// server as null. It is an error if a field in this list has a
47638	// non-empty value. This may be used to include null fields in Patch
47639	// requests.
47640	NullFields []string `json:"-"`
47641}
47642
47643func (s *UrlMap) MarshalJSON() ([]byte, error) {
47644	type NoMethod UrlMap
47645	raw := NoMethod(*s)
47646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47647}
47648
47649// UrlMapList: Contains a list of UrlMap resources.
47650type UrlMapList struct {
47651	// Id: [Output Only] Unique identifier for the resource; defined by the
47652	// server.
47653	Id string `json:"id,omitempty"`
47654
47655	// Items: A list of UrlMap resources.
47656	Items []*UrlMap `json:"items,omitempty"`
47657
47658	// Kind: Type of resource.
47659	Kind string `json:"kind,omitempty"`
47660
47661	// NextPageToken: [Output Only] This token allows you to get the next
47662	// page of results for list requests. If the number of results is larger
47663	// than maxResults, use the nextPageToken as a value for the query
47664	// parameter pageToken in the next list request. Subsequent list
47665	// requests will have their own nextPageToken to continue paging through
47666	// the results.
47667	NextPageToken string `json:"nextPageToken,omitempty"`
47668
47669	// SelfLink: [Output Only] Server-defined URL for this resource.
47670	SelfLink string `json:"selfLink,omitempty"`
47671
47672	// Warning: [Output Only] Informational warning message.
47673	Warning *UrlMapListWarning `json:"warning,omitempty"`
47674
47675	// ServerResponse contains the HTTP response code and headers from the
47676	// server.
47677	googleapi.ServerResponse `json:"-"`
47678
47679	// ForceSendFields is a list of field names (e.g. "Id") to
47680	// unconditionally include in API requests. By default, fields with
47681	// empty or default values are omitted from API requests. However, any
47682	// non-pointer, non-interface field appearing in ForceSendFields will be
47683	// sent to the server regardless of whether the field is empty or not.
47684	// This may be used to include empty fields in Patch requests.
47685	ForceSendFields []string `json:"-"`
47686
47687	// NullFields is a list of field names (e.g. "Id") to include in API
47688	// requests with the JSON null value. By default, fields with empty
47689	// values are omitted from API requests. However, any field with an
47690	// empty value appearing in NullFields will be sent to the server as
47691	// null. It is an error if a field in this list has a non-empty value.
47692	// This may be used to include null fields in Patch requests.
47693	NullFields []string `json:"-"`
47694}
47695
47696func (s *UrlMapList) MarshalJSON() ([]byte, error) {
47697	type NoMethod UrlMapList
47698	raw := NoMethod(*s)
47699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47700}
47701
47702// UrlMapListWarning: [Output Only] Informational warning message.
47703type UrlMapListWarning struct {
47704	// Code: [Output Only] A warning code, if applicable. For example,
47705	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47706	// the response.
47707	//
47708	// Possible values:
47709	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47710	// changes made by a failed operation.
47711	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47712	// created.
47713	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47714	// resources has a type marked as deprecated
47715	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47716	// that is larger than image size.
47717	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47718	// resources has a type marked as experimental
47719	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47720	// call
47721	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47722	// overridden. Deprecated unused field.
47723	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47724	// injected kernel, which is deprecated.
47725	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47726	// exceedingly large number of resources
47727	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47728	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47729	// not assigned to an instance on the network.
47730	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47731	// ip forward.
47732	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47733	// refers to an instance that does not exist.
47734	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47735	// URL refers to an instance that is not on the same network as the
47736	// route.
47737	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47738	// have a status of RUNNING.
47739	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47740	// continue the process despite the mentioned error.
47741	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47742	// page.
47743	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47744	// missing due to errors
47745	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47746	// that requires a TOS they have not accepted.
47747	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47748	// resource is in use.
47749	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47750	// auto-delete could not be deleted because they were in use.
47751	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47752	// ignored.
47753	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47754	// instance group manager is valid as such, but its application does not
47755	// make a lot of sense, because it allows only single instance in
47756	// instance group.
47757	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47758	// are present
47759	//   "UNREACHABLE" - A given scope cannot be reached.
47760	Code string `json:"code,omitempty"`
47761
47762	// Data: [Output Only] Metadata about this warning in key: value format.
47763	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47764	// }
47765	Data []*UrlMapListWarningData `json:"data,omitempty"`
47766
47767	// Message: [Output Only] A human-readable description of the warning
47768	// code.
47769	Message string `json:"message,omitempty"`
47770
47771	// ForceSendFields is a list of field names (e.g. "Code") to
47772	// unconditionally include in API requests. By default, fields with
47773	// empty or default values are omitted from API requests. However, any
47774	// non-pointer, non-interface field appearing in ForceSendFields will be
47775	// sent to the server regardless of whether the field is empty or not.
47776	// This may be used to include empty fields in Patch requests.
47777	ForceSendFields []string `json:"-"`
47778
47779	// NullFields is a list of field names (e.g. "Code") to include in API
47780	// requests with the JSON null value. By default, fields with empty
47781	// values are omitted from API requests. However, any field with an
47782	// empty value appearing in NullFields will be sent to the server as
47783	// null. It is an error if a field in this list has a non-empty value.
47784	// This may be used to include null fields in Patch requests.
47785	NullFields []string `json:"-"`
47786}
47787
47788func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
47789	type NoMethod UrlMapListWarning
47790	raw := NoMethod(*s)
47791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47792}
47793
47794type UrlMapListWarningData struct {
47795	// Key: [Output Only] A key that provides more detail on the warning
47796	// being returned. For example, for warnings where there are no results
47797	// in a list request for a particular zone, this key might be scope and
47798	// the key value might be the zone name. Other examples might be a key
47799	// indicating a deprecated resource and a suggested replacement, or a
47800	// warning about invalid network settings (for example, if an instance
47801	// attempts to perform IP forwarding but is not enabled for IP
47802	// forwarding).
47803	Key string `json:"key,omitempty"`
47804
47805	// Value: [Output Only] A warning data value corresponding to the key.
47806	Value string `json:"value,omitempty"`
47807
47808	// ForceSendFields is a list of field names (e.g. "Key") to
47809	// unconditionally include in API requests. By default, fields with
47810	// empty or default values are omitted from API requests. However, any
47811	// non-pointer, non-interface field appearing in ForceSendFields will be
47812	// sent to the server regardless of whether the field is empty or not.
47813	// This may be used to include empty fields in Patch requests.
47814	ForceSendFields []string `json:"-"`
47815
47816	// NullFields is a list of field names (e.g. "Key") to include in API
47817	// requests with the JSON null value. By default, fields with empty
47818	// values are omitted from API requests. However, any field with an
47819	// empty value appearing in NullFields will be sent to the server as
47820	// null. It is an error if a field in this list has a non-empty value.
47821	// This may be used to include null fields in Patch requests.
47822	NullFields []string `json:"-"`
47823}
47824
47825func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
47826	type NoMethod UrlMapListWarningData
47827	raw := NoMethod(*s)
47828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47829}
47830
47831type UrlMapReference struct {
47832	UrlMap string `json:"urlMap,omitempty"`
47833
47834	// ForceSendFields is a list of field names (e.g. "UrlMap") to
47835	// unconditionally include in API requests. By default, fields with
47836	// empty or default values are omitted from API requests. However, any
47837	// non-pointer, non-interface field appearing in ForceSendFields will be
47838	// sent to the server regardless of whether the field is empty or not.
47839	// This may be used to include empty fields in Patch requests.
47840	ForceSendFields []string `json:"-"`
47841
47842	// NullFields is a list of field names (e.g. "UrlMap") to include in API
47843	// requests with the JSON null value. By default, fields with empty
47844	// values are omitted from API requests. However, any field with an
47845	// empty value appearing in NullFields will be sent to the server as
47846	// null. It is an error if a field in this list has a non-empty value.
47847	// This may be used to include null fields in Patch requests.
47848	NullFields []string `json:"-"`
47849}
47850
47851func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
47852	type NoMethod UrlMapReference
47853	raw := NoMethod(*s)
47854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47855}
47856
47857// UrlMapTest: Message for the expected URL mappings.
47858type UrlMapTest struct {
47859	// Description: Description of this test case.
47860	Description string `json:"description,omitempty"`
47861
47862	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
47863	// containing the scheme, host, path and query parameters. For rules
47864	// that forward requests to backends, the test passes only when
47865	// expectedOutputUrl matches the request forwarded by load balancer to
47866	// backends. For rules with urlRewrite, the test verifies that the
47867	// forwarded request matches hostRewrite and pathPrefixRewrite in the
47868	// urlRewrite action. When service is specified, expectedOutputUrl`s
47869	// scheme is ignored. For rules with urlRedirect, the test passes only
47870	// if expectedOutputUrl matches the URL in the load balancer's redirect
47871	// response. If urlRedirect specifies https_redirect, the test passes
47872	// only if the scheme in expectedOutputUrl is also set to https. If
47873	// urlRedirect specifies strip_query, the test passes only if
47874	// expectedOutputUrl does not contain any query parameters.
47875	// expectedOutputUrl is optional when service is specified.
47876	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
47877
47878	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test
47879	// passes only if expectedRedirectResponseCode matches the HTTP status
47880	// code in load balancer's redirect response.
47881	// expectedRedirectResponseCode cannot be set when service is set.
47882	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
47883
47884	// Headers: HTTP headers for this request. If headers contains a host
47885	// header, then host must also match the header value.
47886	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
47887
47888	// Host: Host portion of the URL. If headers contains a host header,
47889	// then host must also match the header value.
47890	Host string `json:"host,omitempty"`
47891
47892	// Path: Path portion of the URL.
47893	Path string `json:"path,omitempty"`
47894
47895	// Service: Expected BackendService or BackendBucket resource the given
47896	// URL should be mapped to. service cannot be set if
47897	// expectedRedirectResponseCode is set.
47898	Service string `json:"service,omitempty"`
47899
47900	// ForceSendFields is a list of field names (e.g. "Description") to
47901	// unconditionally include in API requests. By default, fields with
47902	// empty or default values are omitted from API requests. However, any
47903	// non-pointer, non-interface field appearing in ForceSendFields will be
47904	// sent to the server regardless of whether the field is empty or not.
47905	// This may be used to include empty fields in Patch requests.
47906	ForceSendFields []string `json:"-"`
47907
47908	// NullFields is a list of field names (e.g. "Description") to include
47909	// in API requests with the JSON null value. By default, fields with
47910	// empty values are omitted from API requests. However, any field with
47911	// an empty value appearing in NullFields will be sent to the server as
47912	// null. It is an error if a field in this list has a non-empty value.
47913	// This may be used to include null fields in Patch requests.
47914	NullFields []string `json:"-"`
47915}
47916
47917func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
47918	type NoMethod UrlMapTest
47919	raw := NoMethod(*s)
47920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47921}
47922
47923// UrlMapTestHeader: HTTP headers used in UrlMapTests.
47924type UrlMapTestHeader struct {
47925	// Name: Header name.
47926	Name string `json:"name,omitempty"`
47927
47928	// Value: Header value.
47929	Value string `json:"value,omitempty"`
47930
47931	// ForceSendFields is a list of field names (e.g. "Name") to
47932	// unconditionally include in API requests. By default, fields with
47933	// empty or default values are omitted from API requests. However, any
47934	// non-pointer, non-interface field appearing in ForceSendFields will be
47935	// sent to the server regardless of whether the field is empty or not.
47936	// This may be used to include empty fields in Patch requests.
47937	ForceSendFields []string `json:"-"`
47938
47939	// NullFields is a list of field names (e.g. "Name") to include in API
47940	// requests with the JSON null value. By default, fields with empty
47941	// values are omitted from API requests. However, any field with an
47942	// empty value appearing in NullFields will be sent to the server as
47943	// null. It is an error if a field in this list has a non-empty value.
47944	// This may be used to include null fields in Patch requests.
47945	NullFields []string `json:"-"`
47946}
47947
47948func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) {
47949	type NoMethod UrlMapTestHeader
47950	raw := NoMethod(*s)
47951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47952}
47953
47954// UrlMapValidationResult: Message representing the validation result
47955// for a UrlMap.
47956type UrlMapValidationResult struct {
47957	LoadErrors []string `json:"loadErrors,omitempty"`
47958
47959	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
47960	// If false, 'loadErrors' indicates the reasons.
47961	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
47962
47963	TestFailures []*TestFailure `json:"testFailures,omitempty"`
47964
47965	// TestPassed: If successfully loaded, this field indicates whether the
47966	// test passed. If false, 'testFailures's indicate the reason of
47967	// failure.
47968	TestPassed bool `json:"testPassed,omitempty"`
47969
47970	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
47971	// unconditionally include in API requests. By default, fields with
47972	// empty or default values are omitted from API requests. However, any
47973	// non-pointer, non-interface field appearing in ForceSendFields will be
47974	// sent to the server regardless of whether the field is empty or not.
47975	// This may be used to include empty fields in Patch requests.
47976	ForceSendFields []string `json:"-"`
47977
47978	// NullFields is a list of field names (e.g. "LoadErrors") to include in
47979	// API requests with the JSON null value. By default, fields with empty
47980	// values are omitted from API requests. However, any field with an
47981	// empty value appearing in NullFields will be sent to the server as
47982	// null. It is an error if a field in this list has a non-empty value.
47983	// This may be used to include null fields in Patch requests.
47984	NullFields []string `json:"-"`
47985}
47986
47987func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
47988	type NoMethod UrlMapValidationResult
47989	raw := NoMethod(*s)
47990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47991}
47992
47993type UrlMapsAggregatedList struct {
47994	// Id: [Output Only] Unique identifier for the resource; defined by the
47995	// server.
47996	Id string `json:"id,omitempty"`
47997
47998	// Items: A list of UrlMapsScopedList resources.
47999	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
48000
48001	// Kind: Type of resource.
48002	Kind string `json:"kind,omitempty"`
48003
48004	// NextPageToken: [Output Only] This token allows you to get the next
48005	// page of results for list requests. If the number of results is larger
48006	// than maxResults, use the nextPageToken as a value for the query
48007	// parameter pageToken in the next list request. Subsequent list
48008	// requests will have their own nextPageToken to continue paging through
48009	// the results.
48010	NextPageToken string `json:"nextPageToken,omitempty"`
48011
48012	// SelfLink: [Output Only] Server-defined URL for this resource.
48013	SelfLink string `json:"selfLink,omitempty"`
48014
48015	// Unreachables: [Output Only] Unreachable resources.
48016	Unreachables []string `json:"unreachables,omitempty"`
48017
48018	// Warning: [Output Only] Informational warning message.
48019	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
48020
48021	// ServerResponse contains the HTTP response code and headers from the
48022	// server.
48023	googleapi.ServerResponse `json:"-"`
48024
48025	// ForceSendFields is a list of field names (e.g. "Id") to
48026	// unconditionally include in API requests. By default, fields with
48027	// empty or default values are omitted from API requests. However, any
48028	// non-pointer, non-interface field appearing in ForceSendFields will be
48029	// sent to the server regardless of whether the field is empty or not.
48030	// This may be used to include empty fields in Patch requests.
48031	ForceSendFields []string `json:"-"`
48032
48033	// NullFields is a list of field names (e.g. "Id") to include in API
48034	// requests with the JSON null value. By default, fields with empty
48035	// values are omitted from API requests. However, any field with an
48036	// empty value appearing in NullFields will be sent to the server as
48037	// null. It is an error if a field in this list has a non-empty value.
48038	// This may be used to include null fields in Patch requests.
48039	NullFields []string `json:"-"`
48040}
48041
48042func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
48043	type NoMethod UrlMapsAggregatedList
48044	raw := NoMethod(*s)
48045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48046}
48047
48048// UrlMapsAggregatedListWarning: [Output Only] Informational warning
48049// message.
48050type UrlMapsAggregatedListWarning struct {
48051	// Code: [Output Only] A warning code, if applicable. For example,
48052	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48053	// the response.
48054	//
48055	// Possible values:
48056	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48057	// changes made by a failed operation.
48058	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48059	// created.
48060	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48061	// resources has a type marked as deprecated
48062	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48063	// that is larger than image size.
48064	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48065	// resources has a type marked as experimental
48066	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48067	// call
48068	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48069	// overridden. Deprecated unused field.
48070	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48071	// injected kernel, which is deprecated.
48072	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48073	// exceedingly large number of resources
48074	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48075	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48076	// not assigned to an instance on the network.
48077	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48078	// ip forward.
48079	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48080	// refers to an instance that does not exist.
48081	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48082	// URL refers to an instance that is not on the same network as the
48083	// route.
48084	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48085	// have a status of RUNNING.
48086	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48087	// continue the process despite the mentioned error.
48088	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48089	// page.
48090	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48091	// missing due to errors
48092	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48093	// that requires a TOS they have not accepted.
48094	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48095	// resource is in use.
48096	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48097	// auto-delete could not be deleted because they were in use.
48098	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48099	// ignored.
48100	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48101	// instance group manager is valid as such, but its application does not
48102	// make a lot of sense, because it allows only single instance in
48103	// instance group.
48104	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48105	// are present
48106	//   "UNREACHABLE" - A given scope cannot be reached.
48107	Code string `json:"code,omitempty"`
48108
48109	// Data: [Output Only] Metadata about this warning in key: value format.
48110	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48111	// }
48112	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
48113
48114	// Message: [Output Only] A human-readable description of the warning
48115	// code.
48116	Message string `json:"message,omitempty"`
48117
48118	// ForceSendFields is a list of field names (e.g. "Code") to
48119	// unconditionally include in API requests. By default, fields with
48120	// empty or default values are omitted from API requests. However, any
48121	// non-pointer, non-interface field appearing in ForceSendFields will be
48122	// sent to the server regardless of whether the field is empty or not.
48123	// This may be used to include empty fields in Patch requests.
48124	ForceSendFields []string `json:"-"`
48125
48126	// NullFields is a list of field names (e.g. "Code") to include in API
48127	// requests with the JSON null value. By default, fields with empty
48128	// values are omitted from API requests. However, any field with an
48129	// empty value appearing in NullFields will be sent to the server as
48130	// null. It is an error if a field in this list has a non-empty value.
48131	// This may be used to include null fields in Patch requests.
48132	NullFields []string `json:"-"`
48133}
48134
48135func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
48136	type NoMethod UrlMapsAggregatedListWarning
48137	raw := NoMethod(*s)
48138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48139}
48140
48141type UrlMapsAggregatedListWarningData struct {
48142	// Key: [Output Only] A key that provides more detail on the warning
48143	// being returned. For example, for warnings where there are no results
48144	// in a list request for a particular zone, this key might be scope and
48145	// the key value might be the zone name. Other examples might be a key
48146	// indicating a deprecated resource and a suggested replacement, or a
48147	// warning about invalid network settings (for example, if an instance
48148	// attempts to perform IP forwarding but is not enabled for IP
48149	// forwarding).
48150	Key string `json:"key,omitempty"`
48151
48152	// Value: [Output Only] A warning data value corresponding to the key.
48153	Value string `json:"value,omitempty"`
48154
48155	// ForceSendFields is a list of field names (e.g. "Key") to
48156	// unconditionally include in API requests. By default, fields with
48157	// empty or default values are omitted from API requests. However, any
48158	// non-pointer, non-interface field appearing in ForceSendFields will be
48159	// sent to the server regardless of whether the field is empty or not.
48160	// This may be used to include empty fields in Patch requests.
48161	ForceSendFields []string `json:"-"`
48162
48163	// NullFields is a list of field names (e.g. "Key") to include in API
48164	// requests with the JSON null value. By default, fields with empty
48165	// values are omitted from API requests. However, any field with an
48166	// empty value appearing in NullFields will be sent to the server as
48167	// null. It is an error if a field in this list has a non-empty value.
48168	// This may be used to include null fields in Patch requests.
48169	NullFields []string `json:"-"`
48170}
48171
48172func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48173	type NoMethod UrlMapsAggregatedListWarningData
48174	raw := NoMethod(*s)
48175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48176}
48177
48178type UrlMapsScopedList struct {
48179	// UrlMaps: A list of UrlMaps contained in this scope.
48180	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
48181
48182	// Warning: Informational warning which replaces the list of backend
48183	// services when the list is empty.
48184	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
48185
48186	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
48187	// unconditionally include in API requests. By default, fields with
48188	// empty or default values are omitted from API requests. However, any
48189	// non-pointer, non-interface field appearing in ForceSendFields will be
48190	// sent to the server regardless of whether the field is empty or not.
48191	// This may be used to include empty fields in Patch requests.
48192	ForceSendFields []string `json:"-"`
48193
48194	// NullFields is a list of field names (e.g. "UrlMaps") to include in
48195	// API requests with the JSON null value. By default, fields with empty
48196	// values are omitted from API requests. However, any field with an
48197	// empty value appearing in NullFields will be sent to the server as
48198	// null. It is an error if a field in this list has a non-empty value.
48199	// This may be used to include null fields in Patch requests.
48200	NullFields []string `json:"-"`
48201}
48202
48203func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
48204	type NoMethod UrlMapsScopedList
48205	raw := NoMethod(*s)
48206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48207}
48208
48209// UrlMapsScopedListWarning: Informational warning which replaces the
48210// list of backend services when the list is empty.
48211type UrlMapsScopedListWarning struct {
48212	// Code: [Output Only] A warning code, if applicable. For example,
48213	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48214	// the response.
48215	//
48216	// Possible values:
48217	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48218	// changes made by a failed operation.
48219	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48220	// created.
48221	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48222	// resources has a type marked as deprecated
48223	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48224	// that is larger than image size.
48225	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48226	// resources has a type marked as experimental
48227	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48228	// call
48229	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48230	// overridden. Deprecated unused field.
48231	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48232	// injected kernel, which is deprecated.
48233	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48234	// exceedingly large number of resources
48235	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48236	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48237	// not assigned to an instance on the network.
48238	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48239	// ip forward.
48240	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48241	// refers to an instance that does not exist.
48242	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48243	// URL refers to an instance that is not on the same network as the
48244	// route.
48245	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48246	// have a status of RUNNING.
48247	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48248	// continue the process despite the mentioned error.
48249	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48250	// page.
48251	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48252	// missing due to errors
48253	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48254	// that requires a TOS they have not accepted.
48255	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48256	// resource is in use.
48257	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48258	// auto-delete could not be deleted because they were in use.
48259	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48260	// ignored.
48261	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48262	// instance group manager is valid as such, but its application does not
48263	// make a lot of sense, because it allows only single instance in
48264	// instance group.
48265	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48266	// are present
48267	//   "UNREACHABLE" - A given scope cannot be reached.
48268	Code string `json:"code,omitempty"`
48269
48270	// Data: [Output Only] Metadata about this warning in key: value format.
48271	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48272	// }
48273	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
48274
48275	// Message: [Output Only] A human-readable description of the warning
48276	// code.
48277	Message string `json:"message,omitempty"`
48278
48279	// ForceSendFields is a list of field names (e.g. "Code") to
48280	// unconditionally include in API requests. By default, fields with
48281	// empty or default values are omitted from API requests. However, any
48282	// non-pointer, non-interface field appearing in ForceSendFields will be
48283	// sent to the server regardless of whether the field is empty or not.
48284	// This may be used to include empty fields in Patch requests.
48285	ForceSendFields []string `json:"-"`
48286
48287	// NullFields is a list of field names (e.g. "Code") to include in API
48288	// requests with the JSON null value. By default, fields with empty
48289	// values are omitted from API requests. However, any field with an
48290	// empty value appearing in NullFields will be sent to the server as
48291	// null. It is an error if a field in this list has a non-empty value.
48292	// This may be used to include null fields in Patch requests.
48293	NullFields []string `json:"-"`
48294}
48295
48296func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
48297	type NoMethod UrlMapsScopedListWarning
48298	raw := NoMethod(*s)
48299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48300}
48301
48302type UrlMapsScopedListWarningData struct {
48303	// Key: [Output Only] A key that provides more detail on the warning
48304	// being returned. For example, for warnings where there are no results
48305	// in a list request for a particular zone, this key might be scope and
48306	// the key value might be the zone name. Other examples might be a key
48307	// indicating a deprecated resource and a suggested replacement, or a
48308	// warning about invalid network settings (for example, if an instance
48309	// attempts to perform IP forwarding but is not enabled for IP
48310	// forwarding).
48311	Key string `json:"key,omitempty"`
48312
48313	// Value: [Output Only] A warning data value corresponding to the key.
48314	Value string `json:"value,omitempty"`
48315
48316	// ForceSendFields is a list of field names (e.g. "Key") to
48317	// unconditionally include in API requests. By default, fields with
48318	// empty or default values are omitted from API requests. However, any
48319	// non-pointer, non-interface field appearing in ForceSendFields will be
48320	// sent to the server regardless of whether the field is empty or not.
48321	// This may be used to include empty fields in Patch requests.
48322	ForceSendFields []string `json:"-"`
48323
48324	// NullFields is a list of field names (e.g. "Key") to include in API
48325	// requests with the JSON null value. By default, fields with empty
48326	// values are omitted from API requests. However, any field with an
48327	// empty value appearing in NullFields will be sent to the server as
48328	// null. It is an error if a field in this list has a non-empty value.
48329	// This may be used to include null fields in Patch requests.
48330	NullFields []string `json:"-"`
48331}
48332
48333func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
48334	type NoMethod UrlMapsScopedListWarningData
48335	raw := NoMethod(*s)
48336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48337}
48338
48339type UrlMapsValidateRequest struct {
48340	// Resource: Content of the UrlMap to be validated.
48341	Resource *UrlMap `json:"resource,omitempty"`
48342
48343	// ForceSendFields is a list of field names (e.g. "Resource") to
48344	// unconditionally include in API requests. By default, fields with
48345	// empty or default values are omitted from API requests. However, any
48346	// non-pointer, non-interface field appearing in ForceSendFields will be
48347	// sent to the server regardless of whether the field is empty or not.
48348	// This may be used to include empty fields in Patch requests.
48349	ForceSendFields []string `json:"-"`
48350
48351	// NullFields is a list of field names (e.g. "Resource") to include in
48352	// API requests with the JSON null value. By default, fields with empty
48353	// values are omitted from API requests. However, any field with an
48354	// empty value appearing in NullFields will be sent to the server as
48355	// null. It is an error if a field in this list has a non-empty value.
48356	// This may be used to include null fields in Patch requests.
48357	NullFields []string `json:"-"`
48358}
48359
48360func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
48361	type NoMethod UrlMapsValidateRequest
48362	raw := NoMethod(*s)
48363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48364}
48365
48366type UrlMapsValidateResponse struct {
48367	Result *UrlMapValidationResult `json:"result,omitempty"`
48368
48369	// ServerResponse contains the HTTP response code and headers from the
48370	// server.
48371	googleapi.ServerResponse `json:"-"`
48372
48373	// ForceSendFields is a list of field names (e.g. "Result") to
48374	// unconditionally include in API requests. By default, fields with
48375	// empty or default values are omitted from API requests. However, any
48376	// non-pointer, non-interface field appearing in ForceSendFields will be
48377	// sent to the server regardless of whether the field is empty or not.
48378	// This may be used to include empty fields in Patch requests.
48379	ForceSendFields []string `json:"-"`
48380
48381	// NullFields is a list of field names (e.g. "Result") to include in API
48382	// requests with the JSON null value. By default, fields with empty
48383	// values are omitted from API requests. However, any field with an
48384	// empty value appearing in NullFields will be sent to the server as
48385	// null. It is an error if a field in this list has a non-empty value.
48386	// This may be used to include null fields in Patch requests.
48387	NullFields []string `json:"-"`
48388}
48389
48390func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
48391	type NoMethod UrlMapsValidateResponse
48392	raw := NoMethod(*s)
48393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48394}
48395
48396// UrlRewrite: The spec for modifying the path before sending the
48397// request to the matched backend service.
48398type UrlRewrite struct {
48399	// HostRewrite: Prior to forwarding the request to the selected service,
48400	// the request's host header is replaced with contents of hostRewrite.
48401	// The value must be between 1 and 255 characters.
48402	HostRewrite string `json:"hostRewrite,omitempty"`
48403
48404	// PathPrefixRewrite: Prior to forwarding the request to the selected
48405	// backend service, the matching portion of the request's path is
48406	// replaced by pathPrefixRewrite. The value must be between 1 and 1024
48407	// characters.
48408	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
48409
48410	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
48411	// unconditionally include in API requests. By default, fields with
48412	// empty or default values are omitted from API requests. However, any
48413	// non-pointer, non-interface field appearing in ForceSendFields will be
48414	// sent to the server regardless of whether the field is empty or not.
48415	// This may be used to include empty fields in Patch requests.
48416	ForceSendFields []string `json:"-"`
48417
48418	// NullFields is a list of field names (e.g. "HostRewrite") to include
48419	// in API requests with the JSON null value. By default, fields with
48420	// empty values are omitted from API requests. However, any field with
48421	// an empty value appearing in NullFields will be sent to the server as
48422	// null. It is an error if a field in this list has a non-empty value.
48423	// This may be used to include null fields in Patch requests.
48424	NullFields []string `json:"-"`
48425}
48426
48427func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
48428	type NoMethod UrlRewrite
48429	raw := NoMethod(*s)
48430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48431}
48432
48433// UsableSubnetwork: Subnetwork which the current user has
48434// compute.subnetworks.use permission on.
48435type UsableSubnetwork struct {
48436	// IpCidrRange: The range of internal addresses that are owned by this
48437	// subnetwork.
48438	IpCidrRange string `json:"ipCidrRange,omitempty"`
48439
48440	// Network: Network URL.
48441	Network string `json:"network,omitempty"`
48442
48443	// SecondaryIpRanges: Secondary IP ranges.
48444	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
48445
48446	// Subnetwork: Subnetwork URL.
48447	Subnetwork string `json:"subnetwork,omitempty"`
48448
48449	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
48450	// unconditionally include in API requests. By default, fields with
48451	// empty or default values are omitted from API requests. However, any
48452	// non-pointer, non-interface field appearing in ForceSendFields will be
48453	// sent to the server regardless of whether the field is empty or not.
48454	// This may be used to include empty fields in Patch requests.
48455	ForceSendFields []string `json:"-"`
48456
48457	// NullFields is a list of field names (e.g. "IpCidrRange") to include
48458	// in API requests with the JSON null value. By default, fields with
48459	// empty values are omitted from API requests. However, any field with
48460	// an empty value appearing in NullFields will be sent to the server as
48461	// null. It is an error if a field in this list has a non-empty value.
48462	// This may be used to include null fields in Patch requests.
48463	NullFields []string `json:"-"`
48464}
48465
48466func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
48467	type NoMethod UsableSubnetwork
48468	raw := NoMethod(*s)
48469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48470}
48471
48472// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
48473// subnetwork.
48474type UsableSubnetworkSecondaryRange struct {
48475	// IpCidrRange: The range of IP addresses belonging to this subnetwork
48476	// secondary range.
48477	IpCidrRange string `json:"ipCidrRange,omitempty"`
48478
48479	// RangeName: The name associated with this subnetwork secondary range,
48480	// used when adding an alias IP range to a VM instance. The name must be
48481	// 1-63 characters long, and comply with RFC1035. The name must be
48482	// unique within the subnetwork.
48483	RangeName string `json:"rangeName,omitempty"`
48484
48485	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
48486	// unconditionally include in API requests. By default, fields with
48487	// empty or default values are omitted from API requests. However, any
48488	// non-pointer, non-interface field appearing in ForceSendFields will be
48489	// sent to the server regardless of whether the field is empty or not.
48490	// This may be used to include empty fields in Patch requests.
48491	ForceSendFields []string `json:"-"`
48492
48493	// NullFields is a list of field names (e.g. "IpCidrRange") to include
48494	// in API requests with the JSON null value. By default, fields with
48495	// empty values are omitted from API requests. However, any field with
48496	// an empty value appearing in NullFields will be sent to the server as
48497	// null. It is an error if a field in this list has a non-empty value.
48498	// This may be used to include null fields in Patch requests.
48499	NullFields []string `json:"-"`
48500}
48501
48502func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
48503	type NoMethod UsableSubnetworkSecondaryRange
48504	raw := NoMethod(*s)
48505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48506}
48507
48508type UsableSubnetworksAggregatedList struct {
48509	// Id: [Output Only] The unique identifier for the resource. This
48510	// identifier is defined by the server.
48511	Id string `json:"id,omitempty"`
48512
48513	// Items: [Output] A list of usable subnetwork URLs.
48514	Items []*UsableSubnetwork `json:"items,omitempty"`
48515
48516	// Kind: [Output Only] Type of resource. Always
48517	// compute#usableSubnetworksAggregatedList for aggregated lists of
48518	// usable subnetworks.
48519	Kind string `json:"kind,omitempty"`
48520
48521	// NextPageToken: [Output Only] This token allows you to get the next
48522	// page of results for list requests. If the number of results is larger
48523	// than maxResults, use the nextPageToken as a value for the query
48524	// parameter pageToken in the next list request. Subsequent list
48525	// requests will have their own nextPageToken to continue paging through
48526	// the results. In special cases listUsable may return 0 subnetworks and
48527	// nextPageToken which still should be used to get the next page of
48528	// results.
48529	NextPageToken string `json:"nextPageToken,omitempty"`
48530
48531	// SelfLink: [Output Only] Server-defined URL for this resource.
48532	SelfLink string `json:"selfLink,omitempty"`
48533
48534	// Warning: [Output Only] Informational warning message.
48535	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
48536
48537	// ServerResponse contains the HTTP response code and headers from the
48538	// server.
48539	googleapi.ServerResponse `json:"-"`
48540
48541	// ForceSendFields is a list of field names (e.g. "Id") to
48542	// unconditionally include in API requests. By default, fields with
48543	// empty or default values are omitted from API requests. However, any
48544	// non-pointer, non-interface field appearing in ForceSendFields will be
48545	// sent to the server regardless of whether the field is empty or not.
48546	// This may be used to include empty fields in Patch requests.
48547	ForceSendFields []string `json:"-"`
48548
48549	// NullFields is a list of field names (e.g. "Id") to include in API
48550	// requests with the JSON null value. By default, fields with empty
48551	// values are omitted from API requests. However, any field with an
48552	// empty value appearing in NullFields will be sent to the server as
48553	// null. It is an error if a field in this list has a non-empty value.
48554	// This may be used to include null fields in Patch requests.
48555	NullFields []string `json:"-"`
48556}
48557
48558func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
48559	type NoMethod UsableSubnetworksAggregatedList
48560	raw := NoMethod(*s)
48561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48562}
48563
48564// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
48565// warning message.
48566type UsableSubnetworksAggregatedListWarning struct {
48567	// Code: [Output Only] A warning code, if applicable. For example,
48568	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48569	// the response.
48570	//
48571	// Possible values:
48572	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48573	// changes made by a failed operation.
48574	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48575	// created.
48576	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48577	// resources has a type marked as deprecated
48578	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48579	// that is larger than image size.
48580	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48581	// resources has a type marked as experimental
48582	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48583	// call
48584	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48585	// overridden. Deprecated unused field.
48586	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48587	// injected kernel, which is deprecated.
48588	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48589	// exceedingly large number of resources
48590	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48591	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48592	// not assigned to an instance on the network.
48593	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48594	// ip forward.
48595	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48596	// refers to an instance that does not exist.
48597	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48598	// URL refers to an instance that is not on the same network as the
48599	// route.
48600	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48601	// have a status of RUNNING.
48602	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48603	// continue the process despite the mentioned error.
48604	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48605	// page.
48606	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48607	// missing due to errors
48608	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48609	// that requires a TOS they have not accepted.
48610	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48611	// resource is in use.
48612	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48613	// auto-delete could not be deleted because they were in use.
48614	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48615	// ignored.
48616	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48617	// instance group manager is valid as such, but its application does not
48618	// make a lot of sense, because it allows only single instance in
48619	// instance group.
48620	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48621	// are present
48622	//   "UNREACHABLE" - A given scope cannot be reached.
48623	Code string `json:"code,omitempty"`
48624
48625	// Data: [Output Only] Metadata about this warning in key: value format.
48626	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48627	// }
48628	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
48629
48630	// Message: [Output Only] A human-readable description of the warning
48631	// code.
48632	Message string `json:"message,omitempty"`
48633
48634	// ForceSendFields is a list of field names (e.g. "Code") to
48635	// unconditionally include in API requests. By default, fields with
48636	// empty or default values are omitted from API requests. However, any
48637	// non-pointer, non-interface field appearing in ForceSendFields will be
48638	// sent to the server regardless of whether the field is empty or not.
48639	// This may be used to include empty fields in Patch requests.
48640	ForceSendFields []string `json:"-"`
48641
48642	// NullFields is a list of field names (e.g. "Code") to include in API
48643	// requests with the JSON null value. By default, fields with empty
48644	// values are omitted from API requests. However, any field with an
48645	// empty value appearing in NullFields will be sent to the server as
48646	// null. It is an error if a field in this list has a non-empty value.
48647	// This may be used to include null fields in Patch requests.
48648	NullFields []string `json:"-"`
48649}
48650
48651func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
48652	type NoMethod UsableSubnetworksAggregatedListWarning
48653	raw := NoMethod(*s)
48654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48655}
48656
48657type UsableSubnetworksAggregatedListWarningData struct {
48658	// Key: [Output Only] A key that provides more detail on the warning
48659	// being returned. For example, for warnings where there are no results
48660	// in a list request for a particular zone, this key might be scope and
48661	// the key value might be the zone name. Other examples might be a key
48662	// indicating a deprecated resource and a suggested replacement, or a
48663	// warning about invalid network settings (for example, if an instance
48664	// attempts to perform IP forwarding but is not enabled for IP
48665	// forwarding).
48666	Key string `json:"key,omitempty"`
48667
48668	// Value: [Output Only] A warning data value corresponding to the key.
48669	Value string `json:"value,omitempty"`
48670
48671	// ForceSendFields is a list of field names (e.g. "Key") to
48672	// unconditionally include in API requests. By default, fields with
48673	// empty or default values are omitted from API requests. However, any
48674	// non-pointer, non-interface field appearing in ForceSendFields will be
48675	// sent to the server regardless of whether the field is empty or not.
48676	// This may be used to include empty fields in Patch requests.
48677	ForceSendFields []string `json:"-"`
48678
48679	// NullFields is a list of field names (e.g. "Key") to include in API
48680	// requests with the JSON null value. By default, fields with empty
48681	// values are omitted from API requests. However, any field with an
48682	// empty value appearing in NullFields will be sent to the server as
48683	// null. It is an error if a field in this list has a non-empty value.
48684	// This may be used to include null fields in Patch requests.
48685	NullFields []string `json:"-"`
48686}
48687
48688func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48689	type NoMethod UsableSubnetworksAggregatedListWarningData
48690	raw := NoMethod(*s)
48691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48692}
48693
48694// UsageExportLocation: The location in Cloud Storage and naming method
48695// of the daily usage report. Contains bucket_name and report_name
48696// prefix.
48697type UsageExportLocation struct {
48698	// BucketName: The name of an existing bucket in Cloud Storage where the
48699	// usage report object is stored. The Google Service Account is granted
48700	// write access to this bucket. This can either be the bucket name by
48701	// itself, such as example-bucket, or the bucket name with gs:// or
48702	// https://storage.googleapis.com/ in front of it, such as
48703	// gs://example-bucket.
48704	BucketName string `json:"bucketName,omitempty"`
48705
48706	// ReportNamePrefix: An optional prefix for the name of the usage report
48707	// object stored in bucketName. If not supplied, defaults to usage_gce.
48708	// The report is stored as a CSV file named
48709	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
48710	// usage according to Pacific Time. If you supply a prefix, it should
48711	// conform to Cloud Storage object naming conventions.
48712	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
48713
48714	// ForceSendFields is a list of field names (e.g. "BucketName") to
48715	// unconditionally include in API requests. By default, fields with
48716	// empty or default values are omitted from API requests. However, any
48717	// non-pointer, non-interface field appearing in ForceSendFields will be
48718	// sent to the server regardless of whether the field is empty or not.
48719	// This may be used to include empty fields in Patch requests.
48720	ForceSendFields []string `json:"-"`
48721
48722	// NullFields is a list of field names (e.g. "BucketName") to include in
48723	// API requests with the JSON null value. By default, fields with empty
48724	// values are omitted from API requests. However, any field with an
48725	// empty value appearing in NullFields will be sent to the server as
48726	// null. It is an error if a field in this list has a non-empty value.
48727	// This may be used to include null fields in Patch requests.
48728	NullFields []string `json:"-"`
48729}
48730
48731func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
48732	type NoMethod UsageExportLocation
48733	raw := NoMethod(*s)
48734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48735}
48736
48737// VmEndpointNatMappings: Contain information of Nat mapping for a VM
48738// endpoint (i.e., NIC).
48739type VmEndpointNatMappings struct {
48740	// InstanceName: Name of the VM instance which the endpoint belongs to
48741	InstanceName string `json:"instanceName,omitempty"`
48742
48743	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
48744
48745	// ForceSendFields is a list of field names (e.g. "InstanceName") to
48746	// unconditionally include in API requests. By default, fields with
48747	// empty or default values are omitted from API requests. However, any
48748	// non-pointer, non-interface field appearing in ForceSendFields will be
48749	// sent to the server regardless of whether the field is empty or not.
48750	// This may be used to include empty fields in Patch requests.
48751	ForceSendFields []string `json:"-"`
48752
48753	// NullFields is a list of field names (e.g. "InstanceName") to include
48754	// in API requests with the JSON null value. By default, fields with
48755	// empty values are omitted from API requests. However, any field with
48756	// an empty value appearing in NullFields will be sent to the server as
48757	// null. It is an error if a field in this list has a non-empty value.
48758	// This may be used to include null fields in Patch requests.
48759	NullFields []string `json:"-"`
48760}
48761
48762func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
48763	type NoMethod VmEndpointNatMappings
48764	raw := NoMethod(*s)
48765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48766}
48767
48768// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
48769// mapping for an interface of this endpoint.
48770type VmEndpointNatMappingsInterfaceNatMappings struct {
48771	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
48772	// assigned to this interface. These ranges are inclusive, that is, both
48773	// the first and the last ports can be used for NAT. Example:
48774	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
48775	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
48776
48777	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
48778	// this interface. These ranges are inclusive, that is, both the first
48779	// and the last ports can be used for NAT. Example:
48780	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
48781	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
48782
48783	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
48784	// allocated to this interface. It equals to the aggregated port number
48785	// in the field drain_nat_ip_port_ranges.
48786	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
48787
48788	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
48789	// to this interface. It equals to the aggregated port number in the
48790	// field nat_ip_port_ranges.
48791	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
48792
48793	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
48794	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
48795	// "192.168.5.0/24".
48796	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
48797
48798	// SourceVirtualIp: Primary IP of the VM for this NIC.
48799	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
48800
48801	// ForceSendFields is a list of field names (e.g.
48802	// "DrainNatIpPortRanges") to unconditionally include in API requests.
48803	// By default, fields with empty or default values are omitted from API
48804	// requests. However, any non-pointer, non-interface field appearing in
48805	// ForceSendFields will be sent to the server regardless of whether the
48806	// field is empty or not. This may be used to include empty fields in
48807	// Patch requests.
48808	ForceSendFields []string `json:"-"`
48809
48810	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
48811	// include in API requests with the JSON null value. By default, fields
48812	// with empty values are omitted from API requests. However, any field
48813	// with an empty value appearing in NullFields will be sent to the
48814	// server as null. It is an error if a field in this list has a
48815	// non-empty value. This may be used to include null fields in Patch
48816	// requests.
48817	NullFields []string `json:"-"`
48818}
48819
48820func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
48821	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
48822	raw := NoMethod(*s)
48823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48824}
48825
48826// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
48827type VmEndpointNatMappingsList struct {
48828	// Id: [Output Only] The unique identifier for the resource. This
48829	// identifier is defined by the server.
48830	Id string `json:"id,omitempty"`
48831
48832	// Kind: [Output Only] Type of resource. Always
48833	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
48834	// endpoints.
48835	Kind string `json:"kind,omitempty"`
48836
48837	// NextPageToken: [Output Only] This token allows you to get the next
48838	// page of results for list requests. If the number of results is larger
48839	// than maxResults, use the nextPageToken as a value for the query
48840	// parameter pageToken in the next list request. Subsequent list
48841	// requests will have their own nextPageToken to continue paging through
48842	// the results.
48843	NextPageToken string `json:"nextPageToken,omitempty"`
48844
48845	// Result: [Output Only] A list of Nat mapping information of VM
48846	// endpoints.
48847	Result []*VmEndpointNatMappings `json:"result,omitempty"`
48848
48849	// SelfLink: [Output Only] Server-defined URL for this resource.
48850	SelfLink string `json:"selfLink,omitempty"`
48851
48852	// Warning: [Output Only] Informational warning message.
48853	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
48854
48855	// ServerResponse contains the HTTP response code and headers from the
48856	// server.
48857	googleapi.ServerResponse `json:"-"`
48858
48859	// ForceSendFields is a list of field names (e.g. "Id") to
48860	// unconditionally include in API requests. By default, fields with
48861	// empty or default values are omitted from API requests. However, any
48862	// non-pointer, non-interface field appearing in ForceSendFields will be
48863	// sent to the server regardless of whether the field is empty or not.
48864	// This may be used to include empty fields in Patch requests.
48865	ForceSendFields []string `json:"-"`
48866
48867	// NullFields is a list of field names (e.g. "Id") to include in API
48868	// requests with the JSON null value. By default, fields with empty
48869	// values are omitted from API requests. However, any field with an
48870	// empty value appearing in NullFields will be sent to the server as
48871	// null. It is an error if a field in this list has a non-empty value.
48872	// This may be used to include null fields in Patch requests.
48873	NullFields []string `json:"-"`
48874}
48875
48876func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
48877	type NoMethod VmEndpointNatMappingsList
48878	raw := NoMethod(*s)
48879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48880}
48881
48882// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
48883// message.
48884type VmEndpointNatMappingsListWarning struct {
48885	// Code: [Output Only] A warning code, if applicable. For example,
48886	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48887	// the response.
48888	//
48889	// Possible values:
48890	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48891	// changes made by a failed operation.
48892	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48893	// created.
48894	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48895	// resources has a type marked as deprecated
48896	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48897	// that is larger than image size.
48898	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48899	// resources has a type marked as experimental
48900	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48901	// call
48902	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48903	// overridden. Deprecated unused field.
48904	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48905	// injected kernel, which is deprecated.
48906	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48907	// exceedingly large number of resources
48908	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48909	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48910	// not assigned to an instance on the network.
48911	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48912	// ip forward.
48913	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48914	// refers to an instance that does not exist.
48915	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48916	// URL refers to an instance that is not on the same network as the
48917	// route.
48918	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48919	// have a status of RUNNING.
48920	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48921	// continue the process despite the mentioned error.
48922	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48923	// page.
48924	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48925	// missing due to errors
48926	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48927	// that requires a TOS they have not accepted.
48928	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48929	// resource is in use.
48930	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48931	// auto-delete could not be deleted because they were in use.
48932	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48933	// ignored.
48934	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48935	// instance group manager is valid as such, but its application does not
48936	// make a lot of sense, because it allows only single instance in
48937	// instance group.
48938	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48939	// are present
48940	//   "UNREACHABLE" - A given scope cannot be reached.
48941	Code string `json:"code,omitempty"`
48942
48943	// Data: [Output Only] Metadata about this warning in key: value format.
48944	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48945	// }
48946	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
48947
48948	// Message: [Output Only] A human-readable description of the warning
48949	// code.
48950	Message string `json:"message,omitempty"`
48951
48952	// ForceSendFields is a list of field names (e.g. "Code") to
48953	// unconditionally include in API requests. By default, fields with
48954	// empty or default values are omitted from API requests. However, any
48955	// non-pointer, non-interface field appearing in ForceSendFields will be
48956	// sent to the server regardless of whether the field is empty or not.
48957	// This may be used to include empty fields in Patch requests.
48958	ForceSendFields []string `json:"-"`
48959
48960	// NullFields is a list of field names (e.g. "Code") to include in API
48961	// requests with the JSON null value. By default, fields with empty
48962	// values are omitted from API requests. However, any field with an
48963	// empty value appearing in NullFields will be sent to the server as
48964	// null. It is an error if a field in this list has a non-empty value.
48965	// This may be used to include null fields in Patch requests.
48966	NullFields []string `json:"-"`
48967}
48968
48969func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
48970	type NoMethod VmEndpointNatMappingsListWarning
48971	raw := NoMethod(*s)
48972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48973}
48974
48975type VmEndpointNatMappingsListWarningData struct {
48976	// Key: [Output Only] A key that provides more detail on the warning
48977	// being returned. For example, for warnings where there are no results
48978	// in a list request for a particular zone, this key might be scope and
48979	// the key value might be the zone name. Other examples might be a key
48980	// indicating a deprecated resource and a suggested replacement, or a
48981	// warning about invalid network settings (for example, if an instance
48982	// attempts to perform IP forwarding but is not enabled for IP
48983	// forwarding).
48984	Key string `json:"key,omitempty"`
48985
48986	// Value: [Output Only] A warning data value corresponding to the key.
48987	Value string `json:"value,omitempty"`
48988
48989	// ForceSendFields is a list of field names (e.g. "Key") to
48990	// unconditionally include in API requests. By default, fields with
48991	// empty or default values are omitted from API requests. However, any
48992	// non-pointer, non-interface field appearing in ForceSendFields will be
48993	// sent to the server regardless of whether the field is empty or not.
48994	// This may be used to include empty fields in Patch requests.
48995	ForceSendFields []string `json:"-"`
48996
48997	// NullFields is a list of field names (e.g. "Key") to include in API
48998	// requests with the JSON null value. By default, fields with empty
48999	// values are omitted from API requests. However, any field with an
49000	// empty value appearing in NullFields will be sent to the server as
49001	// null. It is an error if a field in this list has a non-empty value.
49002	// This may be used to include null fields in Patch requests.
49003	NullFields []string `json:"-"`
49004}
49005
49006func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
49007	type NoMethod VmEndpointNatMappingsListWarningData
49008	raw := NoMethod(*s)
49009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49010}
49011
49012// VpnGateway: Represents a HA VPN gateway. HA VPN is a
49013// high-availability (HA) Cloud VPN solution that lets you securely
49014// connect your on-premises network to your Google Cloud Virtual Private
49015// Cloud network through an IPsec VPN connection in a single region. For
49016// more information about Cloud HA VPN solutions, see Cloud VPN
49017// topologies .
49018type VpnGateway struct {
49019	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49020	// format.
49021	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49022
49023	// Description: An optional description of this resource. Provide this
49024	// property when you create the resource.
49025	Description string `json:"description,omitempty"`
49026
49027	// Id: [Output Only] The unique identifier for the resource. This
49028	// identifier is defined by the server.
49029	Id uint64 `json:"id,omitempty,string"`
49030
49031	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49032	// VPN gateways.
49033	Kind string `json:"kind,omitempty"`
49034
49035	// LabelFingerprint: A fingerprint for the labels being applied to this
49036	// VpnGateway, which is essentially a hash of the labels set used for
49037	// optimistic locking. The fingerprint is initially generated by Compute
49038	// Engine and changes after every request to modify or update labels.
49039	// You must always provide an up-to-date fingerprint hash in order to
49040	// update or change labels, otherwise the request will fail with error
49041	// 412 conditionNotMet. To see the latest fingerprint, make a get()
49042	// request to retrieve an VpnGateway.
49043	LabelFingerprint string `json:"labelFingerprint,omitempty"`
49044
49045	// Labels: Labels for this resource. These can only be added or modified
49046	// by the setLabels method. Each label key/value pair must comply with
49047	// RFC1035. Label values may be empty.
49048	Labels map[string]string `json:"labels,omitempty"`
49049
49050	// Name: Name of the resource. Provided by the client when the resource
49051	// is created. The name must be 1-63 characters long, and comply with
49052	// RFC1035. Specifically, the name must be 1-63 characters long and
49053	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
49054	// the first character must be a lowercase letter, and all following
49055	// characters must be a dash, lowercase letter, or digit, except the
49056	// last character, which cannot be a dash.
49057	Name string `json:"name,omitempty"`
49058
49059	// Network: URL of the network to which this VPN gateway is attached.
49060	// Provided by the client when the VPN gateway is created.
49061	Network string `json:"network,omitempty"`
49062
49063	// Region: [Output Only] URL of the region where the VPN gateway
49064	// resides.
49065	Region string `json:"region,omitempty"`
49066
49067	// SelfLink: [Output Only] Server-defined URL for the resource.
49068	SelfLink string `json:"selfLink,omitempty"`
49069
49070	// VpnInterfaces: The list of VPN interfaces associated with this VPN
49071	// gateway.
49072	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
49073
49074	// ServerResponse contains the HTTP response code and headers from the
49075	// server.
49076	googleapi.ServerResponse `json:"-"`
49077
49078	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
49079	// to unconditionally include in API requests. By default, fields with
49080	// empty or default values are omitted from API requests. However, any
49081	// non-pointer, non-interface field appearing in ForceSendFields will be
49082	// sent to the server regardless of whether the field is empty or not.
49083	// This may be used to include empty fields in Patch requests.
49084	ForceSendFields []string `json:"-"`
49085
49086	// NullFields is a list of field names (e.g. "CreationTimestamp") to
49087	// include in API requests with the JSON null value. By default, fields
49088	// with empty values are omitted from API requests. However, any field
49089	// with an empty value appearing in NullFields will be sent to the
49090	// server as null. It is an error if a field in this list has a
49091	// non-empty value. This may be used to include null fields in Patch
49092	// requests.
49093	NullFields []string `json:"-"`
49094}
49095
49096func (s *VpnGateway) MarshalJSON() ([]byte, error) {
49097	type NoMethod VpnGateway
49098	raw := NoMethod(*s)
49099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49100}
49101
49102type VpnGatewayAggregatedList struct {
49103	// Id: [Output Only] Unique identifier for the resource; defined by the
49104	// server.
49105	Id string `json:"id,omitempty"`
49106
49107	// Items: A list of VpnGateway resources.
49108	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
49109
49110	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49111	// VPN gateways.
49112	Kind string `json:"kind,omitempty"`
49113
49114	// NextPageToken: [Output Only] This token allows you to get the next
49115	// page of results for list requests. If the number of results is larger
49116	// than maxResults, use the nextPageToken as a value for the query
49117	// parameter pageToken in the next list request. Subsequent list
49118	// requests will have their own nextPageToken to continue paging through
49119	// the results.
49120	NextPageToken string `json:"nextPageToken,omitempty"`
49121
49122	// SelfLink: [Output Only] Server-defined URL for this resource.
49123	SelfLink string `json:"selfLink,omitempty"`
49124
49125	// Unreachables: [Output Only] Unreachable resources.
49126	Unreachables []string `json:"unreachables,omitempty"`
49127
49128	// Warning: [Output Only] Informational warning message.
49129	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
49130
49131	// ServerResponse contains the HTTP response code and headers from the
49132	// server.
49133	googleapi.ServerResponse `json:"-"`
49134
49135	// ForceSendFields is a list of field names (e.g. "Id") to
49136	// unconditionally include in API requests. By default, fields with
49137	// empty or default values are omitted from API requests. However, any
49138	// non-pointer, non-interface field appearing in ForceSendFields will be
49139	// sent to the server regardless of whether the field is empty or not.
49140	// This may be used to include empty fields in Patch requests.
49141	ForceSendFields []string `json:"-"`
49142
49143	// NullFields is a list of field names (e.g. "Id") to include in API
49144	// requests with the JSON null value. By default, fields with empty
49145	// values are omitted from API requests. However, any field with an
49146	// empty value appearing in NullFields will be sent to the server as
49147	// null. It is an error if a field in this list has a non-empty value.
49148	// This may be used to include null fields in Patch requests.
49149	NullFields []string `json:"-"`
49150}
49151
49152func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
49153	type NoMethod VpnGatewayAggregatedList
49154	raw := NoMethod(*s)
49155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49156}
49157
49158// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
49159// message.
49160type VpnGatewayAggregatedListWarning struct {
49161	// Code: [Output Only] A warning code, if applicable. For example,
49162	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49163	// the response.
49164	//
49165	// Possible values:
49166	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49167	// changes made by a failed operation.
49168	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49169	// created.
49170	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49171	// resources has a type marked as deprecated
49172	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49173	// that is larger than image size.
49174	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49175	// resources has a type marked as experimental
49176	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49177	// call
49178	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49179	// overridden. Deprecated unused field.
49180	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49181	// injected kernel, which is deprecated.
49182	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49183	// exceedingly large number of resources
49184	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49185	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49186	// not assigned to an instance on the network.
49187	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49188	// ip forward.
49189	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49190	// refers to an instance that does not exist.
49191	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49192	// URL refers to an instance that is not on the same network as the
49193	// route.
49194	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49195	// have a status of RUNNING.
49196	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49197	// continue the process despite the mentioned error.
49198	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49199	// page.
49200	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49201	// missing due to errors
49202	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49203	// that requires a TOS they have not accepted.
49204	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49205	// resource is in use.
49206	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49207	// auto-delete could not be deleted because they were in use.
49208	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49209	// ignored.
49210	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49211	// instance group manager is valid as such, but its application does not
49212	// make a lot of sense, because it allows only single instance in
49213	// instance group.
49214	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49215	// are present
49216	//   "UNREACHABLE" - A given scope cannot be reached.
49217	Code string `json:"code,omitempty"`
49218
49219	// Data: [Output Only] Metadata about this warning in key: value format.
49220	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49221	// }
49222	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
49223
49224	// Message: [Output Only] A human-readable description of the warning
49225	// code.
49226	Message string `json:"message,omitempty"`
49227
49228	// ForceSendFields is a list of field names (e.g. "Code") to
49229	// unconditionally include in API requests. By default, fields with
49230	// empty or default values are omitted from API requests. However, any
49231	// non-pointer, non-interface field appearing in ForceSendFields will be
49232	// sent to the server regardless of whether the field is empty or not.
49233	// This may be used to include empty fields in Patch requests.
49234	ForceSendFields []string `json:"-"`
49235
49236	// NullFields is a list of field names (e.g. "Code") to include in API
49237	// requests with the JSON null value. By default, fields with empty
49238	// values are omitted from API requests. However, any field with an
49239	// empty value appearing in NullFields will be sent to the server as
49240	// null. It is an error if a field in this list has a non-empty value.
49241	// This may be used to include null fields in Patch requests.
49242	NullFields []string `json:"-"`
49243}
49244
49245func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
49246	type NoMethod VpnGatewayAggregatedListWarning
49247	raw := NoMethod(*s)
49248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49249}
49250
49251type VpnGatewayAggregatedListWarningData struct {
49252	// Key: [Output Only] A key that provides more detail on the warning
49253	// being returned. For example, for warnings where there are no results
49254	// in a list request for a particular zone, this key might be scope and
49255	// the key value might be the zone name. Other examples might be a key
49256	// indicating a deprecated resource and a suggested replacement, or a
49257	// warning about invalid network settings (for example, if an instance
49258	// attempts to perform IP forwarding but is not enabled for IP
49259	// forwarding).
49260	Key string `json:"key,omitempty"`
49261
49262	// Value: [Output Only] A warning data value corresponding to the key.
49263	Value string `json:"value,omitempty"`
49264
49265	// ForceSendFields is a list of field names (e.g. "Key") to
49266	// unconditionally include in API requests. By default, fields with
49267	// empty or default values are omitted from API requests. However, any
49268	// non-pointer, non-interface field appearing in ForceSendFields will be
49269	// sent to the server regardless of whether the field is empty or not.
49270	// This may be used to include empty fields in Patch requests.
49271	ForceSendFields []string `json:"-"`
49272
49273	// NullFields is a list of field names (e.g. "Key") to include in API
49274	// requests with the JSON null value. By default, fields with empty
49275	// values are omitted from API requests. However, any field with an
49276	// empty value appearing in NullFields will be sent to the server as
49277	// null. It is an error if a field in this list has a non-empty value.
49278	// This may be used to include null fields in Patch requests.
49279	NullFields []string `json:"-"`
49280}
49281
49282func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
49283	type NoMethod VpnGatewayAggregatedListWarningData
49284	raw := NoMethod(*s)
49285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49286}
49287
49288// VpnGatewayList: Contains a list of VpnGateway resources.
49289type VpnGatewayList struct {
49290	// Id: [Output Only] Unique identifier for the resource; defined by the
49291	// server.
49292	Id string `json:"id,omitempty"`
49293
49294	// Items: A list of VpnGateway resources.
49295	Items []*VpnGateway `json:"items,omitempty"`
49296
49297	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49298	// VPN gateways.
49299	Kind string `json:"kind,omitempty"`
49300
49301	// NextPageToken: [Output Only] This token allows you to get the next
49302	// page of results for list requests. If the number of results is larger
49303	// than maxResults, use the nextPageToken as a value for the query
49304	// parameter pageToken in the next list request. Subsequent list
49305	// requests will have their own nextPageToken to continue paging through
49306	// the results.
49307	NextPageToken string `json:"nextPageToken,omitempty"`
49308
49309	// SelfLink: [Output Only] Server-defined URL for this resource.
49310	SelfLink string `json:"selfLink,omitempty"`
49311
49312	// Warning: [Output Only] Informational warning message.
49313	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
49314
49315	// ServerResponse contains the HTTP response code and headers from the
49316	// server.
49317	googleapi.ServerResponse `json:"-"`
49318
49319	// ForceSendFields is a list of field names (e.g. "Id") to
49320	// unconditionally include in API requests. By default, fields with
49321	// empty or default values are omitted from API requests. However, any
49322	// non-pointer, non-interface field appearing in ForceSendFields will be
49323	// sent to the server regardless of whether the field is empty or not.
49324	// This may be used to include empty fields in Patch requests.
49325	ForceSendFields []string `json:"-"`
49326
49327	// NullFields is a list of field names (e.g. "Id") to include in API
49328	// requests with the JSON null value. By default, fields with empty
49329	// values are omitted from API requests. However, any field with an
49330	// empty value appearing in NullFields will be sent to the server as
49331	// null. It is an error if a field in this list has a non-empty value.
49332	// This may be used to include null fields in Patch requests.
49333	NullFields []string `json:"-"`
49334}
49335
49336func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
49337	type NoMethod VpnGatewayList
49338	raw := NoMethod(*s)
49339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49340}
49341
49342// VpnGatewayListWarning: [Output Only] Informational warning message.
49343type VpnGatewayListWarning struct {
49344	// Code: [Output Only] A warning code, if applicable. For example,
49345	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49346	// the response.
49347	//
49348	// Possible values:
49349	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49350	// changes made by a failed operation.
49351	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49352	// created.
49353	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49354	// resources has a type marked as deprecated
49355	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49356	// that is larger than image size.
49357	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49358	// resources has a type marked as experimental
49359	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49360	// call
49361	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49362	// overridden. Deprecated unused field.
49363	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49364	// injected kernel, which is deprecated.
49365	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49366	// exceedingly large number of resources
49367	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49368	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49369	// not assigned to an instance on the network.
49370	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49371	// ip forward.
49372	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49373	// refers to an instance that does not exist.
49374	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49375	// URL refers to an instance that is not on the same network as the
49376	// route.
49377	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49378	// have a status of RUNNING.
49379	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49380	// continue the process despite the mentioned error.
49381	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49382	// page.
49383	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49384	// missing due to errors
49385	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49386	// that requires a TOS they have not accepted.
49387	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49388	// resource is in use.
49389	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49390	// auto-delete could not be deleted because they were in use.
49391	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49392	// ignored.
49393	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49394	// instance group manager is valid as such, but its application does not
49395	// make a lot of sense, because it allows only single instance in
49396	// instance group.
49397	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49398	// are present
49399	//   "UNREACHABLE" - A given scope cannot be reached.
49400	Code string `json:"code,omitempty"`
49401
49402	// Data: [Output Only] Metadata about this warning in key: value format.
49403	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49404	// }
49405	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
49406
49407	// Message: [Output Only] A human-readable description of the warning
49408	// code.
49409	Message string `json:"message,omitempty"`
49410
49411	// ForceSendFields is a list of field names (e.g. "Code") to
49412	// unconditionally include in API requests. By default, fields with
49413	// empty or default values are omitted from API requests. However, any
49414	// non-pointer, non-interface field appearing in ForceSendFields will be
49415	// sent to the server regardless of whether the field is empty or not.
49416	// This may be used to include empty fields in Patch requests.
49417	ForceSendFields []string `json:"-"`
49418
49419	// NullFields is a list of field names (e.g. "Code") to include in API
49420	// requests with the JSON null value. By default, fields with empty
49421	// values are omitted from API requests. However, any field with an
49422	// empty value appearing in NullFields will be sent to the server as
49423	// null. It is an error if a field in this list has a non-empty value.
49424	// This may be used to include null fields in Patch requests.
49425	NullFields []string `json:"-"`
49426}
49427
49428func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
49429	type NoMethod VpnGatewayListWarning
49430	raw := NoMethod(*s)
49431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49432}
49433
49434type VpnGatewayListWarningData struct {
49435	// Key: [Output Only] A key that provides more detail on the warning
49436	// being returned. For example, for warnings where there are no results
49437	// in a list request for a particular zone, this key might be scope and
49438	// the key value might be the zone name. Other examples might be a key
49439	// indicating a deprecated resource and a suggested replacement, or a
49440	// warning about invalid network settings (for example, if an instance
49441	// attempts to perform IP forwarding but is not enabled for IP
49442	// forwarding).
49443	Key string `json:"key,omitempty"`
49444
49445	// Value: [Output Only] A warning data value corresponding to the key.
49446	Value string `json:"value,omitempty"`
49447
49448	// ForceSendFields is a list of field names (e.g. "Key") to
49449	// unconditionally include in API requests. By default, fields with
49450	// empty or default values are omitted from API requests. However, any
49451	// non-pointer, non-interface field appearing in ForceSendFields will be
49452	// sent to the server regardless of whether the field is empty or not.
49453	// This may be used to include empty fields in Patch requests.
49454	ForceSendFields []string `json:"-"`
49455
49456	// NullFields is a list of field names (e.g. "Key") to include in API
49457	// requests with the JSON null value. By default, fields with empty
49458	// values are omitted from API requests. However, any field with an
49459	// empty value appearing in NullFields will be sent to the server as
49460	// null. It is an error if a field in this list has a non-empty value.
49461	// This may be used to include null fields in Patch requests.
49462	NullFields []string `json:"-"`
49463}
49464
49465func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
49466	type NoMethod VpnGatewayListWarningData
49467	raw := NoMethod(*s)
49468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49469}
49470
49471type VpnGatewayStatus struct {
49472	// VpnConnections: List of VPN connection for this VpnGateway.
49473	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
49474
49475	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
49476	// unconditionally include in API requests. By default, fields with
49477	// empty or default values are omitted from API requests. However, any
49478	// non-pointer, non-interface field appearing in ForceSendFields will be
49479	// sent to the server regardless of whether the field is empty or not.
49480	// This may be used to include empty fields in Patch requests.
49481	ForceSendFields []string `json:"-"`
49482
49483	// NullFields is a list of field names (e.g. "VpnConnections") to
49484	// include in API requests with the JSON null value. By default, fields
49485	// with empty values are omitted from API requests. However, any field
49486	// with an empty value appearing in NullFields will be sent to the
49487	// server as null. It is an error if a field in this list has a
49488	// non-empty value. This may be used to include null fields in Patch
49489	// requests.
49490	NullFields []string `json:"-"`
49491}
49492
49493func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
49494	type NoMethod VpnGatewayStatus
49495	raw := NoMethod(*s)
49496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49497}
49498
49499// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
49500// availability requirement state for the VPN connection between this
49501// Cloud VPN gateway and a peer gateway.
49502type VpnGatewayStatusHighAvailabilityRequirementState struct {
49503	// State: Indicates the high availability requirement state for the VPN
49504	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
49505	// CONNECTION_REDUNDANCY_NOT_MET.
49506	//
49507	// Possible values:
49508	//   "CONNECTION_REDUNDANCY_MET" - VPN tunnels are configured with
49509	// adequate redundancy from Cloud VPN gateway to the peer VPN gateway.
49510	// For both GCP-to-non-GCP and GCP-to-GCP connections, the adequate
49511	// redundancy is a pre-requirement for users to get 99.99% availability
49512	// on GCP side; please note that for any connection, end-to-end 99.99%
49513	// availability is subject to proper configuration on the peer VPN
49514	// gateway.
49515	//   "CONNECTION_REDUNDANCY_NOT_MET" - VPN tunnels are not configured
49516	// with adequate redundancy from the Cloud VPN gateway to the peer
49517	// gateway
49518	State string `json:"state,omitempty"`
49519
49520	// UnsatisfiedReason: Indicates the reason why the VPN connection does
49521	// not meet the high availability redundancy criteria/requirement. Valid
49522	// values is INCOMPLETE_TUNNELS_COVERAGE.
49523	//
49524	// Possible values:
49525	//   "INCOMPLETE_TUNNELS_COVERAGE"
49526	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
49527
49528	// ForceSendFields is a list of field names (e.g. "State") to
49529	// unconditionally include in API requests. By default, fields with
49530	// empty or default values are omitted from API requests. However, any
49531	// non-pointer, non-interface field appearing in ForceSendFields will be
49532	// sent to the server regardless of whether the field is empty or not.
49533	// This may be used to include empty fields in Patch requests.
49534	ForceSendFields []string `json:"-"`
49535
49536	// NullFields is a list of field names (e.g. "State") to include in API
49537	// requests with the JSON null value. By default, fields with empty
49538	// values are omitted from API requests. However, any field with an
49539	// empty value appearing in NullFields will be sent to the server as
49540	// null. It is an error if a field in this list has a non-empty value.
49541	// This may be used to include null fields in Patch requests.
49542	NullFields []string `json:"-"`
49543}
49544
49545func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
49546	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
49547	raw := NoMethod(*s)
49548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49549}
49550
49551// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
49552type VpnGatewayStatusTunnel struct {
49553	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
49554	// associated with.
49555	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
49556
49557	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
49558	// connected to, the peer gateway could either be an external VPN
49559	// gateway or GCP VPN gateway.
49560	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
49561
49562	// TunnelUrl: URL reference to the VPN tunnel.
49563	TunnelUrl string `json:"tunnelUrl,omitempty"`
49564
49565	// ForceSendFields is a list of field names (e.g.
49566	// "LocalGatewayInterface") to unconditionally include in API requests.
49567	// By default, fields with empty or default values are omitted from API
49568	// requests. However, any non-pointer, non-interface field appearing in
49569	// ForceSendFields will be sent to the server regardless of whether the
49570	// field is empty or not. This may be used to include empty fields in
49571	// Patch requests.
49572	ForceSendFields []string `json:"-"`
49573
49574	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
49575	// include in API requests with the JSON null value. By default, fields
49576	// with empty values are omitted from API requests. However, any field
49577	// with an empty value appearing in NullFields will be sent to the
49578	// server as null. It is an error if a field in this list has a
49579	// non-empty value. This may be used to include null fields in Patch
49580	// requests.
49581	NullFields []string `json:"-"`
49582}
49583
49584func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
49585	type NoMethod VpnGatewayStatusTunnel
49586	raw := NoMethod(*s)
49587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49588}
49589
49590// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
49591// tunnels connected from this VpnGateway to the same peer gateway. The
49592// peer gateway could either be a external VPN gateway or GCP VPN
49593// gateway.
49594type VpnGatewayStatusVpnConnection struct {
49595	// PeerExternalGateway: URL reference to the peer external VPN gateways
49596	// to which the VPN tunnels in this VPN connection are connected. This
49597	// field is mutually exclusive with peer_gcp_gateway.
49598	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
49599
49600	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
49601	// the VPN tunnels in this VPN connection are connected. This field is
49602	// mutually exclusive with peer_gcp_gateway.
49603	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
49604
49605	// State: HighAvailabilityRequirementState for the VPN connection.
49606	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
49607
49608	// Tunnels: List of VPN tunnels that are in this VPN connection.
49609	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
49610
49611	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
49612	// to unconditionally include in API requests. By default, fields with
49613	// empty or default values are omitted from API requests. However, any
49614	// non-pointer, non-interface field appearing in ForceSendFields will be
49615	// sent to the server regardless of whether the field is empty or not.
49616	// This may be used to include empty fields in Patch requests.
49617	ForceSendFields []string `json:"-"`
49618
49619	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
49620	// include in API requests with the JSON null value. By default, fields
49621	// with empty values are omitted from API requests. However, any field
49622	// with an empty value appearing in NullFields will be sent to the
49623	// server as null. It is an error if a field in this list has a
49624	// non-empty value. This may be used to include null fields in Patch
49625	// requests.
49626	NullFields []string `json:"-"`
49627}
49628
49629func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
49630	type NoMethod VpnGatewayStatusVpnConnection
49631	raw := NoMethod(*s)
49632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49633}
49634
49635// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
49636type VpnGatewayVpnGatewayInterface struct {
49637	// Id: [Output Only] Numeric identifier for this VPN interface
49638	// associated with the VPN gateway.
49639	Id int64 `json:"id,omitempty"`
49640
49641	// InterconnectAttachment: URL of the VLAN attachment
49642	// (interconnectAttachment) resource for this VPN gateway interface.
49643	// When the value of this field is present, the VPN gateway is used for
49644	// IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for
49645	// this VPN gateway interface goes through the specified VLAN attachment
49646	// resource. Not currently available publicly.
49647	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
49648
49649	// IpAddress: [Output Only] IP address for this VPN interface associated
49650	// with the VPN gateway. The IP address could be either a regional
49651	// external IP address or a regional internal IP address. The two IP
49652	// addresses for a VPN gateway must be all regional external or regional
49653	// internal IP addresses. There cannot be a mix of regional external IP
49654	// addresses and regional internal IP addresses. For IPsec-encrypted
49655	// Cloud Interconnect, the IP addresses for both interfaces could either
49656	// be regional internal IP addresses or regional external IP addresses.
49657	// For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels,
49658	// the IP address must be a regional external IP address.
49659	IpAddress string `json:"ipAddress,omitempty"`
49660
49661	// ForceSendFields is a list of field names (e.g. "Id") to
49662	// unconditionally include in API requests. By default, fields with
49663	// empty or default values are omitted from API requests. However, any
49664	// non-pointer, non-interface field appearing in ForceSendFields will be
49665	// sent to the server regardless of whether the field is empty or not.
49666	// This may be used to include empty fields in Patch requests.
49667	ForceSendFields []string `json:"-"`
49668
49669	// NullFields is a list of field names (e.g. "Id") to include in API
49670	// requests with the JSON null value. By default, fields with empty
49671	// values are omitted from API requests. However, any field with an
49672	// empty value appearing in NullFields will be sent to the server as
49673	// null. It is an error if a field in this list has a non-empty value.
49674	// This may be used to include null fields in Patch requests.
49675	NullFields []string `json:"-"`
49676}
49677
49678func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
49679	type NoMethod VpnGatewayVpnGatewayInterface
49680	raw := NoMethod(*s)
49681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49682}
49683
49684type VpnGatewaysGetStatusResponse struct {
49685	Result *VpnGatewayStatus `json:"result,omitempty"`
49686
49687	// ServerResponse contains the HTTP response code and headers from the
49688	// server.
49689	googleapi.ServerResponse `json:"-"`
49690
49691	// ForceSendFields is a list of field names (e.g. "Result") to
49692	// unconditionally include in API requests. By default, fields with
49693	// empty or default values are omitted from API requests. However, any
49694	// non-pointer, non-interface field appearing in ForceSendFields will be
49695	// sent to the server regardless of whether the field is empty or not.
49696	// This may be used to include empty fields in Patch requests.
49697	ForceSendFields []string `json:"-"`
49698
49699	// NullFields is a list of field names (e.g. "Result") to include in API
49700	// requests with the JSON null value. By default, fields with empty
49701	// values are omitted from API requests. However, any field with an
49702	// empty value appearing in NullFields will be sent to the server as
49703	// null. It is an error if a field in this list has a non-empty value.
49704	// This may be used to include null fields in Patch requests.
49705	NullFields []string `json:"-"`
49706}
49707
49708func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
49709	type NoMethod VpnGatewaysGetStatusResponse
49710	raw := NoMethod(*s)
49711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49712}
49713
49714type VpnGatewaysScopedList struct {
49715	// VpnGateways: [Output Only] A list of VPN gateways contained in this
49716	// scope.
49717	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
49718
49719	// Warning: [Output Only] Informational warning which replaces the list
49720	// of addresses when the list is empty.
49721	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
49722
49723	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
49724	// unconditionally include in API requests. By default, fields with
49725	// empty or default values are omitted from API requests. However, any
49726	// non-pointer, non-interface field appearing in ForceSendFields will be
49727	// sent to the server regardless of whether the field is empty or not.
49728	// This may be used to include empty fields in Patch requests.
49729	ForceSendFields []string `json:"-"`
49730
49731	// NullFields is a list of field names (e.g. "VpnGateways") to include
49732	// in API requests with the JSON null value. By default, fields with
49733	// empty values are omitted from API requests. However, any field with
49734	// an empty value appearing in NullFields will be sent to the server as
49735	// null. It is an error if a field in this list has a non-empty value.
49736	// This may be used to include null fields in Patch requests.
49737	NullFields []string `json:"-"`
49738}
49739
49740func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
49741	type NoMethod VpnGatewaysScopedList
49742	raw := NoMethod(*s)
49743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49744}
49745
49746// VpnGatewaysScopedListWarning: [Output Only] Informational warning
49747// which replaces the list of addresses when the list is empty.
49748type VpnGatewaysScopedListWarning struct {
49749	// Code: [Output Only] A warning code, if applicable. For example,
49750	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49751	// the response.
49752	//
49753	// Possible values:
49754	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49755	// changes made by a failed operation.
49756	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49757	// created.
49758	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49759	// resources has a type marked as deprecated
49760	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49761	// that is larger than image size.
49762	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49763	// resources has a type marked as experimental
49764	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49765	// call
49766	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49767	// overridden. Deprecated unused field.
49768	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49769	// injected kernel, which is deprecated.
49770	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49771	// exceedingly large number of resources
49772	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49773	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49774	// not assigned to an instance on the network.
49775	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49776	// ip forward.
49777	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49778	// refers to an instance that does not exist.
49779	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49780	// URL refers to an instance that is not on the same network as the
49781	// route.
49782	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49783	// have a status of RUNNING.
49784	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49785	// continue the process despite the mentioned error.
49786	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49787	// page.
49788	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49789	// missing due to errors
49790	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49791	// that requires a TOS they have not accepted.
49792	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49793	// resource is in use.
49794	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49795	// auto-delete could not be deleted because they were in use.
49796	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49797	// ignored.
49798	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49799	// instance group manager is valid as such, but its application does not
49800	// make a lot of sense, because it allows only single instance in
49801	// instance group.
49802	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49803	// are present
49804	//   "UNREACHABLE" - A given scope cannot be reached.
49805	Code string `json:"code,omitempty"`
49806
49807	// Data: [Output Only] Metadata about this warning in key: value format.
49808	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49809	// }
49810	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
49811
49812	// Message: [Output Only] A human-readable description of the warning
49813	// code.
49814	Message string `json:"message,omitempty"`
49815
49816	// ForceSendFields is a list of field names (e.g. "Code") to
49817	// unconditionally include in API requests. By default, fields with
49818	// empty or default values are omitted from API requests. However, any
49819	// non-pointer, non-interface field appearing in ForceSendFields will be
49820	// sent to the server regardless of whether the field is empty or not.
49821	// This may be used to include empty fields in Patch requests.
49822	ForceSendFields []string `json:"-"`
49823
49824	// NullFields is a list of field names (e.g. "Code") to include in API
49825	// requests with the JSON null value. By default, fields with empty
49826	// values are omitted from API requests. However, any field with an
49827	// empty value appearing in NullFields will be sent to the server as
49828	// null. It is an error if a field in this list has a non-empty value.
49829	// This may be used to include null fields in Patch requests.
49830	NullFields []string `json:"-"`
49831}
49832
49833func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
49834	type NoMethod VpnGatewaysScopedListWarning
49835	raw := NoMethod(*s)
49836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49837}
49838
49839type VpnGatewaysScopedListWarningData struct {
49840	// Key: [Output Only] A key that provides more detail on the warning
49841	// being returned. For example, for warnings where there are no results
49842	// in a list request for a particular zone, this key might be scope and
49843	// the key value might be the zone name. Other examples might be a key
49844	// indicating a deprecated resource and a suggested replacement, or a
49845	// warning about invalid network settings (for example, if an instance
49846	// attempts to perform IP forwarding but is not enabled for IP
49847	// forwarding).
49848	Key string `json:"key,omitempty"`
49849
49850	// Value: [Output Only] A warning data value corresponding to the key.
49851	Value string `json:"value,omitempty"`
49852
49853	// ForceSendFields is a list of field names (e.g. "Key") to
49854	// unconditionally include in API requests. By default, fields with
49855	// empty or default values are omitted from API requests. However, any
49856	// non-pointer, non-interface field appearing in ForceSendFields will be
49857	// sent to the server regardless of whether the field is empty or not.
49858	// This may be used to include empty fields in Patch requests.
49859	ForceSendFields []string `json:"-"`
49860
49861	// NullFields is a list of field names (e.g. "Key") to include in API
49862	// requests with the JSON null value. By default, fields with empty
49863	// values are omitted from API requests. However, any field with an
49864	// empty value appearing in NullFields will be sent to the server as
49865	// null. It is an error if a field in this list has a non-empty value.
49866	// This may be used to include null fields in Patch requests.
49867	NullFields []string `json:"-"`
49868}
49869
49870func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
49871	type NoMethod VpnGatewaysScopedListWarningData
49872	raw := NoMethod(*s)
49873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49874}
49875
49876// VpnTunnel: Represents a Cloud VPN Tunnel resource. For more
49877// information about VPN, read the the Cloud VPN Overview.
49878type VpnTunnel struct {
49879	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49880	// format.
49881	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49882
49883	// Description: An optional description of this resource. Provide this
49884	// property when you create the resource.
49885	Description string `json:"description,omitempty"`
49886
49887	// DetailedStatus: [Output Only] Detailed status message for the VPN
49888	// tunnel.
49889	DetailedStatus string `json:"detailedStatus,omitempty"`
49890
49891	// Id: [Output Only] The unique identifier for the resource. This
49892	// identifier is defined by the server.
49893	Id uint64 `json:"id,omitempty,string"`
49894
49895	// IkeVersion: IKE protocol version to use when establishing the VPN
49896	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
49897	// The default version is 2.
49898	IkeVersion int64 `json:"ikeVersion,omitempty"`
49899
49900	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
49901	// VPN tunnels.
49902	Kind string `json:"kind,omitempty"`
49903
49904	// LocalTrafficSelector: Local traffic selector to use when establishing
49905	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
49906	// formatted string, for example: 192.168.0.0/16. The ranges must be
49907	// disjoint. Only IPv4 is supported.
49908	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
49909
49910	// Name: Name of the resource. Provided by the client when the resource
49911	// is created. The name must be 1-63 characters long, and comply with
49912	// RFC1035. Specifically, the name must be 1-63 characters long and
49913	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
49914	// the first character must be a lowercase letter, and all following
49915	// characters must be a dash, lowercase letter, or digit, except the
49916	// last character, which cannot be a dash.
49917	Name string `json:"name,omitempty"`
49918
49919	// PeerExternalGateway: URL of the peer side external VPN gateway to
49920	// which this VPN tunnel is connected. Provided by the client when the
49921	// VPN tunnel is created. This field is exclusive with the field
49922	// peerGcpGateway.
49923	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
49924
49925	// PeerExternalGatewayInterface: The interface ID of the external VPN
49926	// gateway to which this VPN tunnel is connected. Provided by the client
49927	// when the VPN tunnel is created.
49928	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
49929
49930	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
49931	// VPN tunnel is connected. Provided by the client when the VPN tunnel
49932	// is created. This field can be used when creating highly available VPN
49933	// from VPC network to VPC network, the field is exclusive with the
49934	// field peerExternalGateway. If provided, the VPN tunnel will
49935	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
49936	// gateway.
49937	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
49938
49939	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
49940	PeerIp string `json:"peerIp,omitempty"`
49941
49942	// Region: [Output Only] URL of the region where the VPN tunnel resides.
49943	// You must specify this field as part of the HTTP request URL. It is
49944	// not settable as a field in the request body.
49945	Region string `json:"region,omitempty"`
49946
49947	// RemoteTrafficSelector: Remote traffic selectors to use when
49948	// establishing the VPN tunnel with the peer VPN gateway. The value
49949	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
49950	// ranges should be disjoint. Only IPv4 is supported.
49951	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
49952
49953	// Router: URL of the router resource to be used for dynamic routing.
49954	Router string `json:"router,omitempty"`
49955
49956	// SelfLink: [Output Only] Server-defined URL for the resource.
49957	SelfLink string `json:"selfLink,omitempty"`
49958
49959	// SharedSecret: Shared secret used to set the secure session between
49960	// the Cloud VPN gateway and the peer VPN gateway.
49961	SharedSecret string `json:"sharedSecret,omitempty"`
49962
49963	// SharedSecretHash: Hash of the shared secret.
49964	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
49965
49966	// Status: [Output Only] The status of the VPN tunnel, which can be one
49967	// of the following: - PROVISIONING: Resource is being allocated for the
49968	// VPN tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all
49969	// VPN-related configs from the user. Network, TargetVpnGateway,
49970	// VpnTunnel, ForwardingRule, and Route resources are needed to setup
49971	// the VPN tunnel. - FIRST_HANDSHAKE: Successful first handshake with
49972	// the peer VPN. - ESTABLISHED: Secure session is successfully
49973	// established with the peer VPN. - NETWORK_ERROR: Deprecated, replaced
49974	// by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for
49975	// example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed.
49976	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
49977	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
49978	// be used. - NO_INCOMING_PACKETS: No incoming packets from peer. -
49979	// REJECTED: Tunnel configuration was rejected, can be result of being
49980	// denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the process of
49981	// allocating all required resources. - STOPPED: Tunnel is stopped due
49982	// to its Forwarding Rules being deleted for Classic VPN tunnels or the
49983	// project is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity
49984	// does not match peer IP, probably behind NAT. -
49985	// TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed for
49986	// an HA-VPN tunnel.
49987	//
49988	// Possible values:
49989	//   "ALLOCATING_RESOURCES" - Cloud VPN is in the process of allocating
49990	// all required resources (specifically, a borg task).
49991	//   "AUTHORIZATION_ERROR" - Auth error (e.g. bad shared secret).
49992	//   "DEPROVISIONING" - Resources is being deallocated for the VPN
49993	// tunnel.
49994	//   "ESTABLISHED" - Secure session is successfully established with
49995	// peer VPN.
49996	//   "FAILED" - Tunnel creation has failed and the tunnel is not ready
49997	// to be used.
49998	//   "FIRST_HANDSHAKE" - Successful first handshake with peer VPN.
49999	//   "NEGOTIATION_FAILURE" - Handshake failed.
50000	//   "NETWORK_ERROR" - Deprecated, replaced by NO_INCOMING_PACKETS
50001	//   "NO_INCOMING_PACKETS" - No incoming packets from peer
50002	//   "PROVISIONING" - Resource is being allocated for the VPN tunnel.
50003	//   "REJECTED" - Tunnel configuration was rejected, can be result of
50004	// being denylisted.
50005	//   "STOPPED" - Tunnel is stopped due to its Forwarding Rules being
50006	// deleted.
50007	//   "WAITING_FOR_FULL_CONFIG" - Waiting to receive all VPN-related
50008	// configs from user. Network, TargetVpnGateway, VpnTunnel,
50009	// ForwardingRule and Route resources are needed to setup VPN tunnel.
50010	Status string `json:"status,omitempty"`
50011
50012	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
50013	// tunnel is associated. Provided by the client when the VPN tunnel is
50014	// created.
50015	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
50016
50017	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
50018	// associated. Provided by the client when the VPN tunnel is created.
50019	// This must be used (instead of target_vpn_gateway) if a High
50020	// Availability VPN gateway resource is created.
50021	VpnGateway string `json:"vpnGateway,omitempty"`
50022
50023	// VpnGatewayInterface: The interface ID of the VPN gateway with which
50024	// this VPN tunnel is associated.
50025	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
50026
50027	// ServerResponse contains the HTTP response code and headers from the
50028	// server.
50029	googleapi.ServerResponse `json:"-"`
50030
50031	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
50032	// to unconditionally include in API requests. By default, fields with
50033	// empty or default values are omitted from API requests. However, any
50034	// non-pointer, non-interface field appearing in ForceSendFields will be
50035	// sent to the server regardless of whether the field is empty or not.
50036	// This may be used to include empty fields in Patch requests.
50037	ForceSendFields []string `json:"-"`
50038
50039	// NullFields is a list of field names (e.g. "CreationTimestamp") to
50040	// include in API requests with the JSON null value. By default, fields
50041	// with empty values are omitted from API requests. However, any field
50042	// with an empty value appearing in NullFields will be sent to the
50043	// server as null. It is an error if a field in this list has a
50044	// non-empty value. This may be used to include null fields in Patch
50045	// requests.
50046	NullFields []string `json:"-"`
50047}
50048
50049func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
50050	type NoMethod VpnTunnel
50051	raw := NoMethod(*s)
50052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50053}
50054
50055type VpnTunnelAggregatedList struct {
50056	// Id: [Output Only] Unique identifier for the resource; defined by the
50057	// server.
50058	Id string `json:"id,omitempty"`
50059
50060	// Items: A list of VpnTunnelsScopedList resources.
50061	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
50062
50063	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
50064	// VPN tunnels.
50065	Kind string `json:"kind,omitempty"`
50066
50067	// NextPageToken: [Output Only] This token allows you to get the next
50068	// page of results for list requests. If the number of results is larger
50069	// than maxResults, use the nextPageToken as a value for the query
50070	// parameter pageToken in the next list request. Subsequent list
50071	// requests will have their own nextPageToken to continue paging through
50072	// the results.
50073	NextPageToken string `json:"nextPageToken,omitempty"`
50074
50075	// SelfLink: [Output Only] Server-defined URL for this resource.
50076	SelfLink string `json:"selfLink,omitempty"`
50077
50078	// Unreachables: [Output Only] Unreachable resources.
50079	Unreachables []string `json:"unreachables,omitempty"`
50080
50081	// Warning: [Output Only] Informational warning message.
50082	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
50083
50084	// ServerResponse contains the HTTP response code and headers from the
50085	// server.
50086	googleapi.ServerResponse `json:"-"`
50087
50088	// ForceSendFields is a list of field names (e.g. "Id") to
50089	// unconditionally include in API requests. By default, fields with
50090	// empty or default values are omitted from API requests. However, any
50091	// non-pointer, non-interface field appearing in ForceSendFields will be
50092	// sent to the server regardless of whether the field is empty or not.
50093	// This may be used to include empty fields in Patch requests.
50094	ForceSendFields []string `json:"-"`
50095
50096	// NullFields is a list of field names (e.g. "Id") to include in API
50097	// requests with the JSON null value. By default, fields with empty
50098	// values are omitted from API requests. However, any field with an
50099	// empty value appearing in NullFields will be sent to the server as
50100	// null. It is an error if a field in this list has a non-empty value.
50101	// This may be used to include null fields in Patch requests.
50102	NullFields []string `json:"-"`
50103}
50104
50105func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
50106	type NoMethod VpnTunnelAggregatedList
50107	raw := NoMethod(*s)
50108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50109}
50110
50111// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
50112// message.
50113type VpnTunnelAggregatedListWarning struct {
50114	// Code: [Output Only] A warning code, if applicable. For example,
50115	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50116	// the response.
50117	//
50118	// Possible values:
50119	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50120	// changes made by a failed operation.
50121	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50122	// created.
50123	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50124	// resources has a type marked as deprecated
50125	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50126	// that is larger than image size.
50127	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50128	// resources has a type marked as experimental
50129	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50130	// call
50131	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50132	// overridden. Deprecated unused field.
50133	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50134	// injected kernel, which is deprecated.
50135	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50136	// exceedingly large number of resources
50137	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50138	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50139	// not assigned to an instance on the network.
50140	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50141	// ip forward.
50142	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50143	// refers to an instance that does not exist.
50144	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50145	// URL refers to an instance that is not on the same network as the
50146	// route.
50147	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50148	// have a status of RUNNING.
50149	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50150	// continue the process despite the mentioned error.
50151	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50152	// page.
50153	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50154	// missing due to errors
50155	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50156	// that requires a TOS they have not accepted.
50157	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50158	// resource is in use.
50159	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50160	// auto-delete could not be deleted because they were in use.
50161	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50162	// ignored.
50163	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50164	// instance group manager is valid as such, but its application does not
50165	// make a lot of sense, because it allows only single instance in
50166	// instance group.
50167	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50168	// are present
50169	//   "UNREACHABLE" - A given scope cannot be reached.
50170	Code string `json:"code,omitempty"`
50171
50172	// Data: [Output Only] Metadata about this warning in key: value format.
50173	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50174	// }
50175	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
50176
50177	// Message: [Output Only] A human-readable description of the warning
50178	// code.
50179	Message string `json:"message,omitempty"`
50180
50181	// ForceSendFields is a list of field names (e.g. "Code") to
50182	// unconditionally include in API requests. By default, fields with
50183	// empty or default values are omitted from API requests. However, any
50184	// non-pointer, non-interface field appearing in ForceSendFields will be
50185	// sent to the server regardless of whether the field is empty or not.
50186	// This may be used to include empty fields in Patch requests.
50187	ForceSendFields []string `json:"-"`
50188
50189	// NullFields is a list of field names (e.g. "Code") to include in API
50190	// requests with the JSON null value. By default, fields with empty
50191	// values are omitted from API requests. However, any field with an
50192	// empty value appearing in NullFields will be sent to the server as
50193	// null. It is an error if a field in this list has a non-empty value.
50194	// This may be used to include null fields in Patch requests.
50195	NullFields []string `json:"-"`
50196}
50197
50198func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
50199	type NoMethod VpnTunnelAggregatedListWarning
50200	raw := NoMethod(*s)
50201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50202}
50203
50204type VpnTunnelAggregatedListWarningData struct {
50205	// Key: [Output Only] A key that provides more detail on the warning
50206	// being returned. For example, for warnings where there are no results
50207	// in a list request for a particular zone, this key might be scope and
50208	// the key value might be the zone name. Other examples might be a key
50209	// indicating a deprecated resource and a suggested replacement, or a
50210	// warning about invalid network settings (for example, if an instance
50211	// attempts to perform IP forwarding but is not enabled for IP
50212	// forwarding).
50213	Key string `json:"key,omitempty"`
50214
50215	// Value: [Output Only] A warning data value corresponding to the key.
50216	Value string `json:"value,omitempty"`
50217
50218	// ForceSendFields is a list of field names (e.g. "Key") to
50219	// unconditionally include in API requests. By default, fields with
50220	// empty or default values are omitted from API requests. However, any
50221	// non-pointer, non-interface field appearing in ForceSendFields will be
50222	// sent to the server regardless of whether the field is empty or not.
50223	// This may be used to include empty fields in Patch requests.
50224	ForceSendFields []string `json:"-"`
50225
50226	// NullFields is a list of field names (e.g. "Key") to include in API
50227	// requests with the JSON null value. By default, fields with empty
50228	// values are omitted from API requests. However, any field with an
50229	// empty value appearing in NullFields will be sent to the server as
50230	// null. It is an error if a field in this list has a non-empty value.
50231	// This may be used to include null fields in Patch requests.
50232	NullFields []string `json:"-"`
50233}
50234
50235func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
50236	type NoMethod VpnTunnelAggregatedListWarningData
50237	raw := NoMethod(*s)
50238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50239}
50240
50241// VpnTunnelList: Contains a list of VpnTunnel resources.
50242type VpnTunnelList struct {
50243	// Id: [Output Only] Unique identifier for the resource; defined by the
50244	// server.
50245	Id string `json:"id,omitempty"`
50246
50247	// Items: A list of VpnTunnel resources.
50248	Items []*VpnTunnel `json:"items,omitempty"`
50249
50250	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
50251	// VPN tunnels.
50252	Kind string `json:"kind,omitempty"`
50253
50254	// NextPageToken: [Output Only] This token allows you to get the next
50255	// page of results for list requests. If the number of results is larger
50256	// than maxResults, use the nextPageToken as a value for the query
50257	// parameter pageToken in the next list request. Subsequent list
50258	// requests will have their own nextPageToken to continue paging through
50259	// the results.
50260	NextPageToken string `json:"nextPageToken,omitempty"`
50261
50262	// SelfLink: [Output Only] Server-defined URL for this resource.
50263	SelfLink string `json:"selfLink,omitempty"`
50264
50265	// Warning: [Output Only] Informational warning message.
50266	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
50267
50268	// ServerResponse contains the HTTP response code and headers from the
50269	// server.
50270	googleapi.ServerResponse `json:"-"`
50271
50272	// ForceSendFields is a list of field names (e.g. "Id") to
50273	// unconditionally include in API requests. By default, fields with
50274	// empty or default values are omitted from API requests. However, any
50275	// non-pointer, non-interface field appearing in ForceSendFields will be
50276	// sent to the server regardless of whether the field is empty or not.
50277	// This may be used to include empty fields in Patch requests.
50278	ForceSendFields []string `json:"-"`
50279
50280	// NullFields is a list of field names (e.g. "Id") to include in API
50281	// requests with the JSON null value. By default, fields with empty
50282	// values are omitted from API requests. However, any field with an
50283	// empty value appearing in NullFields will be sent to the server as
50284	// null. It is an error if a field in this list has a non-empty value.
50285	// This may be used to include null fields in Patch requests.
50286	NullFields []string `json:"-"`
50287}
50288
50289func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
50290	type NoMethod VpnTunnelList
50291	raw := NoMethod(*s)
50292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50293}
50294
50295// VpnTunnelListWarning: [Output Only] Informational warning message.
50296type VpnTunnelListWarning struct {
50297	// Code: [Output Only] A warning code, if applicable. For example,
50298	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50299	// the response.
50300	//
50301	// Possible values:
50302	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50303	// changes made by a failed operation.
50304	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50305	// created.
50306	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50307	// resources has a type marked as deprecated
50308	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50309	// that is larger than image size.
50310	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50311	// resources has a type marked as experimental
50312	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50313	// call
50314	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50315	// overridden. Deprecated unused field.
50316	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50317	// injected kernel, which is deprecated.
50318	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50319	// exceedingly large number of resources
50320	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50321	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50322	// not assigned to an instance on the network.
50323	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50324	// ip forward.
50325	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50326	// refers to an instance that does not exist.
50327	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50328	// URL refers to an instance that is not on the same network as the
50329	// route.
50330	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50331	// have a status of RUNNING.
50332	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50333	// continue the process despite the mentioned error.
50334	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50335	// page.
50336	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50337	// missing due to errors
50338	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50339	// that requires a TOS they have not accepted.
50340	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50341	// resource is in use.
50342	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50343	// auto-delete could not be deleted because they were in use.
50344	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50345	// ignored.
50346	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50347	// instance group manager is valid as such, but its application does not
50348	// make a lot of sense, because it allows only single instance in
50349	// instance group.
50350	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50351	// are present
50352	//   "UNREACHABLE" - A given scope cannot be reached.
50353	Code string `json:"code,omitempty"`
50354
50355	// Data: [Output Only] Metadata about this warning in key: value format.
50356	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50357	// }
50358	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
50359
50360	// Message: [Output Only] A human-readable description of the warning
50361	// code.
50362	Message string `json:"message,omitempty"`
50363
50364	// ForceSendFields is a list of field names (e.g. "Code") to
50365	// unconditionally include in API requests. By default, fields with
50366	// empty or default values are omitted from API requests. However, any
50367	// non-pointer, non-interface field appearing in ForceSendFields will be
50368	// sent to the server regardless of whether the field is empty or not.
50369	// This may be used to include empty fields in Patch requests.
50370	ForceSendFields []string `json:"-"`
50371
50372	// NullFields is a list of field names (e.g. "Code") to include in API
50373	// requests with the JSON null value. By default, fields with empty
50374	// values are omitted from API requests. However, any field with an
50375	// empty value appearing in NullFields will be sent to the server as
50376	// null. It is an error if a field in this list has a non-empty value.
50377	// This may be used to include null fields in Patch requests.
50378	NullFields []string `json:"-"`
50379}
50380
50381func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
50382	type NoMethod VpnTunnelListWarning
50383	raw := NoMethod(*s)
50384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50385}
50386
50387type VpnTunnelListWarningData struct {
50388	// Key: [Output Only] A key that provides more detail on the warning
50389	// being returned. For example, for warnings where there are no results
50390	// in a list request for a particular zone, this key might be scope and
50391	// the key value might be the zone name. Other examples might be a key
50392	// indicating a deprecated resource and a suggested replacement, or a
50393	// warning about invalid network settings (for example, if an instance
50394	// attempts to perform IP forwarding but is not enabled for IP
50395	// forwarding).
50396	Key string `json:"key,omitempty"`
50397
50398	// Value: [Output Only] A warning data value corresponding to the key.
50399	Value string `json:"value,omitempty"`
50400
50401	// ForceSendFields is a list of field names (e.g. "Key") to
50402	// unconditionally include in API requests. By default, fields with
50403	// empty or default values are omitted from API requests. However, any
50404	// non-pointer, non-interface field appearing in ForceSendFields will be
50405	// sent to the server regardless of whether the field is empty or not.
50406	// This may be used to include empty fields in Patch requests.
50407	ForceSendFields []string `json:"-"`
50408
50409	// NullFields is a list of field names (e.g. "Key") to include in API
50410	// requests with the JSON null value. By default, fields with empty
50411	// values are omitted from API requests. However, any field with an
50412	// empty value appearing in NullFields will be sent to the server as
50413	// null. It is an error if a field in this list has a non-empty value.
50414	// This may be used to include null fields in Patch requests.
50415	NullFields []string `json:"-"`
50416}
50417
50418func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
50419	type NoMethod VpnTunnelListWarningData
50420	raw := NoMethod(*s)
50421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50422}
50423
50424type VpnTunnelsScopedList struct {
50425	// VpnTunnels: A list of VPN tunnels contained in this scope.
50426	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
50427
50428	// Warning: Informational warning which replaces the list of addresses
50429	// when the list is empty.
50430	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
50431
50432	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
50433	// unconditionally include in API requests. By default, fields with
50434	// empty or default values are omitted from API requests. However, any
50435	// non-pointer, non-interface field appearing in ForceSendFields will be
50436	// sent to the server regardless of whether the field is empty or not.
50437	// This may be used to include empty fields in Patch requests.
50438	ForceSendFields []string `json:"-"`
50439
50440	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
50441	// API requests with the JSON null value. By default, fields with empty
50442	// values are omitted from API requests. However, any field with an
50443	// empty value appearing in NullFields will be sent to the server as
50444	// null. It is an error if a field in this list has a non-empty value.
50445	// This may be used to include null fields in Patch requests.
50446	NullFields []string `json:"-"`
50447}
50448
50449func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
50450	type NoMethod VpnTunnelsScopedList
50451	raw := NoMethod(*s)
50452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50453}
50454
50455// VpnTunnelsScopedListWarning: Informational warning which replaces the
50456// list of addresses when the list is empty.
50457type VpnTunnelsScopedListWarning struct {
50458	// Code: [Output Only] A warning code, if applicable. For example,
50459	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50460	// the response.
50461	//
50462	// Possible values:
50463	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50464	// changes made by a failed operation.
50465	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50466	// created.
50467	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50468	// resources has a type marked as deprecated
50469	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50470	// that is larger than image size.
50471	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50472	// resources has a type marked as experimental
50473	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50474	// call
50475	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50476	// overridden. Deprecated unused field.
50477	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50478	// injected kernel, which is deprecated.
50479	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50480	// exceedingly large number of resources
50481	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50482	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50483	// not assigned to an instance on the network.
50484	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50485	// ip forward.
50486	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50487	// refers to an instance that does not exist.
50488	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50489	// URL refers to an instance that is not on the same network as the
50490	// route.
50491	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50492	// have a status of RUNNING.
50493	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50494	// continue the process despite the mentioned error.
50495	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50496	// page.
50497	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50498	// missing due to errors
50499	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50500	// that requires a TOS they have not accepted.
50501	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50502	// resource is in use.
50503	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50504	// auto-delete could not be deleted because they were in use.
50505	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50506	// ignored.
50507	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50508	// instance group manager is valid as such, but its application does not
50509	// make a lot of sense, because it allows only single instance in
50510	// instance group.
50511	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50512	// are present
50513	//   "UNREACHABLE" - A given scope cannot be reached.
50514	Code string `json:"code,omitempty"`
50515
50516	// Data: [Output Only] Metadata about this warning in key: value format.
50517	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50518	// }
50519	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
50520
50521	// Message: [Output Only] A human-readable description of the warning
50522	// code.
50523	Message string `json:"message,omitempty"`
50524
50525	// ForceSendFields is a list of field names (e.g. "Code") to
50526	// unconditionally include in API requests. By default, fields with
50527	// empty or default values are omitted from API requests. However, any
50528	// non-pointer, non-interface field appearing in ForceSendFields will be
50529	// sent to the server regardless of whether the field is empty or not.
50530	// This may be used to include empty fields in Patch requests.
50531	ForceSendFields []string `json:"-"`
50532
50533	// NullFields is a list of field names (e.g. "Code") to include in API
50534	// requests with the JSON null value. By default, fields with empty
50535	// values are omitted from API requests. However, any field with an
50536	// empty value appearing in NullFields will be sent to the server as
50537	// null. It is an error if a field in this list has a non-empty value.
50538	// This may be used to include null fields in Patch requests.
50539	NullFields []string `json:"-"`
50540}
50541
50542func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
50543	type NoMethod VpnTunnelsScopedListWarning
50544	raw := NoMethod(*s)
50545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50546}
50547
50548type VpnTunnelsScopedListWarningData struct {
50549	// Key: [Output Only] A key that provides more detail on the warning
50550	// being returned. For example, for warnings where there are no results
50551	// in a list request for a particular zone, this key might be scope and
50552	// the key value might be the zone name. Other examples might be a key
50553	// indicating a deprecated resource and a suggested replacement, or a
50554	// warning about invalid network settings (for example, if an instance
50555	// attempts to perform IP forwarding but is not enabled for IP
50556	// forwarding).
50557	Key string `json:"key,omitempty"`
50558
50559	// Value: [Output Only] A warning data value corresponding to the key.
50560	Value string `json:"value,omitempty"`
50561
50562	// ForceSendFields is a list of field names (e.g. "Key") to
50563	// unconditionally include in API requests. By default, fields with
50564	// empty or default values are omitted from API requests. However, any
50565	// non-pointer, non-interface field appearing in ForceSendFields will be
50566	// sent to the server regardless of whether the field is empty or not.
50567	// This may be used to include empty fields in Patch requests.
50568	ForceSendFields []string `json:"-"`
50569
50570	// NullFields is a list of field names (e.g. "Key") to include in API
50571	// requests with the JSON null value. By default, fields with empty
50572	// values are omitted from API requests. However, any field with an
50573	// empty value appearing in NullFields will be sent to the server as
50574	// null. It is an error if a field in this list has a non-empty value.
50575	// This may be used to include null fields in Patch requests.
50576	NullFields []string `json:"-"`
50577}
50578
50579func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
50580	type NoMethod VpnTunnelsScopedListWarningData
50581	raw := NoMethod(*s)
50582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50583}
50584
50585type WafExpressionSet struct {
50586	// Aliases: A list of alternate IDs. The format should be: - E.g.
50587	// XSS-stable Generic suffix like "stable" is particularly useful if a
50588	// policy likes to avail newer set of expressions without having to
50589	// change the policy. A given alias name can't be used for more than one
50590	// entity set.
50591	Aliases []string `json:"aliases,omitempty"`
50592
50593	// Expressions: List of available expressions.
50594	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
50595
50596	// Id: Google specified expression set ID. The format should be: - E.g.
50597	// XSS-20170329 required
50598	Id string `json:"id,omitempty"`
50599
50600	// ForceSendFields is a list of field names (e.g. "Aliases") to
50601	// unconditionally include in API requests. By default, fields with
50602	// empty or default values are omitted from API requests. However, any
50603	// non-pointer, non-interface field appearing in ForceSendFields will be
50604	// sent to the server regardless of whether the field is empty or not.
50605	// This may be used to include empty fields in Patch requests.
50606	ForceSendFields []string `json:"-"`
50607
50608	// NullFields is a list of field names (e.g. "Aliases") to include in
50609	// API requests with the JSON null value. By default, fields with empty
50610	// values are omitted from API requests. However, any field with an
50611	// empty value appearing in NullFields will be sent to the server as
50612	// null. It is an error if a field in this list has a non-empty value.
50613	// This may be used to include null fields in Patch requests.
50614	NullFields []string `json:"-"`
50615}
50616
50617func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
50618	type NoMethod WafExpressionSet
50619	raw := NoMethod(*s)
50620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50621}
50622
50623type WafExpressionSetExpression struct {
50624	// Id: Expression ID should uniquely identify the origin of the
50625	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
50626	// rule set version 2.9.1 rule id 973337. The ID could be used to
50627	// determine the individual attack definition that has been detected. It
50628	// could also be used to exclude it from the policy in case of false
50629	// positive. required
50630	Id string `json:"id,omitempty"`
50631
50632	// ForceSendFields is a list of field names (e.g. "Id") to
50633	// unconditionally include in API requests. By default, fields with
50634	// empty or default values are omitted from API requests. However, any
50635	// non-pointer, non-interface field appearing in ForceSendFields will be
50636	// sent to the server regardless of whether the field is empty or not.
50637	// This may be used to include empty fields in Patch requests.
50638	ForceSendFields []string `json:"-"`
50639
50640	// NullFields is a list of field names (e.g. "Id") to include in API
50641	// requests with the JSON null value. By default, fields with empty
50642	// values are omitted from API requests. However, any field with an
50643	// empty value appearing in NullFields will be sent to the server as
50644	// null. It is an error if a field in this list has a non-empty value.
50645	// This may be used to include null fields in Patch requests.
50646	NullFields []string `json:"-"`
50647}
50648
50649func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
50650	type NoMethod WafExpressionSetExpression
50651	raw := NoMethod(*s)
50652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50653}
50654
50655// WeightedBackendService: In contrast to a single BackendService in
50656// HttpRouteAction to which all matching traffic is directed to,
50657// WeightedBackendService allows traffic to be split across multiple
50658// BackendServices. The volume of traffic for each BackendService is
50659// proportional to the weight specified in each WeightedBackendService
50660type WeightedBackendService struct {
50661	// BackendService: The full or partial URL to the default BackendService
50662	// resource. Before forwarding the request to backendService, the
50663	// loadbalancer applies any relevant headerActions specified as part of
50664	// this backendServiceWeight.
50665	BackendService string `json:"backendService,omitempty"`
50666
50667	// HeaderAction: Specifies changes to request and response headers that
50668	// need to take effect for the selected backendService. headerAction
50669	// specified here take effect before headerAction in the enclosing
50670	// HttpRouteRule, PathMatcher and UrlMap. Note that headerAction is not
50671	// supported for Loadbalancers that have their loadBalancingScheme set
50672	// to EXTERNAL. Not supported when the URL map is bound to target gRPC
50673	// proxy that has validateForProxyless field set to true.
50674	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
50675
50676	// Weight: Specifies the fraction of traffic sent to backendService,
50677	// computed as weight / (sum of all weightedBackendService weights in
50678	// routeAction) . The selection of a backend service is determined only
50679	// for new traffic. Once a user's request has been directed to a
50680	// backendService, subsequent requests will be sent to the same
50681	// backendService as determined by the BackendService's session affinity
50682	// policy. The value must be between 0 and 1000
50683	Weight int64 `json:"weight,omitempty"`
50684
50685	// ForceSendFields is a list of field names (e.g. "BackendService") to
50686	// unconditionally include in API requests. By default, fields with
50687	// empty or default values are omitted from API requests. However, any
50688	// non-pointer, non-interface field appearing in ForceSendFields will be
50689	// sent to the server regardless of whether the field is empty or not.
50690	// This may be used to include empty fields in Patch requests.
50691	ForceSendFields []string `json:"-"`
50692
50693	// NullFields is a list of field names (e.g. "BackendService") to
50694	// include in API requests with the JSON null value. By default, fields
50695	// with empty values are omitted from API requests. However, any field
50696	// with an empty value appearing in NullFields will be sent to the
50697	// server as null. It is an error if a field in this list has a
50698	// non-empty value. This may be used to include null fields in Patch
50699	// requests.
50700	NullFields []string `json:"-"`
50701}
50702
50703func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
50704	type NoMethod WeightedBackendService
50705	raw := NoMethod(*s)
50706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50707}
50708
50709type XpnHostList struct {
50710	// Id: [Output Only] Unique identifier for the resource; defined by the
50711	// server.
50712	Id string `json:"id,omitempty"`
50713
50714	// Items: [Output Only] A list of shared VPC host project URLs.
50715	Items []*Project `json:"items,omitempty"`
50716
50717	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
50718	// lists of shared VPC hosts.
50719	Kind string `json:"kind,omitempty"`
50720
50721	// NextPageToken: [Output Only] This token allows you to get the next
50722	// page of results for list requests. If the number of results is larger
50723	// than maxResults, use the nextPageToken as a value for the query
50724	// parameter pageToken in the next list request. Subsequent list
50725	// requests will have their own nextPageToken to continue paging through
50726	// the results.
50727	NextPageToken string `json:"nextPageToken,omitempty"`
50728
50729	// SelfLink: [Output Only] Server-defined URL for this resource.
50730	SelfLink string `json:"selfLink,omitempty"`
50731
50732	// Warning: [Output Only] Informational warning message.
50733	Warning *XpnHostListWarning `json:"warning,omitempty"`
50734
50735	// ServerResponse contains the HTTP response code and headers from the
50736	// server.
50737	googleapi.ServerResponse `json:"-"`
50738
50739	// ForceSendFields is a list of field names (e.g. "Id") to
50740	// unconditionally include in API requests. By default, fields with
50741	// empty or default values are omitted from API requests. However, any
50742	// non-pointer, non-interface field appearing in ForceSendFields will be
50743	// sent to the server regardless of whether the field is empty or not.
50744	// This may be used to include empty fields in Patch requests.
50745	ForceSendFields []string `json:"-"`
50746
50747	// NullFields is a list of field names (e.g. "Id") to include in API
50748	// requests with the JSON null value. By default, fields with empty
50749	// values are omitted from API requests. However, any field with an
50750	// empty value appearing in NullFields will be sent to the server as
50751	// null. It is an error if a field in this list has a non-empty value.
50752	// This may be used to include null fields in Patch requests.
50753	NullFields []string `json:"-"`
50754}
50755
50756func (s *XpnHostList) MarshalJSON() ([]byte, error) {
50757	type NoMethod XpnHostList
50758	raw := NoMethod(*s)
50759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50760}
50761
50762// XpnHostListWarning: [Output Only] Informational warning message.
50763type XpnHostListWarning struct {
50764	// Code: [Output Only] A warning code, if applicable. For example,
50765	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50766	// the response.
50767	//
50768	// Possible values:
50769	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50770	// changes made by a failed operation.
50771	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50772	// created.
50773	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50774	// resources has a type marked as deprecated
50775	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50776	// that is larger than image size.
50777	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50778	// resources has a type marked as experimental
50779	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50780	// call
50781	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50782	// overridden. Deprecated unused field.
50783	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50784	// injected kernel, which is deprecated.
50785	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50786	// exceedingly large number of resources
50787	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50788	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50789	// not assigned to an instance on the network.
50790	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50791	// ip forward.
50792	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50793	// refers to an instance that does not exist.
50794	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50795	// URL refers to an instance that is not on the same network as the
50796	// route.
50797	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50798	// have a status of RUNNING.
50799	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50800	// continue the process despite the mentioned error.
50801	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50802	// page.
50803	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50804	// missing due to errors
50805	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50806	// that requires a TOS they have not accepted.
50807	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50808	// resource is in use.
50809	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50810	// auto-delete could not be deleted because they were in use.
50811	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50812	// ignored.
50813	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50814	// instance group manager is valid as such, but its application does not
50815	// make a lot of sense, because it allows only single instance in
50816	// instance group.
50817	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50818	// are present
50819	//   "UNREACHABLE" - A given scope cannot be reached.
50820	Code string `json:"code,omitempty"`
50821
50822	// Data: [Output Only] Metadata about this warning in key: value format.
50823	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50824	// }
50825	Data []*XpnHostListWarningData `json:"data,omitempty"`
50826
50827	// Message: [Output Only] A human-readable description of the warning
50828	// code.
50829	Message string `json:"message,omitempty"`
50830
50831	// ForceSendFields is a list of field names (e.g. "Code") to
50832	// unconditionally include in API requests. By default, fields with
50833	// empty or default values are omitted from API requests. However, any
50834	// non-pointer, non-interface field appearing in ForceSendFields will be
50835	// sent to the server regardless of whether the field is empty or not.
50836	// This may be used to include empty fields in Patch requests.
50837	ForceSendFields []string `json:"-"`
50838
50839	// NullFields is a list of field names (e.g. "Code") to include in API
50840	// requests with the JSON null value. By default, fields with empty
50841	// values are omitted from API requests. However, any field with an
50842	// empty value appearing in NullFields will be sent to the server as
50843	// null. It is an error if a field in this list has a non-empty value.
50844	// This may be used to include null fields in Patch requests.
50845	NullFields []string `json:"-"`
50846}
50847
50848func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
50849	type NoMethod XpnHostListWarning
50850	raw := NoMethod(*s)
50851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50852}
50853
50854type XpnHostListWarningData struct {
50855	// Key: [Output Only] A key that provides more detail on the warning
50856	// being returned. For example, for warnings where there are no results
50857	// in a list request for a particular zone, this key might be scope and
50858	// the key value might be the zone name. Other examples might be a key
50859	// indicating a deprecated resource and a suggested replacement, or a
50860	// warning about invalid network settings (for example, if an instance
50861	// attempts to perform IP forwarding but is not enabled for IP
50862	// forwarding).
50863	Key string `json:"key,omitempty"`
50864
50865	// Value: [Output Only] A warning data value corresponding to the key.
50866	Value string `json:"value,omitempty"`
50867
50868	// ForceSendFields is a list of field names (e.g. "Key") to
50869	// unconditionally include in API requests. By default, fields with
50870	// empty or default values are omitted from API requests. However, any
50871	// non-pointer, non-interface field appearing in ForceSendFields will be
50872	// sent to the server regardless of whether the field is empty or not.
50873	// This may be used to include empty fields in Patch requests.
50874	ForceSendFields []string `json:"-"`
50875
50876	// NullFields is a list of field names (e.g. "Key") to include in API
50877	// requests with the JSON null value. By default, fields with empty
50878	// values are omitted from API requests. However, any field with an
50879	// empty value appearing in NullFields will be sent to the server as
50880	// null. It is an error if a field in this list has a non-empty value.
50881	// This may be used to include null fields in Patch requests.
50882	NullFields []string `json:"-"`
50883}
50884
50885func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
50886	type NoMethod XpnHostListWarningData
50887	raw := NoMethod(*s)
50888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50889}
50890
50891// XpnResourceId: Service resource (a.k.a service project) ID.
50892type XpnResourceId struct {
50893	// Id: The ID of the service resource. In the case of projects, this
50894	// field supports project id (e.g., my-project-123) and project number
50895	// (e.g. 12345678).
50896	Id string `json:"id,omitempty"`
50897
50898	// Type: The type of the service resource.
50899	//
50900	// Possible values:
50901	//   "PROJECT"
50902	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
50903	Type string `json:"type,omitempty"`
50904
50905	// ForceSendFields is a list of field names (e.g. "Id") to
50906	// unconditionally include in API requests. By default, fields with
50907	// empty or default values are omitted from API requests. However, any
50908	// non-pointer, non-interface field appearing in ForceSendFields will be
50909	// sent to the server regardless of whether the field is empty or not.
50910	// This may be used to include empty fields in Patch requests.
50911	ForceSendFields []string `json:"-"`
50912
50913	// NullFields is a list of field names (e.g. "Id") to include in API
50914	// requests with the JSON null value. By default, fields with empty
50915	// values are omitted from API requests. However, any field with an
50916	// empty value appearing in NullFields will be sent to the server as
50917	// null. It is an error if a field in this list has a non-empty value.
50918	// This may be used to include null fields in Patch requests.
50919	NullFields []string `json:"-"`
50920}
50921
50922func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
50923	type NoMethod XpnResourceId
50924	raw := NoMethod(*s)
50925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50926}
50927
50928// Zone: Represents a Zone resource. A zone is a deployment area. These
50929// deployment areas are subsets of a region. For example the zone
50930// us-east1-a is located in the us-east1 region. For more information,
50931// read Regions and Zones.
50932type Zone struct {
50933	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
50934	// selections for the zone.
50935	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
50936
50937	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
50938	// format.
50939	CreationTimestamp string `json:"creationTimestamp,omitempty"`
50940
50941	// Deprecated -- [Output Only] The deprecation status associated with
50942	// this zone.
50943	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
50944
50945	// Description: [Output Only] Textual description of the resource.
50946	Description string `json:"description,omitempty"`
50947
50948	// Id: [Output Only] The unique identifier for the resource. This
50949	// identifier is defined by the server.
50950	Id uint64 `json:"id,omitempty,string"`
50951
50952	// Kind: [Output Only] Type of the resource. Always compute#zone for
50953	// zones.
50954	Kind string `json:"kind,omitempty"`
50955
50956	// Name: [Output Only] Name of the resource.
50957	Name string `json:"name,omitempty"`
50958
50959	// Region: [Output Only] Full URL reference to the region which hosts
50960	// the zone.
50961	Region string `json:"region,omitempty"`
50962
50963	// SelfLink: [Output Only] Server-defined URL for the resource.
50964	SelfLink string `json:"selfLink,omitempty"`
50965
50966	// Status: [Output Only] Status of the zone, either UP or DOWN.
50967	//
50968	// Possible values:
50969	//   "DOWN"
50970	//   "UP"
50971	Status string `json:"status,omitempty"`
50972
50973	// SupportsPzs: [Output Only] Reserved for future use.
50974	SupportsPzs bool `json:"supportsPzs,omitempty"`
50975
50976	// ServerResponse contains the HTTP response code and headers from the
50977	// server.
50978	googleapi.ServerResponse `json:"-"`
50979
50980	// ForceSendFields is a list of field names (e.g.
50981	// "AvailableCpuPlatforms") to unconditionally include in API requests.
50982	// By default, fields with empty or default values are omitted from API
50983	// requests. However, any non-pointer, non-interface field appearing in
50984	// ForceSendFields will be sent to the server regardless of whether the
50985	// field is empty or not. This may be used to include empty fields in
50986	// Patch requests.
50987	ForceSendFields []string `json:"-"`
50988
50989	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
50990	// include in API requests with the JSON null value. By default, fields
50991	// with empty values are omitted from API requests. However, any field
50992	// with an empty value appearing in NullFields will be sent to the
50993	// server as null. It is an error if a field in this list has a
50994	// non-empty value. This may be used to include null fields in Patch
50995	// requests.
50996	NullFields []string `json:"-"`
50997}
50998
50999func (s *Zone) MarshalJSON() ([]byte, error) {
51000	type NoMethod Zone
51001	raw := NoMethod(*s)
51002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51003}
51004
51005// ZoneList: Contains a list of zone resources.
51006type ZoneList struct {
51007	// Id: [Output Only] Unique identifier for the resource; defined by the
51008	// server.
51009	Id string `json:"id,omitempty"`
51010
51011	// Items: A list of Zone resources.
51012	Items []*Zone `json:"items,omitempty"`
51013
51014	// Kind: Type of resource.
51015	Kind string `json:"kind,omitempty"`
51016
51017	// NextPageToken: [Output Only] This token allows you to get the next
51018	// page of results for list requests. If the number of results is larger
51019	// than maxResults, use the nextPageToken as a value for the query
51020	// parameter pageToken in the next list request. Subsequent list
51021	// requests will have their own nextPageToken to continue paging through
51022	// the results.
51023	NextPageToken string `json:"nextPageToken,omitempty"`
51024
51025	// SelfLink: [Output Only] Server-defined URL for this resource.
51026	SelfLink string `json:"selfLink,omitempty"`
51027
51028	// Warning: [Output Only] Informational warning message.
51029	Warning *ZoneListWarning `json:"warning,omitempty"`
51030
51031	// ServerResponse contains the HTTP response code and headers from the
51032	// server.
51033	googleapi.ServerResponse `json:"-"`
51034
51035	// ForceSendFields is a list of field names (e.g. "Id") to
51036	// unconditionally include in API requests. By default, fields with
51037	// empty or default values are omitted from API requests. However, any
51038	// non-pointer, non-interface field appearing in ForceSendFields will be
51039	// sent to the server regardless of whether the field is empty or not.
51040	// This may be used to include empty fields in Patch requests.
51041	ForceSendFields []string `json:"-"`
51042
51043	// NullFields is a list of field names (e.g. "Id") to include in API
51044	// requests with the JSON null value. By default, fields with empty
51045	// values are omitted from API requests. However, any field with an
51046	// empty value appearing in NullFields will be sent to the server as
51047	// null. It is an error if a field in this list has a non-empty value.
51048	// This may be used to include null fields in Patch requests.
51049	NullFields []string `json:"-"`
51050}
51051
51052func (s *ZoneList) MarshalJSON() ([]byte, error) {
51053	type NoMethod ZoneList
51054	raw := NoMethod(*s)
51055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51056}
51057
51058// ZoneListWarning: [Output Only] Informational warning message.
51059type ZoneListWarning struct {
51060	// Code: [Output Only] A warning code, if applicable. For example,
51061	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
51062	// the response.
51063	//
51064	// Possible values:
51065	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
51066	// changes made by a failed operation.
51067	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
51068	// created.
51069	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
51070	// resources has a type marked as deprecated
51071	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
51072	// that is larger than image size.
51073	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
51074	// resources has a type marked as experimental
51075	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
51076	// call
51077	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
51078	// overridden. Deprecated unused field.
51079	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
51080	// injected kernel, which is deprecated.
51081	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
51082	// exceedingly large number of resources
51083	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
51084	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
51085	// not assigned to an instance on the network.
51086	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
51087	// ip forward.
51088	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
51089	// refers to an instance that does not exist.
51090	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
51091	// URL refers to an instance that is not on the same network as the
51092	// route.
51093	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
51094	// have a status of RUNNING.
51095	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
51096	// continue the process despite the mentioned error.
51097	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
51098	// page.
51099	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
51100	// missing due to errors
51101	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
51102	// that requires a TOS they have not accepted.
51103	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
51104	// resource is in use.
51105	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
51106	// auto-delete could not be deleted because they were in use.
51107	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
51108	// ignored.
51109	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
51110	// instance group manager is valid as such, but its application does not
51111	// make a lot of sense, because it allows only single instance in
51112	// instance group.
51113	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
51114	// are present
51115	//   "UNREACHABLE" - A given scope cannot be reached.
51116	Code string `json:"code,omitempty"`
51117
51118	// Data: [Output Only] Metadata about this warning in key: value format.
51119	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
51120	// }
51121	Data []*ZoneListWarningData `json:"data,omitempty"`
51122
51123	// Message: [Output Only] A human-readable description of the warning
51124	// code.
51125	Message string `json:"message,omitempty"`
51126
51127	// ForceSendFields is a list of field names (e.g. "Code") to
51128	// unconditionally include in API requests. By default, fields with
51129	// empty or default values are omitted from API requests. However, any
51130	// non-pointer, non-interface field appearing in ForceSendFields will be
51131	// sent to the server regardless of whether the field is empty or not.
51132	// This may be used to include empty fields in Patch requests.
51133	ForceSendFields []string `json:"-"`
51134
51135	// NullFields is a list of field names (e.g. "Code") to include in API
51136	// requests with the JSON null value. By default, fields with empty
51137	// values are omitted from API requests. However, any field with an
51138	// empty value appearing in NullFields will be sent to the server as
51139	// null. It is an error if a field in this list has a non-empty value.
51140	// This may be used to include null fields in Patch requests.
51141	NullFields []string `json:"-"`
51142}
51143
51144func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
51145	type NoMethod ZoneListWarning
51146	raw := NoMethod(*s)
51147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51148}
51149
51150type ZoneListWarningData struct {
51151	// Key: [Output Only] A key that provides more detail on the warning
51152	// being returned. For example, for warnings where there are no results
51153	// in a list request for a particular zone, this key might be scope and
51154	// the key value might be the zone name. Other examples might be a key
51155	// indicating a deprecated resource and a suggested replacement, or a
51156	// warning about invalid network settings (for example, if an instance
51157	// attempts to perform IP forwarding but is not enabled for IP
51158	// forwarding).
51159	Key string `json:"key,omitempty"`
51160
51161	// Value: [Output Only] A warning data value corresponding to the key.
51162	Value string `json:"value,omitempty"`
51163
51164	// ForceSendFields is a list of field names (e.g. "Key") to
51165	// unconditionally include in API requests. By default, fields with
51166	// empty or default values are omitted from API requests. However, any
51167	// non-pointer, non-interface field appearing in ForceSendFields will be
51168	// sent to the server regardless of whether the field is empty or not.
51169	// This may be used to include empty fields in Patch requests.
51170	ForceSendFields []string `json:"-"`
51171
51172	// NullFields is a list of field names (e.g. "Key") to include in API
51173	// requests with the JSON null value. By default, fields with empty
51174	// values are omitted from API requests. However, any field with an
51175	// empty value appearing in NullFields will be sent to the server as
51176	// null. It is an error if a field in this list has a non-empty value.
51177	// This may be used to include null fields in Patch requests.
51178	NullFields []string `json:"-"`
51179}
51180
51181func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
51182	type NoMethod ZoneListWarningData
51183	raw := NoMethod(*s)
51184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51185}
51186
51187type ZoneSetLabelsRequest struct {
51188	// LabelFingerprint: The fingerprint of the previous set of labels for
51189	// this resource, used to detect conflicts. The fingerprint is initially
51190	// generated by Compute Engine and changes after every request to modify
51191	// or update labels. You must always provide an up-to-date fingerprint
51192	// hash in order to update or change labels. Make a get() request to the
51193	// resource to get the latest fingerprint.
51194	LabelFingerprint string `json:"labelFingerprint,omitempty"`
51195
51196	// Labels: The labels to set for this resource.
51197	Labels map[string]string `json:"labels,omitempty"`
51198
51199	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
51200	// unconditionally include in API requests. By default, fields with
51201	// empty or default values are omitted from API requests. However, any
51202	// non-pointer, non-interface field appearing in ForceSendFields will be
51203	// sent to the server regardless of whether the field is empty or not.
51204	// This may be used to include empty fields in Patch requests.
51205	ForceSendFields []string `json:"-"`
51206
51207	// NullFields is a list of field names (e.g. "LabelFingerprint") to
51208	// include in API requests with the JSON null value. By default, fields
51209	// with empty values are omitted from API requests. However, any field
51210	// with an empty value appearing in NullFields will be sent to the
51211	// server as null. It is an error if a field in this list has a
51212	// non-empty value. This may be used to include null fields in Patch
51213	// requests.
51214	NullFields []string `json:"-"`
51215}
51216
51217func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
51218	type NoMethod ZoneSetLabelsRequest
51219	raw := NoMethod(*s)
51220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51221}
51222
51223type ZoneSetPolicyRequest struct {
51224	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
51225	// Deprecated. Use 'policy' to specify bindings.
51226	Bindings []*Binding `json:"bindings,omitempty"`
51227
51228	// Etag: Flatten Policy to create a backward compatible wire-format.
51229	// Deprecated. Use 'policy' to specify the etag.
51230	Etag string `json:"etag,omitempty"`
51231
51232	// Policy: REQUIRED: The complete policy to be applied to the
51233	// 'resource'. The size of the policy is limited to a few 10s of KB. An
51234	// empty policy is in general a valid policy but certain services (like
51235	// Projects) might reject them.
51236	Policy *Policy `json:"policy,omitempty"`
51237
51238	// ForceSendFields is a list of field names (e.g. "Bindings") to
51239	// unconditionally include in API requests. By default, fields with
51240	// empty or default values are omitted from API requests. However, any
51241	// non-pointer, non-interface field appearing in ForceSendFields will be
51242	// sent to the server regardless of whether the field is empty or not.
51243	// This may be used to include empty fields in Patch requests.
51244	ForceSendFields []string `json:"-"`
51245
51246	// NullFields is a list of field names (e.g. "Bindings") to include in
51247	// API requests with the JSON null value. By default, fields with empty
51248	// values are omitted from API requests. However, any field with an
51249	// empty value appearing in NullFields will be sent to the server as
51250	// null. It is an error if a field in this list has a non-empty value.
51251	// This may be used to include null fields in Patch requests.
51252	NullFields []string `json:"-"`
51253}
51254
51255func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
51256	type NoMethod ZoneSetPolicyRequest
51257	raw := NoMethod(*s)
51258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51259}
51260
51261// method id "compute.acceleratorTypes.aggregatedList":
51262
51263type AcceleratorTypesAggregatedListCall struct {
51264	s            *Service
51265	project      string
51266	urlParams_   gensupport.URLParams
51267	ifNoneMatch_ string
51268	ctx_         context.Context
51269	header_      http.Header
51270}
51271
51272// AggregatedList: Retrieves an aggregated list of accelerator types.
51273//
51274// - project: Project ID for this request.
51275func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
51276	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51277	c.project = project
51278	return c
51279}
51280
51281// Filter sets the optional parameter "filter": A filter expression that
51282// filters resources listed in the response. The expression must specify
51283// the field name, a comparison operator, and the value that you want to
51284// use for filtering. The value must be a string, a number, or a
51285// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51286// `<`. For example, if you are filtering Compute Engine instances, you
51287// can exclude instances named `example-instance` by specifying `name !=
51288// example-instance`. You can also filter nested fields. For example,
51289// you could specify `scheduling.automaticRestart = false` to include
51290// instances only if they are not scheduled for automatic restarts. You
51291// can use filtering on nested fields to filter based on resource
51292// labels. To filter on multiple expressions, provide each separate
51293// expression within parentheses. For example: ```
51294// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
51295// ``` By default, each expression is an `AND` expression. However, you
51296// can include `AND` and `OR` expressions explicitly. For example: ```
51297// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
51298// AND (scheduling.automaticRestart = true) ```
51299func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
51300	c.urlParams_.Set("filter", filter)
51301	return c
51302}
51303
51304// IncludeAllScopes sets the optional parameter "includeAllScopes":
51305// Indicates whether every visible scope for each scope type (zone,
51306// region, global) should be included in the response. For new resource
51307// types added after this field, the flag has no effect as new resource
51308// types will always include every visible scope for each scope type in
51309// response. For resource types which predate this field, if this flag
51310// is omitted or false, only scopes of the scope types where the
51311// resource type is expected to be found will be included.
51312func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
51313	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
51314	return c
51315}
51316
51317// MaxResults sets the optional parameter "maxResults": The maximum
51318// number of results per page that should be returned. If the number of
51319// available results is larger than `maxResults`, Compute Engine returns
51320// a `nextPageToken` that can be used to get the next page of results in
51321// subsequent list requests. Acceptable values are `0` to `500`,
51322// inclusive. (Default: `500`)
51323func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
51324	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51325	return c
51326}
51327
51328// OrderBy sets the optional parameter "orderBy": Sorts list results by
51329// a certain order. By default, results are returned in alphanumerical
51330// order based on the resource name. You can also sort results in
51331// descending order based on the creation timestamp using
51332// `orderBy="creationTimestamp desc". This sorts results based on the
51333// `creationTimestamp` field in reverse chronological order (newest
51334// result first). Use this to sort resources like operations so that the
51335// newest operation is returned first. Currently, only sorting by `name`
51336// or `creationTimestamp desc` is supported.
51337func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
51338	c.urlParams_.Set("orderBy", orderBy)
51339	return c
51340}
51341
51342// PageToken sets the optional parameter "pageToken": Specifies a page
51343// token to use. Set `pageToken` to the `nextPageToken` returned by a
51344// previous list request to get the next page of results.
51345func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
51346	c.urlParams_.Set("pageToken", pageToken)
51347	return c
51348}
51349
51350// ReturnPartialSuccess sets the optional parameter
51351// "returnPartialSuccess": Opt-in for partial success behavior which
51352// provides partial results in case of failure. The default value is
51353// false.
51354func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
51355	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51356	return c
51357}
51358
51359// Fields allows partial responses to be retrieved. See
51360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51361// for more information.
51362func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
51363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51364	return c
51365}
51366
51367// IfNoneMatch sets the optional parameter which makes the operation
51368// fail if the object's ETag matches the given value. This is useful for
51369// getting updates only after the object has changed since the last
51370// request. Use googleapi.IsNotModified to check whether the response
51371// error from Do is the result of In-None-Match.
51372func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
51373	c.ifNoneMatch_ = entityTag
51374	return c
51375}
51376
51377// Context sets the context to be used in this call's Do method. Any
51378// pending HTTP request will be aborted if the provided context is
51379// canceled.
51380func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
51381	c.ctx_ = ctx
51382	return c
51383}
51384
51385// Header returns an http.Header that can be modified by the caller to
51386// add HTTP headers to the request.
51387func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
51388	if c.header_ == nil {
51389		c.header_ = make(http.Header)
51390	}
51391	return c.header_
51392}
51393
51394func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
51395	reqHeaders := make(http.Header)
51396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
51397	for k, v := range c.header_ {
51398		reqHeaders[k] = v
51399	}
51400	reqHeaders.Set("User-Agent", c.s.userAgent())
51401	if c.ifNoneMatch_ != "" {
51402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51403	}
51404	var body io.Reader = nil
51405	c.urlParams_.Set("alt", alt)
51406	c.urlParams_.Set("prettyPrint", "false")
51407	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes")
51408	urls += "?" + c.urlParams_.Encode()
51409	req, err := http.NewRequest("GET", urls, body)
51410	if err != nil {
51411		return nil, err
51412	}
51413	req.Header = reqHeaders
51414	googleapi.Expand(req.URL, map[string]string{
51415		"project": c.project,
51416	})
51417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51418}
51419
51420// Do executes the "compute.acceleratorTypes.aggregatedList" call.
51421// Exactly one of *AcceleratorTypeAggregatedList or error will be
51422// non-nil. Any non-2xx status code is an error. Response headers are in
51423// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
51424// response was returned at all) in error.(*googleapi.Error).Header. Use
51425// googleapi.IsNotModified to check whether the returned error was
51426// because http.StatusNotModified was returned.
51427func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
51428	gensupport.SetOptions(c.urlParams_, opts...)
51429	res, err := c.doRequest("json")
51430	if res != nil && res.StatusCode == http.StatusNotModified {
51431		if res.Body != nil {
51432			res.Body.Close()
51433		}
51434		return nil, &googleapi.Error{
51435			Code:   res.StatusCode,
51436			Header: res.Header,
51437		}
51438	}
51439	if err != nil {
51440		return nil, err
51441	}
51442	defer googleapi.CloseBody(res)
51443	if err := googleapi.CheckResponse(res); err != nil {
51444		return nil, err
51445	}
51446	ret := &AcceleratorTypeAggregatedList{
51447		ServerResponse: googleapi.ServerResponse{
51448			Header:         res.Header,
51449			HTTPStatusCode: res.StatusCode,
51450		},
51451	}
51452	target := &ret
51453	if err := gensupport.DecodeResponse(target, res); err != nil {
51454		return nil, err
51455	}
51456	return ret, nil
51457	// {
51458	//   "description": "Retrieves an aggregated list of accelerator types.",
51459	//   "flatPath": "projects/{project}/aggregated/acceleratorTypes",
51460	//   "httpMethod": "GET",
51461	//   "id": "compute.acceleratorTypes.aggregatedList",
51462	//   "parameterOrder": [
51463	//     "project"
51464	//   ],
51465	//   "parameters": {
51466	//     "filter": {
51467	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51468	//       "location": "query",
51469	//       "type": "string"
51470	//     },
51471	//     "includeAllScopes": {
51472	//       "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.",
51473	//       "location": "query",
51474	//       "type": "boolean"
51475	//     },
51476	//     "maxResults": {
51477	//       "default": "500",
51478	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51479	//       "format": "uint32",
51480	//       "location": "query",
51481	//       "minimum": "0",
51482	//       "type": "integer"
51483	//     },
51484	//     "orderBy": {
51485	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
51486	//       "location": "query",
51487	//       "type": "string"
51488	//     },
51489	//     "pageToken": {
51490	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51491	//       "location": "query",
51492	//       "type": "string"
51493	//     },
51494	//     "project": {
51495	//       "description": "Project ID for this request.",
51496	//       "location": "path",
51497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51498	//       "required": true,
51499	//       "type": "string"
51500	//     },
51501	//     "returnPartialSuccess": {
51502	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51503	//       "location": "query",
51504	//       "type": "boolean"
51505	//     }
51506	//   },
51507	//   "path": "projects/{project}/aggregated/acceleratorTypes",
51508	//   "response": {
51509	//     "$ref": "AcceleratorTypeAggregatedList"
51510	//   },
51511	//   "scopes": [
51512	//     "https://www.googleapis.com/auth/cloud-platform",
51513	//     "https://www.googleapis.com/auth/compute",
51514	//     "https://www.googleapis.com/auth/compute.readonly"
51515	//   ]
51516	// }
51517
51518}
51519
51520// Pages invokes f for each page of results.
51521// A non-nil error returned from f will halt the iteration.
51522// The provided context supersedes any context provided to the Context method.
51523func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
51524	c.ctx_ = ctx
51525	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51526	for {
51527		x, err := c.Do()
51528		if err != nil {
51529			return err
51530		}
51531		if err := f(x); err != nil {
51532			return err
51533		}
51534		if x.NextPageToken == "" {
51535			return nil
51536		}
51537		c.PageToken(x.NextPageToken)
51538	}
51539}
51540
51541// method id "compute.acceleratorTypes.get":
51542
51543type AcceleratorTypesGetCall struct {
51544	s               *Service
51545	project         string
51546	zone            string
51547	acceleratorType string
51548	urlParams_      gensupport.URLParams
51549	ifNoneMatch_    string
51550	ctx_            context.Context
51551	header_         http.Header
51552}
51553
51554// Get: Returns the specified accelerator type.
51555//
51556// - acceleratorType: Name of the accelerator type to return.
51557// - project: Project ID for this request.
51558// - zone: The name of the zone for this request.
51559func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
51560	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51561	c.project = project
51562	c.zone = zone
51563	c.acceleratorType = acceleratorType
51564	return c
51565}
51566
51567// Fields allows partial responses to be retrieved. See
51568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51569// for more information.
51570func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
51571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51572	return c
51573}
51574
51575// IfNoneMatch sets the optional parameter which makes the operation
51576// fail if the object's ETag matches the given value. This is useful for
51577// getting updates only after the object has changed since the last
51578// request. Use googleapi.IsNotModified to check whether the response
51579// error from Do is the result of In-None-Match.
51580func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
51581	c.ifNoneMatch_ = entityTag
51582	return c
51583}
51584
51585// Context sets the context to be used in this call's Do method. Any
51586// pending HTTP request will be aborted if the provided context is
51587// canceled.
51588func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
51589	c.ctx_ = ctx
51590	return c
51591}
51592
51593// Header returns an http.Header that can be modified by the caller to
51594// add HTTP headers to the request.
51595func (c *AcceleratorTypesGetCall) Header() http.Header {
51596	if c.header_ == nil {
51597		c.header_ = make(http.Header)
51598	}
51599	return c.header_
51600}
51601
51602func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
51603	reqHeaders := make(http.Header)
51604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
51605	for k, v := range c.header_ {
51606		reqHeaders[k] = v
51607	}
51608	reqHeaders.Set("User-Agent", c.s.userAgent())
51609	if c.ifNoneMatch_ != "" {
51610		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51611	}
51612	var body io.Reader = nil
51613	c.urlParams_.Set("alt", alt)
51614	c.urlParams_.Set("prettyPrint", "false")
51615	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
51616	urls += "?" + c.urlParams_.Encode()
51617	req, err := http.NewRequest("GET", urls, body)
51618	if err != nil {
51619		return nil, err
51620	}
51621	req.Header = reqHeaders
51622	googleapi.Expand(req.URL, map[string]string{
51623		"project":         c.project,
51624		"zone":            c.zone,
51625		"acceleratorType": c.acceleratorType,
51626	})
51627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51628}
51629
51630// Do executes the "compute.acceleratorTypes.get" call.
51631// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
51632// status code is an error. Response headers are in either
51633// *AcceleratorType.ServerResponse.Header or (if a response was returned
51634// at all) in error.(*googleapi.Error).Header. Use
51635// googleapi.IsNotModified to check whether the returned error was
51636// because http.StatusNotModified was returned.
51637func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
51638	gensupport.SetOptions(c.urlParams_, opts...)
51639	res, err := c.doRequest("json")
51640	if res != nil && res.StatusCode == http.StatusNotModified {
51641		if res.Body != nil {
51642			res.Body.Close()
51643		}
51644		return nil, &googleapi.Error{
51645			Code:   res.StatusCode,
51646			Header: res.Header,
51647		}
51648	}
51649	if err != nil {
51650		return nil, err
51651	}
51652	defer googleapi.CloseBody(res)
51653	if err := googleapi.CheckResponse(res); err != nil {
51654		return nil, err
51655	}
51656	ret := &AcceleratorType{
51657		ServerResponse: googleapi.ServerResponse{
51658			Header:         res.Header,
51659			HTTPStatusCode: res.StatusCode,
51660		},
51661	}
51662	target := &ret
51663	if err := gensupport.DecodeResponse(target, res); err != nil {
51664		return nil, err
51665	}
51666	return ret, nil
51667	// {
51668	//   "description": "Returns the specified accelerator type.",
51669	//   "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
51670	//   "httpMethod": "GET",
51671	//   "id": "compute.acceleratorTypes.get",
51672	//   "parameterOrder": [
51673	//     "project",
51674	//     "zone",
51675	//     "acceleratorType"
51676	//   ],
51677	//   "parameters": {
51678	//     "acceleratorType": {
51679	//       "description": "Name of the accelerator type to return.",
51680	//       "location": "path",
51681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51682	//       "required": true,
51683	//       "type": "string"
51684	//     },
51685	//     "project": {
51686	//       "description": "Project ID for this request.",
51687	//       "location": "path",
51688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51689	//       "required": true,
51690	//       "type": "string"
51691	//     },
51692	//     "zone": {
51693	//       "description": "The name of the zone for this request.",
51694	//       "location": "path",
51695	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51696	//       "required": true,
51697	//       "type": "string"
51698	//     }
51699	//   },
51700	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
51701	//   "response": {
51702	//     "$ref": "AcceleratorType"
51703	//   },
51704	//   "scopes": [
51705	//     "https://www.googleapis.com/auth/cloud-platform",
51706	//     "https://www.googleapis.com/auth/compute",
51707	//     "https://www.googleapis.com/auth/compute.readonly"
51708	//   ]
51709	// }
51710
51711}
51712
51713// method id "compute.acceleratorTypes.list":
51714
51715type AcceleratorTypesListCall struct {
51716	s            *Service
51717	project      string
51718	zone         string
51719	urlParams_   gensupport.URLParams
51720	ifNoneMatch_ string
51721	ctx_         context.Context
51722	header_      http.Header
51723}
51724
51725// List: Retrieves a list of accelerator types that are available to the
51726// specified project.
51727//
51728// - project: Project ID for this request.
51729// - zone: The name of the zone for this request.
51730func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
51731	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51732	c.project = project
51733	c.zone = zone
51734	return c
51735}
51736
51737// Filter sets the optional parameter "filter": A filter expression that
51738// filters resources listed in the response. The expression must specify
51739// the field name, a comparison operator, and the value that you want to
51740// use for filtering. The value must be a string, a number, or a
51741// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51742// `<`. For example, if you are filtering Compute Engine instances, you
51743// can exclude instances named `example-instance` by specifying `name !=
51744// example-instance`. You can also filter nested fields. For example,
51745// you could specify `scheduling.automaticRestart = false` to include
51746// instances only if they are not scheduled for automatic restarts. You
51747// can use filtering on nested fields to filter based on resource
51748// labels. To filter on multiple expressions, provide each separate
51749// expression within parentheses. For example: ```
51750// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
51751// ``` By default, each expression is an `AND` expression. However, you
51752// can include `AND` and `OR` expressions explicitly. For example: ```
51753// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
51754// AND (scheduling.automaticRestart = true) ```
51755func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
51756	c.urlParams_.Set("filter", filter)
51757	return c
51758}
51759
51760// MaxResults sets the optional parameter "maxResults": The maximum
51761// number of results per page that should be returned. If the number of
51762// available results is larger than `maxResults`, Compute Engine returns
51763// a `nextPageToken` that can be used to get the next page of results in
51764// subsequent list requests. Acceptable values are `0` to `500`,
51765// inclusive. (Default: `500`)
51766func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
51767	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51768	return c
51769}
51770
51771// OrderBy sets the optional parameter "orderBy": Sorts list results by
51772// a certain order. By default, results are returned in alphanumerical
51773// order based on the resource name. You can also sort results in
51774// descending order based on the creation timestamp using
51775// `orderBy="creationTimestamp desc". This sorts results based on the
51776// `creationTimestamp` field in reverse chronological order (newest
51777// result first). Use this to sort resources like operations so that the
51778// newest operation is returned first. Currently, only sorting by `name`
51779// or `creationTimestamp desc` is supported.
51780func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
51781	c.urlParams_.Set("orderBy", orderBy)
51782	return c
51783}
51784
51785// PageToken sets the optional parameter "pageToken": Specifies a page
51786// token to use. Set `pageToken` to the `nextPageToken` returned by a
51787// previous list request to get the next page of results.
51788func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
51789	c.urlParams_.Set("pageToken", pageToken)
51790	return c
51791}
51792
51793// ReturnPartialSuccess sets the optional parameter
51794// "returnPartialSuccess": Opt-in for partial success behavior which
51795// provides partial results in case of failure. The default value is
51796// false.
51797func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
51798	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51799	return c
51800}
51801
51802// Fields allows partial responses to be retrieved. See
51803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51804// for more information.
51805func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
51806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51807	return c
51808}
51809
51810// IfNoneMatch sets the optional parameter which makes the operation
51811// fail if the object's ETag matches the given value. This is useful for
51812// getting updates only after the object has changed since the last
51813// request. Use googleapi.IsNotModified to check whether the response
51814// error from Do is the result of In-None-Match.
51815func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
51816	c.ifNoneMatch_ = entityTag
51817	return c
51818}
51819
51820// Context sets the context to be used in this call's Do method. Any
51821// pending HTTP request will be aborted if the provided context is
51822// canceled.
51823func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
51824	c.ctx_ = ctx
51825	return c
51826}
51827
51828// Header returns an http.Header that can be modified by the caller to
51829// add HTTP headers to the request.
51830func (c *AcceleratorTypesListCall) Header() http.Header {
51831	if c.header_ == nil {
51832		c.header_ = make(http.Header)
51833	}
51834	return c.header_
51835}
51836
51837func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
51838	reqHeaders := make(http.Header)
51839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
51840	for k, v := range c.header_ {
51841		reqHeaders[k] = v
51842	}
51843	reqHeaders.Set("User-Agent", c.s.userAgent())
51844	if c.ifNoneMatch_ != "" {
51845		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51846	}
51847	var body io.Reader = nil
51848	c.urlParams_.Set("alt", alt)
51849	c.urlParams_.Set("prettyPrint", "false")
51850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes")
51851	urls += "?" + c.urlParams_.Encode()
51852	req, err := http.NewRequest("GET", urls, body)
51853	if err != nil {
51854		return nil, err
51855	}
51856	req.Header = reqHeaders
51857	googleapi.Expand(req.URL, map[string]string{
51858		"project": c.project,
51859		"zone":    c.zone,
51860	})
51861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51862}
51863
51864// Do executes the "compute.acceleratorTypes.list" call.
51865// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
51866// non-2xx status code is an error. Response headers are in either
51867// *AcceleratorTypeList.ServerResponse.Header or (if a response was
51868// returned at all) in error.(*googleapi.Error).Header. Use
51869// googleapi.IsNotModified to check whether the returned error was
51870// because http.StatusNotModified was returned.
51871func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
51872	gensupport.SetOptions(c.urlParams_, opts...)
51873	res, err := c.doRequest("json")
51874	if res != nil && res.StatusCode == http.StatusNotModified {
51875		if res.Body != nil {
51876			res.Body.Close()
51877		}
51878		return nil, &googleapi.Error{
51879			Code:   res.StatusCode,
51880			Header: res.Header,
51881		}
51882	}
51883	if err != nil {
51884		return nil, err
51885	}
51886	defer googleapi.CloseBody(res)
51887	if err := googleapi.CheckResponse(res); err != nil {
51888		return nil, err
51889	}
51890	ret := &AcceleratorTypeList{
51891		ServerResponse: googleapi.ServerResponse{
51892			Header:         res.Header,
51893			HTTPStatusCode: res.StatusCode,
51894		},
51895	}
51896	target := &ret
51897	if err := gensupport.DecodeResponse(target, res); err != nil {
51898		return nil, err
51899	}
51900	return ret, nil
51901	// {
51902	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
51903	//   "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes",
51904	//   "httpMethod": "GET",
51905	//   "id": "compute.acceleratorTypes.list",
51906	//   "parameterOrder": [
51907	//     "project",
51908	//     "zone"
51909	//   ],
51910	//   "parameters": {
51911	//     "filter": {
51912	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51913	//       "location": "query",
51914	//       "type": "string"
51915	//     },
51916	//     "maxResults": {
51917	//       "default": "500",
51918	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51919	//       "format": "uint32",
51920	//       "location": "query",
51921	//       "minimum": "0",
51922	//       "type": "integer"
51923	//     },
51924	//     "orderBy": {
51925	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
51926	//       "location": "query",
51927	//       "type": "string"
51928	//     },
51929	//     "pageToken": {
51930	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51931	//       "location": "query",
51932	//       "type": "string"
51933	//     },
51934	//     "project": {
51935	//       "description": "Project ID for this request.",
51936	//       "location": "path",
51937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51938	//       "required": true,
51939	//       "type": "string"
51940	//     },
51941	//     "returnPartialSuccess": {
51942	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51943	//       "location": "query",
51944	//       "type": "boolean"
51945	//     },
51946	//     "zone": {
51947	//       "description": "The name of the zone for this request.",
51948	//       "location": "path",
51949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51950	//       "required": true,
51951	//       "type": "string"
51952	//     }
51953	//   },
51954	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes",
51955	//   "response": {
51956	//     "$ref": "AcceleratorTypeList"
51957	//   },
51958	//   "scopes": [
51959	//     "https://www.googleapis.com/auth/cloud-platform",
51960	//     "https://www.googleapis.com/auth/compute",
51961	//     "https://www.googleapis.com/auth/compute.readonly"
51962	//   ]
51963	// }
51964
51965}
51966
51967// Pages invokes f for each page of results.
51968// A non-nil error returned from f will halt the iteration.
51969// The provided context supersedes any context provided to the Context method.
51970func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
51971	c.ctx_ = ctx
51972	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51973	for {
51974		x, err := c.Do()
51975		if err != nil {
51976			return err
51977		}
51978		if err := f(x); err != nil {
51979			return err
51980		}
51981		if x.NextPageToken == "" {
51982			return nil
51983		}
51984		c.PageToken(x.NextPageToken)
51985	}
51986}
51987
51988// method id "compute.addresses.aggregatedList":
51989
51990type AddressesAggregatedListCall struct {
51991	s            *Service
51992	project      string
51993	urlParams_   gensupport.URLParams
51994	ifNoneMatch_ string
51995	ctx_         context.Context
51996	header_      http.Header
51997}
51998
51999// AggregatedList: Retrieves an aggregated list of addresses.
52000//
52001// - project: Project ID for this request.
52002func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
52003	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52004	c.project = project
52005	return c
52006}
52007
52008// Filter sets the optional parameter "filter": A filter expression that
52009// filters resources listed in the response. The expression must specify
52010// the field name, a comparison operator, and the value that you want to
52011// use for filtering. The value must be a string, a number, or a
52012// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52013// `<`. For example, if you are filtering Compute Engine instances, you
52014// can exclude instances named `example-instance` by specifying `name !=
52015// example-instance`. You can also filter nested fields. For example,
52016// you could specify `scheduling.automaticRestart = false` to include
52017// instances only if they are not scheduled for automatic restarts. You
52018// can use filtering on nested fields to filter based on resource
52019// labels. To filter on multiple expressions, provide each separate
52020// expression within parentheses. For example: ```
52021// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
52022// ``` By default, each expression is an `AND` expression. However, you
52023// can include `AND` and `OR` expressions explicitly. For example: ```
52024// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
52025// AND (scheduling.automaticRestart = true) ```
52026func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
52027	c.urlParams_.Set("filter", filter)
52028	return c
52029}
52030
52031// IncludeAllScopes sets the optional parameter "includeAllScopes":
52032// Indicates whether every visible scope for each scope type (zone,
52033// region, global) should be included in the response. For new resource
52034// types added after this field, the flag has no effect as new resource
52035// types will always include every visible scope for each scope type in
52036// response. For resource types which predate this field, if this flag
52037// is omitted or false, only scopes of the scope types where the
52038// resource type is expected to be found will be included.
52039func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
52040	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52041	return c
52042}
52043
52044// MaxResults sets the optional parameter "maxResults": The maximum
52045// number of results per page that should be returned. If the number of
52046// available results is larger than `maxResults`, Compute Engine returns
52047// a `nextPageToken` that can be used to get the next page of results in
52048// subsequent list requests. Acceptable values are `0` to `500`,
52049// inclusive. (Default: `500`)
52050func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
52051	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52052	return c
52053}
52054
52055// OrderBy sets the optional parameter "orderBy": Sorts list results by
52056// a certain order. By default, results are returned in alphanumerical
52057// order based on the resource name. You can also sort results in
52058// descending order based on the creation timestamp using
52059// `orderBy="creationTimestamp desc". This sorts results based on the
52060// `creationTimestamp` field in reverse chronological order (newest
52061// result first). Use this to sort resources like operations so that the
52062// newest operation is returned first. Currently, only sorting by `name`
52063// or `creationTimestamp desc` is supported.
52064func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
52065	c.urlParams_.Set("orderBy", orderBy)
52066	return c
52067}
52068
52069// PageToken sets the optional parameter "pageToken": Specifies a page
52070// token to use. Set `pageToken` to the `nextPageToken` returned by a
52071// previous list request to get the next page of results.
52072func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
52073	c.urlParams_.Set("pageToken", pageToken)
52074	return c
52075}
52076
52077// ReturnPartialSuccess sets the optional parameter
52078// "returnPartialSuccess": Opt-in for partial success behavior which
52079// provides partial results in case of failure. The default value is
52080// false.
52081func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
52082	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52083	return c
52084}
52085
52086// Fields allows partial responses to be retrieved. See
52087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52088// for more information.
52089func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
52090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52091	return c
52092}
52093
52094// IfNoneMatch sets the optional parameter which makes the operation
52095// fail if the object's ETag matches the given value. This is useful for
52096// getting updates only after the object has changed since the last
52097// request. Use googleapi.IsNotModified to check whether the response
52098// error from Do is the result of In-None-Match.
52099func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
52100	c.ifNoneMatch_ = entityTag
52101	return c
52102}
52103
52104// Context sets the context to be used in this call's Do method. Any
52105// pending HTTP request will be aborted if the provided context is
52106// canceled.
52107func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
52108	c.ctx_ = ctx
52109	return c
52110}
52111
52112// Header returns an http.Header that can be modified by the caller to
52113// add HTTP headers to the request.
52114func (c *AddressesAggregatedListCall) Header() http.Header {
52115	if c.header_ == nil {
52116		c.header_ = make(http.Header)
52117	}
52118	return c.header_
52119}
52120
52121func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52122	reqHeaders := make(http.Header)
52123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
52124	for k, v := range c.header_ {
52125		reqHeaders[k] = v
52126	}
52127	reqHeaders.Set("User-Agent", c.s.userAgent())
52128	if c.ifNoneMatch_ != "" {
52129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52130	}
52131	var body io.Reader = nil
52132	c.urlParams_.Set("alt", alt)
52133	c.urlParams_.Set("prettyPrint", "false")
52134	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/addresses")
52135	urls += "?" + c.urlParams_.Encode()
52136	req, err := http.NewRequest("GET", urls, body)
52137	if err != nil {
52138		return nil, err
52139	}
52140	req.Header = reqHeaders
52141	googleapi.Expand(req.URL, map[string]string{
52142		"project": c.project,
52143	})
52144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52145}
52146
52147// Do executes the "compute.addresses.aggregatedList" call.
52148// Exactly one of *AddressAggregatedList or error will be non-nil. Any
52149// non-2xx status code is an error. Response headers are in either
52150// *AddressAggregatedList.ServerResponse.Header or (if a response was
52151// returned at all) in error.(*googleapi.Error).Header. Use
52152// googleapi.IsNotModified to check whether the returned error was
52153// because http.StatusNotModified was returned.
52154func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
52155	gensupport.SetOptions(c.urlParams_, opts...)
52156	res, err := c.doRequest("json")
52157	if res != nil && res.StatusCode == http.StatusNotModified {
52158		if res.Body != nil {
52159			res.Body.Close()
52160		}
52161		return nil, &googleapi.Error{
52162			Code:   res.StatusCode,
52163			Header: res.Header,
52164		}
52165	}
52166	if err != nil {
52167		return nil, err
52168	}
52169	defer googleapi.CloseBody(res)
52170	if err := googleapi.CheckResponse(res); err != nil {
52171		return nil, err
52172	}
52173	ret := &AddressAggregatedList{
52174		ServerResponse: googleapi.ServerResponse{
52175			Header:         res.Header,
52176			HTTPStatusCode: res.StatusCode,
52177		},
52178	}
52179	target := &ret
52180	if err := gensupport.DecodeResponse(target, res); err != nil {
52181		return nil, err
52182	}
52183	return ret, nil
52184	// {
52185	//   "description": "Retrieves an aggregated list of addresses.",
52186	//   "flatPath": "projects/{project}/aggregated/addresses",
52187	//   "httpMethod": "GET",
52188	//   "id": "compute.addresses.aggregatedList",
52189	//   "parameterOrder": [
52190	//     "project"
52191	//   ],
52192	//   "parameters": {
52193	//     "filter": {
52194	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52195	//       "location": "query",
52196	//       "type": "string"
52197	//     },
52198	//     "includeAllScopes": {
52199	//       "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.",
52200	//       "location": "query",
52201	//       "type": "boolean"
52202	//     },
52203	//     "maxResults": {
52204	//       "default": "500",
52205	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52206	//       "format": "uint32",
52207	//       "location": "query",
52208	//       "minimum": "0",
52209	//       "type": "integer"
52210	//     },
52211	//     "orderBy": {
52212	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
52213	//       "location": "query",
52214	//       "type": "string"
52215	//     },
52216	//     "pageToken": {
52217	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52218	//       "location": "query",
52219	//       "type": "string"
52220	//     },
52221	//     "project": {
52222	//       "description": "Project ID for this request.",
52223	//       "location": "path",
52224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52225	//       "required": true,
52226	//       "type": "string"
52227	//     },
52228	//     "returnPartialSuccess": {
52229	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52230	//       "location": "query",
52231	//       "type": "boolean"
52232	//     }
52233	//   },
52234	//   "path": "projects/{project}/aggregated/addresses",
52235	//   "response": {
52236	//     "$ref": "AddressAggregatedList"
52237	//   },
52238	//   "scopes": [
52239	//     "https://www.googleapis.com/auth/cloud-platform",
52240	//     "https://www.googleapis.com/auth/compute",
52241	//     "https://www.googleapis.com/auth/compute.readonly"
52242	//   ]
52243	// }
52244
52245}
52246
52247// Pages invokes f for each page of results.
52248// A non-nil error returned from f will halt the iteration.
52249// The provided context supersedes any context provided to the Context method.
52250func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
52251	c.ctx_ = ctx
52252	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52253	for {
52254		x, err := c.Do()
52255		if err != nil {
52256			return err
52257		}
52258		if err := f(x); err != nil {
52259			return err
52260		}
52261		if x.NextPageToken == "" {
52262			return nil
52263		}
52264		c.PageToken(x.NextPageToken)
52265	}
52266}
52267
52268// method id "compute.addresses.delete":
52269
52270type AddressesDeleteCall struct {
52271	s          *Service
52272	project    string
52273	region     string
52274	address    string
52275	urlParams_ gensupport.URLParams
52276	ctx_       context.Context
52277	header_    http.Header
52278}
52279
52280// Delete: Deletes the specified address resource.
52281//
52282// - address: Name of the address resource to delete.
52283// - project: Project ID for this request.
52284// - region: Name of the region for this request.
52285func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
52286	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52287	c.project = project
52288	c.region = region
52289	c.address = address
52290	return c
52291}
52292
52293// RequestId sets the optional parameter "requestId": An optional
52294// request ID to identify requests. Specify a unique request ID so that
52295// if you must retry your request, the server will know to ignore the
52296// request if it has already been completed. For example, consider a
52297// situation where you make an initial request and the request times
52298// out. If you make the request again with the same request ID, the
52299// server can check if original operation with the same request ID was
52300// received, and if so, will ignore the second request. This prevents
52301// clients from accidentally creating duplicate commitments. The request
52302// ID must be a valid UUID with the exception that zero UUID is not
52303// supported ( 00000000-0000-0000-0000-000000000000).
52304func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
52305	c.urlParams_.Set("requestId", requestId)
52306	return c
52307}
52308
52309// Fields allows partial responses to be retrieved. See
52310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52311// for more information.
52312func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
52313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52314	return c
52315}
52316
52317// Context sets the context to be used in this call's Do method. Any
52318// pending HTTP request will be aborted if the provided context is
52319// canceled.
52320func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
52321	c.ctx_ = ctx
52322	return c
52323}
52324
52325// Header returns an http.Header that can be modified by the caller to
52326// add HTTP headers to the request.
52327func (c *AddressesDeleteCall) Header() http.Header {
52328	if c.header_ == nil {
52329		c.header_ = make(http.Header)
52330	}
52331	return c.header_
52332}
52333
52334func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
52335	reqHeaders := make(http.Header)
52336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
52337	for k, v := range c.header_ {
52338		reqHeaders[k] = v
52339	}
52340	reqHeaders.Set("User-Agent", c.s.userAgent())
52341	var body io.Reader = nil
52342	c.urlParams_.Set("alt", alt)
52343	c.urlParams_.Set("prettyPrint", "false")
52344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
52345	urls += "?" + c.urlParams_.Encode()
52346	req, err := http.NewRequest("DELETE", urls, body)
52347	if err != nil {
52348		return nil, err
52349	}
52350	req.Header = reqHeaders
52351	googleapi.Expand(req.URL, map[string]string{
52352		"project": c.project,
52353		"region":  c.region,
52354		"address": c.address,
52355	})
52356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52357}
52358
52359// Do executes the "compute.addresses.delete" call.
52360// Exactly one of *Operation or error will be non-nil. Any non-2xx
52361// status code is an error. Response headers are in either
52362// *Operation.ServerResponse.Header or (if a response was returned at
52363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52364// to check whether the returned error was because
52365// http.StatusNotModified was returned.
52366func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52367	gensupport.SetOptions(c.urlParams_, opts...)
52368	res, err := c.doRequest("json")
52369	if res != nil && res.StatusCode == http.StatusNotModified {
52370		if res.Body != nil {
52371			res.Body.Close()
52372		}
52373		return nil, &googleapi.Error{
52374			Code:   res.StatusCode,
52375			Header: res.Header,
52376		}
52377	}
52378	if err != nil {
52379		return nil, err
52380	}
52381	defer googleapi.CloseBody(res)
52382	if err := googleapi.CheckResponse(res); err != nil {
52383		return nil, err
52384	}
52385	ret := &Operation{
52386		ServerResponse: googleapi.ServerResponse{
52387			Header:         res.Header,
52388			HTTPStatusCode: res.StatusCode,
52389		},
52390	}
52391	target := &ret
52392	if err := gensupport.DecodeResponse(target, res); err != nil {
52393		return nil, err
52394	}
52395	return ret, nil
52396	// {
52397	//   "description": "Deletes the specified address resource.",
52398	//   "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
52399	//   "httpMethod": "DELETE",
52400	//   "id": "compute.addresses.delete",
52401	//   "parameterOrder": [
52402	//     "project",
52403	//     "region",
52404	//     "address"
52405	//   ],
52406	//   "parameters": {
52407	//     "address": {
52408	//       "description": "Name of the address resource to delete.",
52409	//       "location": "path",
52410	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52411	//       "required": true,
52412	//       "type": "string"
52413	//     },
52414	//     "project": {
52415	//       "description": "Project ID for this request.",
52416	//       "location": "path",
52417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52418	//       "required": true,
52419	//       "type": "string"
52420	//     },
52421	//     "region": {
52422	//       "description": "Name of the region for this request.",
52423	//       "location": "path",
52424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52425	//       "required": true,
52426	//       "type": "string"
52427	//     },
52428	//     "requestId": {
52429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
52430	//       "location": "query",
52431	//       "type": "string"
52432	//     }
52433	//   },
52434	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
52435	//   "response": {
52436	//     "$ref": "Operation"
52437	//   },
52438	//   "scopes": [
52439	//     "https://www.googleapis.com/auth/cloud-platform",
52440	//     "https://www.googleapis.com/auth/compute"
52441	//   ]
52442	// }
52443
52444}
52445
52446// method id "compute.addresses.get":
52447
52448type AddressesGetCall struct {
52449	s            *Service
52450	project      string
52451	region       string
52452	address      string
52453	urlParams_   gensupport.URLParams
52454	ifNoneMatch_ string
52455	ctx_         context.Context
52456	header_      http.Header
52457}
52458
52459// Get: Returns the specified address resource.
52460//
52461// - address: Name of the address resource to return.
52462// - project: Project ID for this request.
52463// - region: Name of the region for this request.
52464func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
52465	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52466	c.project = project
52467	c.region = region
52468	c.address = address
52469	return c
52470}
52471
52472// Fields allows partial responses to be retrieved. See
52473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52474// for more information.
52475func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
52476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52477	return c
52478}
52479
52480// IfNoneMatch sets the optional parameter which makes the operation
52481// fail if the object's ETag matches the given value. This is useful for
52482// getting updates only after the object has changed since the last
52483// request. Use googleapi.IsNotModified to check whether the response
52484// error from Do is the result of In-None-Match.
52485func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
52486	c.ifNoneMatch_ = entityTag
52487	return c
52488}
52489
52490// Context sets the context to be used in this call's Do method. Any
52491// pending HTTP request will be aborted if the provided context is
52492// canceled.
52493func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
52494	c.ctx_ = ctx
52495	return c
52496}
52497
52498// Header returns an http.Header that can be modified by the caller to
52499// add HTTP headers to the request.
52500func (c *AddressesGetCall) Header() http.Header {
52501	if c.header_ == nil {
52502		c.header_ = make(http.Header)
52503	}
52504	return c.header_
52505}
52506
52507func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
52508	reqHeaders := make(http.Header)
52509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
52510	for k, v := range c.header_ {
52511		reqHeaders[k] = v
52512	}
52513	reqHeaders.Set("User-Agent", c.s.userAgent())
52514	if c.ifNoneMatch_ != "" {
52515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52516	}
52517	var body io.Reader = nil
52518	c.urlParams_.Set("alt", alt)
52519	c.urlParams_.Set("prettyPrint", "false")
52520	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
52521	urls += "?" + c.urlParams_.Encode()
52522	req, err := http.NewRequest("GET", urls, body)
52523	if err != nil {
52524		return nil, err
52525	}
52526	req.Header = reqHeaders
52527	googleapi.Expand(req.URL, map[string]string{
52528		"project": c.project,
52529		"region":  c.region,
52530		"address": c.address,
52531	})
52532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52533}
52534
52535// Do executes the "compute.addresses.get" call.
52536// Exactly one of *Address or error will be non-nil. Any non-2xx status
52537// code is an error. Response headers are in either
52538// *Address.ServerResponse.Header or (if a response was returned at all)
52539// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52540// check whether the returned error was because http.StatusNotModified
52541// was returned.
52542func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
52543	gensupport.SetOptions(c.urlParams_, opts...)
52544	res, err := c.doRequest("json")
52545	if res != nil && res.StatusCode == http.StatusNotModified {
52546		if res.Body != nil {
52547			res.Body.Close()
52548		}
52549		return nil, &googleapi.Error{
52550			Code:   res.StatusCode,
52551			Header: res.Header,
52552		}
52553	}
52554	if err != nil {
52555		return nil, err
52556	}
52557	defer googleapi.CloseBody(res)
52558	if err := googleapi.CheckResponse(res); err != nil {
52559		return nil, err
52560	}
52561	ret := &Address{
52562		ServerResponse: googleapi.ServerResponse{
52563			Header:         res.Header,
52564			HTTPStatusCode: res.StatusCode,
52565		},
52566	}
52567	target := &ret
52568	if err := gensupport.DecodeResponse(target, res); err != nil {
52569		return nil, err
52570	}
52571	return ret, nil
52572	// {
52573	//   "description": "Returns the specified address resource.",
52574	//   "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
52575	//   "httpMethod": "GET",
52576	//   "id": "compute.addresses.get",
52577	//   "parameterOrder": [
52578	//     "project",
52579	//     "region",
52580	//     "address"
52581	//   ],
52582	//   "parameters": {
52583	//     "address": {
52584	//       "description": "Name of the address resource to return.",
52585	//       "location": "path",
52586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52587	//       "required": true,
52588	//       "type": "string"
52589	//     },
52590	//     "project": {
52591	//       "description": "Project ID for this request.",
52592	//       "location": "path",
52593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52594	//       "required": true,
52595	//       "type": "string"
52596	//     },
52597	//     "region": {
52598	//       "description": "Name of the region for this request.",
52599	//       "location": "path",
52600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52601	//       "required": true,
52602	//       "type": "string"
52603	//     }
52604	//   },
52605	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
52606	//   "response": {
52607	//     "$ref": "Address"
52608	//   },
52609	//   "scopes": [
52610	//     "https://www.googleapis.com/auth/cloud-platform",
52611	//     "https://www.googleapis.com/auth/compute",
52612	//     "https://www.googleapis.com/auth/compute.readonly"
52613	//   ]
52614	// }
52615
52616}
52617
52618// method id "compute.addresses.insert":
52619
52620type AddressesInsertCall struct {
52621	s          *Service
52622	project    string
52623	region     string
52624	address    *Address
52625	urlParams_ gensupport.URLParams
52626	ctx_       context.Context
52627	header_    http.Header
52628}
52629
52630// Insert: Creates an address resource in the specified project by using
52631// the data included in the request.
52632//
52633// - project: Project ID for this request.
52634// - region: Name of the region for this request.
52635func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
52636	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52637	c.project = project
52638	c.region = region
52639	c.address = address
52640	return c
52641}
52642
52643// RequestId sets the optional parameter "requestId": An optional
52644// request ID to identify requests. Specify a unique request ID so that
52645// if you must retry your request, the server will know to ignore the
52646// request if it has already been completed. For example, consider a
52647// situation where you make an initial request and the request times
52648// out. If you make the request again with the same request ID, the
52649// server can check if original operation with the same request ID was
52650// received, and if so, will ignore the second request. This prevents
52651// clients from accidentally creating duplicate commitments. The request
52652// ID must be a valid UUID with the exception that zero UUID is not
52653// supported ( 00000000-0000-0000-0000-000000000000).
52654func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
52655	c.urlParams_.Set("requestId", requestId)
52656	return c
52657}
52658
52659// Fields allows partial responses to be retrieved. See
52660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52661// for more information.
52662func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
52663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52664	return c
52665}
52666
52667// Context sets the context to be used in this call's Do method. Any
52668// pending HTTP request will be aborted if the provided context is
52669// canceled.
52670func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
52671	c.ctx_ = ctx
52672	return c
52673}
52674
52675// Header returns an http.Header that can be modified by the caller to
52676// add HTTP headers to the request.
52677func (c *AddressesInsertCall) Header() http.Header {
52678	if c.header_ == nil {
52679		c.header_ = make(http.Header)
52680	}
52681	return c.header_
52682}
52683
52684func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
52685	reqHeaders := make(http.Header)
52686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
52687	for k, v := range c.header_ {
52688		reqHeaders[k] = v
52689	}
52690	reqHeaders.Set("User-Agent", c.s.userAgent())
52691	var body io.Reader = nil
52692	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
52693	if err != nil {
52694		return nil, err
52695	}
52696	reqHeaders.Set("Content-Type", "application/json")
52697	c.urlParams_.Set("alt", alt)
52698	c.urlParams_.Set("prettyPrint", "false")
52699	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
52700	urls += "?" + c.urlParams_.Encode()
52701	req, err := http.NewRequest("POST", urls, body)
52702	if err != nil {
52703		return nil, err
52704	}
52705	req.Header = reqHeaders
52706	googleapi.Expand(req.URL, map[string]string{
52707		"project": c.project,
52708		"region":  c.region,
52709	})
52710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52711}
52712
52713// Do executes the "compute.addresses.insert" call.
52714// Exactly one of *Operation or error will be non-nil. Any non-2xx
52715// status code is an error. Response headers are in either
52716// *Operation.ServerResponse.Header or (if a response was returned at
52717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52718// to check whether the returned error was because
52719// http.StatusNotModified was returned.
52720func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52721	gensupport.SetOptions(c.urlParams_, opts...)
52722	res, err := c.doRequest("json")
52723	if res != nil && res.StatusCode == http.StatusNotModified {
52724		if res.Body != nil {
52725			res.Body.Close()
52726		}
52727		return nil, &googleapi.Error{
52728			Code:   res.StatusCode,
52729			Header: res.Header,
52730		}
52731	}
52732	if err != nil {
52733		return nil, err
52734	}
52735	defer googleapi.CloseBody(res)
52736	if err := googleapi.CheckResponse(res); err != nil {
52737		return nil, err
52738	}
52739	ret := &Operation{
52740		ServerResponse: googleapi.ServerResponse{
52741			Header:         res.Header,
52742			HTTPStatusCode: res.StatusCode,
52743		},
52744	}
52745	target := &ret
52746	if err := gensupport.DecodeResponse(target, res); err != nil {
52747		return nil, err
52748	}
52749	return ret, nil
52750	// {
52751	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
52752	//   "flatPath": "projects/{project}/regions/{region}/addresses",
52753	//   "httpMethod": "POST",
52754	//   "id": "compute.addresses.insert",
52755	//   "parameterOrder": [
52756	//     "project",
52757	//     "region"
52758	//   ],
52759	//   "parameters": {
52760	//     "project": {
52761	//       "description": "Project ID for this request.",
52762	//       "location": "path",
52763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52764	//       "required": true,
52765	//       "type": "string"
52766	//     },
52767	//     "region": {
52768	//       "description": "Name of the region for this request.",
52769	//       "location": "path",
52770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52771	//       "required": true,
52772	//       "type": "string"
52773	//     },
52774	//     "requestId": {
52775	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
52776	//       "location": "query",
52777	//       "type": "string"
52778	//     }
52779	//   },
52780	//   "path": "projects/{project}/regions/{region}/addresses",
52781	//   "request": {
52782	//     "$ref": "Address"
52783	//   },
52784	//   "response": {
52785	//     "$ref": "Operation"
52786	//   },
52787	//   "scopes": [
52788	//     "https://www.googleapis.com/auth/cloud-platform",
52789	//     "https://www.googleapis.com/auth/compute"
52790	//   ]
52791	// }
52792
52793}
52794
52795// method id "compute.addresses.list":
52796
52797type AddressesListCall struct {
52798	s            *Service
52799	project      string
52800	region       string
52801	urlParams_   gensupport.URLParams
52802	ifNoneMatch_ string
52803	ctx_         context.Context
52804	header_      http.Header
52805}
52806
52807// List: Retrieves a list of addresses contained within the specified
52808// region.
52809//
52810// - project: Project ID for this request.
52811// - region: Name of the region for this request.
52812func (r *AddressesService) List(project string, region string) *AddressesListCall {
52813	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52814	c.project = project
52815	c.region = region
52816	return c
52817}
52818
52819// Filter sets the optional parameter "filter": A filter expression that
52820// filters resources listed in the response. The expression must specify
52821// the field name, a comparison operator, and the value that you want to
52822// use for filtering. The value must be a string, a number, or a
52823// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52824// `<`. For example, if you are filtering Compute Engine instances, you
52825// can exclude instances named `example-instance` by specifying `name !=
52826// example-instance`. You can also filter nested fields. For example,
52827// you could specify `scheduling.automaticRestart = false` to include
52828// instances only if they are not scheduled for automatic restarts. You
52829// can use filtering on nested fields to filter based on resource
52830// labels. To filter on multiple expressions, provide each separate
52831// expression within parentheses. For example: ```
52832// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
52833// ``` By default, each expression is an `AND` expression. However, you
52834// can include `AND` and `OR` expressions explicitly. For example: ```
52835// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
52836// AND (scheduling.automaticRestart = true) ```
52837func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
52838	c.urlParams_.Set("filter", filter)
52839	return c
52840}
52841
52842// MaxResults sets the optional parameter "maxResults": The maximum
52843// number of results per page that should be returned. If the number of
52844// available results is larger than `maxResults`, Compute Engine returns
52845// a `nextPageToken` that can be used to get the next page of results in
52846// subsequent list requests. Acceptable values are `0` to `500`,
52847// inclusive. (Default: `500`)
52848func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
52849	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52850	return c
52851}
52852
52853// OrderBy sets the optional parameter "orderBy": Sorts list results by
52854// a certain order. By default, results are returned in alphanumerical
52855// order based on the resource name. You can also sort results in
52856// descending order based on the creation timestamp using
52857// `orderBy="creationTimestamp desc". This sorts results based on the
52858// `creationTimestamp` field in reverse chronological order (newest
52859// result first). Use this to sort resources like operations so that the
52860// newest operation is returned first. Currently, only sorting by `name`
52861// or `creationTimestamp desc` is supported.
52862func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
52863	c.urlParams_.Set("orderBy", orderBy)
52864	return c
52865}
52866
52867// PageToken sets the optional parameter "pageToken": Specifies a page
52868// token to use. Set `pageToken` to the `nextPageToken` returned by a
52869// previous list request to get the next page of results.
52870func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
52871	c.urlParams_.Set("pageToken", pageToken)
52872	return c
52873}
52874
52875// ReturnPartialSuccess sets the optional parameter
52876// "returnPartialSuccess": Opt-in for partial success behavior which
52877// provides partial results in case of failure. The default value is
52878// false.
52879func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
52880	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52881	return c
52882}
52883
52884// Fields allows partial responses to be retrieved. See
52885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52886// for more information.
52887func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
52888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52889	return c
52890}
52891
52892// IfNoneMatch sets the optional parameter which makes the operation
52893// fail if the object's ETag matches the given value. This is useful for
52894// getting updates only after the object has changed since the last
52895// request. Use googleapi.IsNotModified to check whether the response
52896// error from Do is the result of In-None-Match.
52897func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
52898	c.ifNoneMatch_ = entityTag
52899	return c
52900}
52901
52902// Context sets the context to be used in this call's Do method. Any
52903// pending HTTP request will be aborted if the provided context is
52904// canceled.
52905func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
52906	c.ctx_ = ctx
52907	return c
52908}
52909
52910// Header returns an http.Header that can be modified by the caller to
52911// add HTTP headers to the request.
52912func (c *AddressesListCall) Header() http.Header {
52913	if c.header_ == nil {
52914		c.header_ = make(http.Header)
52915	}
52916	return c.header_
52917}
52918
52919func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
52920	reqHeaders := make(http.Header)
52921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
52922	for k, v := range c.header_ {
52923		reqHeaders[k] = v
52924	}
52925	reqHeaders.Set("User-Agent", c.s.userAgent())
52926	if c.ifNoneMatch_ != "" {
52927		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52928	}
52929	var body io.Reader = nil
52930	c.urlParams_.Set("alt", alt)
52931	c.urlParams_.Set("prettyPrint", "false")
52932	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
52933	urls += "?" + c.urlParams_.Encode()
52934	req, err := http.NewRequest("GET", urls, body)
52935	if err != nil {
52936		return nil, err
52937	}
52938	req.Header = reqHeaders
52939	googleapi.Expand(req.URL, map[string]string{
52940		"project": c.project,
52941		"region":  c.region,
52942	})
52943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52944}
52945
52946// Do executes the "compute.addresses.list" call.
52947// Exactly one of *AddressList or error will be non-nil. Any non-2xx
52948// status code is an error. Response headers are in either
52949// *AddressList.ServerResponse.Header or (if a response was returned at
52950// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52951// to check whether the returned error was because
52952// http.StatusNotModified was returned.
52953func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
52954	gensupport.SetOptions(c.urlParams_, opts...)
52955	res, err := c.doRequest("json")
52956	if res != nil && res.StatusCode == http.StatusNotModified {
52957		if res.Body != nil {
52958			res.Body.Close()
52959		}
52960		return nil, &googleapi.Error{
52961			Code:   res.StatusCode,
52962			Header: res.Header,
52963		}
52964	}
52965	if err != nil {
52966		return nil, err
52967	}
52968	defer googleapi.CloseBody(res)
52969	if err := googleapi.CheckResponse(res); err != nil {
52970		return nil, err
52971	}
52972	ret := &AddressList{
52973		ServerResponse: googleapi.ServerResponse{
52974			Header:         res.Header,
52975			HTTPStatusCode: res.StatusCode,
52976		},
52977	}
52978	target := &ret
52979	if err := gensupport.DecodeResponse(target, res); err != nil {
52980		return nil, err
52981	}
52982	return ret, nil
52983	// {
52984	//   "description": "Retrieves a list of addresses contained within the specified region.",
52985	//   "flatPath": "projects/{project}/regions/{region}/addresses",
52986	//   "httpMethod": "GET",
52987	//   "id": "compute.addresses.list",
52988	//   "parameterOrder": [
52989	//     "project",
52990	//     "region"
52991	//   ],
52992	//   "parameters": {
52993	//     "filter": {
52994	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52995	//       "location": "query",
52996	//       "type": "string"
52997	//     },
52998	//     "maxResults": {
52999	//       "default": "500",
53000	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53001	//       "format": "uint32",
53002	//       "location": "query",
53003	//       "minimum": "0",
53004	//       "type": "integer"
53005	//     },
53006	//     "orderBy": {
53007	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
53008	//       "location": "query",
53009	//       "type": "string"
53010	//     },
53011	//     "pageToken": {
53012	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53013	//       "location": "query",
53014	//       "type": "string"
53015	//     },
53016	//     "project": {
53017	//       "description": "Project ID for this request.",
53018	//       "location": "path",
53019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53020	//       "required": true,
53021	//       "type": "string"
53022	//     },
53023	//     "region": {
53024	//       "description": "Name of the region for this request.",
53025	//       "location": "path",
53026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53027	//       "required": true,
53028	//       "type": "string"
53029	//     },
53030	//     "returnPartialSuccess": {
53031	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53032	//       "location": "query",
53033	//       "type": "boolean"
53034	//     }
53035	//   },
53036	//   "path": "projects/{project}/regions/{region}/addresses",
53037	//   "response": {
53038	//     "$ref": "AddressList"
53039	//   },
53040	//   "scopes": [
53041	//     "https://www.googleapis.com/auth/cloud-platform",
53042	//     "https://www.googleapis.com/auth/compute",
53043	//     "https://www.googleapis.com/auth/compute.readonly"
53044	//   ]
53045	// }
53046
53047}
53048
53049// Pages invokes f for each page of results.
53050// A non-nil error returned from f will halt the iteration.
53051// The provided context supersedes any context provided to the Context method.
53052func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
53053	c.ctx_ = ctx
53054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53055	for {
53056		x, err := c.Do()
53057		if err != nil {
53058			return err
53059		}
53060		if err := f(x); err != nil {
53061			return err
53062		}
53063		if x.NextPageToken == "" {
53064			return nil
53065		}
53066		c.PageToken(x.NextPageToken)
53067	}
53068}
53069
53070// method id "compute.autoscalers.aggregatedList":
53071
53072type AutoscalersAggregatedListCall struct {
53073	s            *Service
53074	project      string
53075	urlParams_   gensupport.URLParams
53076	ifNoneMatch_ string
53077	ctx_         context.Context
53078	header_      http.Header
53079}
53080
53081// AggregatedList: Retrieves an aggregated list of autoscalers.
53082//
53083// - project: Project ID for this request.
53084func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
53085	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53086	c.project = project
53087	return c
53088}
53089
53090// Filter sets the optional parameter "filter": A filter expression that
53091// filters resources listed in the response. The expression must specify
53092// the field name, a comparison operator, and the value that you want to
53093// use for filtering. The value must be a string, a number, or a
53094// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53095// `<`. For example, if you are filtering Compute Engine instances, you
53096// can exclude instances named `example-instance` by specifying `name !=
53097// example-instance`. You can also filter nested fields. For example,
53098// you could specify `scheduling.automaticRestart = false` to include
53099// instances only if they are not scheduled for automatic restarts. You
53100// can use filtering on nested fields to filter based on resource
53101// labels. To filter on multiple expressions, provide each separate
53102// expression within parentheses. For example: ```
53103// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
53104// ``` By default, each expression is an `AND` expression. However, you
53105// can include `AND` and `OR` expressions explicitly. For example: ```
53106// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
53107// AND (scheduling.automaticRestart = true) ```
53108func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
53109	c.urlParams_.Set("filter", filter)
53110	return c
53111}
53112
53113// IncludeAllScopes sets the optional parameter "includeAllScopes":
53114// Indicates whether every visible scope for each scope type (zone,
53115// region, global) should be included in the response. For new resource
53116// types added after this field, the flag has no effect as new resource
53117// types will always include every visible scope for each scope type in
53118// response. For resource types which predate this field, if this flag
53119// is omitted or false, only scopes of the scope types where the
53120// resource type is expected to be found will be included.
53121func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
53122	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
53123	return c
53124}
53125
53126// MaxResults sets the optional parameter "maxResults": The maximum
53127// number of results per page that should be returned. If the number of
53128// available results is larger than `maxResults`, Compute Engine returns
53129// a `nextPageToken` that can be used to get the next page of results in
53130// subsequent list requests. Acceptable values are `0` to `500`,
53131// inclusive. (Default: `500`)
53132func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
53133	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53134	return c
53135}
53136
53137// OrderBy sets the optional parameter "orderBy": Sorts list results by
53138// a certain order. By default, results are returned in alphanumerical
53139// order based on the resource name. You can also sort results in
53140// descending order based on the creation timestamp using
53141// `orderBy="creationTimestamp desc". This sorts results based on the
53142// `creationTimestamp` field in reverse chronological order (newest
53143// result first). Use this to sort resources like operations so that the
53144// newest operation is returned first. Currently, only sorting by `name`
53145// or `creationTimestamp desc` is supported.
53146func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
53147	c.urlParams_.Set("orderBy", orderBy)
53148	return c
53149}
53150
53151// PageToken sets the optional parameter "pageToken": Specifies a page
53152// token to use. Set `pageToken` to the `nextPageToken` returned by a
53153// previous list request to get the next page of results.
53154func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
53155	c.urlParams_.Set("pageToken", pageToken)
53156	return c
53157}
53158
53159// ReturnPartialSuccess sets the optional parameter
53160// "returnPartialSuccess": Opt-in for partial success behavior which
53161// provides partial results in case of failure. The default value is
53162// false.
53163func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
53164	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53165	return c
53166}
53167
53168// Fields allows partial responses to be retrieved. See
53169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53170// for more information.
53171func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
53172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53173	return c
53174}
53175
53176// IfNoneMatch sets the optional parameter which makes the operation
53177// fail if the object's ETag matches the given value. This is useful for
53178// getting updates only after the object has changed since the last
53179// request. Use googleapi.IsNotModified to check whether the response
53180// error from Do is the result of In-None-Match.
53181func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
53182	c.ifNoneMatch_ = entityTag
53183	return c
53184}
53185
53186// Context sets the context to be used in this call's Do method. Any
53187// pending HTTP request will be aborted if the provided context is
53188// canceled.
53189func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
53190	c.ctx_ = ctx
53191	return c
53192}
53193
53194// Header returns an http.Header that can be modified by the caller to
53195// add HTTP headers to the request.
53196func (c *AutoscalersAggregatedListCall) Header() http.Header {
53197	if c.header_ == nil {
53198		c.header_ = make(http.Header)
53199	}
53200	return c.header_
53201}
53202
53203func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53204	reqHeaders := make(http.Header)
53205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
53206	for k, v := range c.header_ {
53207		reqHeaders[k] = v
53208	}
53209	reqHeaders.Set("User-Agent", c.s.userAgent())
53210	if c.ifNoneMatch_ != "" {
53211		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53212	}
53213	var body io.Reader = nil
53214	c.urlParams_.Set("alt", alt)
53215	c.urlParams_.Set("prettyPrint", "false")
53216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers")
53217	urls += "?" + c.urlParams_.Encode()
53218	req, err := http.NewRequest("GET", urls, body)
53219	if err != nil {
53220		return nil, err
53221	}
53222	req.Header = reqHeaders
53223	googleapi.Expand(req.URL, map[string]string{
53224		"project": c.project,
53225	})
53226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53227}
53228
53229// Do executes the "compute.autoscalers.aggregatedList" call.
53230// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
53231// Any non-2xx status code is an error. Response headers are in either
53232// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
53233// returned at all) in error.(*googleapi.Error).Header. Use
53234// googleapi.IsNotModified to check whether the returned error was
53235// because http.StatusNotModified was returned.
53236func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
53237	gensupport.SetOptions(c.urlParams_, opts...)
53238	res, err := c.doRequest("json")
53239	if res != nil && res.StatusCode == http.StatusNotModified {
53240		if res.Body != nil {
53241			res.Body.Close()
53242		}
53243		return nil, &googleapi.Error{
53244			Code:   res.StatusCode,
53245			Header: res.Header,
53246		}
53247	}
53248	if err != nil {
53249		return nil, err
53250	}
53251	defer googleapi.CloseBody(res)
53252	if err := googleapi.CheckResponse(res); err != nil {
53253		return nil, err
53254	}
53255	ret := &AutoscalerAggregatedList{
53256		ServerResponse: googleapi.ServerResponse{
53257			Header:         res.Header,
53258			HTTPStatusCode: res.StatusCode,
53259		},
53260	}
53261	target := &ret
53262	if err := gensupport.DecodeResponse(target, res); err != nil {
53263		return nil, err
53264	}
53265	return ret, nil
53266	// {
53267	//   "description": "Retrieves an aggregated list of autoscalers.",
53268	//   "flatPath": "projects/{project}/aggregated/autoscalers",
53269	//   "httpMethod": "GET",
53270	//   "id": "compute.autoscalers.aggregatedList",
53271	//   "parameterOrder": [
53272	//     "project"
53273	//   ],
53274	//   "parameters": {
53275	//     "filter": {
53276	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53277	//       "location": "query",
53278	//       "type": "string"
53279	//     },
53280	//     "includeAllScopes": {
53281	//       "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.",
53282	//       "location": "query",
53283	//       "type": "boolean"
53284	//     },
53285	//     "maxResults": {
53286	//       "default": "500",
53287	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53288	//       "format": "uint32",
53289	//       "location": "query",
53290	//       "minimum": "0",
53291	//       "type": "integer"
53292	//     },
53293	//     "orderBy": {
53294	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
53295	//       "location": "query",
53296	//       "type": "string"
53297	//     },
53298	//     "pageToken": {
53299	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53300	//       "location": "query",
53301	//       "type": "string"
53302	//     },
53303	//     "project": {
53304	//       "description": "Project ID for this request.",
53305	//       "location": "path",
53306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53307	//       "required": true,
53308	//       "type": "string"
53309	//     },
53310	//     "returnPartialSuccess": {
53311	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53312	//       "location": "query",
53313	//       "type": "boolean"
53314	//     }
53315	//   },
53316	//   "path": "projects/{project}/aggregated/autoscalers",
53317	//   "response": {
53318	//     "$ref": "AutoscalerAggregatedList"
53319	//   },
53320	//   "scopes": [
53321	//     "https://www.googleapis.com/auth/cloud-platform",
53322	//     "https://www.googleapis.com/auth/compute",
53323	//     "https://www.googleapis.com/auth/compute.readonly"
53324	//   ]
53325	// }
53326
53327}
53328
53329// Pages invokes f for each page of results.
53330// A non-nil error returned from f will halt the iteration.
53331// The provided context supersedes any context provided to the Context method.
53332func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
53333	c.ctx_ = ctx
53334	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53335	for {
53336		x, err := c.Do()
53337		if err != nil {
53338			return err
53339		}
53340		if err := f(x); err != nil {
53341			return err
53342		}
53343		if x.NextPageToken == "" {
53344			return nil
53345		}
53346		c.PageToken(x.NextPageToken)
53347	}
53348}
53349
53350// method id "compute.autoscalers.delete":
53351
53352type AutoscalersDeleteCall struct {
53353	s          *Service
53354	project    string
53355	zone       string
53356	autoscaler string
53357	urlParams_ gensupport.URLParams
53358	ctx_       context.Context
53359	header_    http.Header
53360}
53361
53362// Delete: Deletes the specified autoscaler.
53363//
53364// - autoscaler: Name of the autoscaler to delete.
53365// - project: Project ID for this request.
53366// - zone: Name of the zone for this request.
53367func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
53368	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53369	c.project = project
53370	c.zone = zone
53371	c.autoscaler = autoscaler
53372	return c
53373}
53374
53375// RequestId sets the optional parameter "requestId": An optional
53376// request ID to identify requests. Specify a unique request ID so that
53377// if you must retry your request, the server will know to ignore the
53378// request if it has already been completed. For example, consider a
53379// situation where you make an initial request and the request times
53380// out. If you make the request again with the same request ID, the
53381// server can check if original operation with the same request ID was
53382// received, and if so, will ignore the second request. This prevents
53383// clients from accidentally creating duplicate commitments. The request
53384// ID must be a valid UUID with the exception that zero UUID is not
53385// supported ( 00000000-0000-0000-0000-000000000000).
53386func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
53387	c.urlParams_.Set("requestId", requestId)
53388	return c
53389}
53390
53391// Fields allows partial responses to be retrieved. See
53392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53393// for more information.
53394func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
53395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53396	return c
53397}
53398
53399// Context sets the context to be used in this call's Do method. Any
53400// pending HTTP request will be aborted if the provided context is
53401// canceled.
53402func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
53403	c.ctx_ = ctx
53404	return c
53405}
53406
53407// Header returns an http.Header that can be modified by the caller to
53408// add HTTP headers to the request.
53409func (c *AutoscalersDeleteCall) Header() http.Header {
53410	if c.header_ == nil {
53411		c.header_ = make(http.Header)
53412	}
53413	return c.header_
53414}
53415
53416func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
53417	reqHeaders := make(http.Header)
53418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
53419	for k, v := range c.header_ {
53420		reqHeaders[k] = v
53421	}
53422	reqHeaders.Set("User-Agent", c.s.userAgent())
53423	var body io.Reader = nil
53424	c.urlParams_.Set("alt", alt)
53425	c.urlParams_.Set("prettyPrint", "false")
53426	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
53427	urls += "?" + c.urlParams_.Encode()
53428	req, err := http.NewRequest("DELETE", urls, body)
53429	if err != nil {
53430		return nil, err
53431	}
53432	req.Header = reqHeaders
53433	googleapi.Expand(req.URL, map[string]string{
53434		"project":    c.project,
53435		"zone":       c.zone,
53436		"autoscaler": c.autoscaler,
53437	})
53438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53439}
53440
53441// Do executes the "compute.autoscalers.delete" call.
53442// Exactly one of *Operation or error will be non-nil. Any non-2xx
53443// status code is an error. Response headers are in either
53444// *Operation.ServerResponse.Header or (if a response was returned at
53445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53446// to check whether the returned error was because
53447// http.StatusNotModified was returned.
53448func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53449	gensupport.SetOptions(c.urlParams_, opts...)
53450	res, err := c.doRequest("json")
53451	if res != nil && res.StatusCode == http.StatusNotModified {
53452		if res.Body != nil {
53453			res.Body.Close()
53454		}
53455		return nil, &googleapi.Error{
53456			Code:   res.StatusCode,
53457			Header: res.Header,
53458		}
53459	}
53460	if err != nil {
53461		return nil, err
53462	}
53463	defer googleapi.CloseBody(res)
53464	if err := googleapi.CheckResponse(res); err != nil {
53465		return nil, err
53466	}
53467	ret := &Operation{
53468		ServerResponse: googleapi.ServerResponse{
53469			Header:         res.Header,
53470			HTTPStatusCode: res.StatusCode,
53471		},
53472	}
53473	target := &ret
53474	if err := gensupport.DecodeResponse(target, res); err != nil {
53475		return nil, err
53476	}
53477	return ret, nil
53478	// {
53479	//   "description": "Deletes the specified autoscaler.",
53480	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53481	//   "httpMethod": "DELETE",
53482	//   "id": "compute.autoscalers.delete",
53483	//   "parameterOrder": [
53484	//     "project",
53485	//     "zone",
53486	//     "autoscaler"
53487	//   ],
53488	//   "parameters": {
53489	//     "autoscaler": {
53490	//       "description": "Name of the autoscaler to delete.",
53491	//       "location": "path",
53492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53493	//       "required": true,
53494	//       "type": "string"
53495	//     },
53496	//     "project": {
53497	//       "description": "Project ID for this request.",
53498	//       "location": "path",
53499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53500	//       "required": true,
53501	//       "type": "string"
53502	//     },
53503	//     "requestId": {
53504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
53505	//       "location": "query",
53506	//       "type": "string"
53507	//     },
53508	//     "zone": {
53509	//       "description": "Name of the zone for this request.",
53510	//       "location": "path",
53511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53512	//       "required": true,
53513	//       "type": "string"
53514	//     }
53515	//   },
53516	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53517	//   "response": {
53518	//     "$ref": "Operation"
53519	//   },
53520	//   "scopes": [
53521	//     "https://www.googleapis.com/auth/cloud-platform",
53522	//     "https://www.googleapis.com/auth/compute"
53523	//   ]
53524	// }
53525
53526}
53527
53528// method id "compute.autoscalers.get":
53529
53530type AutoscalersGetCall struct {
53531	s            *Service
53532	project      string
53533	zone         string
53534	autoscaler   string
53535	urlParams_   gensupport.URLParams
53536	ifNoneMatch_ string
53537	ctx_         context.Context
53538	header_      http.Header
53539}
53540
53541// Get: Returns the specified autoscaler resource. Gets a list of
53542// available autoscalers by making a list() request.
53543//
53544// - autoscaler: Name of the autoscaler to return.
53545// - project: Project ID for this request.
53546// - zone: Name of the zone for this request.
53547func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
53548	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53549	c.project = project
53550	c.zone = zone
53551	c.autoscaler = autoscaler
53552	return c
53553}
53554
53555// Fields allows partial responses to be retrieved. See
53556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53557// for more information.
53558func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
53559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53560	return c
53561}
53562
53563// IfNoneMatch sets the optional parameter which makes the operation
53564// fail if the object's ETag matches the given value. This is useful for
53565// getting updates only after the object has changed since the last
53566// request. Use googleapi.IsNotModified to check whether the response
53567// error from Do is the result of In-None-Match.
53568func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
53569	c.ifNoneMatch_ = entityTag
53570	return c
53571}
53572
53573// Context sets the context to be used in this call's Do method. Any
53574// pending HTTP request will be aborted if the provided context is
53575// canceled.
53576func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
53577	c.ctx_ = ctx
53578	return c
53579}
53580
53581// Header returns an http.Header that can be modified by the caller to
53582// add HTTP headers to the request.
53583func (c *AutoscalersGetCall) Header() http.Header {
53584	if c.header_ == nil {
53585		c.header_ = make(http.Header)
53586	}
53587	return c.header_
53588}
53589
53590func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
53591	reqHeaders := make(http.Header)
53592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
53593	for k, v := range c.header_ {
53594		reqHeaders[k] = v
53595	}
53596	reqHeaders.Set("User-Agent", c.s.userAgent())
53597	if c.ifNoneMatch_ != "" {
53598		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53599	}
53600	var body io.Reader = nil
53601	c.urlParams_.Set("alt", alt)
53602	c.urlParams_.Set("prettyPrint", "false")
53603	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
53604	urls += "?" + c.urlParams_.Encode()
53605	req, err := http.NewRequest("GET", urls, body)
53606	if err != nil {
53607		return nil, err
53608	}
53609	req.Header = reqHeaders
53610	googleapi.Expand(req.URL, map[string]string{
53611		"project":    c.project,
53612		"zone":       c.zone,
53613		"autoscaler": c.autoscaler,
53614	})
53615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53616}
53617
53618// Do executes the "compute.autoscalers.get" call.
53619// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
53620// status code is an error. Response headers are in either
53621// *Autoscaler.ServerResponse.Header or (if a response was returned at
53622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53623// to check whether the returned error was because
53624// http.StatusNotModified was returned.
53625func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
53626	gensupport.SetOptions(c.urlParams_, opts...)
53627	res, err := c.doRequest("json")
53628	if res != nil && res.StatusCode == http.StatusNotModified {
53629		if res.Body != nil {
53630			res.Body.Close()
53631		}
53632		return nil, &googleapi.Error{
53633			Code:   res.StatusCode,
53634			Header: res.Header,
53635		}
53636	}
53637	if err != nil {
53638		return nil, err
53639	}
53640	defer googleapi.CloseBody(res)
53641	if err := googleapi.CheckResponse(res); err != nil {
53642		return nil, err
53643	}
53644	ret := &Autoscaler{
53645		ServerResponse: googleapi.ServerResponse{
53646			Header:         res.Header,
53647			HTTPStatusCode: res.StatusCode,
53648		},
53649	}
53650	target := &ret
53651	if err := gensupport.DecodeResponse(target, res); err != nil {
53652		return nil, err
53653	}
53654	return ret, nil
53655	// {
53656	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
53657	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53658	//   "httpMethod": "GET",
53659	//   "id": "compute.autoscalers.get",
53660	//   "parameterOrder": [
53661	//     "project",
53662	//     "zone",
53663	//     "autoscaler"
53664	//   ],
53665	//   "parameters": {
53666	//     "autoscaler": {
53667	//       "description": "Name of the autoscaler to return.",
53668	//       "location": "path",
53669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53670	//       "required": true,
53671	//       "type": "string"
53672	//     },
53673	//     "project": {
53674	//       "description": "Project ID for this request.",
53675	//       "location": "path",
53676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53677	//       "required": true,
53678	//       "type": "string"
53679	//     },
53680	//     "zone": {
53681	//       "description": "Name of the zone for this request.",
53682	//       "location": "path",
53683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53684	//       "required": true,
53685	//       "type": "string"
53686	//     }
53687	//   },
53688	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53689	//   "response": {
53690	//     "$ref": "Autoscaler"
53691	//   },
53692	//   "scopes": [
53693	//     "https://www.googleapis.com/auth/cloud-platform",
53694	//     "https://www.googleapis.com/auth/compute",
53695	//     "https://www.googleapis.com/auth/compute.readonly"
53696	//   ]
53697	// }
53698
53699}
53700
53701// method id "compute.autoscalers.insert":
53702
53703type AutoscalersInsertCall struct {
53704	s          *Service
53705	project    string
53706	zone       string
53707	autoscaler *Autoscaler
53708	urlParams_ gensupport.URLParams
53709	ctx_       context.Context
53710	header_    http.Header
53711}
53712
53713// Insert: Creates an autoscaler in the specified project using the data
53714// included in the request.
53715//
53716// - project: Project ID for this request.
53717// - zone: Name of the zone for this request.
53718func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
53719	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53720	c.project = project
53721	c.zone = zone
53722	c.autoscaler = autoscaler
53723	return c
53724}
53725
53726// RequestId sets the optional parameter "requestId": An optional
53727// request ID to identify requests. Specify a unique request ID so that
53728// if you must retry your request, the server will know to ignore the
53729// request if it has already been completed. For example, consider a
53730// situation where you make an initial request and the request times
53731// out. If you make the request again with the same request ID, the
53732// server can check if original operation with the same request ID was
53733// received, and if so, will ignore the second request. This prevents
53734// clients from accidentally creating duplicate commitments. The request
53735// ID must be a valid UUID with the exception that zero UUID is not
53736// supported ( 00000000-0000-0000-0000-000000000000).
53737func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
53738	c.urlParams_.Set("requestId", requestId)
53739	return c
53740}
53741
53742// Fields allows partial responses to be retrieved. See
53743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53744// for more information.
53745func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
53746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53747	return c
53748}
53749
53750// Context sets the context to be used in this call's Do method. Any
53751// pending HTTP request will be aborted if the provided context is
53752// canceled.
53753func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
53754	c.ctx_ = ctx
53755	return c
53756}
53757
53758// Header returns an http.Header that can be modified by the caller to
53759// add HTTP headers to the request.
53760func (c *AutoscalersInsertCall) Header() http.Header {
53761	if c.header_ == nil {
53762		c.header_ = make(http.Header)
53763	}
53764	return c.header_
53765}
53766
53767func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
53768	reqHeaders := make(http.Header)
53769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
53770	for k, v := range c.header_ {
53771		reqHeaders[k] = v
53772	}
53773	reqHeaders.Set("User-Agent", c.s.userAgent())
53774	var body io.Reader = nil
53775	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53776	if err != nil {
53777		return nil, err
53778	}
53779	reqHeaders.Set("Content-Type", "application/json")
53780	c.urlParams_.Set("alt", alt)
53781	c.urlParams_.Set("prettyPrint", "false")
53782	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53783	urls += "?" + c.urlParams_.Encode()
53784	req, err := http.NewRequest("POST", urls, body)
53785	if err != nil {
53786		return nil, err
53787	}
53788	req.Header = reqHeaders
53789	googleapi.Expand(req.URL, map[string]string{
53790		"project": c.project,
53791		"zone":    c.zone,
53792	})
53793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53794}
53795
53796// Do executes the "compute.autoscalers.insert" call.
53797// Exactly one of *Operation or error will be non-nil. Any non-2xx
53798// status code is an error. Response headers are in either
53799// *Operation.ServerResponse.Header or (if a response was returned at
53800// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53801// to check whether the returned error was because
53802// http.StatusNotModified was returned.
53803func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53804	gensupport.SetOptions(c.urlParams_, opts...)
53805	res, err := c.doRequest("json")
53806	if res != nil && res.StatusCode == http.StatusNotModified {
53807		if res.Body != nil {
53808			res.Body.Close()
53809		}
53810		return nil, &googleapi.Error{
53811			Code:   res.StatusCode,
53812			Header: res.Header,
53813		}
53814	}
53815	if err != nil {
53816		return nil, err
53817	}
53818	defer googleapi.CloseBody(res)
53819	if err := googleapi.CheckResponse(res); err != nil {
53820		return nil, err
53821	}
53822	ret := &Operation{
53823		ServerResponse: googleapi.ServerResponse{
53824			Header:         res.Header,
53825			HTTPStatusCode: res.StatusCode,
53826		},
53827	}
53828	target := &ret
53829	if err := gensupport.DecodeResponse(target, res); err != nil {
53830		return nil, err
53831	}
53832	return ret, nil
53833	// {
53834	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
53835	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
53836	//   "httpMethod": "POST",
53837	//   "id": "compute.autoscalers.insert",
53838	//   "parameterOrder": [
53839	//     "project",
53840	//     "zone"
53841	//   ],
53842	//   "parameters": {
53843	//     "project": {
53844	//       "description": "Project ID for this request.",
53845	//       "location": "path",
53846	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53847	//       "required": true,
53848	//       "type": "string"
53849	//     },
53850	//     "requestId": {
53851	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
53852	//       "location": "query",
53853	//       "type": "string"
53854	//     },
53855	//     "zone": {
53856	//       "description": "Name of the zone for this request.",
53857	//       "location": "path",
53858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53859	//       "required": true,
53860	//       "type": "string"
53861	//     }
53862	//   },
53863	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53864	//   "request": {
53865	//     "$ref": "Autoscaler"
53866	//   },
53867	//   "response": {
53868	//     "$ref": "Operation"
53869	//   },
53870	//   "scopes": [
53871	//     "https://www.googleapis.com/auth/cloud-platform",
53872	//     "https://www.googleapis.com/auth/compute"
53873	//   ]
53874	// }
53875
53876}
53877
53878// method id "compute.autoscalers.list":
53879
53880type AutoscalersListCall struct {
53881	s            *Service
53882	project      string
53883	zone         string
53884	urlParams_   gensupport.URLParams
53885	ifNoneMatch_ string
53886	ctx_         context.Context
53887	header_      http.Header
53888}
53889
53890// List: Retrieves a list of autoscalers contained within the specified
53891// zone.
53892//
53893// - project: Project ID for this request.
53894// - zone: Name of the zone for this request.
53895func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
53896	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53897	c.project = project
53898	c.zone = zone
53899	return c
53900}
53901
53902// Filter sets the optional parameter "filter": A filter expression that
53903// filters resources listed in the response. The expression must specify
53904// the field name, a comparison operator, and the value that you want to
53905// use for filtering. The value must be a string, a number, or a
53906// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53907// `<`. For example, if you are filtering Compute Engine instances, you
53908// can exclude instances named `example-instance` by specifying `name !=
53909// example-instance`. You can also filter nested fields. For example,
53910// you could specify `scheduling.automaticRestart = false` to include
53911// instances only if they are not scheduled for automatic restarts. You
53912// can use filtering on nested fields to filter based on resource
53913// labels. To filter on multiple expressions, provide each separate
53914// expression within parentheses. For example: ```
53915// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
53916// ``` By default, each expression is an `AND` expression. However, you
53917// can include `AND` and `OR` expressions explicitly. For example: ```
53918// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
53919// AND (scheduling.automaticRestart = true) ```
53920func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
53921	c.urlParams_.Set("filter", filter)
53922	return c
53923}
53924
53925// MaxResults sets the optional parameter "maxResults": The maximum
53926// number of results per page that should be returned. If the number of
53927// available results is larger than `maxResults`, Compute Engine returns
53928// a `nextPageToken` that can be used to get the next page of results in
53929// subsequent list requests. Acceptable values are `0` to `500`,
53930// inclusive. (Default: `500`)
53931func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
53932	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53933	return c
53934}
53935
53936// OrderBy sets the optional parameter "orderBy": Sorts list results by
53937// a certain order. By default, results are returned in alphanumerical
53938// order based on the resource name. You can also sort results in
53939// descending order based on the creation timestamp using
53940// `orderBy="creationTimestamp desc". This sorts results based on the
53941// `creationTimestamp` field in reverse chronological order (newest
53942// result first). Use this to sort resources like operations so that the
53943// newest operation is returned first. Currently, only sorting by `name`
53944// or `creationTimestamp desc` is supported.
53945func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
53946	c.urlParams_.Set("orderBy", orderBy)
53947	return c
53948}
53949
53950// PageToken sets the optional parameter "pageToken": Specifies a page
53951// token to use. Set `pageToken` to the `nextPageToken` returned by a
53952// previous list request to get the next page of results.
53953func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
53954	c.urlParams_.Set("pageToken", pageToken)
53955	return c
53956}
53957
53958// ReturnPartialSuccess sets the optional parameter
53959// "returnPartialSuccess": Opt-in for partial success behavior which
53960// provides partial results in case of failure. The default value is
53961// false.
53962func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
53963	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53964	return c
53965}
53966
53967// Fields allows partial responses to be retrieved. See
53968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53969// for more information.
53970func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
53971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53972	return c
53973}
53974
53975// IfNoneMatch sets the optional parameter which makes the operation
53976// fail if the object's ETag matches the given value. This is useful for
53977// getting updates only after the object has changed since the last
53978// request. Use googleapi.IsNotModified to check whether the response
53979// error from Do is the result of In-None-Match.
53980func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
53981	c.ifNoneMatch_ = entityTag
53982	return c
53983}
53984
53985// Context sets the context to be used in this call's Do method. Any
53986// pending HTTP request will be aborted if the provided context is
53987// canceled.
53988func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
53989	c.ctx_ = ctx
53990	return c
53991}
53992
53993// Header returns an http.Header that can be modified by the caller to
53994// add HTTP headers to the request.
53995func (c *AutoscalersListCall) Header() http.Header {
53996	if c.header_ == nil {
53997		c.header_ = make(http.Header)
53998	}
53999	return c.header_
54000}
54001
54002func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
54003	reqHeaders := make(http.Header)
54004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54005	for k, v := range c.header_ {
54006		reqHeaders[k] = v
54007	}
54008	reqHeaders.Set("User-Agent", c.s.userAgent())
54009	if c.ifNoneMatch_ != "" {
54010		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54011	}
54012	var body io.Reader = nil
54013	c.urlParams_.Set("alt", alt)
54014	c.urlParams_.Set("prettyPrint", "false")
54015	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54016	urls += "?" + c.urlParams_.Encode()
54017	req, err := http.NewRequest("GET", urls, body)
54018	if err != nil {
54019		return nil, err
54020	}
54021	req.Header = reqHeaders
54022	googleapi.Expand(req.URL, map[string]string{
54023		"project": c.project,
54024		"zone":    c.zone,
54025	})
54026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54027}
54028
54029// Do executes the "compute.autoscalers.list" call.
54030// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
54031// status code is an error. Response headers are in either
54032// *AutoscalerList.ServerResponse.Header or (if a response was returned
54033// at all) in error.(*googleapi.Error).Header. Use
54034// googleapi.IsNotModified to check whether the returned error was
54035// because http.StatusNotModified was returned.
54036func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
54037	gensupport.SetOptions(c.urlParams_, opts...)
54038	res, err := c.doRequest("json")
54039	if res != nil && res.StatusCode == http.StatusNotModified {
54040		if res.Body != nil {
54041			res.Body.Close()
54042		}
54043		return nil, &googleapi.Error{
54044			Code:   res.StatusCode,
54045			Header: res.Header,
54046		}
54047	}
54048	if err != nil {
54049		return nil, err
54050	}
54051	defer googleapi.CloseBody(res)
54052	if err := googleapi.CheckResponse(res); err != nil {
54053		return nil, err
54054	}
54055	ret := &AutoscalerList{
54056		ServerResponse: googleapi.ServerResponse{
54057			Header:         res.Header,
54058			HTTPStatusCode: res.StatusCode,
54059		},
54060	}
54061	target := &ret
54062	if err := gensupport.DecodeResponse(target, res); err != nil {
54063		return nil, err
54064	}
54065	return ret, nil
54066	// {
54067	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
54068	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54069	//   "httpMethod": "GET",
54070	//   "id": "compute.autoscalers.list",
54071	//   "parameterOrder": [
54072	//     "project",
54073	//     "zone"
54074	//   ],
54075	//   "parameters": {
54076	//     "filter": {
54077	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54078	//       "location": "query",
54079	//       "type": "string"
54080	//     },
54081	//     "maxResults": {
54082	//       "default": "500",
54083	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54084	//       "format": "uint32",
54085	//       "location": "query",
54086	//       "minimum": "0",
54087	//       "type": "integer"
54088	//     },
54089	//     "orderBy": {
54090	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
54091	//       "location": "query",
54092	//       "type": "string"
54093	//     },
54094	//     "pageToken": {
54095	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54096	//       "location": "query",
54097	//       "type": "string"
54098	//     },
54099	//     "project": {
54100	//       "description": "Project ID for this request.",
54101	//       "location": "path",
54102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54103	//       "required": true,
54104	//       "type": "string"
54105	//     },
54106	//     "returnPartialSuccess": {
54107	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
54108	//       "location": "query",
54109	//       "type": "boolean"
54110	//     },
54111	//     "zone": {
54112	//       "description": "Name of the zone for this request.",
54113	//       "location": "path",
54114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54115	//       "required": true,
54116	//       "type": "string"
54117	//     }
54118	//   },
54119	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54120	//   "response": {
54121	//     "$ref": "AutoscalerList"
54122	//   },
54123	//   "scopes": [
54124	//     "https://www.googleapis.com/auth/cloud-platform",
54125	//     "https://www.googleapis.com/auth/compute",
54126	//     "https://www.googleapis.com/auth/compute.readonly"
54127	//   ]
54128	// }
54129
54130}
54131
54132// Pages invokes f for each page of results.
54133// A non-nil error returned from f will halt the iteration.
54134// The provided context supersedes any context provided to the Context method.
54135func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
54136	c.ctx_ = ctx
54137	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54138	for {
54139		x, err := c.Do()
54140		if err != nil {
54141			return err
54142		}
54143		if err := f(x); err != nil {
54144			return err
54145		}
54146		if x.NextPageToken == "" {
54147			return nil
54148		}
54149		c.PageToken(x.NextPageToken)
54150	}
54151}
54152
54153// method id "compute.autoscalers.patch":
54154
54155type AutoscalersPatchCall struct {
54156	s          *Service
54157	project    string
54158	zone       string
54159	autoscaler *Autoscaler
54160	urlParams_ gensupport.URLParams
54161	ctx_       context.Context
54162	header_    http.Header
54163}
54164
54165// Patch: Updates an autoscaler in the specified project using the data
54166// included in the request. This method supports PATCH semantics and
54167// uses the JSON merge patch format and processing rules.
54168//
54169// - project: Project ID for this request.
54170// - zone: Name of the zone for this request.
54171func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
54172	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54173	c.project = project
54174	c.zone = zone
54175	c.autoscaler = autoscaler
54176	return c
54177}
54178
54179// Autoscaler sets the optional parameter "autoscaler": Name of the
54180// autoscaler to patch.
54181func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
54182	c.urlParams_.Set("autoscaler", autoscaler)
54183	return c
54184}
54185
54186// RequestId sets the optional parameter "requestId": An optional
54187// request ID to identify requests. Specify a unique request ID so that
54188// if you must retry your request, the server will know to ignore the
54189// request if it has already been completed. For example, consider a
54190// situation where you make an initial request and the request times
54191// out. If you make the request again with the same request ID, the
54192// server can check if original operation with the same request ID was
54193// received, and if so, will ignore the second request. This prevents
54194// clients from accidentally creating duplicate commitments. The request
54195// ID must be a valid UUID with the exception that zero UUID is not
54196// supported ( 00000000-0000-0000-0000-000000000000).
54197func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
54198	c.urlParams_.Set("requestId", requestId)
54199	return c
54200}
54201
54202// Fields allows partial responses to be retrieved. See
54203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54204// for more information.
54205func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
54206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54207	return c
54208}
54209
54210// Context sets the context to be used in this call's Do method. Any
54211// pending HTTP request will be aborted if the provided context is
54212// canceled.
54213func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
54214	c.ctx_ = ctx
54215	return c
54216}
54217
54218// Header returns an http.Header that can be modified by the caller to
54219// add HTTP headers to the request.
54220func (c *AutoscalersPatchCall) Header() http.Header {
54221	if c.header_ == nil {
54222		c.header_ = make(http.Header)
54223	}
54224	return c.header_
54225}
54226
54227func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
54228	reqHeaders := make(http.Header)
54229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54230	for k, v := range c.header_ {
54231		reqHeaders[k] = v
54232	}
54233	reqHeaders.Set("User-Agent", c.s.userAgent())
54234	var body io.Reader = nil
54235	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54236	if err != nil {
54237		return nil, err
54238	}
54239	reqHeaders.Set("Content-Type", "application/json")
54240	c.urlParams_.Set("alt", alt)
54241	c.urlParams_.Set("prettyPrint", "false")
54242	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54243	urls += "?" + c.urlParams_.Encode()
54244	req, err := http.NewRequest("PATCH", urls, body)
54245	if err != nil {
54246		return nil, err
54247	}
54248	req.Header = reqHeaders
54249	googleapi.Expand(req.URL, map[string]string{
54250		"project": c.project,
54251		"zone":    c.zone,
54252	})
54253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54254}
54255
54256// Do executes the "compute.autoscalers.patch" call.
54257// Exactly one of *Operation or error will be non-nil. Any non-2xx
54258// status code is an error. Response headers are in either
54259// *Operation.ServerResponse.Header or (if a response was returned at
54260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54261// to check whether the returned error was because
54262// http.StatusNotModified was returned.
54263func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54264	gensupport.SetOptions(c.urlParams_, opts...)
54265	res, err := c.doRequest("json")
54266	if res != nil && res.StatusCode == http.StatusNotModified {
54267		if res.Body != nil {
54268			res.Body.Close()
54269		}
54270		return nil, &googleapi.Error{
54271			Code:   res.StatusCode,
54272			Header: res.Header,
54273		}
54274	}
54275	if err != nil {
54276		return nil, err
54277	}
54278	defer googleapi.CloseBody(res)
54279	if err := googleapi.CheckResponse(res); err != nil {
54280		return nil, err
54281	}
54282	ret := &Operation{
54283		ServerResponse: googleapi.ServerResponse{
54284			Header:         res.Header,
54285			HTTPStatusCode: res.StatusCode,
54286		},
54287	}
54288	target := &ret
54289	if err := gensupport.DecodeResponse(target, res); err != nil {
54290		return nil, err
54291	}
54292	return ret, nil
54293	// {
54294	//   "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.",
54295	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54296	//   "httpMethod": "PATCH",
54297	//   "id": "compute.autoscalers.patch",
54298	//   "parameterOrder": [
54299	//     "project",
54300	//     "zone"
54301	//   ],
54302	//   "parameters": {
54303	//     "autoscaler": {
54304	//       "description": "Name of the autoscaler to patch.",
54305	//       "location": "query",
54306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54307	//       "type": "string"
54308	//     },
54309	//     "project": {
54310	//       "description": "Project ID for this request.",
54311	//       "location": "path",
54312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54313	//       "required": true,
54314	//       "type": "string"
54315	//     },
54316	//     "requestId": {
54317	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54318	//       "location": "query",
54319	//       "type": "string"
54320	//     },
54321	//     "zone": {
54322	//       "description": "Name of the zone for this request.",
54323	//       "location": "path",
54324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54325	//       "required": true,
54326	//       "type": "string"
54327	//     }
54328	//   },
54329	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54330	//   "request": {
54331	//     "$ref": "Autoscaler"
54332	//   },
54333	//   "response": {
54334	//     "$ref": "Operation"
54335	//   },
54336	//   "scopes": [
54337	//     "https://www.googleapis.com/auth/cloud-platform",
54338	//     "https://www.googleapis.com/auth/compute"
54339	//   ]
54340	// }
54341
54342}
54343
54344// method id "compute.autoscalers.update":
54345
54346type AutoscalersUpdateCall struct {
54347	s          *Service
54348	project    string
54349	zone       string
54350	autoscaler *Autoscaler
54351	urlParams_ gensupport.URLParams
54352	ctx_       context.Context
54353	header_    http.Header
54354}
54355
54356// Update: Updates an autoscaler in the specified project using the data
54357// included in the request.
54358//
54359// - project: Project ID for this request.
54360// - zone: Name of the zone for this request.
54361func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
54362	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54363	c.project = project
54364	c.zone = zone
54365	c.autoscaler = autoscaler
54366	return c
54367}
54368
54369// Autoscaler sets the optional parameter "autoscaler": Name of the
54370// autoscaler to update.
54371func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
54372	c.urlParams_.Set("autoscaler", autoscaler)
54373	return c
54374}
54375
54376// RequestId sets the optional parameter "requestId": An optional
54377// request ID to identify requests. Specify a unique request ID so that
54378// if you must retry your request, the server will know to ignore the
54379// request if it has already been completed. For example, consider a
54380// situation where you make an initial request and the request times
54381// out. If you make the request again with the same request ID, the
54382// server can check if original operation with the same request ID was
54383// received, and if so, will ignore the second request. This prevents
54384// clients from accidentally creating duplicate commitments. The request
54385// ID must be a valid UUID with the exception that zero UUID is not
54386// supported ( 00000000-0000-0000-0000-000000000000).
54387func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
54388	c.urlParams_.Set("requestId", requestId)
54389	return c
54390}
54391
54392// Fields allows partial responses to be retrieved. See
54393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54394// for more information.
54395func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
54396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54397	return c
54398}
54399
54400// Context sets the context to be used in this call's Do method. Any
54401// pending HTTP request will be aborted if the provided context is
54402// canceled.
54403func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
54404	c.ctx_ = ctx
54405	return c
54406}
54407
54408// Header returns an http.Header that can be modified by the caller to
54409// add HTTP headers to the request.
54410func (c *AutoscalersUpdateCall) Header() http.Header {
54411	if c.header_ == nil {
54412		c.header_ = make(http.Header)
54413	}
54414	return c.header_
54415}
54416
54417func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
54418	reqHeaders := make(http.Header)
54419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54420	for k, v := range c.header_ {
54421		reqHeaders[k] = v
54422	}
54423	reqHeaders.Set("User-Agent", c.s.userAgent())
54424	var body io.Reader = nil
54425	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54426	if err != nil {
54427		return nil, err
54428	}
54429	reqHeaders.Set("Content-Type", "application/json")
54430	c.urlParams_.Set("alt", alt)
54431	c.urlParams_.Set("prettyPrint", "false")
54432	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54433	urls += "?" + c.urlParams_.Encode()
54434	req, err := http.NewRequest("PUT", urls, body)
54435	if err != nil {
54436		return nil, err
54437	}
54438	req.Header = reqHeaders
54439	googleapi.Expand(req.URL, map[string]string{
54440		"project": c.project,
54441		"zone":    c.zone,
54442	})
54443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54444}
54445
54446// Do executes the "compute.autoscalers.update" call.
54447// Exactly one of *Operation or error will be non-nil. Any non-2xx
54448// status code is an error. Response headers are in either
54449// *Operation.ServerResponse.Header or (if a response was returned at
54450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54451// to check whether the returned error was because
54452// http.StatusNotModified was returned.
54453func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54454	gensupport.SetOptions(c.urlParams_, opts...)
54455	res, err := c.doRequest("json")
54456	if res != nil && res.StatusCode == http.StatusNotModified {
54457		if res.Body != nil {
54458			res.Body.Close()
54459		}
54460		return nil, &googleapi.Error{
54461			Code:   res.StatusCode,
54462			Header: res.Header,
54463		}
54464	}
54465	if err != nil {
54466		return nil, err
54467	}
54468	defer googleapi.CloseBody(res)
54469	if err := googleapi.CheckResponse(res); err != nil {
54470		return nil, err
54471	}
54472	ret := &Operation{
54473		ServerResponse: googleapi.ServerResponse{
54474			Header:         res.Header,
54475			HTTPStatusCode: res.StatusCode,
54476		},
54477	}
54478	target := &ret
54479	if err := gensupport.DecodeResponse(target, res); err != nil {
54480		return nil, err
54481	}
54482	return ret, nil
54483	// {
54484	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
54485	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54486	//   "httpMethod": "PUT",
54487	//   "id": "compute.autoscalers.update",
54488	//   "parameterOrder": [
54489	//     "project",
54490	//     "zone"
54491	//   ],
54492	//   "parameters": {
54493	//     "autoscaler": {
54494	//       "description": "Name of the autoscaler to update.",
54495	//       "location": "query",
54496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54497	//       "type": "string"
54498	//     },
54499	//     "project": {
54500	//       "description": "Project ID for this request.",
54501	//       "location": "path",
54502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54503	//       "required": true,
54504	//       "type": "string"
54505	//     },
54506	//     "requestId": {
54507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54508	//       "location": "query",
54509	//       "type": "string"
54510	//     },
54511	//     "zone": {
54512	//       "description": "Name of the zone for this request.",
54513	//       "location": "path",
54514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54515	//       "required": true,
54516	//       "type": "string"
54517	//     }
54518	//   },
54519	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54520	//   "request": {
54521	//     "$ref": "Autoscaler"
54522	//   },
54523	//   "response": {
54524	//     "$ref": "Operation"
54525	//   },
54526	//   "scopes": [
54527	//     "https://www.googleapis.com/auth/cloud-platform",
54528	//     "https://www.googleapis.com/auth/compute"
54529	//   ]
54530	// }
54531
54532}
54533
54534// method id "compute.backendBuckets.addSignedUrlKey":
54535
54536type BackendBucketsAddSignedUrlKeyCall struct {
54537	s             *Service
54538	project       string
54539	backendBucket string
54540	signedurlkey  *SignedUrlKey
54541	urlParams_    gensupport.URLParams
54542	ctx_          context.Context
54543	header_       http.Header
54544}
54545
54546// AddSignedUrlKey: Adds a key for validating requests with signed URLs
54547// for this backend bucket.
54548//
54549// - backendBucket: Name of the BackendBucket resource to which the
54550//   Signed URL Key should be added. The name should conform to RFC1035.
54551// - project: Project ID for this request.
54552func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
54553	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54554	c.project = project
54555	c.backendBucket = backendBucket
54556	c.signedurlkey = signedurlkey
54557	return c
54558}
54559
54560// RequestId sets the optional parameter "requestId": An optional
54561// request ID to identify requests. Specify a unique request ID so that
54562// if you must retry your request, the server will know to ignore the
54563// request if it has already been completed. For example, consider a
54564// situation where you make an initial request and the request times
54565// out. If you make the request again with the same request ID, the
54566// server can check if original operation with the same request ID was
54567// received, and if so, will ignore the second request. This prevents
54568// clients from accidentally creating duplicate commitments. The request
54569// ID must be a valid UUID with the exception that zero UUID is not
54570// supported ( 00000000-0000-0000-0000-000000000000).
54571func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
54572	c.urlParams_.Set("requestId", requestId)
54573	return c
54574}
54575
54576// Fields allows partial responses to be retrieved. See
54577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54578// for more information.
54579func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
54580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54581	return c
54582}
54583
54584// Context sets the context to be used in this call's Do method. Any
54585// pending HTTP request will be aborted if the provided context is
54586// canceled.
54587func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
54588	c.ctx_ = ctx
54589	return c
54590}
54591
54592// Header returns an http.Header that can be modified by the caller to
54593// add HTTP headers to the request.
54594func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
54595	if c.header_ == nil {
54596		c.header_ = make(http.Header)
54597	}
54598	return c.header_
54599}
54600
54601func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54602	reqHeaders := make(http.Header)
54603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54604	for k, v := range c.header_ {
54605		reqHeaders[k] = v
54606	}
54607	reqHeaders.Set("User-Agent", c.s.userAgent())
54608	var body io.Reader = nil
54609	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
54610	if err != nil {
54611		return nil, err
54612	}
54613	reqHeaders.Set("Content-Type", "application/json")
54614	c.urlParams_.Set("alt", alt)
54615	c.urlParams_.Set("prettyPrint", "false")
54616	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
54617	urls += "?" + c.urlParams_.Encode()
54618	req, err := http.NewRequest("POST", urls, body)
54619	if err != nil {
54620		return nil, err
54621	}
54622	req.Header = reqHeaders
54623	googleapi.Expand(req.URL, map[string]string{
54624		"project":       c.project,
54625		"backendBucket": c.backendBucket,
54626	})
54627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54628}
54629
54630// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
54631// Exactly one of *Operation or error will be non-nil. Any non-2xx
54632// status code is an error. Response headers are in either
54633// *Operation.ServerResponse.Header or (if a response was returned at
54634// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54635// to check whether the returned error was because
54636// http.StatusNotModified was returned.
54637func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54638	gensupport.SetOptions(c.urlParams_, opts...)
54639	res, err := c.doRequest("json")
54640	if res != nil && res.StatusCode == http.StatusNotModified {
54641		if res.Body != nil {
54642			res.Body.Close()
54643		}
54644		return nil, &googleapi.Error{
54645			Code:   res.StatusCode,
54646			Header: res.Header,
54647		}
54648	}
54649	if err != nil {
54650		return nil, err
54651	}
54652	defer googleapi.CloseBody(res)
54653	if err := googleapi.CheckResponse(res); err != nil {
54654		return nil, err
54655	}
54656	ret := &Operation{
54657		ServerResponse: googleapi.ServerResponse{
54658			Header:         res.Header,
54659			HTTPStatusCode: res.StatusCode,
54660		},
54661	}
54662	target := &ret
54663	if err := gensupport.DecodeResponse(target, res); err != nil {
54664		return nil, err
54665	}
54666	return ret, nil
54667	// {
54668	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
54669	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
54670	//   "httpMethod": "POST",
54671	//   "id": "compute.backendBuckets.addSignedUrlKey",
54672	//   "parameterOrder": [
54673	//     "project",
54674	//     "backendBucket"
54675	//   ],
54676	//   "parameters": {
54677	//     "backendBucket": {
54678	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54679	//       "location": "path",
54680	//       "required": true,
54681	//       "type": "string"
54682	//     },
54683	//     "project": {
54684	//       "description": "Project ID for this request.",
54685	//       "location": "path",
54686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54687	//       "required": true,
54688	//       "type": "string"
54689	//     },
54690	//     "requestId": {
54691	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54692	//       "location": "query",
54693	//       "type": "string"
54694	//     }
54695	//   },
54696	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
54697	//   "request": {
54698	//     "$ref": "SignedUrlKey"
54699	//   },
54700	//   "response": {
54701	//     "$ref": "Operation"
54702	//   },
54703	//   "scopes": [
54704	//     "https://www.googleapis.com/auth/cloud-platform",
54705	//     "https://www.googleapis.com/auth/compute"
54706	//   ]
54707	// }
54708
54709}
54710
54711// method id "compute.backendBuckets.delete":
54712
54713type BackendBucketsDeleteCall struct {
54714	s             *Service
54715	project       string
54716	backendBucket string
54717	urlParams_    gensupport.URLParams
54718	ctx_          context.Context
54719	header_       http.Header
54720}
54721
54722// Delete: Deletes the specified BackendBucket resource.
54723//
54724// - backendBucket: Name of the BackendBucket resource to delete.
54725// - project: Project ID for this request.
54726func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
54727	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54728	c.project = project
54729	c.backendBucket = backendBucket
54730	return c
54731}
54732
54733// RequestId sets the optional parameter "requestId": An optional
54734// request ID to identify requests. Specify a unique request ID so that
54735// if you must retry your request, the server will know to ignore the
54736// request if it has already been completed. For example, consider a
54737// situation where you make an initial request and the request times
54738// out. If you make the request again with the same request ID, the
54739// server can check if original operation with the same request ID was
54740// received, and if so, will ignore the second request. This prevents
54741// clients from accidentally creating duplicate commitments. The request
54742// ID must be a valid UUID with the exception that zero UUID is not
54743// supported ( 00000000-0000-0000-0000-000000000000).
54744func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
54745	c.urlParams_.Set("requestId", requestId)
54746	return c
54747}
54748
54749// Fields allows partial responses to be retrieved. See
54750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54751// for more information.
54752func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
54753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54754	return c
54755}
54756
54757// Context sets the context to be used in this call's Do method. Any
54758// pending HTTP request will be aborted if the provided context is
54759// canceled.
54760func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
54761	c.ctx_ = ctx
54762	return c
54763}
54764
54765// Header returns an http.Header that can be modified by the caller to
54766// add HTTP headers to the request.
54767func (c *BackendBucketsDeleteCall) Header() http.Header {
54768	if c.header_ == nil {
54769		c.header_ = make(http.Header)
54770	}
54771	return c.header_
54772}
54773
54774func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
54775	reqHeaders := make(http.Header)
54776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54777	for k, v := range c.header_ {
54778		reqHeaders[k] = v
54779	}
54780	reqHeaders.Set("User-Agent", c.s.userAgent())
54781	var body io.Reader = nil
54782	c.urlParams_.Set("alt", alt)
54783	c.urlParams_.Set("prettyPrint", "false")
54784	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
54785	urls += "?" + c.urlParams_.Encode()
54786	req, err := http.NewRequest("DELETE", urls, body)
54787	if err != nil {
54788		return nil, err
54789	}
54790	req.Header = reqHeaders
54791	googleapi.Expand(req.URL, map[string]string{
54792		"project":       c.project,
54793		"backendBucket": c.backendBucket,
54794	})
54795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54796}
54797
54798// Do executes the "compute.backendBuckets.delete" call.
54799// Exactly one of *Operation or error will be non-nil. Any non-2xx
54800// status code is an error. Response headers are in either
54801// *Operation.ServerResponse.Header or (if a response was returned at
54802// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54803// to check whether the returned error was because
54804// http.StatusNotModified was returned.
54805func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54806	gensupport.SetOptions(c.urlParams_, opts...)
54807	res, err := c.doRequest("json")
54808	if res != nil && res.StatusCode == http.StatusNotModified {
54809		if res.Body != nil {
54810			res.Body.Close()
54811		}
54812		return nil, &googleapi.Error{
54813			Code:   res.StatusCode,
54814			Header: res.Header,
54815		}
54816	}
54817	if err != nil {
54818		return nil, err
54819	}
54820	defer googleapi.CloseBody(res)
54821	if err := googleapi.CheckResponse(res); err != nil {
54822		return nil, err
54823	}
54824	ret := &Operation{
54825		ServerResponse: googleapi.ServerResponse{
54826			Header:         res.Header,
54827			HTTPStatusCode: res.StatusCode,
54828		},
54829	}
54830	target := &ret
54831	if err := gensupport.DecodeResponse(target, res); err != nil {
54832		return nil, err
54833	}
54834	return ret, nil
54835	// {
54836	//   "description": "Deletes the specified BackendBucket resource.",
54837	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
54838	//   "httpMethod": "DELETE",
54839	//   "id": "compute.backendBuckets.delete",
54840	//   "parameterOrder": [
54841	//     "project",
54842	//     "backendBucket"
54843	//   ],
54844	//   "parameters": {
54845	//     "backendBucket": {
54846	//       "description": "Name of the BackendBucket resource to delete.",
54847	//       "location": "path",
54848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54849	//       "required": true,
54850	//       "type": "string"
54851	//     },
54852	//     "project": {
54853	//       "description": "Project ID for this request.",
54854	//       "location": "path",
54855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54856	//       "required": true,
54857	//       "type": "string"
54858	//     },
54859	//     "requestId": {
54860	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54861	//       "location": "query",
54862	//       "type": "string"
54863	//     }
54864	//   },
54865	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
54866	//   "response": {
54867	//     "$ref": "Operation"
54868	//   },
54869	//   "scopes": [
54870	//     "https://www.googleapis.com/auth/cloud-platform",
54871	//     "https://www.googleapis.com/auth/compute"
54872	//   ]
54873	// }
54874
54875}
54876
54877// method id "compute.backendBuckets.deleteSignedUrlKey":
54878
54879type BackendBucketsDeleteSignedUrlKeyCall struct {
54880	s             *Service
54881	project       string
54882	backendBucket string
54883	urlParams_    gensupport.URLParams
54884	ctx_          context.Context
54885	header_       http.Header
54886}
54887
54888// DeleteSignedUrlKey: Deletes a key for validating requests with signed
54889// URLs for this backend bucket.
54890//
54891// - backendBucket: Name of the BackendBucket resource to which the
54892//   Signed URL Key should be added. The name should conform to RFC1035.
54893// - keyName: The name of the Signed URL Key to delete.
54894// - project: Project ID for this request.
54895func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
54896	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54897	c.project = project
54898	c.backendBucket = backendBucket
54899	c.urlParams_.Set("keyName", keyName)
54900	return c
54901}
54902
54903// RequestId sets the optional parameter "requestId": An optional
54904// request ID to identify requests. Specify a unique request ID so that
54905// if you must retry your request, the server will know to ignore the
54906// request if it has already been completed. For example, consider a
54907// situation where you make an initial request and the request times
54908// out. If you make the request again with the same request ID, the
54909// server can check if original operation with the same request ID was
54910// received, and if so, will ignore the second request. This prevents
54911// clients from accidentally creating duplicate commitments. The request
54912// ID must be a valid UUID with the exception that zero UUID is not
54913// supported ( 00000000-0000-0000-0000-000000000000).
54914func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
54915	c.urlParams_.Set("requestId", requestId)
54916	return c
54917}
54918
54919// Fields allows partial responses to be retrieved. See
54920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54921// for more information.
54922func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
54923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54924	return c
54925}
54926
54927// Context sets the context to be used in this call's Do method. Any
54928// pending HTTP request will be aborted if the provided context is
54929// canceled.
54930func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
54931	c.ctx_ = ctx
54932	return c
54933}
54934
54935// Header returns an http.Header that can be modified by the caller to
54936// add HTTP headers to the request.
54937func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
54938	if c.header_ == nil {
54939		c.header_ = make(http.Header)
54940	}
54941	return c.header_
54942}
54943
54944func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54945	reqHeaders := make(http.Header)
54946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
54947	for k, v := range c.header_ {
54948		reqHeaders[k] = v
54949	}
54950	reqHeaders.Set("User-Agent", c.s.userAgent())
54951	var body io.Reader = nil
54952	c.urlParams_.Set("alt", alt)
54953	c.urlParams_.Set("prettyPrint", "false")
54954	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
54955	urls += "?" + c.urlParams_.Encode()
54956	req, err := http.NewRequest("POST", urls, body)
54957	if err != nil {
54958		return nil, err
54959	}
54960	req.Header = reqHeaders
54961	googleapi.Expand(req.URL, map[string]string{
54962		"project":       c.project,
54963		"backendBucket": c.backendBucket,
54964	})
54965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54966}
54967
54968// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
54969// Exactly one of *Operation or error will be non-nil. Any non-2xx
54970// status code is an error. Response headers are in either
54971// *Operation.ServerResponse.Header or (if a response was returned at
54972// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54973// to check whether the returned error was because
54974// http.StatusNotModified was returned.
54975func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54976	gensupport.SetOptions(c.urlParams_, opts...)
54977	res, err := c.doRequest("json")
54978	if res != nil && res.StatusCode == http.StatusNotModified {
54979		if res.Body != nil {
54980			res.Body.Close()
54981		}
54982		return nil, &googleapi.Error{
54983			Code:   res.StatusCode,
54984			Header: res.Header,
54985		}
54986	}
54987	if err != nil {
54988		return nil, err
54989	}
54990	defer googleapi.CloseBody(res)
54991	if err := googleapi.CheckResponse(res); err != nil {
54992		return nil, err
54993	}
54994	ret := &Operation{
54995		ServerResponse: googleapi.ServerResponse{
54996			Header:         res.Header,
54997			HTTPStatusCode: res.StatusCode,
54998		},
54999	}
55000	target := &ret
55001	if err := gensupport.DecodeResponse(target, res); err != nil {
55002		return nil, err
55003	}
55004	return ret, nil
55005	// {
55006	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
55007	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
55008	//   "httpMethod": "POST",
55009	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
55010	//   "parameterOrder": [
55011	//     "project",
55012	//     "backendBucket",
55013	//     "keyName"
55014	//   ],
55015	//   "parameters": {
55016	//     "backendBucket": {
55017	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
55018	//       "location": "path",
55019	//       "required": true,
55020	//       "type": "string"
55021	//     },
55022	//     "keyName": {
55023	//       "description": "The name of the Signed URL Key to delete.",
55024	//       "location": "query",
55025	//       "required": true,
55026	//       "type": "string"
55027	//     },
55028	//     "project": {
55029	//       "description": "Project ID for this request.",
55030	//       "location": "path",
55031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55032	//       "required": true,
55033	//       "type": "string"
55034	//     },
55035	//     "requestId": {
55036	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55037	//       "location": "query",
55038	//       "type": "string"
55039	//     }
55040	//   },
55041	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
55042	//   "response": {
55043	//     "$ref": "Operation"
55044	//   },
55045	//   "scopes": [
55046	//     "https://www.googleapis.com/auth/cloud-platform",
55047	//     "https://www.googleapis.com/auth/compute"
55048	//   ]
55049	// }
55050
55051}
55052
55053// method id "compute.backendBuckets.get":
55054
55055type BackendBucketsGetCall struct {
55056	s             *Service
55057	project       string
55058	backendBucket string
55059	urlParams_    gensupport.URLParams
55060	ifNoneMatch_  string
55061	ctx_          context.Context
55062	header_       http.Header
55063}
55064
55065// Get: Returns the specified BackendBucket resource. Gets a list of
55066// available backend buckets by making a list() request.
55067//
55068// - backendBucket: Name of the BackendBucket resource to return.
55069// - project: Project ID for this request.
55070func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
55071	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55072	c.project = project
55073	c.backendBucket = backendBucket
55074	return c
55075}
55076
55077// Fields allows partial responses to be retrieved. See
55078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55079// for more information.
55080func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
55081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55082	return c
55083}
55084
55085// IfNoneMatch sets the optional parameter which makes the operation
55086// fail if the object's ETag matches the given value. This is useful for
55087// getting updates only after the object has changed since the last
55088// request. Use googleapi.IsNotModified to check whether the response
55089// error from Do is the result of In-None-Match.
55090func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
55091	c.ifNoneMatch_ = entityTag
55092	return c
55093}
55094
55095// Context sets the context to be used in this call's Do method. Any
55096// pending HTTP request will be aborted if the provided context is
55097// canceled.
55098func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
55099	c.ctx_ = ctx
55100	return c
55101}
55102
55103// Header returns an http.Header that can be modified by the caller to
55104// add HTTP headers to the request.
55105func (c *BackendBucketsGetCall) Header() http.Header {
55106	if c.header_ == nil {
55107		c.header_ = make(http.Header)
55108	}
55109	return c.header_
55110}
55111
55112func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
55113	reqHeaders := make(http.Header)
55114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
55115	for k, v := range c.header_ {
55116		reqHeaders[k] = v
55117	}
55118	reqHeaders.Set("User-Agent", c.s.userAgent())
55119	if c.ifNoneMatch_ != "" {
55120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55121	}
55122	var body io.Reader = nil
55123	c.urlParams_.Set("alt", alt)
55124	c.urlParams_.Set("prettyPrint", "false")
55125	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55126	urls += "?" + c.urlParams_.Encode()
55127	req, err := http.NewRequest("GET", urls, body)
55128	if err != nil {
55129		return nil, err
55130	}
55131	req.Header = reqHeaders
55132	googleapi.Expand(req.URL, map[string]string{
55133		"project":       c.project,
55134		"backendBucket": c.backendBucket,
55135	})
55136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55137}
55138
55139// Do executes the "compute.backendBuckets.get" call.
55140// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
55141// status code is an error. Response headers are in either
55142// *BackendBucket.ServerResponse.Header or (if a response was returned
55143// at all) in error.(*googleapi.Error).Header. Use
55144// googleapi.IsNotModified to check whether the returned error was
55145// because http.StatusNotModified was returned.
55146func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
55147	gensupport.SetOptions(c.urlParams_, opts...)
55148	res, err := c.doRequest("json")
55149	if res != nil && res.StatusCode == http.StatusNotModified {
55150		if res.Body != nil {
55151			res.Body.Close()
55152		}
55153		return nil, &googleapi.Error{
55154			Code:   res.StatusCode,
55155			Header: res.Header,
55156		}
55157	}
55158	if err != nil {
55159		return nil, err
55160	}
55161	defer googleapi.CloseBody(res)
55162	if err := googleapi.CheckResponse(res); err != nil {
55163		return nil, err
55164	}
55165	ret := &BackendBucket{
55166		ServerResponse: googleapi.ServerResponse{
55167			Header:         res.Header,
55168			HTTPStatusCode: res.StatusCode,
55169		},
55170	}
55171	target := &ret
55172	if err := gensupport.DecodeResponse(target, res); err != nil {
55173		return nil, err
55174	}
55175	return ret, nil
55176	// {
55177	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
55178	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
55179	//   "httpMethod": "GET",
55180	//   "id": "compute.backendBuckets.get",
55181	//   "parameterOrder": [
55182	//     "project",
55183	//     "backendBucket"
55184	//   ],
55185	//   "parameters": {
55186	//     "backendBucket": {
55187	//       "description": "Name of the BackendBucket resource to return.",
55188	//       "location": "path",
55189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55190	//       "required": true,
55191	//       "type": "string"
55192	//     },
55193	//     "project": {
55194	//       "description": "Project ID for this request.",
55195	//       "location": "path",
55196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55197	//       "required": true,
55198	//       "type": "string"
55199	//     }
55200	//   },
55201	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55202	//   "response": {
55203	//     "$ref": "BackendBucket"
55204	//   },
55205	//   "scopes": [
55206	//     "https://www.googleapis.com/auth/cloud-platform",
55207	//     "https://www.googleapis.com/auth/compute",
55208	//     "https://www.googleapis.com/auth/compute.readonly"
55209	//   ]
55210	// }
55211
55212}
55213
55214// method id "compute.backendBuckets.insert":
55215
55216type BackendBucketsInsertCall struct {
55217	s             *Service
55218	project       string
55219	backendbucket *BackendBucket
55220	urlParams_    gensupport.URLParams
55221	ctx_          context.Context
55222	header_       http.Header
55223}
55224
55225// Insert: Creates a BackendBucket resource in the specified project
55226// using the data included in the request.
55227//
55228// - project: Project ID for this request.
55229func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
55230	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55231	c.project = project
55232	c.backendbucket = backendbucket
55233	return c
55234}
55235
55236// RequestId sets the optional parameter "requestId": An optional
55237// request ID to identify requests. Specify a unique request ID so that
55238// if you must retry your request, the server will know to ignore the
55239// request if it has already been completed. For example, consider a
55240// situation where you make an initial request and the request times
55241// out. If you make the request again with the same request ID, the
55242// server can check if original operation with the same request ID was
55243// received, and if so, will ignore the second request. This prevents
55244// clients from accidentally creating duplicate commitments. The request
55245// ID must be a valid UUID with the exception that zero UUID is not
55246// supported ( 00000000-0000-0000-0000-000000000000).
55247func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
55248	c.urlParams_.Set("requestId", requestId)
55249	return c
55250}
55251
55252// Fields allows partial responses to be retrieved. See
55253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55254// for more information.
55255func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
55256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55257	return c
55258}
55259
55260// Context sets the context to be used in this call's Do method. Any
55261// pending HTTP request will be aborted if the provided context is
55262// canceled.
55263func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
55264	c.ctx_ = ctx
55265	return c
55266}
55267
55268// Header returns an http.Header that can be modified by the caller to
55269// add HTTP headers to the request.
55270func (c *BackendBucketsInsertCall) Header() http.Header {
55271	if c.header_ == nil {
55272		c.header_ = make(http.Header)
55273	}
55274	return c.header_
55275}
55276
55277func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
55278	reqHeaders := make(http.Header)
55279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
55280	for k, v := range c.header_ {
55281		reqHeaders[k] = v
55282	}
55283	reqHeaders.Set("User-Agent", c.s.userAgent())
55284	var body io.Reader = nil
55285	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55286	if err != nil {
55287		return nil, err
55288	}
55289	reqHeaders.Set("Content-Type", "application/json")
55290	c.urlParams_.Set("alt", alt)
55291	c.urlParams_.Set("prettyPrint", "false")
55292	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55293	urls += "?" + c.urlParams_.Encode()
55294	req, err := http.NewRequest("POST", urls, body)
55295	if err != nil {
55296		return nil, err
55297	}
55298	req.Header = reqHeaders
55299	googleapi.Expand(req.URL, map[string]string{
55300		"project": c.project,
55301	})
55302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55303}
55304
55305// Do executes the "compute.backendBuckets.insert" call.
55306// Exactly one of *Operation or error will be non-nil. Any non-2xx
55307// status code is an error. Response headers are in either
55308// *Operation.ServerResponse.Header or (if a response was returned at
55309// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55310// to check whether the returned error was because
55311// http.StatusNotModified was returned.
55312func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55313	gensupport.SetOptions(c.urlParams_, opts...)
55314	res, err := c.doRequest("json")
55315	if res != nil && res.StatusCode == http.StatusNotModified {
55316		if res.Body != nil {
55317			res.Body.Close()
55318		}
55319		return nil, &googleapi.Error{
55320			Code:   res.StatusCode,
55321			Header: res.Header,
55322		}
55323	}
55324	if err != nil {
55325		return nil, err
55326	}
55327	defer googleapi.CloseBody(res)
55328	if err := googleapi.CheckResponse(res); err != nil {
55329		return nil, err
55330	}
55331	ret := &Operation{
55332		ServerResponse: googleapi.ServerResponse{
55333			Header:         res.Header,
55334			HTTPStatusCode: res.StatusCode,
55335		},
55336	}
55337	target := &ret
55338	if err := gensupport.DecodeResponse(target, res); err != nil {
55339		return nil, err
55340	}
55341	return ret, nil
55342	// {
55343	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
55344	//   "flatPath": "projects/{project}/global/backendBuckets",
55345	//   "httpMethod": "POST",
55346	//   "id": "compute.backendBuckets.insert",
55347	//   "parameterOrder": [
55348	//     "project"
55349	//   ],
55350	//   "parameters": {
55351	//     "project": {
55352	//       "description": "Project ID for this request.",
55353	//       "location": "path",
55354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55355	//       "required": true,
55356	//       "type": "string"
55357	//     },
55358	//     "requestId": {
55359	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55360	//       "location": "query",
55361	//       "type": "string"
55362	//     }
55363	//   },
55364	//   "path": "projects/{project}/global/backendBuckets",
55365	//   "request": {
55366	//     "$ref": "BackendBucket"
55367	//   },
55368	//   "response": {
55369	//     "$ref": "Operation"
55370	//   },
55371	//   "scopes": [
55372	//     "https://www.googleapis.com/auth/cloud-platform",
55373	//     "https://www.googleapis.com/auth/compute"
55374	//   ]
55375	// }
55376
55377}
55378
55379// method id "compute.backendBuckets.list":
55380
55381type BackendBucketsListCall struct {
55382	s            *Service
55383	project      string
55384	urlParams_   gensupport.URLParams
55385	ifNoneMatch_ string
55386	ctx_         context.Context
55387	header_      http.Header
55388}
55389
55390// List: Retrieves the list of BackendBucket resources available to the
55391// specified project.
55392//
55393// - project: Project ID for this request.
55394func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
55395	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55396	c.project = project
55397	return c
55398}
55399
55400// Filter sets the optional parameter "filter": A filter expression that
55401// filters resources listed in the response. The expression must specify
55402// the field name, a comparison operator, and the value that you want to
55403// use for filtering. The value must be a string, a number, or a
55404// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55405// `<`. For example, if you are filtering Compute Engine instances, you
55406// can exclude instances named `example-instance` by specifying `name !=
55407// example-instance`. You can also filter nested fields. For example,
55408// you could specify `scheduling.automaticRestart = false` to include
55409// instances only if they are not scheduled for automatic restarts. You
55410// can use filtering on nested fields to filter based on resource
55411// labels. To filter on multiple expressions, provide each separate
55412// expression within parentheses. For example: ```
55413// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
55414// ``` By default, each expression is an `AND` expression. However, you
55415// can include `AND` and `OR` expressions explicitly. For example: ```
55416// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
55417// AND (scheduling.automaticRestart = true) ```
55418func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
55419	c.urlParams_.Set("filter", filter)
55420	return c
55421}
55422
55423// MaxResults sets the optional parameter "maxResults": The maximum
55424// number of results per page that should be returned. If the number of
55425// available results is larger than `maxResults`, Compute Engine returns
55426// a `nextPageToken` that can be used to get the next page of results in
55427// subsequent list requests. Acceptable values are `0` to `500`,
55428// inclusive. (Default: `500`)
55429func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
55430	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55431	return c
55432}
55433
55434// OrderBy sets the optional parameter "orderBy": Sorts list results by
55435// a certain order. By default, results are returned in alphanumerical
55436// order based on the resource name. You can also sort results in
55437// descending order based on the creation timestamp using
55438// `orderBy="creationTimestamp desc". This sorts results based on the
55439// `creationTimestamp` field in reverse chronological order (newest
55440// result first). Use this to sort resources like operations so that the
55441// newest operation is returned first. Currently, only sorting by `name`
55442// or `creationTimestamp desc` is supported.
55443func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
55444	c.urlParams_.Set("orderBy", orderBy)
55445	return c
55446}
55447
55448// PageToken sets the optional parameter "pageToken": Specifies a page
55449// token to use. Set `pageToken` to the `nextPageToken` returned by a
55450// previous list request to get the next page of results.
55451func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
55452	c.urlParams_.Set("pageToken", pageToken)
55453	return c
55454}
55455
55456// ReturnPartialSuccess sets the optional parameter
55457// "returnPartialSuccess": Opt-in for partial success behavior which
55458// provides partial results in case of failure. The default value is
55459// false.
55460func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
55461	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
55462	return c
55463}
55464
55465// Fields allows partial responses to be retrieved. See
55466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55467// for more information.
55468func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
55469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55470	return c
55471}
55472
55473// IfNoneMatch sets the optional parameter which makes the operation
55474// fail if the object's ETag matches the given value. This is useful for
55475// getting updates only after the object has changed since the last
55476// request. Use googleapi.IsNotModified to check whether the response
55477// error from Do is the result of In-None-Match.
55478func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
55479	c.ifNoneMatch_ = entityTag
55480	return c
55481}
55482
55483// Context sets the context to be used in this call's Do method. Any
55484// pending HTTP request will be aborted if the provided context is
55485// canceled.
55486func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
55487	c.ctx_ = ctx
55488	return c
55489}
55490
55491// Header returns an http.Header that can be modified by the caller to
55492// add HTTP headers to the request.
55493func (c *BackendBucketsListCall) Header() http.Header {
55494	if c.header_ == nil {
55495		c.header_ = make(http.Header)
55496	}
55497	return c.header_
55498}
55499
55500func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
55501	reqHeaders := make(http.Header)
55502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
55503	for k, v := range c.header_ {
55504		reqHeaders[k] = v
55505	}
55506	reqHeaders.Set("User-Agent", c.s.userAgent())
55507	if c.ifNoneMatch_ != "" {
55508		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55509	}
55510	var body io.Reader = nil
55511	c.urlParams_.Set("alt", alt)
55512	c.urlParams_.Set("prettyPrint", "false")
55513	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55514	urls += "?" + c.urlParams_.Encode()
55515	req, err := http.NewRequest("GET", urls, body)
55516	if err != nil {
55517		return nil, err
55518	}
55519	req.Header = reqHeaders
55520	googleapi.Expand(req.URL, map[string]string{
55521		"project": c.project,
55522	})
55523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55524}
55525
55526// Do executes the "compute.backendBuckets.list" call.
55527// Exactly one of *BackendBucketList or error will be non-nil. Any
55528// non-2xx status code is an error. Response headers are in either
55529// *BackendBucketList.ServerResponse.Header or (if a response was
55530// returned at all) in error.(*googleapi.Error).Header. Use
55531// googleapi.IsNotModified to check whether the returned error was
55532// because http.StatusNotModified was returned.
55533func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
55534	gensupport.SetOptions(c.urlParams_, opts...)
55535	res, err := c.doRequest("json")
55536	if res != nil && res.StatusCode == http.StatusNotModified {
55537		if res.Body != nil {
55538			res.Body.Close()
55539		}
55540		return nil, &googleapi.Error{
55541			Code:   res.StatusCode,
55542			Header: res.Header,
55543		}
55544	}
55545	if err != nil {
55546		return nil, err
55547	}
55548	defer googleapi.CloseBody(res)
55549	if err := googleapi.CheckResponse(res); err != nil {
55550		return nil, err
55551	}
55552	ret := &BackendBucketList{
55553		ServerResponse: googleapi.ServerResponse{
55554			Header:         res.Header,
55555			HTTPStatusCode: res.StatusCode,
55556		},
55557	}
55558	target := &ret
55559	if err := gensupport.DecodeResponse(target, res); err != nil {
55560		return nil, err
55561	}
55562	return ret, nil
55563	// {
55564	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
55565	//   "flatPath": "projects/{project}/global/backendBuckets",
55566	//   "httpMethod": "GET",
55567	//   "id": "compute.backendBuckets.list",
55568	//   "parameterOrder": [
55569	//     "project"
55570	//   ],
55571	//   "parameters": {
55572	//     "filter": {
55573	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
55574	//       "location": "query",
55575	//       "type": "string"
55576	//     },
55577	//     "maxResults": {
55578	//       "default": "500",
55579	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
55580	//       "format": "uint32",
55581	//       "location": "query",
55582	//       "minimum": "0",
55583	//       "type": "integer"
55584	//     },
55585	//     "orderBy": {
55586	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
55587	//       "location": "query",
55588	//       "type": "string"
55589	//     },
55590	//     "pageToken": {
55591	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
55592	//       "location": "query",
55593	//       "type": "string"
55594	//     },
55595	//     "project": {
55596	//       "description": "Project ID for this request.",
55597	//       "location": "path",
55598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55599	//       "required": true,
55600	//       "type": "string"
55601	//     },
55602	//     "returnPartialSuccess": {
55603	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
55604	//       "location": "query",
55605	//       "type": "boolean"
55606	//     }
55607	//   },
55608	//   "path": "projects/{project}/global/backendBuckets",
55609	//   "response": {
55610	//     "$ref": "BackendBucketList"
55611	//   },
55612	//   "scopes": [
55613	//     "https://www.googleapis.com/auth/cloud-platform",
55614	//     "https://www.googleapis.com/auth/compute",
55615	//     "https://www.googleapis.com/auth/compute.readonly"
55616	//   ]
55617	// }
55618
55619}
55620
55621// Pages invokes f for each page of results.
55622// A non-nil error returned from f will halt the iteration.
55623// The provided context supersedes any context provided to the Context method.
55624func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
55625	c.ctx_ = ctx
55626	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55627	for {
55628		x, err := c.Do()
55629		if err != nil {
55630			return err
55631		}
55632		if err := f(x); err != nil {
55633			return err
55634		}
55635		if x.NextPageToken == "" {
55636			return nil
55637		}
55638		c.PageToken(x.NextPageToken)
55639	}
55640}
55641
55642// method id "compute.backendBuckets.patch":
55643
55644type BackendBucketsPatchCall struct {
55645	s             *Service
55646	project       string
55647	backendBucket string
55648	backendbucket *BackendBucket
55649	urlParams_    gensupport.URLParams
55650	ctx_          context.Context
55651	header_       http.Header
55652}
55653
55654// Patch: Updates the specified BackendBucket resource with the data
55655// included in the request. This method supports PATCH semantics and
55656// uses the JSON merge patch format and processing rules.
55657//
55658// - backendBucket: Name of the BackendBucket resource to patch.
55659// - project: Project ID for this request.
55660func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
55661	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55662	c.project = project
55663	c.backendBucket = backendBucket
55664	c.backendbucket = backendbucket
55665	return c
55666}
55667
55668// RequestId sets the optional parameter "requestId": An optional
55669// request ID to identify requests. Specify a unique request ID so that
55670// if you must retry your request, the server will know to ignore the
55671// request if it has already been completed. For example, consider a
55672// situation where you make an initial request and the request times
55673// out. If you make the request again with the same request ID, the
55674// server can check if original operation with the same request ID was
55675// received, and if so, will ignore the second request. This prevents
55676// clients from accidentally creating duplicate commitments. The request
55677// ID must be a valid UUID with the exception that zero UUID is not
55678// supported ( 00000000-0000-0000-0000-000000000000).
55679func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
55680	c.urlParams_.Set("requestId", requestId)
55681	return c
55682}
55683
55684// Fields allows partial responses to be retrieved. See
55685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55686// for more information.
55687func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
55688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55689	return c
55690}
55691
55692// Context sets the context to be used in this call's Do method. Any
55693// pending HTTP request will be aborted if the provided context is
55694// canceled.
55695func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
55696	c.ctx_ = ctx
55697	return c
55698}
55699
55700// Header returns an http.Header that can be modified by the caller to
55701// add HTTP headers to the request.
55702func (c *BackendBucketsPatchCall) Header() http.Header {
55703	if c.header_ == nil {
55704		c.header_ = make(http.Header)
55705	}
55706	return c.header_
55707}
55708
55709func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
55710	reqHeaders := make(http.Header)
55711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
55712	for k, v := range c.header_ {
55713		reqHeaders[k] = v
55714	}
55715	reqHeaders.Set("User-Agent", c.s.userAgent())
55716	var body io.Reader = nil
55717	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55718	if err != nil {
55719		return nil, err
55720	}
55721	reqHeaders.Set("Content-Type", "application/json")
55722	c.urlParams_.Set("alt", alt)
55723	c.urlParams_.Set("prettyPrint", "false")
55724	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55725	urls += "?" + c.urlParams_.Encode()
55726	req, err := http.NewRequest("PATCH", urls, body)
55727	if err != nil {
55728		return nil, err
55729	}
55730	req.Header = reqHeaders
55731	googleapi.Expand(req.URL, map[string]string{
55732		"project":       c.project,
55733		"backendBucket": c.backendBucket,
55734	})
55735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55736}
55737
55738// Do executes the "compute.backendBuckets.patch" call.
55739// Exactly one of *Operation or error will be non-nil. Any non-2xx
55740// status code is an error. Response headers are in either
55741// *Operation.ServerResponse.Header or (if a response was returned at
55742// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55743// to check whether the returned error was because
55744// http.StatusNotModified was returned.
55745func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55746	gensupport.SetOptions(c.urlParams_, opts...)
55747	res, err := c.doRequest("json")
55748	if res != nil && res.StatusCode == http.StatusNotModified {
55749		if res.Body != nil {
55750			res.Body.Close()
55751		}
55752		return nil, &googleapi.Error{
55753			Code:   res.StatusCode,
55754			Header: res.Header,
55755		}
55756	}
55757	if err != nil {
55758		return nil, err
55759	}
55760	defer googleapi.CloseBody(res)
55761	if err := googleapi.CheckResponse(res); err != nil {
55762		return nil, err
55763	}
55764	ret := &Operation{
55765		ServerResponse: googleapi.ServerResponse{
55766			Header:         res.Header,
55767			HTTPStatusCode: res.StatusCode,
55768		},
55769	}
55770	target := &ret
55771	if err := gensupport.DecodeResponse(target, res); err != nil {
55772		return nil, err
55773	}
55774	return ret, nil
55775	// {
55776	//   "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.",
55777	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
55778	//   "httpMethod": "PATCH",
55779	//   "id": "compute.backendBuckets.patch",
55780	//   "parameterOrder": [
55781	//     "project",
55782	//     "backendBucket"
55783	//   ],
55784	//   "parameters": {
55785	//     "backendBucket": {
55786	//       "description": "Name of the BackendBucket resource to patch.",
55787	//       "location": "path",
55788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55789	//       "required": true,
55790	//       "type": "string"
55791	//     },
55792	//     "project": {
55793	//       "description": "Project ID for this request.",
55794	//       "location": "path",
55795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55796	//       "required": true,
55797	//       "type": "string"
55798	//     },
55799	//     "requestId": {
55800	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55801	//       "location": "query",
55802	//       "type": "string"
55803	//     }
55804	//   },
55805	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55806	//   "request": {
55807	//     "$ref": "BackendBucket"
55808	//   },
55809	//   "response": {
55810	//     "$ref": "Operation"
55811	//   },
55812	//   "scopes": [
55813	//     "https://www.googleapis.com/auth/cloud-platform",
55814	//     "https://www.googleapis.com/auth/compute"
55815	//   ]
55816	// }
55817
55818}
55819
55820// method id "compute.backendBuckets.update":
55821
55822type BackendBucketsUpdateCall struct {
55823	s             *Service
55824	project       string
55825	backendBucket string
55826	backendbucket *BackendBucket
55827	urlParams_    gensupport.URLParams
55828	ctx_          context.Context
55829	header_       http.Header
55830}
55831
55832// Update: Updates the specified BackendBucket resource with the data
55833// included in the request.
55834//
55835// - backendBucket: Name of the BackendBucket resource to update.
55836// - project: Project ID for this request.
55837func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
55838	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55839	c.project = project
55840	c.backendBucket = backendBucket
55841	c.backendbucket = backendbucket
55842	return c
55843}
55844
55845// RequestId sets the optional parameter "requestId": An optional
55846// request ID to identify requests. Specify a unique request ID so that
55847// if you must retry your request, the server will know to ignore the
55848// request if it has already been completed. For example, consider a
55849// situation where you make an initial request and the request times
55850// out. If you make the request again with the same request ID, the
55851// server can check if original operation with the same request ID was
55852// received, and if so, will ignore the second request. This prevents
55853// clients from accidentally creating duplicate commitments. The request
55854// ID must be a valid UUID with the exception that zero UUID is not
55855// supported ( 00000000-0000-0000-0000-000000000000).
55856func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
55857	c.urlParams_.Set("requestId", requestId)
55858	return c
55859}
55860
55861// Fields allows partial responses to be retrieved. See
55862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55863// for more information.
55864func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
55865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55866	return c
55867}
55868
55869// Context sets the context to be used in this call's Do method. Any
55870// pending HTTP request will be aborted if the provided context is
55871// canceled.
55872func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
55873	c.ctx_ = ctx
55874	return c
55875}
55876
55877// Header returns an http.Header that can be modified by the caller to
55878// add HTTP headers to the request.
55879func (c *BackendBucketsUpdateCall) Header() http.Header {
55880	if c.header_ == nil {
55881		c.header_ = make(http.Header)
55882	}
55883	return c.header_
55884}
55885
55886func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
55887	reqHeaders := make(http.Header)
55888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
55889	for k, v := range c.header_ {
55890		reqHeaders[k] = v
55891	}
55892	reqHeaders.Set("User-Agent", c.s.userAgent())
55893	var body io.Reader = nil
55894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55895	if err != nil {
55896		return nil, err
55897	}
55898	reqHeaders.Set("Content-Type", "application/json")
55899	c.urlParams_.Set("alt", alt)
55900	c.urlParams_.Set("prettyPrint", "false")
55901	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55902	urls += "?" + c.urlParams_.Encode()
55903	req, err := http.NewRequest("PUT", urls, body)
55904	if err != nil {
55905		return nil, err
55906	}
55907	req.Header = reqHeaders
55908	googleapi.Expand(req.URL, map[string]string{
55909		"project":       c.project,
55910		"backendBucket": c.backendBucket,
55911	})
55912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55913}
55914
55915// Do executes the "compute.backendBuckets.update" call.
55916// Exactly one of *Operation or error will be non-nil. Any non-2xx
55917// status code is an error. Response headers are in either
55918// *Operation.ServerResponse.Header or (if a response was returned at
55919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55920// to check whether the returned error was because
55921// http.StatusNotModified was returned.
55922func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55923	gensupport.SetOptions(c.urlParams_, opts...)
55924	res, err := c.doRequest("json")
55925	if res != nil && res.StatusCode == http.StatusNotModified {
55926		if res.Body != nil {
55927			res.Body.Close()
55928		}
55929		return nil, &googleapi.Error{
55930			Code:   res.StatusCode,
55931			Header: res.Header,
55932		}
55933	}
55934	if err != nil {
55935		return nil, err
55936	}
55937	defer googleapi.CloseBody(res)
55938	if err := googleapi.CheckResponse(res); err != nil {
55939		return nil, err
55940	}
55941	ret := &Operation{
55942		ServerResponse: googleapi.ServerResponse{
55943			Header:         res.Header,
55944			HTTPStatusCode: res.StatusCode,
55945		},
55946	}
55947	target := &ret
55948	if err := gensupport.DecodeResponse(target, res); err != nil {
55949		return nil, err
55950	}
55951	return ret, nil
55952	// {
55953	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
55954	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
55955	//   "httpMethod": "PUT",
55956	//   "id": "compute.backendBuckets.update",
55957	//   "parameterOrder": [
55958	//     "project",
55959	//     "backendBucket"
55960	//   ],
55961	//   "parameters": {
55962	//     "backendBucket": {
55963	//       "description": "Name of the BackendBucket resource to update.",
55964	//       "location": "path",
55965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55966	//       "required": true,
55967	//       "type": "string"
55968	//     },
55969	//     "project": {
55970	//       "description": "Project ID for this request.",
55971	//       "location": "path",
55972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55973	//       "required": true,
55974	//       "type": "string"
55975	//     },
55976	//     "requestId": {
55977	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55978	//       "location": "query",
55979	//       "type": "string"
55980	//     }
55981	//   },
55982	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55983	//   "request": {
55984	//     "$ref": "BackendBucket"
55985	//   },
55986	//   "response": {
55987	//     "$ref": "Operation"
55988	//   },
55989	//   "scopes": [
55990	//     "https://www.googleapis.com/auth/cloud-platform",
55991	//     "https://www.googleapis.com/auth/compute"
55992	//   ]
55993	// }
55994
55995}
55996
55997// method id "compute.backendServices.addSignedUrlKey":
55998
55999type BackendServicesAddSignedUrlKeyCall struct {
56000	s              *Service
56001	project        string
56002	backendService string
56003	signedurlkey   *SignedUrlKey
56004	urlParams_     gensupport.URLParams
56005	ctx_           context.Context
56006	header_        http.Header
56007}
56008
56009// AddSignedUrlKey: Adds a key for validating requests with signed URLs
56010// for this backend service.
56011//
56012// - backendService: Name of the BackendService resource to which the
56013//   Signed URL Key should be added. The name should conform to RFC1035.
56014// - project: Project ID for this request.
56015func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
56016	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56017	c.project = project
56018	c.backendService = backendService
56019	c.signedurlkey = signedurlkey
56020	return c
56021}
56022
56023// RequestId sets the optional parameter "requestId": An optional
56024// request ID to identify requests. Specify a unique request ID so that
56025// if you must retry your request, the server will know to ignore the
56026// request if it has already been completed. For example, consider a
56027// situation where you make an initial request and the request times
56028// out. If you make the request again with the same request ID, the
56029// server can check if original operation with the same request ID was
56030// received, and if so, will ignore the second request. This prevents
56031// clients from accidentally creating duplicate commitments. The request
56032// ID must be a valid UUID with the exception that zero UUID is not
56033// supported ( 00000000-0000-0000-0000-000000000000).
56034func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
56035	c.urlParams_.Set("requestId", requestId)
56036	return c
56037}
56038
56039// Fields allows partial responses to be retrieved. See
56040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56041// for more information.
56042func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
56043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56044	return c
56045}
56046
56047// Context sets the context to be used in this call's Do method. Any
56048// pending HTTP request will be aborted if the provided context is
56049// canceled.
56050func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
56051	c.ctx_ = ctx
56052	return c
56053}
56054
56055// Header returns an http.Header that can be modified by the caller to
56056// add HTTP headers to the request.
56057func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
56058	if c.header_ == nil {
56059		c.header_ = make(http.Header)
56060	}
56061	return c.header_
56062}
56063
56064func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56065	reqHeaders := make(http.Header)
56066	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
56067	for k, v := range c.header_ {
56068		reqHeaders[k] = v
56069	}
56070	reqHeaders.Set("User-Agent", c.s.userAgent())
56071	var body io.Reader = nil
56072	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
56073	if err != nil {
56074		return nil, err
56075	}
56076	reqHeaders.Set("Content-Type", "application/json")
56077	c.urlParams_.Set("alt", alt)
56078	c.urlParams_.Set("prettyPrint", "false")
56079	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey")
56080	urls += "?" + c.urlParams_.Encode()
56081	req, err := http.NewRequest("POST", urls, body)
56082	if err != nil {
56083		return nil, err
56084	}
56085	req.Header = reqHeaders
56086	googleapi.Expand(req.URL, map[string]string{
56087		"project":        c.project,
56088		"backendService": c.backendService,
56089	})
56090	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56091}
56092
56093// Do executes the "compute.backendServices.addSignedUrlKey" call.
56094// Exactly one of *Operation or error will be non-nil. Any non-2xx
56095// status code is an error. Response headers are in either
56096// *Operation.ServerResponse.Header or (if a response was returned at
56097// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56098// to check whether the returned error was because
56099// http.StatusNotModified was returned.
56100func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56101	gensupport.SetOptions(c.urlParams_, opts...)
56102	res, err := c.doRequest("json")
56103	if res != nil && res.StatusCode == http.StatusNotModified {
56104		if res.Body != nil {
56105			res.Body.Close()
56106		}
56107		return nil, &googleapi.Error{
56108			Code:   res.StatusCode,
56109			Header: res.Header,
56110		}
56111	}
56112	if err != nil {
56113		return nil, err
56114	}
56115	defer googleapi.CloseBody(res)
56116	if err := googleapi.CheckResponse(res); err != nil {
56117		return nil, err
56118	}
56119	ret := &Operation{
56120		ServerResponse: googleapi.ServerResponse{
56121			Header:         res.Header,
56122			HTTPStatusCode: res.StatusCode,
56123		},
56124	}
56125	target := &ret
56126	if err := gensupport.DecodeResponse(target, res); err != nil {
56127		return nil, err
56128	}
56129	return ret, nil
56130	// {
56131	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
56132	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
56133	//   "httpMethod": "POST",
56134	//   "id": "compute.backendServices.addSignedUrlKey",
56135	//   "parameterOrder": [
56136	//     "project",
56137	//     "backendService"
56138	//   ],
56139	//   "parameters": {
56140	//     "backendService": {
56141	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56142	//       "location": "path",
56143	//       "required": true,
56144	//       "type": "string"
56145	//     },
56146	//     "project": {
56147	//       "description": "Project ID for this request.",
56148	//       "location": "path",
56149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56150	//       "required": true,
56151	//       "type": "string"
56152	//     },
56153	//     "requestId": {
56154	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56155	//       "location": "query",
56156	//       "type": "string"
56157	//     }
56158	//   },
56159	//   "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
56160	//   "request": {
56161	//     "$ref": "SignedUrlKey"
56162	//   },
56163	//   "response": {
56164	//     "$ref": "Operation"
56165	//   },
56166	//   "scopes": [
56167	//     "https://www.googleapis.com/auth/cloud-platform",
56168	//     "https://www.googleapis.com/auth/compute"
56169	//   ]
56170	// }
56171
56172}
56173
56174// method id "compute.backendServices.aggregatedList":
56175
56176type BackendServicesAggregatedListCall struct {
56177	s            *Service
56178	project      string
56179	urlParams_   gensupport.URLParams
56180	ifNoneMatch_ string
56181	ctx_         context.Context
56182	header_      http.Header
56183}
56184
56185// AggregatedList: Retrieves the list of all BackendService resources,
56186// regional and global, available to the specified project.
56187//
56188// - project: Name of the project scoping this request.
56189func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
56190	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56191	c.project = project
56192	return c
56193}
56194
56195// Filter sets the optional parameter "filter": A filter expression that
56196// filters resources listed in the response. The expression must specify
56197// the field name, a comparison operator, and the value that you want to
56198// use for filtering. The value must be a string, a number, or a
56199// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56200// `<`. For example, if you are filtering Compute Engine instances, you
56201// can exclude instances named `example-instance` by specifying `name !=
56202// example-instance`. You can also filter nested fields. For example,
56203// you could specify `scheduling.automaticRestart = false` to include
56204// instances only if they are not scheduled for automatic restarts. You
56205// can use filtering on nested fields to filter based on resource
56206// labels. To filter on multiple expressions, provide each separate
56207// expression within parentheses. For example: ```
56208// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
56209// ``` By default, each expression is an `AND` expression. However, you
56210// can include `AND` and `OR` expressions explicitly. For example: ```
56211// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
56212// AND (scheduling.automaticRestart = true) ```
56213func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
56214	c.urlParams_.Set("filter", filter)
56215	return c
56216}
56217
56218// IncludeAllScopes sets the optional parameter "includeAllScopes":
56219// Indicates whether every visible scope for each scope type (zone,
56220// region, global) should be included in the response. For new resource
56221// types added after this field, the flag has no effect as new resource
56222// types will always include every visible scope for each scope type in
56223// response. For resource types which predate this field, if this flag
56224// is omitted or false, only scopes of the scope types where the
56225// resource type is expected to be found will be included.
56226func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
56227	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56228	return c
56229}
56230
56231// MaxResults sets the optional parameter "maxResults": The maximum
56232// number of results per page that should be returned. If the number of
56233// available results is larger than `maxResults`, Compute Engine returns
56234// a `nextPageToken` that can be used to get the next page of results in
56235// subsequent list requests. Acceptable values are `0` to `500`,
56236// inclusive. (Default: `500`)
56237func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
56238	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56239	return c
56240}
56241
56242// OrderBy sets the optional parameter "orderBy": Sorts list results by
56243// a certain order. By default, results are returned in alphanumerical
56244// order based on the resource name. You can also sort results in
56245// descending order based on the creation timestamp using
56246// `orderBy="creationTimestamp desc". This sorts results based on the
56247// `creationTimestamp` field in reverse chronological order (newest
56248// result first). Use this to sort resources like operations so that the
56249// newest operation is returned first. Currently, only sorting by `name`
56250// or `creationTimestamp desc` is supported.
56251func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
56252	c.urlParams_.Set("orderBy", orderBy)
56253	return c
56254}
56255
56256// PageToken sets the optional parameter "pageToken": Specifies a page
56257// token to use. Set `pageToken` to the `nextPageToken` returned by a
56258// previous list request to get the next page of results.
56259func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
56260	c.urlParams_.Set("pageToken", pageToken)
56261	return c
56262}
56263
56264// ReturnPartialSuccess sets the optional parameter
56265// "returnPartialSuccess": Opt-in for partial success behavior which
56266// provides partial results in case of failure. The default value is
56267// false.
56268func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
56269	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56270	return c
56271}
56272
56273// Fields allows partial responses to be retrieved. See
56274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56275// for more information.
56276func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
56277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56278	return c
56279}
56280
56281// IfNoneMatch sets the optional parameter which makes the operation
56282// fail if the object's ETag matches the given value. This is useful for
56283// getting updates only after the object has changed since the last
56284// request. Use googleapi.IsNotModified to check whether the response
56285// error from Do is the result of In-None-Match.
56286func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
56287	c.ifNoneMatch_ = entityTag
56288	return c
56289}
56290
56291// Context sets the context to be used in this call's Do method. Any
56292// pending HTTP request will be aborted if the provided context is
56293// canceled.
56294func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
56295	c.ctx_ = ctx
56296	return c
56297}
56298
56299// Header returns an http.Header that can be modified by the caller to
56300// add HTTP headers to the request.
56301func (c *BackendServicesAggregatedListCall) Header() http.Header {
56302	if c.header_ == nil {
56303		c.header_ = make(http.Header)
56304	}
56305	return c.header_
56306}
56307
56308func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56309	reqHeaders := make(http.Header)
56310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
56311	for k, v := range c.header_ {
56312		reqHeaders[k] = v
56313	}
56314	reqHeaders.Set("User-Agent", c.s.userAgent())
56315	if c.ifNoneMatch_ != "" {
56316		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56317	}
56318	var body io.Reader = nil
56319	c.urlParams_.Set("alt", alt)
56320	c.urlParams_.Set("prettyPrint", "false")
56321	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices")
56322	urls += "?" + c.urlParams_.Encode()
56323	req, err := http.NewRequest("GET", urls, body)
56324	if err != nil {
56325		return nil, err
56326	}
56327	req.Header = reqHeaders
56328	googleapi.Expand(req.URL, map[string]string{
56329		"project": c.project,
56330	})
56331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56332}
56333
56334// Do executes the "compute.backendServices.aggregatedList" call.
56335// Exactly one of *BackendServiceAggregatedList or error will be
56336// non-nil. Any non-2xx status code is an error. Response headers are in
56337// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
56338// response was returned at all) in error.(*googleapi.Error).Header. Use
56339// googleapi.IsNotModified to check whether the returned error was
56340// because http.StatusNotModified was returned.
56341func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
56342	gensupport.SetOptions(c.urlParams_, opts...)
56343	res, err := c.doRequest("json")
56344	if res != nil && res.StatusCode == http.StatusNotModified {
56345		if res.Body != nil {
56346			res.Body.Close()
56347		}
56348		return nil, &googleapi.Error{
56349			Code:   res.StatusCode,
56350			Header: res.Header,
56351		}
56352	}
56353	if err != nil {
56354		return nil, err
56355	}
56356	defer googleapi.CloseBody(res)
56357	if err := googleapi.CheckResponse(res); err != nil {
56358		return nil, err
56359	}
56360	ret := &BackendServiceAggregatedList{
56361		ServerResponse: googleapi.ServerResponse{
56362			Header:         res.Header,
56363			HTTPStatusCode: res.StatusCode,
56364		},
56365	}
56366	target := &ret
56367	if err := gensupport.DecodeResponse(target, res); err != nil {
56368		return nil, err
56369	}
56370	return ret, nil
56371	// {
56372	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
56373	//   "flatPath": "projects/{project}/aggregated/backendServices",
56374	//   "httpMethod": "GET",
56375	//   "id": "compute.backendServices.aggregatedList",
56376	//   "parameterOrder": [
56377	//     "project"
56378	//   ],
56379	//   "parameters": {
56380	//     "filter": {
56381	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
56382	//       "location": "query",
56383	//       "type": "string"
56384	//     },
56385	//     "includeAllScopes": {
56386	//       "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.",
56387	//       "location": "query",
56388	//       "type": "boolean"
56389	//     },
56390	//     "maxResults": {
56391	//       "default": "500",
56392	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56393	//       "format": "uint32",
56394	//       "location": "query",
56395	//       "minimum": "0",
56396	//       "type": "integer"
56397	//     },
56398	//     "orderBy": {
56399	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
56400	//       "location": "query",
56401	//       "type": "string"
56402	//     },
56403	//     "pageToken": {
56404	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56405	//       "location": "query",
56406	//       "type": "string"
56407	//     },
56408	//     "project": {
56409	//       "description": "Name of the project scoping this request.",
56410	//       "location": "path",
56411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56412	//       "required": true,
56413	//       "type": "string"
56414	//     },
56415	//     "returnPartialSuccess": {
56416	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
56417	//       "location": "query",
56418	//       "type": "boolean"
56419	//     }
56420	//   },
56421	//   "path": "projects/{project}/aggregated/backendServices",
56422	//   "response": {
56423	//     "$ref": "BackendServiceAggregatedList"
56424	//   },
56425	//   "scopes": [
56426	//     "https://www.googleapis.com/auth/cloud-platform",
56427	//     "https://www.googleapis.com/auth/compute",
56428	//     "https://www.googleapis.com/auth/compute.readonly"
56429	//   ]
56430	// }
56431
56432}
56433
56434// Pages invokes f for each page of results.
56435// A non-nil error returned from f will halt the iteration.
56436// The provided context supersedes any context provided to the Context method.
56437func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
56438	c.ctx_ = ctx
56439	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56440	for {
56441		x, err := c.Do()
56442		if err != nil {
56443			return err
56444		}
56445		if err := f(x); err != nil {
56446			return err
56447		}
56448		if x.NextPageToken == "" {
56449			return nil
56450		}
56451		c.PageToken(x.NextPageToken)
56452	}
56453}
56454
56455// method id "compute.backendServices.delete":
56456
56457type BackendServicesDeleteCall struct {
56458	s              *Service
56459	project        string
56460	backendService string
56461	urlParams_     gensupport.URLParams
56462	ctx_           context.Context
56463	header_        http.Header
56464}
56465
56466// Delete: Deletes the specified BackendService resource.
56467//
56468// - backendService: Name of the BackendService resource to delete.
56469// - project: Project ID for this request.
56470func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
56471	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56472	c.project = project
56473	c.backendService = backendService
56474	return c
56475}
56476
56477// RequestId sets the optional parameter "requestId": An optional
56478// request ID to identify requests. Specify a unique request ID so that
56479// if you must retry your request, the server will know to ignore the
56480// request if it has already been completed. For example, consider a
56481// situation where you make an initial request and the request times
56482// out. If you make the request again with the same request ID, the
56483// server can check if original operation with the same request ID was
56484// received, and if so, will ignore the second request. This prevents
56485// clients from accidentally creating duplicate commitments. The request
56486// ID must be a valid UUID with the exception that zero UUID is not
56487// supported ( 00000000-0000-0000-0000-000000000000).
56488func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
56489	c.urlParams_.Set("requestId", requestId)
56490	return c
56491}
56492
56493// Fields allows partial responses to be retrieved. See
56494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56495// for more information.
56496func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
56497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56498	return c
56499}
56500
56501// Context sets the context to be used in this call's Do method. Any
56502// pending HTTP request will be aborted if the provided context is
56503// canceled.
56504func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
56505	c.ctx_ = ctx
56506	return c
56507}
56508
56509// Header returns an http.Header that can be modified by the caller to
56510// add HTTP headers to the request.
56511func (c *BackendServicesDeleteCall) Header() http.Header {
56512	if c.header_ == nil {
56513		c.header_ = make(http.Header)
56514	}
56515	return c.header_
56516}
56517
56518func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
56519	reqHeaders := make(http.Header)
56520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
56521	for k, v := range c.header_ {
56522		reqHeaders[k] = v
56523	}
56524	reqHeaders.Set("User-Agent", c.s.userAgent())
56525	var body io.Reader = nil
56526	c.urlParams_.Set("alt", alt)
56527	c.urlParams_.Set("prettyPrint", "false")
56528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56529	urls += "?" + c.urlParams_.Encode()
56530	req, err := http.NewRequest("DELETE", urls, body)
56531	if err != nil {
56532		return nil, err
56533	}
56534	req.Header = reqHeaders
56535	googleapi.Expand(req.URL, map[string]string{
56536		"project":        c.project,
56537		"backendService": c.backendService,
56538	})
56539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56540}
56541
56542// Do executes the "compute.backendServices.delete" call.
56543// Exactly one of *Operation or error will be non-nil. Any non-2xx
56544// status code is an error. Response headers are in either
56545// *Operation.ServerResponse.Header or (if a response was returned at
56546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56547// to check whether the returned error was because
56548// http.StatusNotModified was returned.
56549func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56550	gensupport.SetOptions(c.urlParams_, opts...)
56551	res, err := c.doRequest("json")
56552	if res != nil && res.StatusCode == http.StatusNotModified {
56553		if res.Body != nil {
56554			res.Body.Close()
56555		}
56556		return nil, &googleapi.Error{
56557			Code:   res.StatusCode,
56558			Header: res.Header,
56559		}
56560	}
56561	if err != nil {
56562		return nil, err
56563	}
56564	defer googleapi.CloseBody(res)
56565	if err := googleapi.CheckResponse(res); err != nil {
56566		return nil, err
56567	}
56568	ret := &Operation{
56569		ServerResponse: googleapi.ServerResponse{
56570			Header:         res.Header,
56571			HTTPStatusCode: res.StatusCode,
56572		},
56573	}
56574	target := &ret
56575	if err := gensupport.DecodeResponse(target, res); err != nil {
56576		return nil, err
56577	}
56578	return ret, nil
56579	// {
56580	//   "description": "Deletes the specified BackendService resource.",
56581	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
56582	//   "httpMethod": "DELETE",
56583	//   "id": "compute.backendServices.delete",
56584	//   "parameterOrder": [
56585	//     "project",
56586	//     "backendService"
56587	//   ],
56588	//   "parameters": {
56589	//     "backendService": {
56590	//       "description": "Name of the BackendService resource to delete.",
56591	//       "location": "path",
56592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56593	//       "required": true,
56594	//       "type": "string"
56595	//     },
56596	//     "project": {
56597	//       "description": "Project ID for this request.",
56598	//       "location": "path",
56599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56600	//       "required": true,
56601	//       "type": "string"
56602	//     },
56603	//     "requestId": {
56604	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56605	//       "location": "query",
56606	//       "type": "string"
56607	//     }
56608	//   },
56609	//   "path": "projects/{project}/global/backendServices/{backendService}",
56610	//   "response": {
56611	//     "$ref": "Operation"
56612	//   },
56613	//   "scopes": [
56614	//     "https://www.googleapis.com/auth/cloud-platform",
56615	//     "https://www.googleapis.com/auth/compute"
56616	//   ]
56617	// }
56618
56619}
56620
56621// method id "compute.backendServices.deleteSignedUrlKey":
56622
56623type BackendServicesDeleteSignedUrlKeyCall struct {
56624	s              *Service
56625	project        string
56626	backendService string
56627	urlParams_     gensupport.URLParams
56628	ctx_           context.Context
56629	header_        http.Header
56630}
56631
56632// DeleteSignedUrlKey: Deletes a key for validating requests with signed
56633// URLs for this backend service.
56634//
56635// - backendService: Name of the BackendService resource to which the
56636//   Signed URL Key should be added. The name should conform to RFC1035.
56637// - keyName: The name of the Signed URL Key to delete.
56638// - project: Project ID for this request.
56639func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
56640	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56641	c.project = project
56642	c.backendService = backendService
56643	c.urlParams_.Set("keyName", keyName)
56644	return c
56645}
56646
56647// RequestId sets the optional parameter "requestId": An optional
56648// request ID to identify requests. Specify a unique request ID so that
56649// if you must retry your request, the server will know to ignore the
56650// request if it has already been completed. For example, consider a
56651// situation where you make an initial request and the request times
56652// out. If you make the request again with the same request ID, the
56653// server can check if original operation with the same request ID was
56654// received, and if so, will ignore the second request. This prevents
56655// clients from accidentally creating duplicate commitments. The request
56656// ID must be a valid UUID with the exception that zero UUID is not
56657// supported ( 00000000-0000-0000-0000-000000000000).
56658func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
56659	c.urlParams_.Set("requestId", requestId)
56660	return c
56661}
56662
56663// Fields allows partial responses to be retrieved. See
56664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56665// for more information.
56666func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
56667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56668	return c
56669}
56670
56671// Context sets the context to be used in this call's Do method. Any
56672// pending HTTP request will be aborted if the provided context is
56673// canceled.
56674func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
56675	c.ctx_ = ctx
56676	return c
56677}
56678
56679// Header returns an http.Header that can be modified by the caller to
56680// add HTTP headers to the request.
56681func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
56682	if c.header_ == nil {
56683		c.header_ = make(http.Header)
56684	}
56685	return c.header_
56686}
56687
56688func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56689	reqHeaders := make(http.Header)
56690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
56691	for k, v := range c.header_ {
56692		reqHeaders[k] = v
56693	}
56694	reqHeaders.Set("User-Agent", c.s.userAgent())
56695	var body io.Reader = nil
56696	c.urlParams_.Set("alt", alt)
56697	c.urlParams_.Set("prettyPrint", "false")
56698	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
56699	urls += "?" + c.urlParams_.Encode()
56700	req, err := http.NewRequest("POST", urls, body)
56701	if err != nil {
56702		return nil, err
56703	}
56704	req.Header = reqHeaders
56705	googleapi.Expand(req.URL, map[string]string{
56706		"project":        c.project,
56707		"backendService": c.backendService,
56708	})
56709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56710}
56711
56712// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
56713// Exactly one of *Operation or error will be non-nil. Any non-2xx
56714// status code is an error. Response headers are in either
56715// *Operation.ServerResponse.Header or (if a response was returned at
56716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56717// to check whether the returned error was because
56718// http.StatusNotModified was returned.
56719func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56720	gensupport.SetOptions(c.urlParams_, opts...)
56721	res, err := c.doRequest("json")
56722	if res != nil && res.StatusCode == http.StatusNotModified {
56723		if res.Body != nil {
56724			res.Body.Close()
56725		}
56726		return nil, &googleapi.Error{
56727			Code:   res.StatusCode,
56728			Header: res.Header,
56729		}
56730	}
56731	if err != nil {
56732		return nil, err
56733	}
56734	defer googleapi.CloseBody(res)
56735	if err := googleapi.CheckResponse(res); err != nil {
56736		return nil, err
56737	}
56738	ret := &Operation{
56739		ServerResponse: googleapi.ServerResponse{
56740			Header:         res.Header,
56741			HTTPStatusCode: res.StatusCode,
56742		},
56743	}
56744	target := &ret
56745	if err := gensupport.DecodeResponse(target, res); err != nil {
56746		return nil, err
56747	}
56748	return ret, nil
56749	// {
56750	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
56751	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
56752	//   "httpMethod": "POST",
56753	//   "id": "compute.backendServices.deleteSignedUrlKey",
56754	//   "parameterOrder": [
56755	//     "project",
56756	//     "backendService",
56757	//     "keyName"
56758	//   ],
56759	//   "parameters": {
56760	//     "backendService": {
56761	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56762	//       "location": "path",
56763	//       "required": true,
56764	//       "type": "string"
56765	//     },
56766	//     "keyName": {
56767	//       "description": "The name of the Signed URL Key to delete.",
56768	//       "location": "query",
56769	//       "required": true,
56770	//       "type": "string"
56771	//     },
56772	//     "project": {
56773	//       "description": "Project ID for this request.",
56774	//       "location": "path",
56775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56776	//       "required": true,
56777	//       "type": "string"
56778	//     },
56779	//     "requestId": {
56780	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56781	//       "location": "query",
56782	//       "type": "string"
56783	//     }
56784	//   },
56785	//   "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
56786	//   "response": {
56787	//     "$ref": "Operation"
56788	//   },
56789	//   "scopes": [
56790	//     "https://www.googleapis.com/auth/cloud-platform",
56791	//     "https://www.googleapis.com/auth/compute"
56792	//   ]
56793	// }
56794
56795}
56796
56797// method id "compute.backendServices.get":
56798
56799type BackendServicesGetCall struct {
56800	s              *Service
56801	project        string
56802	backendService string
56803	urlParams_     gensupport.URLParams
56804	ifNoneMatch_   string
56805	ctx_           context.Context
56806	header_        http.Header
56807}
56808
56809// Get: Returns the specified BackendService resource. Gets a list of
56810// available backend services.
56811//
56812// - backendService: Name of the BackendService resource to return.
56813// - project: Project ID for this request.
56814func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
56815	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56816	c.project = project
56817	c.backendService = backendService
56818	return c
56819}
56820
56821// Fields allows partial responses to be retrieved. See
56822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56823// for more information.
56824func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
56825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56826	return c
56827}
56828
56829// IfNoneMatch sets the optional parameter which makes the operation
56830// fail if the object's ETag matches the given value. This is useful for
56831// getting updates only after the object has changed since the last
56832// request. Use googleapi.IsNotModified to check whether the response
56833// error from Do is the result of In-None-Match.
56834func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
56835	c.ifNoneMatch_ = entityTag
56836	return c
56837}
56838
56839// Context sets the context to be used in this call's Do method. Any
56840// pending HTTP request will be aborted if the provided context is
56841// canceled.
56842func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
56843	c.ctx_ = ctx
56844	return c
56845}
56846
56847// Header returns an http.Header that can be modified by the caller to
56848// add HTTP headers to the request.
56849func (c *BackendServicesGetCall) Header() http.Header {
56850	if c.header_ == nil {
56851		c.header_ = make(http.Header)
56852	}
56853	return c.header_
56854}
56855
56856func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
56857	reqHeaders := make(http.Header)
56858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
56859	for k, v := range c.header_ {
56860		reqHeaders[k] = v
56861	}
56862	reqHeaders.Set("User-Agent", c.s.userAgent())
56863	if c.ifNoneMatch_ != "" {
56864		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56865	}
56866	var body io.Reader = nil
56867	c.urlParams_.Set("alt", alt)
56868	c.urlParams_.Set("prettyPrint", "false")
56869	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56870	urls += "?" + c.urlParams_.Encode()
56871	req, err := http.NewRequest("GET", urls, body)
56872	if err != nil {
56873		return nil, err
56874	}
56875	req.Header = reqHeaders
56876	googleapi.Expand(req.URL, map[string]string{
56877		"project":        c.project,
56878		"backendService": c.backendService,
56879	})
56880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56881}
56882
56883// Do executes the "compute.backendServices.get" call.
56884// Exactly one of *BackendService or error will be non-nil. Any non-2xx
56885// status code is an error. Response headers are in either
56886// *BackendService.ServerResponse.Header or (if a response was returned
56887// at all) in error.(*googleapi.Error).Header. Use
56888// googleapi.IsNotModified to check whether the returned error was
56889// because http.StatusNotModified was returned.
56890func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
56891	gensupport.SetOptions(c.urlParams_, opts...)
56892	res, err := c.doRequest("json")
56893	if res != nil && res.StatusCode == http.StatusNotModified {
56894		if res.Body != nil {
56895			res.Body.Close()
56896		}
56897		return nil, &googleapi.Error{
56898			Code:   res.StatusCode,
56899			Header: res.Header,
56900		}
56901	}
56902	if err != nil {
56903		return nil, err
56904	}
56905	defer googleapi.CloseBody(res)
56906	if err := googleapi.CheckResponse(res); err != nil {
56907		return nil, err
56908	}
56909	ret := &BackendService{
56910		ServerResponse: googleapi.ServerResponse{
56911			Header:         res.Header,
56912			HTTPStatusCode: res.StatusCode,
56913		},
56914	}
56915	target := &ret
56916	if err := gensupport.DecodeResponse(target, res); err != nil {
56917		return nil, err
56918	}
56919	return ret, nil
56920	// {
56921	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
56922	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
56923	//   "httpMethod": "GET",
56924	//   "id": "compute.backendServices.get",
56925	//   "parameterOrder": [
56926	//     "project",
56927	//     "backendService"
56928	//   ],
56929	//   "parameters": {
56930	//     "backendService": {
56931	//       "description": "Name of the BackendService resource to return.",
56932	//       "location": "path",
56933	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56934	//       "required": true,
56935	//       "type": "string"
56936	//     },
56937	//     "project": {
56938	//       "description": "Project ID for this request.",
56939	//       "location": "path",
56940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56941	//       "required": true,
56942	//       "type": "string"
56943	//     }
56944	//   },
56945	//   "path": "projects/{project}/global/backendServices/{backendService}",
56946	//   "response": {
56947	//     "$ref": "BackendService"
56948	//   },
56949	//   "scopes": [
56950	//     "https://www.googleapis.com/auth/cloud-platform",
56951	//     "https://www.googleapis.com/auth/compute",
56952	//     "https://www.googleapis.com/auth/compute.readonly"
56953	//   ]
56954	// }
56955
56956}
56957
56958// method id "compute.backendServices.getHealth":
56959
56960type BackendServicesGetHealthCall struct {
56961	s                      *Service
56962	project                string
56963	backendService         string
56964	resourcegroupreference *ResourceGroupReference
56965	urlParams_             gensupport.URLParams
56966	ctx_                   context.Context
56967	header_                http.Header
56968}
56969
56970// GetHealth: Gets the most recent health check results for this
56971// BackendService. Example request body: { "group":
56972// "/zones/us-east1-b/instanceGroups/lb-backend-example" }
56973//
56974// - backendService: Name of the BackendService resource to which the
56975//   queried instance belongs.
56976// - project: .
56977func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
56978	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56979	c.project = project
56980	c.backendService = backendService
56981	c.resourcegroupreference = resourcegroupreference
56982	return c
56983}
56984
56985// Fields allows partial responses to be retrieved. See
56986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56987// for more information.
56988func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
56989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56990	return c
56991}
56992
56993// Context sets the context to be used in this call's Do method. Any
56994// pending HTTP request will be aborted if the provided context is
56995// canceled.
56996func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
56997	c.ctx_ = ctx
56998	return c
56999}
57000
57001// Header returns an http.Header that can be modified by the caller to
57002// add HTTP headers to the request.
57003func (c *BackendServicesGetHealthCall) Header() http.Header {
57004	if c.header_ == nil {
57005		c.header_ = make(http.Header)
57006	}
57007	return c.header_
57008}
57009
57010func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
57011	reqHeaders := make(http.Header)
57012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57013	for k, v := range c.header_ {
57014		reqHeaders[k] = v
57015	}
57016	reqHeaders.Set("User-Agent", c.s.userAgent())
57017	var body io.Reader = nil
57018	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
57019	if err != nil {
57020		return nil, err
57021	}
57022	reqHeaders.Set("Content-Type", "application/json")
57023	c.urlParams_.Set("alt", alt)
57024	c.urlParams_.Set("prettyPrint", "false")
57025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getHealth")
57026	urls += "?" + c.urlParams_.Encode()
57027	req, err := http.NewRequest("POST", urls, body)
57028	if err != nil {
57029		return nil, err
57030	}
57031	req.Header = reqHeaders
57032	googleapi.Expand(req.URL, map[string]string{
57033		"project":        c.project,
57034		"backendService": c.backendService,
57035	})
57036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57037}
57038
57039// Do executes the "compute.backendServices.getHealth" call.
57040// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
57041// Any non-2xx status code is an error. Response headers are in either
57042// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
57043// was returned at all) in error.(*googleapi.Error).Header. Use
57044// googleapi.IsNotModified to check whether the returned error was
57045// because http.StatusNotModified was returned.
57046func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
57047	gensupport.SetOptions(c.urlParams_, opts...)
57048	res, err := c.doRequest("json")
57049	if res != nil && res.StatusCode == http.StatusNotModified {
57050		if res.Body != nil {
57051			res.Body.Close()
57052		}
57053		return nil, &googleapi.Error{
57054			Code:   res.StatusCode,
57055			Header: res.Header,
57056		}
57057	}
57058	if err != nil {
57059		return nil, err
57060	}
57061	defer googleapi.CloseBody(res)
57062	if err := googleapi.CheckResponse(res); err != nil {
57063		return nil, err
57064	}
57065	ret := &BackendServiceGroupHealth{
57066		ServerResponse: googleapi.ServerResponse{
57067			Header:         res.Header,
57068			HTTPStatusCode: res.StatusCode,
57069		},
57070	}
57071	target := &ret
57072	if err := gensupport.DecodeResponse(target, res); err != nil {
57073		return nil, err
57074	}
57075	return ret, nil
57076	// {
57077	//   "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }",
57078	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth",
57079	//   "httpMethod": "POST",
57080	//   "id": "compute.backendServices.getHealth",
57081	//   "parameterOrder": [
57082	//     "project",
57083	//     "backendService"
57084	//   ],
57085	//   "parameters": {
57086	//     "backendService": {
57087	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
57088	//       "location": "path",
57089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57090	//       "required": true,
57091	//       "type": "string"
57092	//     },
57093	//     "project": {
57094	//       "location": "path",
57095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57096	//       "required": true,
57097	//       "type": "string"
57098	//     }
57099	//   },
57100	//   "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
57101	//   "request": {
57102	//     "$ref": "ResourceGroupReference"
57103	//   },
57104	//   "response": {
57105	//     "$ref": "BackendServiceGroupHealth"
57106	//   },
57107	//   "scopes": [
57108	//     "https://www.googleapis.com/auth/cloud-platform",
57109	//     "https://www.googleapis.com/auth/compute",
57110	//     "https://www.googleapis.com/auth/compute.readonly"
57111	//   ]
57112	// }
57113
57114}
57115
57116// method id "compute.backendServices.insert":
57117
57118type BackendServicesInsertCall struct {
57119	s              *Service
57120	project        string
57121	backendservice *BackendService
57122	urlParams_     gensupport.URLParams
57123	ctx_           context.Context
57124	header_        http.Header
57125}
57126
57127// Insert: Creates a BackendService resource in the specified project
57128// using the data included in the request. For more information, see
57129// Backend services overview .
57130//
57131// - project: Project ID for this request.
57132func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
57133	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57134	c.project = project
57135	c.backendservice = backendservice
57136	return c
57137}
57138
57139// RequestId sets the optional parameter "requestId": An optional
57140// request ID to identify requests. Specify a unique request ID so that
57141// if you must retry your request, the server will know to ignore the
57142// request if it has already been completed. For example, consider a
57143// situation where you make an initial request and the request times
57144// out. If you make the request again with the same request ID, the
57145// server can check if original operation with the same request ID was
57146// received, and if so, will ignore the second request. This prevents
57147// clients from accidentally creating duplicate commitments. The request
57148// ID must be a valid UUID with the exception that zero UUID is not
57149// supported ( 00000000-0000-0000-0000-000000000000).
57150func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
57151	c.urlParams_.Set("requestId", requestId)
57152	return c
57153}
57154
57155// Fields allows partial responses to be retrieved. See
57156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57157// for more information.
57158func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
57159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57160	return c
57161}
57162
57163// Context sets the context to be used in this call's Do method. Any
57164// pending HTTP request will be aborted if the provided context is
57165// canceled.
57166func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
57167	c.ctx_ = ctx
57168	return c
57169}
57170
57171// Header returns an http.Header that can be modified by the caller to
57172// add HTTP headers to the request.
57173func (c *BackendServicesInsertCall) Header() http.Header {
57174	if c.header_ == nil {
57175		c.header_ = make(http.Header)
57176	}
57177	return c.header_
57178}
57179
57180func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
57181	reqHeaders := make(http.Header)
57182	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57183	for k, v := range c.header_ {
57184		reqHeaders[k] = v
57185	}
57186	reqHeaders.Set("User-Agent", c.s.userAgent())
57187	var body io.Reader = nil
57188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57189	if err != nil {
57190		return nil, err
57191	}
57192	reqHeaders.Set("Content-Type", "application/json")
57193	c.urlParams_.Set("alt", alt)
57194	c.urlParams_.Set("prettyPrint", "false")
57195	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57196	urls += "?" + c.urlParams_.Encode()
57197	req, err := http.NewRequest("POST", urls, body)
57198	if err != nil {
57199		return nil, err
57200	}
57201	req.Header = reqHeaders
57202	googleapi.Expand(req.URL, map[string]string{
57203		"project": c.project,
57204	})
57205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57206}
57207
57208// Do executes the "compute.backendServices.insert" call.
57209// Exactly one of *Operation or error will be non-nil. Any non-2xx
57210// status code is an error. Response headers are in either
57211// *Operation.ServerResponse.Header or (if a response was returned at
57212// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57213// to check whether the returned error was because
57214// http.StatusNotModified was returned.
57215func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57216	gensupport.SetOptions(c.urlParams_, opts...)
57217	res, err := c.doRequest("json")
57218	if res != nil && res.StatusCode == http.StatusNotModified {
57219		if res.Body != nil {
57220			res.Body.Close()
57221		}
57222		return nil, &googleapi.Error{
57223			Code:   res.StatusCode,
57224			Header: res.Header,
57225		}
57226	}
57227	if err != nil {
57228		return nil, err
57229	}
57230	defer googleapi.CloseBody(res)
57231	if err := googleapi.CheckResponse(res); err != nil {
57232		return nil, err
57233	}
57234	ret := &Operation{
57235		ServerResponse: googleapi.ServerResponse{
57236			Header:         res.Header,
57237			HTTPStatusCode: res.StatusCode,
57238		},
57239	}
57240	target := &ret
57241	if err := gensupport.DecodeResponse(target, res); err != nil {
57242		return nil, err
57243	}
57244	return ret, nil
57245	// {
57246	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .",
57247	//   "flatPath": "projects/{project}/global/backendServices",
57248	//   "httpMethod": "POST",
57249	//   "id": "compute.backendServices.insert",
57250	//   "parameterOrder": [
57251	//     "project"
57252	//   ],
57253	//   "parameters": {
57254	//     "project": {
57255	//       "description": "Project ID for this request.",
57256	//       "location": "path",
57257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57258	//       "required": true,
57259	//       "type": "string"
57260	//     },
57261	//     "requestId": {
57262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
57263	//       "location": "query",
57264	//       "type": "string"
57265	//     }
57266	//   },
57267	//   "path": "projects/{project}/global/backendServices",
57268	//   "request": {
57269	//     "$ref": "BackendService"
57270	//   },
57271	//   "response": {
57272	//     "$ref": "Operation"
57273	//   },
57274	//   "scopes": [
57275	//     "https://www.googleapis.com/auth/cloud-platform",
57276	//     "https://www.googleapis.com/auth/compute"
57277	//   ]
57278	// }
57279
57280}
57281
57282// method id "compute.backendServices.list":
57283
57284type BackendServicesListCall struct {
57285	s            *Service
57286	project      string
57287	urlParams_   gensupport.URLParams
57288	ifNoneMatch_ string
57289	ctx_         context.Context
57290	header_      http.Header
57291}
57292
57293// List: Retrieves the list of BackendService resources available to the
57294// specified project.
57295//
57296// - project: Project ID for this request.
57297func (r *BackendServicesService) List(project string) *BackendServicesListCall {
57298	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57299	c.project = project
57300	return c
57301}
57302
57303// Filter sets the optional parameter "filter": A filter expression that
57304// filters resources listed in the response. The expression must specify
57305// the field name, a comparison operator, and the value that you want to
57306// use for filtering. The value must be a string, a number, or a
57307// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57308// `<`. For example, if you are filtering Compute Engine instances, you
57309// can exclude instances named `example-instance` by specifying `name !=
57310// example-instance`. You can also filter nested fields. For example,
57311// you could specify `scheduling.automaticRestart = false` to include
57312// instances only if they are not scheduled for automatic restarts. You
57313// can use filtering on nested fields to filter based on resource
57314// labels. To filter on multiple expressions, provide each separate
57315// expression within parentheses. For example: ```
57316// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
57317// ``` By default, each expression is an `AND` expression. However, you
57318// can include `AND` and `OR` expressions explicitly. For example: ```
57319// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
57320// AND (scheduling.automaticRestart = true) ```
57321func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
57322	c.urlParams_.Set("filter", filter)
57323	return c
57324}
57325
57326// MaxResults sets the optional parameter "maxResults": The maximum
57327// number of results per page that should be returned. If the number of
57328// available results is larger than `maxResults`, Compute Engine returns
57329// a `nextPageToken` that can be used to get the next page of results in
57330// subsequent list requests. Acceptable values are `0` to `500`,
57331// inclusive. (Default: `500`)
57332func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
57333	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57334	return c
57335}
57336
57337// OrderBy sets the optional parameter "orderBy": Sorts list results by
57338// a certain order. By default, results are returned in alphanumerical
57339// order based on the resource name. You can also sort results in
57340// descending order based on the creation timestamp using
57341// `orderBy="creationTimestamp desc". This sorts results based on the
57342// `creationTimestamp` field in reverse chronological order (newest
57343// result first). Use this to sort resources like operations so that the
57344// newest operation is returned first. Currently, only sorting by `name`
57345// or `creationTimestamp desc` is supported.
57346func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
57347	c.urlParams_.Set("orderBy", orderBy)
57348	return c
57349}
57350
57351// PageToken sets the optional parameter "pageToken": Specifies a page
57352// token to use. Set `pageToken` to the `nextPageToken` returned by a
57353// previous list request to get the next page of results.
57354func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
57355	c.urlParams_.Set("pageToken", pageToken)
57356	return c
57357}
57358
57359// ReturnPartialSuccess sets the optional parameter
57360// "returnPartialSuccess": Opt-in for partial success behavior which
57361// provides partial results in case of failure. The default value is
57362// false.
57363func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
57364	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57365	return c
57366}
57367
57368// Fields allows partial responses to be retrieved. See
57369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57370// for more information.
57371func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
57372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57373	return c
57374}
57375
57376// IfNoneMatch sets the optional parameter which makes the operation
57377// fail if the object's ETag matches the given value. This is useful for
57378// getting updates only after the object has changed since the last
57379// request. Use googleapi.IsNotModified to check whether the response
57380// error from Do is the result of In-None-Match.
57381func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
57382	c.ifNoneMatch_ = entityTag
57383	return c
57384}
57385
57386// Context sets the context to be used in this call's Do method. Any
57387// pending HTTP request will be aborted if the provided context is
57388// canceled.
57389func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
57390	c.ctx_ = ctx
57391	return c
57392}
57393
57394// Header returns an http.Header that can be modified by the caller to
57395// add HTTP headers to the request.
57396func (c *BackendServicesListCall) Header() http.Header {
57397	if c.header_ == nil {
57398		c.header_ = make(http.Header)
57399	}
57400	return c.header_
57401}
57402
57403func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
57404	reqHeaders := make(http.Header)
57405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57406	for k, v := range c.header_ {
57407		reqHeaders[k] = v
57408	}
57409	reqHeaders.Set("User-Agent", c.s.userAgent())
57410	if c.ifNoneMatch_ != "" {
57411		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57412	}
57413	var body io.Reader = nil
57414	c.urlParams_.Set("alt", alt)
57415	c.urlParams_.Set("prettyPrint", "false")
57416	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57417	urls += "?" + c.urlParams_.Encode()
57418	req, err := http.NewRequest("GET", urls, body)
57419	if err != nil {
57420		return nil, err
57421	}
57422	req.Header = reqHeaders
57423	googleapi.Expand(req.URL, map[string]string{
57424		"project": c.project,
57425	})
57426	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57427}
57428
57429// Do executes the "compute.backendServices.list" call.
57430// Exactly one of *BackendServiceList or error will be non-nil. Any
57431// non-2xx status code is an error. Response headers are in either
57432// *BackendServiceList.ServerResponse.Header or (if a response was
57433// returned at all) in error.(*googleapi.Error).Header. Use
57434// googleapi.IsNotModified to check whether the returned error was
57435// because http.StatusNotModified was returned.
57436func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
57437	gensupport.SetOptions(c.urlParams_, opts...)
57438	res, err := c.doRequest("json")
57439	if res != nil && res.StatusCode == http.StatusNotModified {
57440		if res.Body != nil {
57441			res.Body.Close()
57442		}
57443		return nil, &googleapi.Error{
57444			Code:   res.StatusCode,
57445			Header: res.Header,
57446		}
57447	}
57448	if err != nil {
57449		return nil, err
57450	}
57451	defer googleapi.CloseBody(res)
57452	if err := googleapi.CheckResponse(res); err != nil {
57453		return nil, err
57454	}
57455	ret := &BackendServiceList{
57456		ServerResponse: googleapi.ServerResponse{
57457			Header:         res.Header,
57458			HTTPStatusCode: res.StatusCode,
57459		},
57460	}
57461	target := &ret
57462	if err := gensupport.DecodeResponse(target, res); err != nil {
57463		return nil, err
57464	}
57465	return ret, nil
57466	// {
57467	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
57468	//   "flatPath": "projects/{project}/global/backendServices",
57469	//   "httpMethod": "GET",
57470	//   "id": "compute.backendServices.list",
57471	//   "parameterOrder": [
57472	//     "project"
57473	//   ],
57474	//   "parameters": {
57475	//     "filter": {
57476	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57477	//       "location": "query",
57478	//       "type": "string"
57479	//     },
57480	//     "maxResults": {
57481	//       "default": "500",
57482	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57483	//       "format": "uint32",
57484	//       "location": "query",
57485	//       "minimum": "0",
57486	//       "type": "integer"
57487	//     },
57488	//     "orderBy": {
57489	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
57490	//       "location": "query",
57491	//       "type": "string"
57492	//     },
57493	//     "pageToken": {
57494	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57495	//       "location": "query",
57496	//       "type": "string"
57497	//     },
57498	//     "project": {
57499	//       "description": "Project ID for this request.",
57500	//       "location": "path",
57501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57502	//       "required": true,
57503	//       "type": "string"
57504	//     },
57505	//     "returnPartialSuccess": {
57506	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
57507	//       "location": "query",
57508	//       "type": "boolean"
57509	//     }
57510	//   },
57511	//   "path": "projects/{project}/global/backendServices",
57512	//   "response": {
57513	//     "$ref": "BackendServiceList"
57514	//   },
57515	//   "scopes": [
57516	//     "https://www.googleapis.com/auth/cloud-platform",
57517	//     "https://www.googleapis.com/auth/compute",
57518	//     "https://www.googleapis.com/auth/compute.readonly"
57519	//   ]
57520	// }
57521
57522}
57523
57524// Pages invokes f for each page of results.
57525// A non-nil error returned from f will halt the iteration.
57526// The provided context supersedes any context provided to the Context method.
57527func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
57528	c.ctx_ = ctx
57529	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57530	for {
57531		x, err := c.Do()
57532		if err != nil {
57533			return err
57534		}
57535		if err := f(x); err != nil {
57536			return err
57537		}
57538		if x.NextPageToken == "" {
57539			return nil
57540		}
57541		c.PageToken(x.NextPageToken)
57542	}
57543}
57544
57545// method id "compute.backendServices.patch":
57546
57547type BackendServicesPatchCall struct {
57548	s              *Service
57549	project        string
57550	backendService string
57551	backendservice *BackendService
57552	urlParams_     gensupport.URLParams
57553	ctx_           context.Context
57554	header_        http.Header
57555}
57556
57557// Patch: Patches the specified BackendService resource with the data
57558// included in the request. For more information, see Backend services
57559// overview. This method supports PATCH semantics and uses the JSON
57560// merge patch format and processing rules.
57561//
57562// - backendService: Name of the BackendService resource to patch.
57563// - project: Project ID for this request.
57564func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
57565	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57566	c.project = project
57567	c.backendService = backendService
57568	c.backendservice = backendservice
57569	return c
57570}
57571
57572// RequestId sets the optional parameter "requestId": An optional
57573// request ID to identify requests. Specify a unique request ID so that
57574// if you must retry your request, the server will know to ignore the
57575// request if it has already been completed. For example, consider a
57576// situation where you make an initial request and the request times
57577// out. If you make the request again with the same request ID, the
57578// server can check if original operation with the same request ID was
57579// received, and if so, will ignore the second request. This prevents
57580// clients from accidentally creating duplicate commitments. The request
57581// ID must be a valid UUID with the exception that zero UUID is not
57582// supported ( 00000000-0000-0000-0000-000000000000).
57583func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
57584	c.urlParams_.Set("requestId", requestId)
57585	return c
57586}
57587
57588// Fields allows partial responses to be retrieved. See
57589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57590// for more information.
57591func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
57592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57593	return c
57594}
57595
57596// Context sets the context to be used in this call's Do method. Any
57597// pending HTTP request will be aborted if the provided context is
57598// canceled.
57599func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
57600	c.ctx_ = ctx
57601	return c
57602}
57603
57604// Header returns an http.Header that can be modified by the caller to
57605// add HTTP headers to the request.
57606func (c *BackendServicesPatchCall) Header() http.Header {
57607	if c.header_ == nil {
57608		c.header_ = make(http.Header)
57609	}
57610	return c.header_
57611}
57612
57613func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
57614	reqHeaders := make(http.Header)
57615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57616	for k, v := range c.header_ {
57617		reqHeaders[k] = v
57618	}
57619	reqHeaders.Set("User-Agent", c.s.userAgent())
57620	var body io.Reader = nil
57621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57622	if err != nil {
57623		return nil, err
57624	}
57625	reqHeaders.Set("Content-Type", "application/json")
57626	c.urlParams_.Set("alt", alt)
57627	c.urlParams_.Set("prettyPrint", "false")
57628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57629	urls += "?" + c.urlParams_.Encode()
57630	req, err := http.NewRequest("PATCH", urls, body)
57631	if err != nil {
57632		return nil, err
57633	}
57634	req.Header = reqHeaders
57635	googleapi.Expand(req.URL, map[string]string{
57636		"project":        c.project,
57637		"backendService": c.backendService,
57638	})
57639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57640}
57641
57642// Do executes the "compute.backendServices.patch" call.
57643// Exactly one of *Operation or error will be non-nil. Any non-2xx
57644// status code is an error. Response headers are in either
57645// *Operation.ServerResponse.Header or (if a response was returned at
57646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57647// to check whether the returned error was because
57648// http.StatusNotModified was returned.
57649func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57650	gensupport.SetOptions(c.urlParams_, opts...)
57651	res, err := c.doRequest("json")
57652	if res != nil && res.StatusCode == http.StatusNotModified {
57653		if res.Body != nil {
57654			res.Body.Close()
57655		}
57656		return nil, &googleapi.Error{
57657			Code:   res.StatusCode,
57658			Header: res.Header,
57659		}
57660	}
57661	if err != nil {
57662		return nil, err
57663	}
57664	defer googleapi.CloseBody(res)
57665	if err := googleapi.CheckResponse(res); err != nil {
57666		return nil, err
57667	}
57668	ret := &Operation{
57669		ServerResponse: googleapi.ServerResponse{
57670			Header:         res.Header,
57671			HTTPStatusCode: res.StatusCode,
57672		},
57673	}
57674	target := &ret
57675	if err := gensupport.DecodeResponse(target, res); err != nil {
57676		return nil, err
57677	}
57678	return ret, nil
57679	// {
57680	//   "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.",
57681	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
57682	//   "httpMethod": "PATCH",
57683	//   "id": "compute.backendServices.patch",
57684	//   "parameterOrder": [
57685	//     "project",
57686	//     "backendService"
57687	//   ],
57688	//   "parameters": {
57689	//     "backendService": {
57690	//       "description": "Name of the BackendService resource to patch.",
57691	//       "location": "path",
57692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57693	//       "required": true,
57694	//       "type": "string"
57695	//     },
57696	//     "project": {
57697	//       "description": "Project ID for this request.",
57698	//       "location": "path",
57699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57700	//       "required": true,
57701	//       "type": "string"
57702	//     },
57703	//     "requestId": {
57704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
57705	//       "location": "query",
57706	//       "type": "string"
57707	//     }
57708	//   },
57709	//   "path": "projects/{project}/global/backendServices/{backendService}",
57710	//   "request": {
57711	//     "$ref": "BackendService"
57712	//   },
57713	//   "response": {
57714	//     "$ref": "Operation"
57715	//   },
57716	//   "scopes": [
57717	//     "https://www.googleapis.com/auth/cloud-platform",
57718	//     "https://www.googleapis.com/auth/compute"
57719	//   ]
57720	// }
57721
57722}
57723
57724// method id "compute.backendServices.setSecurityPolicy":
57725
57726type BackendServicesSetSecurityPolicyCall struct {
57727	s                       *Service
57728	project                 string
57729	backendService          string
57730	securitypolicyreference *SecurityPolicyReference
57731	urlParams_              gensupport.URLParams
57732	ctx_                    context.Context
57733	header_                 http.Header
57734}
57735
57736// SetSecurityPolicy: Sets the Google Cloud Armor security policy for
57737// the specified backend service. For more information, see Google Cloud
57738// Armor Overview
57739//
57740// - backendService: Name of the BackendService resource to which the
57741//   security policy should be set. The name should conform to RFC1035.
57742// - project: Project ID for this request.
57743func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
57744	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57745	c.project = project
57746	c.backendService = backendService
57747	c.securitypolicyreference = securitypolicyreference
57748	return c
57749}
57750
57751// RequestId sets the optional parameter "requestId": An optional
57752// request ID to identify requests. Specify a unique request ID so that
57753// if you must retry your request, the server will know to ignore the
57754// request if it has already been completed. For example, consider a
57755// situation where you make an initial request and the request times
57756// out. If you make the request again with the same request ID, the
57757// server can check if original operation with the same request ID was
57758// received, and if so, will ignore the second request. This prevents
57759// clients from accidentally creating duplicate commitments. The request
57760// ID must be a valid UUID with the exception that zero UUID is not
57761// supported ( 00000000-0000-0000-0000-000000000000).
57762func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
57763	c.urlParams_.Set("requestId", requestId)
57764	return c
57765}
57766
57767// Fields allows partial responses to be retrieved. See
57768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57769// for more information.
57770func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
57771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57772	return c
57773}
57774
57775// Context sets the context to be used in this call's Do method. Any
57776// pending HTTP request will be aborted if the provided context is
57777// canceled.
57778func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
57779	c.ctx_ = ctx
57780	return c
57781}
57782
57783// Header returns an http.Header that can be modified by the caller to
57784// add HTTP headers to the request.
57785func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
57786	if c.header_ == nil {
57787		c.header_ = make(http.Header)
57788	}
57789	return c.header_
57790}
57791
57792func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
57793	reqHeaders := make(http.Header)
57794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57795	for k, v := range c.header_ {
57796		reqHeaders[k] = v
57797	}
57798	reqHeaders.Set("User-Agent", c.s.userAgent())
57799	var body io.Reader = nil
57800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
57801	if err != nil {
57802		return nil, err
57803	}
57804	reqHeaders.Set("Content-Type", "application/json")
57805	c.urlParams_.Set("alt", alt)
57806	c.urlParams_.Set("prettyPrint", "false")
57807	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy")
57808	urls += "?" + c.urlParams_.Encode()
57809	req, err := http.NewRequest("POST", urls, body)
57810	if err != nil {
57811		return nil, err
57812	}
57813	req.Header = reqHeaders
57814	googleapi.Expand(req.URL, map[string]string{
57815		"project":        c.project,
57816		"backendService": c.backendService,
57817	})
57818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57819}
57820
57821// Do executes the "compute.backendServices.setSecurityPolicy" call.
57822// Exactly one of *Operation or error will be non-nil. Any non-2xx
57823// status code is an error. Response headers are in either
57824// *Operation.ServerResponse.Header or (if a response was returned at
57825// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57826// to check whether the returned error was because
57827// http.StatusNotModified was returned.
57828func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57829	gensupport.SetOptions(c.urlParams_, opts...)
57830	res, err := c.doRequest("json")
57831	if res != nil && res.StatusCode == http.StatusNotModified {
57832		if res.Body != nil {
57833			res.Body.Close()
57834		}
57835		return nil, &googleapi.Error{
57836			Code:   res.StatusCode,
57837			Header: res.Header,
57838		}
57839	}
57840	if err != nil {
57841		return nil, err
57842	}
57843	defer googleapi.CloseBody(res)
57844	if err := googleapi.CheckResponse(res); err != nil {
57845		return nil, err
57846	}
57847	ret := &Operation{
57848		ServerResponse: googleapi.ServerResponse{
57849			Header:         res.Header,
57850			HTTPStatusCode: res.StatusCode,
57851		},
57852	}
57853	target := &ret
57854	if err := gensupport.DecodeResponse(target, res); err != nil {
57855		return nil, err
57856	}
57857	return ret, nil
57858	// {
57859	//   "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview",
57860	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
57861	//   "httpMethod": "POST",
57862	//   "id": "compute.backendServices.setSecurityPolicy",
57863	//   "parameterOrder": [
57864	//     "project",
57865	//     "backendService"
57866	//   ],
57867	//   "parameters": {
57868	//     "backendService": {
57869	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
57870	//       "location": "path",
57871	//       "required": true,
57872	//       "type": "string"
57873	//     },
57874	//     "project": {
57875	//       "description": "Project ID for this request.",
57876	//       "location": "path",
57877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57878	//       "required": true,
57879	//       "type": "string"
57880	//     },
57881	//     "requestId": {
57882	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
57883	//       "location": "query",
57884	//       "type": "string"
57885	//     }
57886	//   },
57887	//   "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
57888	//   "request": {
57889	//     "$ref": "SecurityPolicyReference"
57890	//   },
57891	//   "response": {
57892	//     "$ref": "Operation"
57893	//   },
57894	//   "scopes": [
57895	//     "https://www.googleapis.com/auth/cloud-platform",
57896	//     "https://www.googleapis.com/auth/compute"
57897	//   ]
57898	// }
57899
57900}
57901
57902// method id "compute.backendServices.update":
57903
57904type BackendServicesUpdateCall struct {
57905	s              *Service
57906	project        string
57907	backendService string
57908	backendservice *BackendService
57909	urlParams_     gensupport.URLParams
57910	ctx_           context.Context
57911	header_        http.Header
57912}
57913
57914// Update: Updates the specified BackendService resource with the data
57915// included in the request. For more information, see Backend services
57916// overview.
57917//
57918// - backendService: Name of the BackendService resource to update.
57919// - project: Project ID for this request.
57920func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
57921	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57922	c.project = project
57923	c.backendService = backendService
57924	c.backendservice = backendservice
57925	return c
57926}
57927
57928// RequestId sets the optional parameter "requestId": An optional
57929// request ID to identify requests. Specify a unique request ID so that
57930// if you must retry your request, the server will know to ignore the
57931// request if it has already been completed. For example, consider a
57932// situation where you make an initial request and the request times
57933// out. If you make the request again with the same request ID, the
57934// server can check if original operation with the same request ID was
57935// received, and if so, will ignore the second request. This prevents
57936// clients from accidentally creating duplicate commitments. The request
57937// ID must be a valid UUID with the exception that zero UUID is not
57938// supported ( 00000000-0000-0000-0000-000000000000).
57939func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
57940	c.urlParams_.Set("requestId", requestId)
57941	return c
57942}
57943
57944// Fields allows partial responses to be retrieved. See
57945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57946// for more information.
57947func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
57948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57949	return c
57950}
57951
57952// Context sets the context to be used in this call's Do method. Any
57953// pending HTTP request will be aborted if the provided context is
57954// canceled.
57955func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
57956	c.ctx_ = ctx
57957	return c
57958}
57959
57960// Header returns an http.Header that can be modified by the caller to
57961// add HTTP headers to the request.
57962func (c *BackendServicesUpdateCall) Header() http.Header {
57963	if c.header_ == nil {
57964		c.header_ = make(http.Header)
57965	}
57966	return c.header_
57967}
57968
57969func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
57970	reqHeaders := make(http.Header)
57971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
57972	for k, v := range c.header_ {
57973		reqHeaders[k] = v
57974	}
57975	reqHeaders.Set("User-Agent", c.s.userAgent())
57976	var body io.Reader = nil
57977	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57978	if err != nil {
57979		return nil, err
57980	}
57981	reqHeaders.Set("Content-Type", "application/json")
57982	c.urlParams_.Set("alt", alt)
57983	c.urlParams_.Set("prettyPrint", "false")
57984	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57985	urls += "?" + c.urlParams_.Encode()
57986	req, err := http.NewRequest("PUT", urls, body)
57987	if err != nil {
57988		return nil, err
57989	}
57990	req.Header = reqHeaders
57991	googleapi.Expand(req.URL, map[string]string{
57992		"project":        c.project,
57993		"backendService": c.backendService,
57994	})
57995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57996}
57997
57998// Do executes the "compute.backendServices.update" call.
57999// Exactly one of *Operation or error will be non-nil. Any non-2xx
58000// status code is an error. Response headers are in either
58001// *Operation.ServerResponse.Header or (if a response was returned at
58002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58003// to check whether the returned error was because
58004// http.StatusNotModified was returned.
58005func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58006	gensupport.SetOptions(c.urlParams_, opts...)
58007	res, err := c.doRequest("json")
58008	if res != nil && res.StatusCode == http.StatusNotModified {
58009		if res.Body != nil {
58010			res.Body.Close()
58011		}
58012		return nil, &googleapi.Error{
58013			Code:   res.StatusCode,
58014			Header: res.Header,
58015		}
58016	}
58017	if err != nil {
58018		return nil, err
58019	}
58020	defer googleapi.CloseBody(res)
58021	if err := googleapi.CheckResponse(res); err != nil {
58022		return nil, err
58023	}
58024	ret := &Operation{
58025		ServerResponse: googleapi.ServerResponse{
58026			Header:         res.Header,
58027			HTTPStatusCode: res.StatusCode,
58028		},
58029	}
58030	target := &ret
58031	if err := gensupport.DecodeResponse(target, res); err != nil {
58032		return nil, err
58033	}
58034	return ret, nil
58035	// {
58036	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
58037	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
58038	//   "httpMethod": "PUT",
58039	//   "id": "compute.backendServices.update",
58040	//   "parameterOrder": [
58041	//     "project",
58042	//     "backendService"
58043	//   ],
58044	//   "parameters": {
58045	//     "backendService": {
58046	//       "description": "Name of the BackendService resource to update.",
58047	//       "location": "path",
58048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58049	//       "required": true,
58050	//       "type": "string"
58051	//     },
58052	//     "project": {
58053	//       "description": "Project ID for this request.",
58054	//       "location": "path",
58055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58056	//       "required": true,
58057	//       "type": "string"
58058	//     },
58059	//     "requestId": {
58060	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
58061	//       "location": "query",
58062	//       "type": "string"
58063	//     }
58064	//   },
58065	//   "path": "projects/{project}/global/backendServices/{backendService}",
58066	//   "request": {
58067	//     "$ref": "BackendService"
58068	//   },
58069	//   "response": {
58070	//     "$ref": "Operation"
58071	//   },
58072	//   "scopes": [
58073	//     "https://www.googleapis.com/auth/cloud-platform",
58074	//     "https://www.googleapis.com/auth/compute"
58075	//   ]
58076	// }
58077
58078}
58079
58080// method id "compute.diskTypes.aggregatedList":
58081
58082type DiskTypesAggregatedListCall struct {
58083	s            *Service
58084	project      string
58085	urlParams_   gensupport.URLParams
58086	ifNoneMatch_ string
58087	ctx_         context.Context
58088	header_      http.Header
58089}
58090
58091// AggregatedList: Retrieves an aggregated list of disk types.
58092//
58093// - project: Project ID for this request.
58094func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
58095	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58096	c.project = project
58097	return c
58098}
58099
58100// Filter sets the optional parameter "filter": A filter expression that
58101// filters resources listed in the response. The expression must specify
58102// the field name, a comparison operator, and the value that you want to
58103// use for filtering. The value must be a string, a number, or a
58104// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58105// `<`. For example, if you are filtering Compute Engine instances, you
58106// can exclude instances named `example-instance` by specifying `name !=
58107// example-instance`. You can also filter nested fields. For example,
58108// you could specify `scheduling.automaticRestart = false` to include
58109// instances only if they are not scheduled for automatic restarts. You
58110// can use filtering on nested fields to filter based on resource
58111// labels. To filter on multiple expressions, provide each separate
58112// expression within parentheses. For example: ```
58113// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
58114// ``` By default, each expression is an `AND` expression. However, you
58115// can include `AND` and `OR` expressions explicitly. For example: ```
58116// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
58117// AND (scheduling.automaticRestart = true) ```
58118func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
58119	c.urlParams_.Set("filter", filter)
58120	return c
58121}
58122
58123// IncludeAllScopes sets the optional parameter "includeAllScopes":
58124// Indicates whether every visible scope for each scope type (zone,
58125// region, global) should be included in the response. For new resource
58126// types added after this field, the flag has no effect as new resource
58127// types will always include every visible scope for each scope type in
58128// response. For resource types which predate this field, if this flag
58129// is omitted or false, only scopes of the scope types where the
58130// resource type is expected to be found will be included.
58131func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
58132	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
58133	return c
58134}
58135
58136// MaxResults sets the optional parameter "maxResults": The maximum
58137// number of results per page that should be returned. If the number of
58138// available results is larger than `maxResults`, Compute Engine returns
58139// a `nextPageToken` that can be used to get the next page of results in
58140// subsequent list requests. Acceptable values are `0` to `500`,
58141// inclusive. (Default: `500`)
58142func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
58143	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58144	return c
58145}
58146
58147// OrderBy sets the optional parameter "orderBy": Sorts list results by
58148// a certain order. By default, results are returned in alphanumerical
58149// order based on the resource name. You can also sort results in
58150// descending order based on the creation timestamp using
58151// `orderBy="creationTimestamp desc". This sorts results based on the
58152// `creationTimestamp` field in reverse chronological order (newest
58153// result first). Use this to sort resources like operations so that the
58154// newest operation is returned first. Currently, only sorting by `name`
58155// or `creationTimestamp desc` is supported.
58156func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
58157	c.urlParams_.Set("orderBy", orderBy)
58158	return c
58159}
58160
58161// PageToken sets the optional parameter "pageToken": Specifies a page
58162// token to use. Set `pageToken` to the `nextPageToken` returned by a
58163// previous list request to get the next page of results.
58164func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
58165	c.urlParams_.Set("pageToken", pageToken)
58166	return c
58167}
58168
58169// ReturnPartialSuccess sets the optional parameter
58170// "returnPartialSuccess": Opt-in for partial success behavior which
58171// provides partial results in case of failure. The default value is
58172// false.
58173func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
58174	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58175	return c
58176}
58177
58178// Fields allows partial responses to be retrieved. See
58179// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58180// for more information.
58181func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
58182	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58183	return c
58184}
58185
58186// IfNoneMatch sets the optional parameter which makes the operation
58187// fail if the object's ETag matches the given value. This is useful for
58188// getting updates only after the object has changed since the last
58189// request. Use googleapi.IsNotModified to check whether the response
58190// error from Do is the result of In-None-Match.
58191func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
58192	c.ifNoneMatch_ = entityTag
58193	return c
58194}
58195
58196// Context sets the context to be used in this call's Do method. Any
58197// pending HTTP request will be aborted if the provided context is
58198// canceled.
58199func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
58200	c.ctx_ = ctx
58201	return c
58202}
58203
58204// Header returns an http.Header that can be modified by the caller to
58205// add HTTP headers to the request.
58206func (c *DiskTypesAggregatedListCall) Header() http.Header {
58207	if c.header_ == nil {
58208		c.header_ = make(http.Header)
58209	}
58210	return c.header_
58211}
58212
58213func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58214	reqHeaders := make(http.Header)
58215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
58216	for k, v := range c.header_ {
58217		reqHeaders[k] = v
58218	}
58219	reqHeaders.Set("User-Agent", c.s.userAgent())
58220	if c.ifNoneMatch_ != "" {
58221		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58222	}
58223	var body io.Reader = nil
58224	c.urlParams_.Set("alt", alt)
58225	c.urlParams_.Set("prettyPrint", "false")
58226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes")
58227	urls += "?" + c.urlParams_.Encode()
58228	req, err := http.NewRequest("GET", urls, body)
58229	if err != nil {
58230		return nil, err
58231	}
58232	req.Header = reqHeaders
58233	googleapi.Expand(req.URL, map[string]string{
58234		"project": c.project,
58235	})
58236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58237}
58238
58239// Do executes the "compute.diskTypes.aggregatedList" call.
58240// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
58241// non-2xx status code is an error. Response headers are in either
58242// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
58243// returned at all) in error.(*googleapi.Error).Header. Use
58244// googleapi.IsNotModified to check whether the returned error was
58245// because http.StatusNotModified was returned.
58246func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
58247	gensupport.SetOptions(c.urlParams_, opts...)
58248	res, err := c.doRequest("json")
58249	if res != nil && res.StatusCode == http.StatusNotModified {
58250		if res.Body != nil {
58251			res.Body.Close()
58252		}
58253		return nil, &googleapi.Error{
58254			Code:   res.StatusCode,
58255			Header: res.Header,
58256		}
58257	}
58258	if err != nil {
58259		return nil, err
58260	}
58261	defer googleapi.CloseBody(res)
58262	if err := googleapi.CheckResponse(res); err != nil {
58263		return nil, err
58264	}
58265	ret := &DiskTypeAggregatedList{
58266		ServerResponse: googleapi.ServerResponse{
58267			Header:         res.Header,
58268			HTTPStatusCode: res.StatusCode,
58269		},
58270	}
58271	target := &ret
58272	if err := gensupport.DecodeResponse(target, res); err != nil {
58273		return nil, err
58274	}
58275	return ret, nil
58276	// {
58277	//   "description": "Retrieves an aggregated list of disk types.",
58278	//   "flatPath": "projects/{project}/aggregated/diskTypes",
58279	//   "httpMethod": "GET",
58280	//   "id": "compute.diskTypes.aggregatedList",
58281	//   "parameterOrder": [
58282	//     "project"
58283	//   ],
58284	//   "parameters": {
58285	//     "filter": {
58286	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58287	//       "location": "query",
58288	//       "type": "string"
58289	//     },
58290	//     "includeAllScopes": {
58291	//       "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.",
58292	//       "location": "query",
58293	//       "type": "boolean"
58294	//     },
58295	//     "maxResults": {
58296	//       "default": "500",
58297	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58298	//       "format": "uint32",
58299	//       "location": "query",
58300	//       "minimum": "0",
58301	//       "type": "integer"
58302	//     },
58303	//     "orderBy": {
58304	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
58305	//       "location": "query",
58306	//       "type": "string"
58307	//     },
58308	//     "pageToken": {
58309	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58310	//       "location": "query",
58311	//       "type": "string"
58312	//     },
58313	//     "project": {
58314	//       "description": "Project ID for this request.",
58315	//       "location": "path",
58316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58317	//       "required": true,
58318	//       "type": "string"
58319	//     },
58320	//     "returnPartialSuccess": {
58321	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58322	//       "location": "query",
58323	//       "type": "boolean"
58324	//     }
58325	//   },
58326	//   "path": "projects/{project}/aggregated/diskTypes",
58327	//   "response": {
58328	//     "$ref": "DiskTypeAggregatedList"
58329	//   },
58330	//   "scopes": [
58331	//     "https://www.googleapis.com/auth/cloud-platform",
58332	//     "https://www.googleapis.com/auth/compute",
58333	//     "https://www.googleapis.com/auth/compute.readonly"
58334	//   ]
58335	// }
58336
58337}
58338
58339// Pages invokes f for each page of results.
58340// A non-nil error returned from f will halt the iteration.
58341// The provided context supersedes any context provided to the Context method.
58342func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
58343	c.ctx_ = ctx
58344	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58345	for {
58346		x, err := c.Do()
58347		if err != nil {
58348			return err
58349		}
58350		if err := f(x); err != nil {
58351			return err
58352		}
58353		if x.NextPageToken == "" {
58354			return nil
58355		}
58356		c.PageToken(x.NextPageToken)
58357	}
58358}
58359
58360// method id "compute.diskTypes.get":
58361
58362type DiskTypesGetCall struct {
58363	s            *Service
58364	project      string
58365	zone         string
58366	diskType     string
58367	urlParams_   gensupport.URLParams
58368	ifNoneMatch_ string
58369	ctx_         context.Context
58370	header_      http.Header
58371}
58372
58373// Get: Returns the specified disk type. Gets a list of available disk
58374// types by making a list() request.
58375//
58376// - diskType: Name of the disk type to return.
58377// - project: Project ID for this request.
58378// - zone: The name of the zone for this request.
58379func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
58380	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58381	c.project = project
58382	c.zone = zone
58383	c.diskType = diskType
58384	return c
58385}
58386
58387// Fields allows partial responses to be retrieved. See
58388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58389// for more information.
58390func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
58391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58392	return c
58393}
58394
58395// IfNoneMatch sets the optional parameter which makes the operation
58396// fail if the object's ETag matches the given value. This is useful for
58397// getting updates only after the object has changed since the last
58398// request. Use googleapi.IsNotModified to check whether the response
58399// error from Do is the result of In-None-Match.
58400func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
58401	c.ifNoneMatch_ = entityTag
58402	return c
58403}
58404
58405// Context sets the context to be used in this call's Do method. Any
58406// pending HTTP request will be aborted if the provided context is
58407// canceled.
58408func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
58409	c.ctx_ = ctx
58410	return c
58411}
58412
58413// Header returns an http.Header that can be modified by the caller to
58414// add HTTP headers to the request.
58415func (c *DiskTypesGetCall) Header() http.Header {
58416	if c.header_ == nil {
58417		c.header_ = make(http.Header)
58418	}
58419	return c.header_
58420}
58421
58422func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
58423	reqHeaders := make(http.Header)
58424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
58425	for k, v := range c.header_ {
58426		reqHeaders[k] = v
58427	}
58428	reqHeaders.Set("User-Agent", c.s.userAgent())
58429	if c.ifNoneMatch_ != "" {
58430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58431	}
58432	var body io.Reader = nil
58433	c.urlParams_.Set("alt", alt)
58434	c.urlParams_.Set("prettyPrint", "false")
58435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}")
58436	urls += "?" + c.urlParams_.Encode()
58437	req, err := http.NewRequest("GET", urls, body)
58438	if err != nil {
58439		return nil, err
58440	}
58441	req.Header = reqHeaders
58442	googleapi.Expand(req.URL, map[string]string{
58443		"project":  c.project,
58444		"zone":     c.zone,
58445		"diskType": c.diskType,
58446	})
58447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58448}
58449
58450// Do executes the "compute.diskTypes.get" call.
58451// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
58452// code is an error. Response headers are in either
58453// *DiskType.ServerResponse.Header or (if a response was returned at
58454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58455// to check whether the returned error was because
58456// http.StatusNotModified was returned.
58457func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
58458	gensupport.SetOptions(c.urlParams_, opts...)
58459	res, err := c.doRequest("json")
58460	if res != nil && res.StatusCode == http.StatusNotModified {
58461		if res.Body != nil {
58462			res.Body.Close()
58463		}
58464		return nil, &googleapi.Error{
58465			Code:   res.StatusCode,
58466			Header: res.Header,
58467		}
58468	}
58469	if err != nil {
58470		return nil, err
58471	}
58472	defer googleapi.CloseBody(res)
58473	if err := googleapi.CheckResponse(res); err != nil {
58474		return nil, err
58475	}
58476	ret := &DiskType{
58477		ServerResponse: googleapi.ServerResponse{
58478			Header:         res.Header,
58479			HTTPStatusCode: res.StatusCode,
58480		},
58481	}
58482	target := &ret
58483	if err := gensupport.DecodeResponse(target, res); err != nil {
58484		return nil, err
58485	}
58486	return ret, nil
58487	// {
58488	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
58489	//   "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
58490	//   "httpMethod": "GET",
58491	//   "id": "compute.diskTypes.get",
58492	//   "parameterOrder": [
58493	//     "project",
58494	//     "zone",
58495	//     "diskType"
58496	//   ],
58497	//   "parameters": {
58498	//     "diskType": {
58499	//       "description": "Name of the disk type to return.",
58500	//       "location": "path",
58501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58502	//       "required": true,
58503	//       "type": "string"
58504	//     },
58505	//     "project": {
58506	//       "description": "Project ID for this request.",
58507	//       "location": "path",
58508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58509	//       "required": true,
58510	//       "type": "string"
58511	//     },
58512	//     "zone": {
58513	//       "description": "The name of the zone for this request.",
58514	//       "location": "path",
58515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58516	//       "required": true,
58517	//       "type": "string"
58518	//     }
58519	//   },
58520	//   "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
58521	//   "response": {
58522	//     "$ref": "DiskType"
58523	//   },
58524	//   "scopes": [
58525	//     "https://www.googleapis.com/auth/cloud-platform",
58526	//     "https://www.googleapis.com/auth/compute",
58527	//     "https://www.googleapis.com/auth/compute.readonly"
58528	//   ]
58529	// }
58530
58531}
58532
58533// method id "compute.diskTypes.list":
58534
58535type DiskTypesListCall struct {
58536	s            *Service
58537	project      string
58538	zone         string
58539	urlParams_   gensupport.URLParams
58540	ifNoneMatch_ string
58541	ctx_         context.Context
58542	header_      http.Header
58543}
58544
58545// List: Retrieves a list of disk types available to the specified
58546// project.
58547//
58548// - project: Project ID for this request.
58549// - zone: The name of the zone for this request.
58550func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
58551	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58552	c.project = project
58553	c.zone = zone
58554	return c
58555}
58556
58557// Filter sets the optional parameter "filter": A filter expression that
58558// filters resources listed in the response. The expression must specify
58559// the field name, a comparison operator, and the value that you want to
58560// use for filtering. The value must be a string, a number, or a
58561// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58562// `<`. For example, if you are filtering Compute Engine instances, you
58563// can exclude instances named `example-instance` by specifying `name !=
58564// example-instance`. You can also filter nested fields. For example,
58565// you could specify `scheduling.automaticRestart = false` to include
58566// instances only if they are not scheduled for automatic restarts. You
58567// can use filtering on nested fields to filter based on resource
58568// labels. To filter on multiple expressions, provide each separate
58569// expression within parentheses. For example: ```
58570// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
58571// ``` By default, each expression is an `AND` expression. However, you
58572// can include `AND` and `OR` expressions explicitly. For example: ```
58573// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
58574// AND (scheduling.automaticRestart = true) ```
58575func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
58576	c.urlParams_.Set("filter", filter)
58577	return c
58578}
58579
58580// MaxResults sets the optional parameter "maxResults": The maximum
58581// number of results per page that should be returned. If the number of
58582// available results is larger than `maxResults`, Compute Engine returns
58583// a `nextPageToken` that can be used to get the next page of results in
58584// subsequent list requests. Acceptable values are `0` to `500`,
58585// inclusive. (Default: `500`)
58586func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
58587	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58588	return c
58589}
58590
58591// OrderBy sets the optional parameter "orderBy": Sorts list results by
58592// a certain order. By default, results are returned in alphanumerical
58593// order based on the resource name. You can also sort results in
58594// descending order based on the creation timestamp using
58595// `orderBy="creationTimestamp desc". This sorts results based on the
58596// `creationTimestamp` field in reverse chronological order (newest
58597// result first). Use this to sort resources like operations so that the
58598// newest operation is returned first. Currently, only sorting by `name`
58599// or `creationTimestamp desc` is supported.
58600func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
58601	c.urlParams_.Set("orderBy", orderBy)
58602	return c
58603}
58604
58605// PageToken sets the optional parameter "pageToken": Specifies a page
58606// token to use. Set `pageToken` to the `nextPageToken` returned by a
58607// previous list request to get the next page of results.
58608func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
58609	c.urlParams_.Set("pageToken", pageToken)
58610	return c
58611}
58612
58613// ReturnPartialSuccess sets the optional parameter
58614// "returnPartialSuccess": Opt-in for partial success behavior which
58615// provides partial results in case of failure. The default value is
58616// false.
58617func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
58618	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58619	return c
58620}
58621
58622// Fields allows partial responses to be retrieved. See
58623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58624// for more information.
58625func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
58626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58627	return c
58628}
58629
58630// IfNoneMatch sets the optional parameter which makes the operation
58631// fail if the object's ETag matches the given value. This is useful for
58632// getting updates only after the object has changed since the last
58633// request. Use googleapi.IsNotModified to check whether the response
58634// error from Do is the result of In-None-Match.
58635func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
58636	c.ifNoneMatch_ = entityTag
58637	return c
58638}
58639
58640// Context sets the context to be used in this call's Do method. Any
58641// pending HTTP request will be aborted if the provided context is
58642// canceled.
58643func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
58644	c.ctx_ = ctx
58645	return c
58646}
58647
58648// Header returns an http.Header that can be modified by the caller to
58649// add HTTP headers to the request.
58650func (c *DiskTypesListCall) Header() http.Header {
58651	if c.header_ == nil {
58652		c.header_ = make(http.Header)
58653	}
58654	return c.header_
58655}
58656
58657func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
58658	reqHeaders := make(http.Header)
58659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
58660	for k, v := range c.header_ {
58661		reqHeaders[k] = v
58662	}
58663	reqHeaders.Set("User-Agent", c.s.userAgent())
58664	if c.ifNoneMatch_ != "" {
58665		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58666	}
58667	var body io.Reader = nil
58668	c.urlParams_.Set("alt", alt)
58669	c.urlParams_.Set("prettyPrint", "false")
58670	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes")
58671	urls += "?" + c.urlParams_.Encode()
58672	req, err := http.NewRequest("GET", urls, body)
58673	if err != nil {
58674		return nil, err
58675	}
58676	req.Header = reqHeaders
58677	googleapi.Expand(req.URL, map[string]string{
58678		"project": c.project,
58679		"zone":    c.zone,
58680	})
58681	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58682}
58683
58684// Do executes the "compute.diskTypes.list" call.
58685// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
58686// status code is an error. Response headers are in either
58687// *DiskTypeList.ServerResponse.Header or (if a response was returned at
58688// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58689// to check whether the returned error was because
58690// http.StatusNotModified was returned.
58691func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
58692	gensupport.SetOptions(c.urlParams_, opts...)
58693	res, err := c.doRequest("json")
58694	if res != nil && res.StatusCode == http.StatusNotModified {
58695		if res.Body != nil {
58696			res.Body.Close()
58697		}
58698		return nil, &googleapi.Error{
58699			Code:   res.StatusCode,
58700			Header: res.Header,
58701		}
58702	}
58703	if err != nil {
58704		return nil, err
58705	}
58706	defer googleapi.CloseBody(res)
58707	if err := googleapi.CheckResponse(res); err != nil {
58708		return nil, err
58709	}
58710	ret := &DiskTypeList{
58711		ServerResponse: googleapi.ServerResponse{
58712			Header:         res.Header,
58713			HTTPStatusCode: res.StatusCode,
58714		},
58715	}
58716	target := &ret
58717	if err := gensupport.DecodeResponse(target, res); err != nil {
58718		return nil, err
58719	}
58720	return ret, nil
58721	// {
58722	//   "description": "Retrieves a list of disk types available to the specified project.",
58723	//   "flatPath": "projects/{project}/zones/{zone}/diskTypes",
58724	//   "httpMethod": "GET",
58725	//   "id": "compute.diskTypes.list",
58726	//   "parameterOrder": [
58727	//     "project",
58728	//     "zone"
58729	//   ],
58730	//   "parameters": {
58731	//     "filter": {
58732	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58733	//       "location": "query",
58734	//       "type": "string"
58735	//     },
58736	//     "maxResults": {
58737	//       "default": "500",
58738	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58739	//       "format": "uint32",
58740	//       "location": "query",
58741	//       "minimum": "0",
58742	//       "type": "integer"
58743	//     },
58744	//     "orderBy": {
58745	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
58746	//       "location": "query",
58747	//       "type": "string"
58748	//     },
58749	//     "pageToken": {
58750	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58751	//       "location": "query",
58752	//       "type": "string"
58753	//     },
58754	//     "project": {
58755	//       "description": "Project ID for this request.",
58756	//       "location": "path",
58757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58758	//       "required": true,
58759	//       "type": "string"
58760	//     },
58761	//     "returnPartialSuccess": {
58762	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58763	//       "location": "query",
58764	//       "type": "boolean"
58765	//     },
58766	//     "zone": {
58767	//       "description": "The name of the zone for this request.",
58768	//       "location": "path",
58769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58770	//       "required": true,
58771	//       "type": "string"
58772	//     }
58773	//   },
58774	//   "path": "projects/{project}/zones/{zone}/diskTypes",
58775	//   "response": {
58776	//     "$ref": "DiskTypeList"
58777	//   },
58778	//   "scopes": [
58779	//     "https://www.googleapis.com/auth/cloud-platform",
58780	//     "https://www.googleapis.com/auth/compute",
58781	//     "https://www.googleapis.com/auth/compute.readonly"
58782	//   ]
58783	// }
58784
58785}
58786
58787// Pages invokes f for each page of results.
58788// A non-nil error returned from f will halt the iteration.
58789// The provided context supersedes any context provided to the Context method.
58790func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
58791	c.ctx_ = ctx
58792	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58793	for {
58794		x, err := c.Do()
58795		if err != nil {
58796			return err
58797		}
58798		if err := f(x); err != nil {
58799			return err
58800		}
58801		if x.NextPageToken == "" {
58802			return nil
58803		}
58804		c.PageToken(x.NextPageToken)
58805	}
58806}
58807
58808// method id "compute.disks.addResourcePolicies":
58809
58810type DisksAddResourcePoliciesCall struct {
58811	s                               *Service
58812	project                         string
58813	zone                            string
58814	disk                            string
58815	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
58816	urlParams_                      gensupport.URLParams
58817	ctx_                            context.Context
58818	header_                         http.Header
58819}
58820
58821// AddResourcePolicies: Adds existing resource policies to a disk. You
58822// can only add one policy which will be applied to this disk for
58823// scheduling snapshot creation.
58824//
58825// - disk: The disk name for this request.
58826// - project: Project ID for this request.
58827// - zone: The name of the zone for this request.
58828func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
58829	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58830	c.project = project
58831	c.zone = zone
58832	c.disk = disk
58833	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
58834	return c
58835}
58836
58837// RequestId sets the optional parameter "requestId": An optional
58838// request ID to identify requests. Specify a unique request ID so that
58839// if you must retry your request, the server will know to ignore the
58840// request if it has already been completed. For example, consider a
58841// situation where you make an initial request and the request times
58842// out. If you make the request again with the same request ID, the
58843// server can check if original operation with the same request ID was
58844// received, and if so, will ignore the second request. This prevents
58845// clients from accidentally creating duplicate commitments. The request
58846// ID must be a valid UUID with the exception that zero UUID is not
58847// supported ( 00000000-0000-0000-0000-000000000000).
58848func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
58849	c.urlParams_.Set("requestId", requestId)
58850	return c
58851}
58852
58853// Fields allows partial responses to be retrieved. See
58854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58855// for more information.
58856func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
58857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58858	return c
58859}
58860
58861// Context sets the context to be used in this call's Do method. Any
58862// pending HTTP request will be aborted if the provided context is
58863// canceled.
58864func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
58865	c.ctx_ = ctx
58866	return c
58867}
58868
58869// Header returns an http.Header that can be modified by the caller to
58870// add HTTP headers to the request.
58871func (c *DisksAddResourcePoliciesCall) Header() http.Header {
58872	if c.header_ == nil {
58873		c.header_ = make(http.Header)
58874	}
58875	return c.header_
58876}
58877
58878func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
58879	reqHeaders := make(http.Header)
58880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
58881	for k, v := range c.header_ {
58882		reqHeaders[k] = v
58883	}
58884	reqHeaders.Set("User-Agent", c.s.userAgent())
58885	var body io.Reader = nil
58886	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
58887	if err != nil {
58888		return nil, err
58889	}
58890	reqHeaders.Set("Content-Type", "application/json")
58891	c.urlParams_.Set("alt", alt)
58892	c.urlParams_.Set("prettyPrint", "false")
58893	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
58894	urls += "?" + c.urlParams_.Encode()
58895	req, err := http.NewRequest("POST", urls, body)
58896	if err != nil {
58897		return nil, err
58898	}
58899	req.Header = reqHeaders
58900	googleapi.Expand(req.URL, map[string]string{
58901		"project": c.project,
58902		"zone":    c.zone,
58903		"disk":    c.disk,
58904	})
58905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58906}
58907
58908// Do executes the "compute.disks.addResourcePolicies" call.
58909// Exactly one of *Operation or error will be non-nil. Any non-2xx
58910// status code is an error. Response headers are in either
58911// *Operation.ServerResponse.Header or (if a response was returned at
58912// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58913// to check whether the returned error was because
58914// http.StatusNotModified was returned.
58915func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58916	gensupport.SetOptions(c.urlParams_, opts...)
58917	res, err := c.doRequest("json")
58918	if res != nil && res.StatusCode == http.StatusNotModified {
58919		if res.Body != nil {
58920			res.Body.Close()
58921		}
58922		return nil, &googleapi.Error{
58923			Code:   res.StatusCode,
58924			Header: res.Header,
58925		}
58926	}
58927	if err != nil {
58928		return nil, err
58929	}
58930	defer googleapi.CloseBody(res)
58931	if err := googleapi.CheckResponse(res); err != nil {
58932		return nil, err
58933	}
58934	ret := &Operation{
58935		ServerResponse: googleapi.ServerResponse{
58936			Header:         res.Header,
58937			HTTPStatusCode: res.StatusCode,
58938		},
58939	}
58940	target := &ret
58941	if err := gensupport.DecodeResponse(target, res); err != nil {
58942		return nil, err
58943	}
58944	return ret, nil
58945	// {
58946	//   "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.",
58947	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
58948	//   "httpMethod": "POST",
58949	//   "id": "compute.disks.addResourcePolicies",
58950	//   "parameterOrder": [
58951	//     "project",
58952	//     "zone",
58953	//     "disk"
58954	//   ],
58955	//   "parameters": {
58956	//     "disk": {
58957	//       "description": "The disk name for this request.",
58958	//       "location": "path",
58959	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58960	//       "required": true,
58961	//       "type": "string"
58962	//     },
58963	//     "project": {
58964	//       "description": "Project ID for this request.",
58965	//       "location": "path",
58966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58967	//       "required": true,
58968	//       "type": "string"
58969	//     },
58970	//     "requestId": {
58971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
58972	//       "location": "query",
58973	//       "type": "string"
58974	//     },
58975	//     "zone": {
58976	//       "description": "The name of the zone for this request.",
58977	//       "location": "path",
58978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58979	//       "required": true,
58980	//       "type": "string"
58981	//     }
58982	//   },
58983	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
58984	//   "request": {
58985	//     "$ref": "DisksAddResourcePoliciesRequest"
58986	//   },
58987	//   "response": {
58988	//     "$ref": "Operation"
58989	//   },
58990	//   "scopes": [
58991	//     "https://www.googleapis.com/auth/cloud-platform",
58992	//     "https://www.googleapis.com/auth/compute"
58993	//   ]
58994	// }
58995
58996}
58997
58998// method id "compute.disks.aggregatedList":
58999
59000type DisksAggregatedListCall struct {
59001	s            *Service
59002	project      string
59003	urlParams_   gensupport.URLParams
59004	ifNoneMatch_ string
59005	ctx_         context.Context
59006	header_      http.Header
59007}
59008
59009// AggregatedList: Retrieves an aggregated list of persistent disks.
59010//
59011// - project: Project ID for this request.
59012func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
59013	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59014	c.project = project
59015	return c
59016}
59017
59018// Filter sets the optional parameter "filter": A filter expression that
59019// filters resources listed in the response. The expression must specify
59020// the field name, a comparison operator, and the value that you want to
59021// use for filtering. The value must be a string, a number, or a
59022// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59023// `<`. For example, if you are filtering Compute Engine instances, you
59024// can exclude instances named `example-instance` by specifying `name !=
59025// example-instance`. You can also filter nested fields. For example,
59026// you could specify `scheduling.automaticRestart = false` to include
59027// instances only if they are not scheduled for automatic restarts. You
59028// can use filtering on nested fields to filter based on resource
59029// labels. To filter on multiple expressions, provide each separate
59030// expression within parentheses. For example: ```
59031// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
59032// ``` By default, each expression is an `AND` expression. However, you
59033// can include `AND` and `OR` expressions explicitly. For example: ```
59034// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
59035// AND (scheduling.automaticRestart = true) ```
59036func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
59037	c.urlParams_.Set("filter", filter)
59038	return c
59039}
59040
59041// IncludeAllScopes sets the optional parameter "includeAllScopes":
59042// Indicates whether every visible scope for each scope type (zone,
59043// region, global) should be included in the response. For new resource
59044// types added after this field, the flag has no effect as new resource
59045// types will always include every visible scope for each scope type in
59046// response. For resource types which predate this field, if this flag
59047// is omitted or false, only scopes of the scope types where the
59048// resource type is expected to be found will be included.
59049func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
59050	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
59051	return c
59052}
59053
59054// MaxResults sets the optional parameter "maxResults": The maximum
59055// number of results per page that should be returned. If the number of
59056// available results is larger than `maxResults`, Compute Engine returns
59057// a `nextPageToken` that can be used to get the next page of results in
59058// subsequent list requests. Acceptable values are `0` to `500`,
59059// inclusive. (Default: `500`)
59060func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
59061	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59062	return c
59063}
59064
59065// OrderBy sets the optional parameter "orderBy": Sorts list results by
59066// a certain order. By default, results are returned in alphanumerical
59067// order based on the resource name. You can also sort results in
59068// descending order based on the creation timestamp using
59069// `orderBy="creationTimestamp desc". This sorts results based on the
59070// `creationTimestamp` field in reverse chronological order (newest
59071// result first). Use this to sort resources like operations so that the
59072// newest operation is returned first. Currently, only sorting by `name`
59073// or `creationTimestamp desc` is supported.
59074func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
59075	c.urlParams_.Set("orderBy", orderBy)
59076	return c
59077}
59078
59079// PageToken sets the optional parameter "pageToken": Specifies a page
59080// token to use. Set `pageToken` to the `nextPageToken` returned by a
59081// previous list request to get the next page of results.
59082func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
59083	c.urlParams_.Set("pageToken", pageToken)
59084	return c
59085}
59086
59087// ReturnPartialSuccess sets the optional parameter
59088// "returnPartialSuccess": Opt-in for partial success behavior which
59089// provides partial results in case of failure. The default value is
59090// false.
59091func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
59092	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59093	return c
59094}
59095
59096// Fields allows partial responses to be retrieved. See
59097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59098// for more information.
59099func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
59100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59101	return c
59102}
59103
59104// IfNoneMatch sets the optional parameter which makes the operation
59105// fail if the object's ETag matches the given value. This is useful for
59106// getting updates only after the object has changed since the last
59107// request. Use googleapi.IsNotModified to check whether the response
59108// error from Do is the result of In-None-Match.
59109func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
59110	c.ifNoneMatch_ = entityTag
59111	return c
59112}
59113
59114// Context sets the context to be used in this call's Do method. Any
59115// pending HTTP request will be aborted if the provided context is
59116// canceled.
59117func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
59118	c.ctx_ = ctx
59119	return c
59120}
59121
59122// Header returns an http.Header that can be modified by the caller to
59123// add HTTP headers to the request.
59124func (c *DisksAggregatedListCall) Header() http.Header {
59125	if c.header_ == nil {
59126		c.header_ = make(http.Header)
59127	}
59128	return c.header_
59129}
59130
59131func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
59132	reqHeaders := make(http.Header)
59133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
59134	for k, v := range c.header_ {
59135		reqHeaders[k] = v
59136	}
59137	reqHeaders.Set("User-Agent", c.s.userAgent())
59138	if c.ifNoneMatch_ != "" {
59139		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59140	}
59141	var body io.Reader = nil
59142	c.urlParams_.Set("alt", alt)
59143	c.urlParams_.Set("prettyPrint", "false")
59144	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks")
59145	urls += "?" + c.urlParams_.Encode()
59146	req, err := http.NewRequest("GET", urls, body)
59147	if err != nil {
59148		return nil, err
59149	}
59150	req.Header = reqHeaders
59151	googleapi.Expand(req.URL, map[string]string{
59152		"project": c.project,
59153	})
59154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59155}
59156
59157// Do executes the "compute.disks.aggregatedList" call.
59158// Exactly one of *DiskAggregatedList or error will be non-nil. Any
59159// non-2xx status code is an error. Response headers are in either
59160// *DiskAggregatedList.ServerResponse.Header or (if a response was
59161// returned at all) in error.(*googleapi.Error).Header. Use
59162// googleapi.IsNotModified to check whether the returned error was
59163// because http.StatusNotModified was returned.
59164func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
59165	gensupport.SetOptions(c.urlParams_, opts...)
59166	res, err := c.doRequest("json")
59167	if res != nil && res.StatusCode == http.StatusNotModified {
59168		if res.Body != nil {
59169			res.Body.Close()
59170		}
59171		return nil, &googleapi.Error{
59172			Code:   res.StatusCode,
59173			Header: res.Header,
59174		}
59175	}
59176	if err != nil {
59177		return nil, err
59178	}
59179	defer googleapi.CloseBody(res)
59180	if err := googleapi.CheckResponse(res); err != nil {
59181		return nil, err
59182	}
59183	ret := &DiskAggregatedList{
59184		ServerResponse: googleapi.ServerResponse{
59185			Header:         res.Header,
59186			HTTPStatusCode: res.StatusCode,
59187		},
59188	}
59189	target := &ret
59190	if err := gensupport.DecodeResponse(target, res); err != nil {
59191		return nil, err
59192	}
59193	return ret, nil
59194	// {
59195	//   "description": "Retrieves an aggregated list of persistent disks.",
59196	//   "flatPath": "projects/{project}/aggregated/disks",
59197	//   "httpMethod": "GET",
59198	//   "id": "compute.disks.aggregatedList",
59199	//   "parameterOrder": [
59200	//     "project"
59201	//   ],
59202	//   "parameters": {
59203	//     "filter": {
59204	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
59205	//       "location": "query",
59206	//       "type": "string"
59207	//     },
59208	//     "includeAllScopes": {
59209	//       "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.",
59210	//       "location": "query",
59211	//       "type": "boolean"
59212	//     },
59213	//     "maxResults": {
59214	//       "default": "500",
59215	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59216	//       "format": "uint32",
59217	//       "location": "query",
59218	//       "minimum": "0",
59219	//       "type": "integer"
59220	//     },
59221	//     "orderBy": {
59222	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
59223	//       "location": "query",
59224	//       "type": "string"
59225	//     },
59226	//     "pageToken": {
59227	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59228	//       "location": "query",
59229	//       "type": "string"
59230	//     },
59231	//     "project": {
59232	//       "description": "Project ID for this request.",
59233	//       "location": "path",
59234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59235	//       "required": true,
59236	//       "type": "string"
59237	//     },
59238	//     "returnPartialSuccess": {
59239	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59240	//       "location": "query",
59241	//       "type": "boolean"
59242	//     }
59243	//   },
59244	//   "path": "projects/{project}/aggregated/disks",
59245	//   "response": {
59246	//     "$ref": "DiskAggregatedList"
59247	//   },
59248	//   "scopes": [
59249	//     "https://www.googleapis.com/auth/cloud-platform",
59250	//     "https://www.googleapis.com/auth/compute",
59251	//     "https://www.googleapis.com/auth/compute.readonly"
59252	//   ]
59253	// }
59254
59255}
59256
59257// Pages invokes f for each page of results.
59258// A non-nil error returned from f will halt the iteration.
59259// The provided context supersedes any context provided to the Context method.
59260func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
59261	c.ctx_ = ctx
59262	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59263	for {
59264		x, err := c.Do()
59265		if err != nil {
59266			return err
59267		}
59268		if err := f(x); err != nil {
59269			return err
59270		}
59271		if x.NextPageToken == "" {
59272			return nil
59273		}
59274		c.PageToken(x.NextPageToken)
59275	}
59276}
59277
59278// method id "compute.disks.createSnapshot":
59279
59280type DisksCreateSnapshotCall struct {
59281	s          *Service
59282	project    string
59283	zone       string
59284	disk       string
59285	snapshot   *Snapshot
59286	urlParams_ gensupport.URLParams
59287	ctx_       context.Context
59288	header_    http.Header
59289}
59290
59291// CreateSnapshot: Creates a snapshot of a specified persistent disk.
59292//
59293// - disk: Name of the persistent disk to snapshot.
59294// - project: Project ID for this request.
59295// - zone: The name of the zone for this request.
59296func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
59297	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59298	c.project = project
59299	c.zone = zone
59300	c.disk = disk
59301	c.snapshot = snapshot
59302	return c
59303}
59304
59305// GuestFlush sets the optional parameter "guestFlush": [Input Only]
59306// Whether to attempt an application consistent snapshot by informing
59307// the OS to prepare for the snapshot process. Currently only supported
59308// on Windows instances using the Volume Shadow Copy Service (VSS).
59309func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
59310	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
59311	return c
59312}
59313
59314// RequestId sets the optional parameter "requestId": An optional
59315// request ID to identify requests. Specify a unique request ID so that
59316// if you must retry your request, the server will know to ignore the
59317// request if it has already been completed. For example, consider a
59318// situation where you make an initial request and the request times
59319// out. If you make the request again with the same request ID, the
59320// server can check if original operation with the same request ID was
59321// received, and if so, will ignore the second request. This prevents
59322// clients from accidentally creating duplicate commitments. The request
59323// ID must be a valid UUID with the exception that zero UUID is not
59324// supported ( 00000000-0000-0000-0000-000000000000).
59325func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
59326	c.urlParams_.Set("requestId", requestId)
59327	return c
59328}
59329
59330// Fields allows partial responses to be retrieved. See
59331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59332// for more information.
59333func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
59334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59335	return c
59336}
59337
59338// Context sets the context to be used in this call's Do method. Any
59339// pending HTTP request will be aborted if the provided context is
59340// canceled.
59341func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
59342	c.ctx_ = ctx
59343	return c
59344}
59345
59346// Header returns an http.Header that can be modified by the caller to
59347// add HTTP headers to the request.
59348func (c *DisksCreateSnapshotCall) Header() http.Header {
59349	if c.header_ == nil {
59350		c.header_ = make(http.Header)
59351	}
59352	return c.header_
59353}
59354
59355func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
59356	reqHeaders := make(http.Header)
59357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
59358	for k, v := range c.header_ {
59359		reqHeaders[k] = v
59360	}
59361	reqHeaders.Set("User-Agent", c.s.userAgent())
59362	var body io.Reader = nil
59363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
59364	if err != nil {
59365		return nil, err
59366	}
59367	reqHeaders.Set("Content-Type", "application/json")
59368	c.urlParams_.Set("alt", alt)
59369	c.urlParams_.Set("prettyPrint", "false")
59370	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot")
59371	urls += "?" + c.urlParams_.Encode()
59372	req, err := http.NewRequest("POST", urls, body)
59373	if err != nil {
59374		return nil, err
59375	}
59376	req.Header = reqHeaders
59377	googleapi.Expand(req.URL, map[string]string{
59378		"project": c.project,
59379		"zone":    c.zone,
59380		"disk":    c.disk,
59381	})
59382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59383}
59384
59385// Do executes the "compute.disks.createSnapshot" call.
59386// Exactly one of *Operation or error will be non-nil. Any non-2xx
59387// status code is an error. Response headers are in either
59388// *Operation.ServerResponse.Header or (if a response was returned at
59389// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59390// to check whether the returned error was because
59391// http.StatusNotModified was returned.
59392func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59393	gensupport.SetOptions(c.urlParams_, opts...)
59394	res, err := c.doRequest("json")
59395	if res != nil && res.StatusCode == http.StatusNotModified {
59396		if res.Body != nil {
59397			res.Body.Close()
59398		}
59399		return nil, &googleapi.Error{
59400			Code:   res.StatusCode,
59401			Header: res.Header,
59402		}
59403	}
59404	if err != nil {
59405		return nil, err
59406	}
59407	defer googleapi.CloseBody(res)
59408	if err := googleapi.CheckResponse(res); err != nil {
59409		return nil, err
59410	}
59411	ret := &Operation{
59412		ServerResponse: googleapi.ServerResponse{
59413			Header:         res.Header,
59414			HTTPStatusCode: res.StatusCode,
59415		},
59416	}
59417	target := &ret
59418	if err := gensupport.DecodeResponse(target, res); err != nil {
59419		return nil, err
59420	}
59421	return ret, nil
59422	// {
59423	//   "description": "Creates a snapshot of a specified persistent disk.",
59424	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
59425	//   "httpMethod": "POST",
59426	//   "id": "compute.disks.createSnapshot",
59427	//   "parameterOrder": [
59428	//     "project",
59429	//     "zone",
59430	//     "disk"
59431	//   ],
59432	//   "parameters": {
59433	//     "disk": {
59434	//       "description": "Name of the persistent disk to snapshot.",
59435	//       "location": "path",
59436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59437	//       "required": true,
59438	//       "type": "string"
59439	//     },
59440	//     "guestFlush": {
59441	//       "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).",
59442	//       "location": "query",
59443	//       "type": "boolean"
59444	//     },
59445	//     "project": {
59446	//       "description": "Project ID for this request.",
59447	//       "location": "path",
59448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59449	//       "required": true,
59450	//       "type": "string"
59451	//     },
59452	//     "requestId": {
59453	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
59454	//       "location": "query",
59455	//       "type": "string"
59456	//     },
59457	//     "zone": {
59458	//       "description": "The name of the zone for this request.",
59459	//       "location": "path",
59460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59461	//       "required": true,
59462	//       "type": "string"
59463	//     }
59464	//   },
59465	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
59466	//   "request": {
59467	//     "$ref": "Snapshot"
59468	//   },
59469	//   "response": {
59470	//     "$ref": "Operation"
59471	//   },
59472	//   "scopes": [
59473	//     "https://www.googleapis.com/auth/cloud-platform",
59474	//     "https://www.googleapis.com/auth/compute"
59475	//   ]
59476	// }
59477
59478}
59479
59480// method id "compute.disks.delete":
59481
59482type DisksDeleteCall struct {
59483	s          *Service
59484	project    string
59485	zone       string
59486	disk       string
59487	urlParams_ gensupport.URLParams
59488	ctx_       context.Context
59489	header_    http.Header
59490}
59491
59492// Delete: Deletes the specified persistent disk. Deleting a disk
59493// removes its data permanently and is irreversible. However, deleting a
59494// disk does not delete any snapshots previously made from the disk. You
59495// must separately delete snapshots.
59496//
59497// - disk: Name of the persistent disk to delete.
59498// - project: Project ID for this request.
59499// - zone: The name of the zone for this request.
59500func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
59501	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59502	c.project = project
59503	c.zone = zone
59504	c.disk = disk
59505	return c
59506}
59507
59508// RequestId sets the optional parameter "requestId": An optional
59509// request ID to identify requests. Specify a unique request ID so that
59510// if you must retry your request, the server will know to ignore the
59511// request if it has already been completed. For example, consider a
59512// situation where you make an initial request and the request times
59513// out. If you make the request again with the same request ID, the
59514// server can check if original operation with the same request ID was
59515// received, and if so, will ignore the second request. This prevents
59516// clients from accidentally creating duplicate commitments. The request
59517// ID must be a valid UUID with the exception that zero UUID is not
59518// supported ( 00000000-0000-0000-0000-000000000000).
59519func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
59520	c.urlParams_.Set("requestId", requestId)
59521	return c
59522}
59523
59524// Fields allows partial responses to be retrieved. See
59525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59526// for more information.
59527func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
59528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59529	return c
59530}
59531
59532// Context sets the context to be used in this call's Do method. Any
59533// pending HTTP request will be aborted if the provided context is
59534// canceled.
59535func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
59536	c.ctx_ = ctx
59537	return c
59538}
59539
59540// Header returns an http.Header that can be modified by the caller to
59541// add HTTP headers to the request.
59542func (c *DisksDeleteCall) Header() http.Header {
59543	if c.header_ == nil {
59544		c.header_ = make(http.Header)
59545	}
59546	return c.header_
59547}
59548
59549func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
59550	reqHeaders := make(http.Header)
59551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
59552	for k, v := range c.header_ {
59553		reqHeaders[k] = v
59554	}
59555	reqHeaders.Set("User-Agent", c.s.userAgent())
59556	var body io.Reader = nil
59557	c.urlParams_.Set("alt", alt)
59558	c.urlParams_.Set("prettyPrint", "false")
59559	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
59560	urls += "?" + c.urlParams_.Encode()
59561	req, err := http.NewRequest("DELETE", urls, body)
59562	if err != nil {
59563		return nil, err
59564	}
59565	req.Header = reqHeaders
59566	googleapi.Expand(req.URL, map[string]string{
59567		"project": c.project,
59568		"zone":    c.zone,
59569		"disk":    c.disk,
59570	})
59571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59572}
59573
59574// Do executes the "compute.disks.delete" call.
59575// Exactly one of *Operation or error will be non-nil. Any non-2xx
59576// status code is an error. Response headers are in either
59577// *Operation.ServerResponse.Header or (if a response was returned at
59578// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59579// to check whether the returned error was because
59580// http.StatusNotModified was returned.
59581func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59582	gensupport.SetOptions(c.urlParams_, opts...)
59583	res, err := c.doRequest("json")
59584	if res != nil && res.StatusCode == http.StatusNotModified {
59585		if res.Body != nil {
59586			res.Body.Close()
59587		}
59588		return nil, &googleapi.Error{
59589			Code:   res.StatusCode,
59590			Header: res.Header,
59591		}
59592	}
59593	if err != nil {
59594		return nil, err
59595	}
59596	defer googleapi.CloseBody(res)
59597	if err := googleapi.CheckResponse(res); err != nil {
59598		return nil, err
59599	}
59600	ret := &Operation{
59601		ServerResponse: googleapi.ServerResponse{
59602			Header:         res.Header,
59603			HTTPStatusCode: res.StatusCode,
59604		},
59605	}
59606	target := &ret
59607	if err := gensupport.DecodeResponse(target, res); err != nil {
59608		return nil, err
59609	}
59610	return ret, nil
59611	// {
59612	//   "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.",
59613	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
59614	//   "httpMethod": "DELETE",
59615	//   "id": "compute.disks.delete",
59616	//   "parameterOrder": [
59617	//     "project",
59618	//     "zone",
59619	//     "disk"
59620	//   ],
59621	//   "parameters": {
59622	//     "disk": {
59623	//       "description": "Name of the persistent disk to delete.",
59624	//       "location": "path",
59625	//       "required": true,
59626	//       "type": "string"
59627	//     },
59628	//     "project": {
59629	//       "description": "Project ID for this request.",
59630	//       "location": "path",
59631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59632	//       "required": true,
59633	//       "type": "string"
59634	//     },
59635	//     "requestId": {
59636	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
59637	//       "location": "query",
59638	//       "type": "string"
59639	//     },
59640	//     "zone": {
59641	//       "description": "The name of the zone for this request.",
59642	//       "location": "path",
59643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59644	//       "required": true,
59645	//       "type": "string"
59646	//     }
59647	//   },
59648	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
59649	//   "response": {
59650	//     "$ref": "Operation"
59651	//   },
59652	//   "scopes": [
59653	//     "https://www.googleapis.com/auth/cloud-platform",
59654	//     "https://www.googleapis.com/auth/compute"
59655	//   ]
59656	// }
59657
59658}
59659
59660// method id "compute.disks.get":
59661
59662type DisksGetCall struct {
59663	s            *Service
59664	project      string
59665	zone         string
59666	disk         string
59667	urlParams_   gensupport.URLParams
59668	ifNoneMatch_ string
59669	ctx_         context.Context
59670	header_      http.Header
59671}
59672
59673// Get: Returns a specified persistent disk. Gets a list of available
59674// persistent disks by making a list() request.
59675//
59676// - disk: Name of the persistent disk to return.
59677// - project: Project ID for this request.
59678// - zone: The name of the zone for this request.
59679func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
59680	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59681	c.project = project
59682	c.zone = zone
59683	c.disk = disk
59684	return c
59685}
59686
59687// Fields allows partial responses to be retrieved. See
59688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59689// for more information.
59690func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
59691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59692	return c
59693}
59694
59695// IfNoneMatch sets the optional parameter which makes the operation
59696// fail if the object's ETag matches the given value. This is useful for
59697// getting updates only after the object has changed since the last
59698// request. Use googleapi.IsNotModified to check whether the response
59699// error from Do is the result of In-None-Match.
59700func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
59701	c.ifNoneMatch_ = entityTag
59702	return c
59703}
59704
59705// Context sets the context to be used in this call's Do method. Any
59706// pending HTTP request will be aborted if the provided context is
59707// canceled.
59708func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
59709	c.ctx_ = ctx
59710	return c
59711}
59712
59713// Header returns an http.Header that can be modified by the caller to
59714// add HTTP headers to the request.
59715func (c *DisksGetCall) Header() http.Header {
59716	if c.header_ == nil {
59717		c.header_ = make(http.Header)
59718	}
59719	return c.header_
59720}
59721
59722func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
59723	reqHeaders := make(http.Header)
59724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
59725	for k, v := range c.header_ {
59726		reqHeaders[k] = v
59727	}
59728	reqHeaders.Set("User-Agent", c.s.userAgent())
59729	if c.ifNoneMatch_ != "" {
59730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59731	}
59732	var body io.Reader = nil
59733	c.urlParams_.Set("alt", alt)
59734	c.urlParams_.Set("prettyPrint", "false")
59735	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
59736	urls += "?" + c.urlParams_.Encode()
59737	req, err := http.NewRequest("GET", urls, body)
59738	if err != nil {
59739		return nil, err
59740	}
59741	req.Header = reqHeaders
59742	googleapi.Expand(req.URL, map[string]string{
59743		"project": c.project,
59744		"zone":    c.zone,
59745		"disk":    c.disk,
59746	})
59747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59748}
59749
59750// Do executes the "compute.disks.get" call.
59751// Exactly one of *Disk or error will be non-nil. Any non-2xx status
59752// code is an error. Response headers are in either
59753// *Disk.ServerResponse.Header or (if a response was returned at all) in
59754// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
59755// whether the returned error was because http.StatusNotModified was
59756// returned.
59757func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
59758	gensupport.SetOptions(c.urlParams_, opts...)
59759	res, err := c.doRequest("json")
59760	if res != nil && res.StatusCode == http.StatusNotModified {
59761		if res.Body != nil {
59762			res.Body.Close()
59763		}
59764		return nil, &googleapi.Error{
59765			Code:   res.StatusCode,
59766			Header: res.Header,
59767		}
59768	}
59769	if err != nil {
59770		return nil, err
59771	}
59772	defer googleapi.CloseBody(res)
59773	if err := googleapi.CheckResponse(res); err != nil {
59774		return nil, err
59775	}
59776	ret := &Disk{
59777		ServerResponse: googleapi.ServerResponse{
59778			Header:         res.Header,
59779			HTTPStatusCode: res.StatusCode,
59780		},
59781	}
59782	target := &ret
59783	if err := gensupport.DecodeResponse(target, res); err != nil {
59784		return nil, err
59785	}
59786	return ret, nil
59787	// {
59788	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
59789	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
59790	//   "httpMethod": "GET",
59791	//   "id": "compute.disks.get",
59792	//   "parameterOrder": [
59793	//     "project",
59794	//     "zone",
59795	//     "disk"
59796	//   ],
59797	//   "parameters": {
59798	//     "disk": {
59799	//       "description": "Name of the persistent disk to return.",
59800	//       "location": "path",
59801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59802	//       "required": true,
59803	//       "type": "string"
59804	//     },
59805	//     "project": {
59806	//       "description": "Project ID for this request.",
59807	//       "location": "path",
59808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59809	//       "required": true,
59810	//       "type": "string"
59811	//     },
59812	//     "zone": {
59813	//       "description": "The name of the zone for this request.",
59814	//       "location": "path",
59815	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59816	//       "required": true,
59817	//       "type": "string"
59818	//     }
59819	//   },
59820	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
59821	//   "response": {
59822	//     "$ref": "Disk"
59823	//   },
59824	//   "scopes": [
59825	//     "https://www.googleapis.com/auth/cloud-platform",
59826	//     "https://www.googleapis.com/auth/compute",
59827	//     "https://www.googleapis.com/auth/compute.readonly"
59828	//   ]
59829	// }
59830
59831}
59832
59833// method id "compute.disks.getIamPolicy":
59834
59835type DisksGetIamPolicyCall struct {
59836	s            *Service
59837	project      string
59838	zone         string
59839	resource     string
59840	urlParams_   gensupport.URLParams
59841	ifNoneMatch_ string
59842	ctx_         context.Context
59843	header_      http.Header
59844}
59845
59846// GetIamPolicy: Gets the access control policy for a resource. May be
59847// empty if no such policy or resource exists.
59848//
59849// - project: Project ID for this request.
59850// - resource: Name or id of the resource for this request.
59851// - zone: The name of the zone for this request.
59852func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
59853	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59854	c.project = project
59855	c.zone = zone
59856	c.resource = resource
59857	return c
59858}
59859
59860// OptionsRequestedPolicyVersion sets the optional parameter
59861// "optionsRequestedPolicyVersion": Requested IAM Policy version.
59862func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
59863	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
59864	return c
59865}
59866
59867// Fields allows partial responses to be retrieved. See
59868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59869// for more information.
59870func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
59871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59872	return c
59873}
59874
59875// IfNoneMatch sets the optional parameter which makes the operation
59876// fail if the object's ETag matches the given value. This is useful for
59877// getting updates only after the object has changed since the last
59878// request. Use googleapi.IsNotModified to check whether the response
59879// error from Do is the result of In-None-Match.
59880func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
59881	c.ifNoneMatch_ = entityTag
59882	return c
59883}
59884
59885// Context sets the context to be used in this call's Do method. Any
59886// pending HTTP request will be aborted if the provided context is
59887// canceled.
59888func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
59889	c.ctx_ = ctx
59890	return c
59891}
59892
59893// Header returns an http.Header that can be modified by the caller to
59894// add HTTP headers to the request.
59895func (c *DisksGetIamPolicyCall) Header() http.Header {
59896	if c.header_ == nil {
59897		c.header_ = make(http.Header)
59898	}
59899	return c.header_
59900}
59901
59902func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
59903	reqHeaders := make(http.Header)
59904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
59905	for k, v := range c.header_ {
59906		reqHeaders[k] = v
59907	}
59908	reqHeaders.Set("User-Agent", c.s.userAgent())
59909	if c.ifNoneMatch_ != "" {
59910		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59911	}
59912	var body io.Reader = nil
59913	c.urlParams_.Set("alt", alt)
59914	c.urlParams_.Set("prettyPrint", "false")
59915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy")
59916	urls += "?" + c.urlParams_.Encode()
59917	req, err := http.NewRequest("GET", urls, body)
59918	if err != nil {
59919		return nil, err
59920	}
59921	req.Header = reqHeaders
59922	googleapi.Expand(req.URL, map[string]string{
59923		"project":  c.project,
59924		"zone":     c.zone,
59925		"resource": c.resource,
59926	})
59927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59928}
59929
59930// Do executes the "compute.disks.getIamPolicy" call.
59931// Exactly one of *Policy or error will be non-nil. Any non-2xx status
59932// code is an error. Response headers are in either
59933// *Policy.ServerResponse.Header or (if a response was returned at all)
59934// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59935// check whether the returned error was because http.StatusNotModified
59936// was returned.
59937func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
59938	gensupport.SetOptions(c.urlParams_, opts...)
59939	res, err := c.doRequest("json")
59940	if res != nil && res.StatusCode == http.StatusNotModified {
59941		if res.Body != nil {
59942			res.Body.Close()
59943		}
59944		return nil, &googleapi.Error{
59945			Code:   res.StatusCode,
59946			Header: res.Header,
59947		}
59948	}
59949	if err != nil {
59950		return nil, err
59951	}
59952	defer googleapi.CloseBody(res)
59953	if err := googleapi.CheckResponse(res); err != nil {
59954		return nil, err
59955	}
59956	ret := &Policy{
59957		ServerResponse: googleapi.ServerResponse{
59958			Header:         res.Header,
59959			HTTPStatusCode: res.StatusCode,
59960		},
59961	}
59962	target := &ret
59963	if err := gensupport.DecodeResponse(target, res); err != nil {
59964		return nil, err
59965	}
59966	return ret, nil
59967	// {
59968	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
59969	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
59970	//   "httpMethod": "GET",
59971	//   "id": "compute.disks.getIamPolicy",
59972	//   "parameterOrder": [
59973	//     "project",
59974	//     "zone",
59975	//     "resource"
59976	//   ],
59977	//   "parameters": {
59978	//     "optionsRequestedPolicyVersion": {
59979	//       "description": "Requested IAM Policy version.",
59980	//       "format": "int32",
59981	//       "location": "query",
59982	//       "type": "integer"
59983	//     },
59984	//     "project": {
59985	//       "description": "Project ID for this request.",
59986	//       "location": "path",
59987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59988	//       "required": true,
59989	//       "type": "string"
59990	//     },
59991	//     "resource": {
59992	//       "description": "Name or id of the resource for this request.",
59993	//       "location": "path",
59994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59995	//       "required": true,
59996	//       "type": "string"
59997	//     },
59998	//     "zone": {
59999	//       "description": "The name of the zone for this request.",
60000	//       "location": "path",
60001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60002	//       "required": true,
60003	//       "type": "string"
60004	//     }
60005	//   },
60006	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
60007	//   "response": {
60008	//     "$ref": "Policy"
60009	//   },
60010	//   "scopes": [
60011	//     "https://www.googleapis.com/auth/cloud-platform",
60012	//     "https://www.googleapis.com/auth/compute",
60013	//     "https://www.googleapis.com/auth/compute.readonly"
60014	//   ]
60015	// }
60016
60017}
60018
60019// method id "compute.disks.insert":
60020
60021type DisksInsertCall struct {
60022	s          *Service
60023	project    string
60024	zone       string
60025	disk       *Disk
60026	urlParams_ gensupport.URLParams
60027	ctx_       context.Context
60028	header_    http.Header
60029}
60030
60031// Insert: Creates a persistent disk in the specified project using the
60032// data in the request. You can create a disk from a source
60033// (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500
60034// GB data disk by omitting all properties. You can also create a disk
60035// that is larger than the default size by specifying the sizeGb
60036// property.
60037//
60038// - project: Project ID for this request.
60039// - zone: The name of the zone for this request.
60040func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
60041	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60042	c.project = project
60043	c.zone = zone
60044	c.disk = disk
60045	return c
60046}
60047
60048// RequestId sets the optional parameter "requestId": An optional
60049// request ID to identify requests. Specify a unique request ID so that
60050// if you must retry your request, the server will know to ignore the
60051// request if it has already been completed. For example, consider a
60052// situation where you make an initial request and the request times
60053// out. If you make the request again with the same request ID, the
60054// server can check if original operation with the same request ID was
60055// received, and if so, will ignore the second request. This prevents
60056// clients from accidentally creating duplicate commitments. The request
60057// ID must be a valid UUID with the exception that zero UUID is not
60058// supported ( 00000000-0000-0000-0000-000000000000).
60059func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
60060	c.urlParams_.Set("requestId", requestId)
60061	return c
60062}
60063
60064// SourceImage sets the optional parameter "sourceImage": Source image
60065// to restore onto a disk. This field is optional.
60066func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
60067	c.urlParams_.Set("sourceImage", sourceImage)
60068	return c
60069}
60070
60071// Fields allows partial responses to be retrieved. See
60072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60073// for more information.
60074func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
60075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60076	return c
60077}
60078
60079// Context sets the context to be used in this call's Do method. Any
60080// pending HTTP request will be aborted if the provided context is
60081// canceled.
60082func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
60083	c.ctx_ = ctx
60084	return c
60085}
60086
60087// Header returns an http.Header that can be modified by the caller to
60088// add HTTP headers to the request.
60089func (c *DisksInsertCall) Header() http.Header {
60090	if c.header_ == nil {
60091		c.header_ = make(http.Header)
60092	}
60093	return c.header_
60094}
60095
60096func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
60097	reqHeaders := make(http.Header)
60098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
60099	for k, v := range c.header_ {
60100		reqHeaders[k] = v
60101	}
60102	reqHeaders.Set("User-Agent", c.s.userAgent())
60103	var body io.Reader = nil
60104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
60105	if err != nil {
60106		return nil, err
60107	}
60108	reqHeaders.Set("Content-Type", "application/json")
60109	c.urlParams_.Set("alt", alt)
60110	c.urlParams_.Set("prettyPrint", "false")
60111	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
60112	urls += "?" + c.urlParams_.Encode()
60113	req, err := http.NewRequest("POST", urls, body)
60114	if err != nil {
60115		return nil, err
60116	}
60117	req.Header = reqHeaders
60118	googleapi.Expand(req.URL, map[string]string{
60119		"project": c.project,
60120		"zone":    c.zone,
60121	})
60122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60123}
60124
60125// Do executes the "compute.disks.insert" call.
60126// Exactly one of *Operation or error will be non-nil. Any non-2xx
60127// status code is an error. Response headers are in either
60128// *Operation.ServerResponse.Header or (if a response was returned at
60129// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60130// to check whether the returned error was because
60131// http.StatusNotModified was returned.
60132func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60133	gensupport.SetOptions(c.urlParams_, opts...)
60134	res, err := c.doRequest("json")
60135	if res != nil && res.StatusCode == http.StatusNotModified {
60136		if res.Body != nil {
60137			res.Body.Close()
60138		}
60139		return nil, &googleapi.Error{
60140			Code:   res.StatusCode,
60141			Header: res.Header,
60142		}
60143	}
60144	if err != nil {
60145		return nil, err
60146	}
60147	defer googleapi.CloseBody(res)
60148	if err := googleapi.CheckResponse(res); err != nil {
60149		return nil, err
60150	}
60151	ret := &Operation{
60152		ServerResponse: googleapi.ServerResponse{
60153			Header:         res.Header,
60154			HTTPStatusCode: res.StatusCode,
60155		},
60156	}
60157	target := &ret
60158	if err := gensupport.DecodeResponse(target, res); err != nil {
60159		return nil, err
60160	}
60161	return ret, nil
60162	// {
60163	//   "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.",
60164	//   "flatPath": "projects/{project}/zones/{zone}/disks",
60165	//   "httpMethod": "POST",
60166	//   "id": "compute.disks.insert",
60167	//   "parameterOrder": [
60168	//     "project",
60169	//     "zone"
60170	//   ],
60171	//   "parameters": {
60172	//     "project": {
60173	//       "description": "Project ID for this request.",
60174	//       "location": "path",
60175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60176	//       "required": true,
60177	//       "type": "string"
60178	//     },
60179	//     "requestId": {
60180	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
60181	//       "location": "query",
60182	//       "type": "string"
60183	//     },
60184	//     "sourceImage": {
60185	//       "description": "Source image to restore onto a disk. This field is optional.",
60186	//       "location": "query",
60187	//       "type": "string"
60188	//     },
60189	//     "zone": {
60190	//       "description": "The name of the zone for this request.",
60191	//       "location": "path",
60192	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60193	//       "required": true,
60194	//       "type": "string"
60195	//     }
60196	//   },
60197	//   "path": "projects/{project}/zones/{zone}/disks",
60198	//   "request": {
60199	//     "$ref": "Disk"
60200	//   },
60201	//   "response": {
60202	//     "$ref": "Operation"
60203	//   },
60204	//   "scopes": [
60205	//     "https://www.googleapis.com/auth/cloud-platform",
60206	//     "https://www.googleapis.com/auth/compute"
60207	//   ]
60208	// }
60209
60210}
60211
60212// method id "compute.disks.list":
60213
60214type DisksListCall struct {
60215	s            *Service
60216	project      string
60217	zone         string
60218	urlParams_   gensupport.URLParams
60219	ifNoneMatch_ string
60220	ctx_         context.Context
60221	header_      http.Header
60222}
60223
60224// List: Retrieves a list of persistent disks contained within the
60225// specified zone.
60226//
60227// - project: Project ID for this request.
60228// - zone: The name of the zone for this request.
60229func (r *DisksService) List(project string, zone string) *DisksListCall {
60230	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60231	c.project = project
60232	c.zone = zone
60233	return c
60234}
60235
60236// Filter sets the optional parameter "filter": A filter expression that
60237// filters resources listed in the response. The expression must specify
60238// the field name, a comparison operator, and the value that you want to
60239// use for filtering. The value must be a string, a number, or a
60240// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60241// `<`. For example, if you are filtering Compute Engine instances, you
60242// can exclude instances named `example-instance` by specifying `name !=
60243// example-instance`. You can also filter nested fields. For example,
60244// you could specify `scheduling.automaticRestart = false` to include
60245// instances only if they are not scheduled for automatic restarts. You
60246// can use filtering on nested fields to filter based on resource
60247// labels. To filter on multiple expressions, provide each separate
60248// expression within parentheses. For example: ```
60249// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
60250// ``` By default, each expression is an `AND` expression. However, you
60251// can include `AND` and `OR` expressions explicitly. For example: ```
60252// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
60253// AND (scheduling.automaticRestart = true) ```
60254func (c *DisksListCall) Filter(filter string) *DisksListCall {
60255	c.urlParams_.Set("filter", filter)
60256	return c
60257}
60258
60259// MaxResults sets the optional parameter "maxResults": The maximum
60260// number of results per page that should be returned. If the number of
60261// available results is larger than `maxResults`, Compute Engine returns
60262// a `nextPageToken` that can be used to get the next page of results in
60263// subsequent list requests. Acceptable values are `0` to `500`,
60264// inclusive. (Default: `500`)
60265func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
60266	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60267	return c
60268}
60269
60270// OrderBy sets the optional parameter "orderBy": Sorts list results by
60271// a certain order. By default, results are returned in alphanumerical
60272// order based on the resource name. You can also sort results in
60273// descending order based on the creation timestamp using
60274// `orderBy="creationTimestamp desc". This sorts results based on the
60275// `creationTimestamp` field in reverse chronological order (newest
60276// result first). Use this to sort resources like operations so that the
60277// newest operation is returned first. Currently, only sorting by `name`
60278// or `creationTimestamp desc` is supported.
60279func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
60280	c.urlParams_.Set("orderBy", orderBy)
60281	return c
60282}
60283
60284// PageToken sets the optional parameter "pageToken": Specifies a page
60285// token to use. Set `pageToken` to the `nextPageToken` returned by a
60286// previous list request to get the next page of results.
60287func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
60288	c.urlParams_.Set("pageToken", pageToken)
60289	return c
60290}
60291
60292// ReturnPartialSuccess sets the optional parameter
60293// "returnPartialSuccess": Opt-in for partial success behavior which
60294// provides partial results in case of failure. The default value is
60295// false.
60296func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
60297	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
60298	return c
60299}
60300
60301// Fields allows partial responses to be retrieved. See
60302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60303// for more information.
60304func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
60305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60306	return c
60307}
60308
60309// IfNoneMatch sets the optional parameter which makes the operation
60310// fail if the object's ETag matches the given value. This is useful for
60311// getting updates only after the object has changed since the last
60312// request. Use googleapi.IsNotModified to check whether the response
60313// error from Do is the result of In-None-Match.
60314func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
60315	c.ifNoneMatch_ = entityTag
60316	return c
60317}
60318
60319// Context sets the context to be used in this call's Do method. Any
60320// pending HTTP request will be aborted if the provided context is
60321// canceled.
60322func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
60323	c.ctx_ = ctx
60324	return c
60325}
60326
60327// Header returns an http.Header that can be modified by the caller to
60328// add HTTP headers to the request.
60329func (c *DisksListCall) Header() http.Header {
60330	if c.header_ == nil {
60331		c.header_ = make(http.Header)
60332	}
60333	return c.header_
60334}
60335
60336func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
60337	reqHeaders := make(http.Header)
60338	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
60339	for k, v := range c.header_ {
60340		reqHeaders[k] = v
60341	}
60342	reqHeaders.Set("User-Agent", c.s.userAgent())
60343	if c.ifNoneMatch_ != "" {
60344		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60345	}
60346	var body io.Reader = nil
60347	c.urlParams_.Set("alt", alt)
60348	c.urlParams_.Set("prettyPrint", "false")
60349	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
60350	urls += "?" + c.urlParams_.Encode()
60351	req, err := http.NewRequest("GET", urls, body)
60352	if err != nil {
60353		return nil, err
60354	}
60355	req.Header = reqHeaders
60356	googleapi.Expand(req.URL, map[string]string{
60357		"project": c.project,
60358		"zone":    c.zone,
60359	})
60360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60361}
60362
60363// Do executes the "compute.disks.list" call.
60364// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
60365// code is an error. Response headers are in either
60366// *DiskList.ServerResponse.Header or (if a response was returned at
60367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60368// to check whether the returned error was because
60369// http.StatusNotModified was returned.
60370func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
60371	gensupport.SetOptions(c.urlParams_, opts...)
60372	res, err := c.doRequest("json")
60373	if res != nil && res.StatusCode == http.StatusNotModified {
60374		if res.Body != nil {
60375			res.Body.Close()
60376		}
60377		return nil, &googleapi.Error{
60378			Code:   res.StatusCode,
60379			Header: res.Header,
60380		}
60381	}
60382	if err != nil {
60383		return nil, err
60384	}
60385	defer googleapi.CloseBody(res)
60386	if err := googleapi.CheckResponse(res); err != nil {
60387		return nil, err
60388	}
60389	ret := &DiskList{
60390		ServerResponse: googleapi.ServerResponse{
60391			Header:         res.Header,
60392			HTTPStatusCode: res.StatusCode,
60393		},
60394	}
60395	target := &ret
60396	if err := gensupport.DecodeResponse(target, res); err != nil {
60397		return nil, err
60398	}
60399	return ret, nil
60400	// {
60401	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
60402	//   "flatPath": "projects/{project}/zones/{zone}/disks",
60403	//   "httpMethod": "GET",
60404	//   "id": "compute.disks.list",
60405	//   "parameterOrder": [
60406	//     "project",
60407	//     "zone"
60408	//   ],
60409	//   "parameters": {
60410	//     "filter": {
60411	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60412	//       "location": "query",
60413	//       "type": "string"
60414	//     },
60415	//     "maxResults": {
60416	//       "default": "500",
60417	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60418	//       "format": "uint32",
60419	//       "location": "query",
60420	//       "minimum": "0",
60421	//       "type": "integer"
60422	//     },
60423	//     "orderBy": {
60424	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
60425	//       "location": "query",
60426	//       "type": "string"
60427	//     },
60428	//     "pageToken": {
60429	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60430	//       "location": "query",
60431	//       "type": "string"
60432	//     },
60433	//     "project": {
60434	//       "description": "Project ID for this request.",
60435	//       "location": "path",
60436	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60437	//       "required": true,
60438	//       "type": "string"
60439	//     },
60440	//     "returnPartialSuccess": {
60441	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
60442	//       "location": "query",
60443	//       "type": "boolean"
60444	//     },
60445	//     "zone": {
60446	//       "description": "The name of the zone for this request.",
60447	//       "location": "path",
60448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60449	//       "required": true,
60450	//       "type": "string"
60451	//     }
60452	//   },
60453	//   "path": "projects/{project}/zones/{zone}/disks",
60454	//   "response": {
60455	//     "$ref": "DiskList"
60456	//   },
60457	//   "scopes": [
60458	//     "https://www.googleapis.com/auth/cloud-platform",
60459	//     "https://www.googleapis.com/auth/compute",
60460	//     "https://www.googleapis.com/auth/compute.readonly"
60461	//   ]
60462	// }
60463
60464}
60465
60466// Pages invokes f for each page of results.
60467// A non-nil error returned from f will halt the iteration.
60468// The provided context supersedes any context provided to the Context method.
60469func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
60470	c.ctx_ = ctx
60471	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60472	for {
60473		x, err := c.Do()
60474		if err != nil {
60475			return err
60476		}
60477		if err := f(x); err != nil {
60478			return err
60479		}
60480		if x.NextPageToken == "" {
60481			return nil
60482		}
60483		c.PageToken(x.NextPageToken)
60484	}
60485}
60486
60487// method id "compute.disks.removeResourcePolicies":
60488
60489type DisksRemoveResourcePoliciesCall struct {
60490	s                                  *Service
60491	project                            string
60492	zone                               string
60493	disk                               string
60494	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
60495	urlParams_                         gensupport.URLParams
60496	ctx_                               context.Context
60497	header_                            http.Header
60498}
60499
60500// RemoveResourcePolicies: Removes resource policies from a disk.
60501//
60502// - disk: The disk name for this request.
60503// - project: Project ID for this request.
60504// - zone: The name of the zone for this request.
60505func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
60506	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60507	c.project = project
60508	c.zone = zone
60509	c.disk = disk
60510	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
60511	return c
60512}
60513
60514// RequestId sets the optional parameter "requestId": An optional
60515// request ID to identify requests. Specify a unique request ID so that
60516// if you must retry your request, the server will know to ignore the
60517// request if it has already been completed. For example, consider a
60518// situation where you make an initial request and the request times
60519// out. If you make the request again with the same request ID, the
60520// server can check if original operation with the same request ID was
60521// received, and if so, will ignore the second request. This prevents
60522// clients from accidentally creating duplicate commitments. The request
60523// ID must be a valid UUID with the exception that zero UUID is not
60524// supported ( 00000000-0000-0000-0000-000000000000).
60525func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
60526	c.urlParams_.Set("requestId", requestId)
60527	return c
60528}
60529
60530// Fields allows partial responses to be retrieved. See
60531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60532// for more information.
60533func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
60534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60535	return c
60536}
60537
60538// Context sets the context to be used in this call's Do method. Any
60539// pending HTTP request will be aborted if the provided context is
60540// canceled.
60541func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
60542	c.ctx_ = ctx
60543	return c
60544}
60545
60546// Header returns an http.Header that can be modified by the caller to
60547// add HTTP headers to the request.
60548func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
60549	if c.header_ == nil {
60550		c.header_ = make(http.Header)
60551	}
60552	return c.header_
60553}
60554
60555func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
60556	reqHeaders := make(http.Header)
60557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
60558	for k, v := range c.header_ {
60559		reqHeaders[k] = v
60560	}
60561	reqHeaders.Set("User-Agent", c.s.userAgent())
60562	var body io.Reader = nil
60563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
60564	if err != nil {
60565		return nil, err
60566	}
60567	reqHeaders.Set("Content-Type", "application/json")
60568	c.urlParams_.Set("alt", alt)
60569	c.urlParams_.Set("prettyPrint", "false")
60570	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
60571	urls += "?" + c.urlParams_.Encode()
60572	req, err := http.NewRequest("POST", urls, body)
60573	if err != nil {
60574		return nil, err
60575	}
60576	req.Header = reqHeaders
60577	googleapi.Expand(req.URL, map[string]string{
60578		"project": c.project,
60579		"zone":    c.zone,
60580		"disk":    c.disk,
60581	})
60582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60583}
60584
60585// Do executes the "compute.disks.removeResourcePolicies" call.
60586// Exactly one of *Operation or error will be non-nil. Any non-2xx
60587// status code is an error. Response headers are in either
60588// *Operation.ServerResponse.Header or (if a response was returned at
60589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60590// to check whether the returned error was because
60591// http.StatusNotModified was returned.
60592func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60593	gensupport.SetOptions(c.urlParams_, opts...)
60594	res, err := c.doRequest("json")
60595	if res != nil && res.StatusCode == http.StatusNotModified {
60596		if res.Body != nil {
60597			res.Body.Close()
60598		}
60599		return nil, &googleapi.Error{
60600			Code:   res.StatusCode,
60601			Header: res.Header,
60602		}
60603	}
60604	if err != nil {
60605		return nil, err
60606	}
60607	defer googleapi.CloseBody(res)
60608	if err := googleapi.CheckResponse(res); err != nil {
60609		return nil, err
60610	}
60611	ret := &Operation{
60612		ServerResponse: googleapi.ServerResponse{
60613			Header:         res.Header,
60614			HTTPStatusCode: res.StatusCode,
60615		},
60616	}
60617	target := &ret
60618	if err := gensupport.DecodeResponse(target, res); err != nil {
60619		return nil, err
60620	}
60621	return ret, nil
60622	// {
60623	//   "description": "Removes resource policies from a disk.",
60624	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
60625	//   "httpMethod": "POST",
60626	//   "id": "compute.disks.removeResourcePolicies",
60627	//   "parameterOrder": [
60628	//     "project",
60629	//     "zone",
60630	//     "disk"
60631	//   ],
60632	//   "parameters": {
60633	//     "disk": {
60634	//       "description": "The disk name for this request.",
60635	//       "location": "path",
60636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60637	//       "required": true,
60638	//       "type": "string"
60639	//     },
60640	//     "project": {
60641	//       "description": "Project ID for this request.",
60642	//       "location": "path",
60643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60644	//       "required": true,
60645	//       "type": "string"
60646	//     },
60647	//     "requestId": {
60648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
60649	//       "location": "query",
60650	//       "type": "string"
60651	//     },
60652	//     "zone": {
60653	//       "description": "The name of the zone for this request.",
60654	//       "location": "path",
60655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60656	//       "required": true,
60657	//       "type": "string"
60658	//     }
60659	//   },
60660	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
60661	//   "request": {
60662	//     "$ref": "DisksRemoveResourcePoliciesRequest"
60663	//   },
60664	//   "response": {
60665	//     "$ref": "Operation"
60666	//   },
60667	//   "scopes": [
60668	//     "https://www.googleapis.com/auth/cloud-platform",
60669	//     "https://www.googleapis.com/auth/compute"
60670	//   ]
60671	// }
60672
60673}
60674
60675// method id "compute.disks.resize":
60676
60677type DisksResizeCall struct {
60678	s                  *Service
60679	project            string
60680	zone               string
60681	disk               string
60682	disksresizerequest *DisksResizeRequest
60683	urlParams_         gensupport.URLParams
60684	ctx_               context.Context
60685	header_            http.Header
60686}
60687
60688// Resize: Resizes the specified persistent disk. You can only increase
60689// the size of the disk.
60690//
60691// - disk: The name of the persistent disk.
60692// - project: Project ID for this request.
60693// - zone: The name of the zone for this request.
60694func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
60695	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60696	c.project = project
60697	c.zone = zone
60698	c.disk = disk
60699	c.disksresizerequest = disksresizerequest
60700	return c
60701}
60702
60703// RequestId sets the optional parameter "requestId": An optional
60704// request ID to identify requests. Specify a unique request ID so that
60705// if you must retry your request, the server will know to ignore the
60706// request if it has already been completed. For example, consider a
60707// situation where you make an initial request and the request times
60708// out. If you make the request again with the same request ID, the
60709// server can check if original operation with the same request ID was
60710// received, and if so, will ignore the second request. This prevents
60711// clients from accidentally creating duplicate commitments. The request
60712// ID must be a valid UUID with the exception that zero UUID is not
60713// supported ( 00000000-0000-0000-0000-000000000000).
60714func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
60715	c.urlParams_.Set("requestId", requestId)
60716	return c
60717}
60718
60719// Fields allows partial responses to be retrieved. See
60720// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60721// for more information.
60722func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
60723	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60724	return c
60725}
60726
60727// Context sets the context to be used in this call's Do method. Any
60728// pending HTTP request will be aborted if the provided context is
60729// canceled.
60730func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
60731	c.ctx_ = ctx
60732	return c
60733}
60734
60735// Header returns an http.Header that can be modified by the caller to
60736// add HTTP headers to the request.
60737func (c *DisksResizeCall) Header() http.Header {
60738	if c.header_ == nil {
60739		c.header_ = make(http.Header)
60740	}
60741	return c.header_
60742}
60743
60744func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
60745	reqHeaders := make(http.Header)
60746	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
60747	for k, v := range c.header_ {
60748		reqHeaders[k] = v
60749	}
60750	reqHeaders.Set("User-Agent", c.s.userAgent())
60751	var body io.Reader = nil
60752	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
60753	if err != nil {
60754		return nil, err
60755	}
60756	reqHeaders.Set("Content-Type", "application/json")
60757	c.urlParams_.Set("alt", alt)
60758	c.urlParams_.Set("prettyPrint", "false")
60759	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize")
60760	urls += "?" + c.urlParams_.Encode()
60761	req, err := http.NewRequest("POST", urls, body)
60762	if err != nil {
60763		return nil, err
60764	}
60765	req.Header = reqHeaders
60766	googleapi.Expand(req.URL, map[string]string{
60767		"project": c.project,
60768		"zone":    c.zone,
60769		"disk":    c.disk,
60770	})
60771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60772}
60773
60774// Do executes the "compute.disks.resize" call.
60775// Exactly one of *Operation or error will be non-nil. Any non-2xx
60776// status code is an error. Response headers are in either
60777// *Operation.ServerResponse.Header or (if a response was returned at
60778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60779// to check whether the returned error was because
60780// http.StatusNotModified was returned.
60781func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60782	gensupport.SetOptions(c.urlParams_, opts...)
60783	res, err := c.doRequest("json")
60784	if res != nil && res.StatusCode == http.StatusNotModified {
60785		if res.Body != nil {
60786			res.Body.Close()
60787		}
60788		return nil, &googleapi.Error{
60789			Code:   res.StatusCode,
60790			Header: res.Header,
60791		}
60792	}
60793	if err != nil {
60794		return nil, err
60795	}
60796	defer googleapi.CloseBody(res)
60797	if err := googleapi.CheckResponse(res); err != nil {
60798		return nil, err
60799	}
60800	ret := &Operation{
60801		ServerResponse: googleapi.ServerResponse{
60802			Header:         res.Header,
60803			HTTPStatusCode: res.StatusCode,
60804		},
60805	}
60806	target := &ret
60807	if err := gensupport.DecodeResponse(target, res); err != nil {
60808		return nil, err
60809	}
60810	return ret, nil
60811	// {
60812	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
60813	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize",
60814	//   "httpMethod": "POST",
60815	//   "id": "compute.disks.resize",
60816	//   "parameterOrder": [
60817	//     "project",
60818	//     "zone",
60819	//     "disk"
60820	//   ],
60821	//   "parameters": {
60822	//     "disk": {
60823	//       "description": "The name of the persistent disk.",
60824	//       "location": "path",
60825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60826	//       "required": true,
60827	//       "type": "string"
60828	//     },
60829	//     "project": {
60830	//       "description": "Project ID for this request.",
60831	//       "location": "path",
60832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60833	//       "required": true,
60834	//       "type": "string"
60835	//     },
60836	//     "requestId": {
60837	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
60838	//       "location": "query",
60839	//       "type": "string"
60840	//     },
60841	//     "zone": {
60842	//       "description": "The name of the zone for this request.",
60843	//       "location": "path",
60844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60845	//       "required": true,
60846	//       "type": "string"
60847	//     }
60848	//   },
60849	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
60850	//   "request": {
60851	//     "$ref": "DisksResizeRequest"
60852	//   },
60853	//   "response": {
60854	//     "$ref": "Operation"
60855	//   },
60856	//   "scopes": [
60857	//     "https://www.googleapis.com/auth/cloud-platform",
60858	//     "https://www.googleapis.com/auth/compute"
60859	//   ]
60860	// }
60861
60862}
60863
60864// method id "compute.disks.setIamPolicy":
60865
60866type DisksSetIamPolicyCall struct {
60867	s                    *Service
60868	project              string
60869	zone                 string
60870	resource             string
60871	zonesetpolicyrequest *ZoneSetPolicyRequest
60872	urlParams_           gensupport.URLParams
60873	ctx_                 context.Context
60874	header_              http.Header
60875}
60876
60877// SetIamPolicy: Sets the access control policy on the specified
60878// resource. Replaces any existing policy.
60879//
60880// - project: Project ID for this request.
60881// - resource: Name or id of the resource for this request.
60882// - zone: The name of the zone for this request.
60883func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
60884	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60885	c.project = project
60886	c.zone = zone
60887	c.resource = resource
60888	c.zonesetpolicyrequest = zonesetpolicyrequest
60889	return c
60890}
60891
60892// Fields allows partial responses to be retrieved. See
60893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60894// for more information.
60895func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
60896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60897	return c
60898}
60899
60900// Context sets the context to be used in this call's Do method. Any
60901// pending HTTP request will be aborted if the provided context is
60902// canceled.
60903func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
60904	c.ctx_ = ctx
60905	return c
60906}
60907
60908// Header returns an http.Header that can be modified by the caller to
60909// add HTTP headers to the request.
60910func (c *DisksSetIamPolicyCall) Header() http.Header {
60911	if c.header_ == nil {
60912		c.header_ = make(http.Header)
60913	}
60914	return c.header_
60915}
60916
60917func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
60918	reqHeaders := make(http.Header)
60919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
60920	for k, v := range c.header_ {
60921		reqHeaders[k] = v
60922	}
60923	reqHeaders.Set("User-Agent", c.s.userAgent())
60924	var body io.Reader = nil
60925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
60926	if err != nil {
60927		return nil, err
60928	}
60929	reqHeaders.Set("Content-Type", "application/json")
60930	c.urlParams_.Set("alt", alt)
60931	c.urlParams_.Set("prettyPrint", "false")
60932	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy")
60933	urls += "?" + c.urlParams_.Encode()
60934	req, err := http.NewRequest("POST", urls, body)
60935	if err != nil {
60936		return nil, err
60937	}
60938	req.Header = reqHeaders
60939	googleapi.Expand(req.URL, map[string]string{
60940		"project":  c.project,
60941		"zone":     c.zone,
60942		"resource": c.resource,
60943	})
60944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60945}
60946
60947// Do executes the "compute.disks.setIamPolicy" call.
60948// Exactly one of *Policy or error will be non-nil. Any non-2xx status
60949// code is an error. Response headers are in either
60950// *Policy.ServerResponse.Header or (if a response was returned at all)
60951// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
60952// check whether the returned error was because http.StatusNotModified
60953// was returned.
60954func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
60955	gensupport.SetOptions(c.urlParams_, opts...)
60956	res, err := c.doRequest("json")
60957	if res != nil && res.StatusCode == http.StatusNotModified {
60958		if res.Body != nil {
60959			res.Body.Close()
60960		}
60961		return nil, &googleapi.Error{
60962			Code:   res.StatusCode,
60963			Header: res.Header,
60964		}
60965	}
60966	if err != nil {
60967		return nil, err
60968	}
60969	defer googleapi.CloseBody(res)
60970	if err := googleapi.CheckResponse(res); err != nil {
60971		return nil, err
60972	}
60973	ret := &Policy{
60974		ServerResponse: googleapi.ServerResponse{
60975			Header:         res.Header,
60976			HTTPStatusCode: res.StatusCode,
60977		},
60978	}
60979	target := &ret
60980	if err := gensupport.DecodeResponse(target, res); err != nil {
60981		return nil, err
60982	}
60983	return ret, nil
60984	// {
60985	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
60986	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
60987	//   "httpMethod": "POST",
60988	//   "id": "compute.disks.setIamPolicy",
60989	//   "parameterOrder": [
60990	//     "project",
60991	//     "zone",
60992	//     "resource"
60993	//   ],
60994	//   "parameters": {
60995	//     "project": {
60996	//       "description": "Project ID for this request.",
60997	//       "location": "path",
60998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60999	//       "required": true,
61000	//       "type": "string"
61001	//     },
61002	//     "resource": {
61003	//       "description": "Name or id of the resource for this request.",
61004	//       "location": "path",
61005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61006	//       "required": true,
61007	//       "type": "string"
61008	//     },
61009	//     "zone": {
61010	//       "description": "The name of the zone for this request.",
61011	//       "location": "path",
61012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61013	//       "required": true,
61014	//       "type": "string"
61015	//     }
61016	//   },
61017	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
61018	//   "request": {
61019	//     "$ref": "ZoneSetPolicyRequest"
61020	//   },
61021	//   "response": {
61022	//     "$ref": "Policy"
61023	//   },
61024	//   "scopes": [
61025	//     "https://www.googleapis.com/auth/cloud-platform",
61026	//     "https://www.googleapis.com/auth/compute"
61027	//   ]
61028	// }
61029
61030}
61031
61032// method id "compute.disks.setLabels":
61033
61034type DisksSetLabelsCall struct {
61035	s                    *Service
61036	project              string
61037	zone                 string
61038	resource             string
61039	zonesetlabelsrequest *ZoneSetLabelsRequest
61040	urlParams_           gensupport.URLParams
61041	ctx_                 context.Context
61042	header_              http.Header
61043}
61044
61045// SetLabels: Sets the labels on a disk. To learn more about labels,
61046// read the Labeling Resources documentation.
61047//
61048// - project: Project ID for this request.
61049// - resource: Name or id of the resource for this request.
61050// - zone: The name of the zone for this request.
61051func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
61052	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61053	c.project = project
61054	c.zone = zone
61055	c.resource = resource
61056	c.zonesetlabelsrequest = zonesetlabelsrequest
61057	return c
61058}
61059
61060// RequestId sets the optional parameter "requestId": An optional
61061// request ID to identify requests. Specify a unique request ID so that
61062// if you must retry your request, the server will know to ignore the
61063// request if it has already been completed. For example, consider a
61064// situation where you make an initial request and the request times
61065// out. If you make the request again with the same request ID, the
61066// server can check if original operation with the same request ID was
61067// received, and if so, will ignore the second request. This prevents
61068// clients from accidentally creating duplicate commitments. The request
61069// ID must be a valid UUID with the exception that zero UUID is not
61070// supported ( 00000000-0000-0000-0000-000000000000).
61071func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
61072	c.urlParams_.Set("requestId", requestId)
61073	return c
61074}
61075
61076// Fields allows partial responses to be retrieved. See
61077// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61078// for more information.
61079func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
61080	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61081	return c
61082}
61083
61084// Context sets the context to be used in this call's Do method. Any
61085// pending HTTP request will be aborted if the provided context is
61086// canceled.
61087func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
61088	c.ctx_ = ctx
61089	return c
61090}
61091
61092// Header returns an http.Header that can be modified by the caller to
61093// add HTTP headers to the request.
61094func (c *DisksSetLabelsCall) Header() http.Header {
61095	if c.header_ == nil {
61096		c.header_ = make(http.Header)
61097	}
61098	return c.header_
61099}
61100
61101func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
61102	reqHeaders := make(http.Header)
61103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
61104	for k, v := range c.header_ {
61105		reqHeaders[k] = v
61106	}
61107	reqHeaders.Set("User-Agent", c.s.userAgent())
61108	var body io.Reader = nil
61109	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
61110	if err != nil {
61111		return nil, err
61112	}
61113	reqHeaders.Set("Content-Type", "application/json")
61114	c.urlParams_.Set("alt", alt)
61115	c.urlParams_.Set("prettyPrint", "false")
61116	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels")
61117	urls += "?" + c.urlParams_.Encode()
61118	req, err := http.NewRequest("POST", urls, body)
61119	if err != nil {
61120		return nil, err
61121	}
61122	req.Header = reqHeaders
61123	googleapi.Expand(req.URL, map[string]string{
61124		"project":  c.project,
61125		"zone":     c.zone,
61126		"resource": c.resource,
61127	})
61128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61129}
61130
61131// Do executes the "compute.disks.setLabels" call.
61132// Exactly one of *Operation or error will be non-nil. Any non-2xx
61133// status code is an error. Response headers are in either
61134// *Operation.ServerResponse.Header or (if a response was returned at
61135// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61136// to check whether the returned error was because
61137// http.StatusNotModified was returned.
61138func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61139	gensupport.SetOptions(c.urlParams_, opts...)
61140	res, err := c.doRequest("json")
61141	if res != nil && res.StatusCode == http.StatusNotModified {
61142		if res.Body != nil {
61143			res.Body.Close()
61144		}
61145		return nil, &googleapi.Error{
61146			Code:   res.StatusCode,
61147			Header: res.Header,
61148		}
61149	}
61150	if err != nil {
61151		return nil, err
61152	}
61153	defer googleapi.CloseBody(res)
61154	if err := googleapi.CheckResponse(res); err != nil {
61155		return nil, err
61156	}
61157	ret := &Operation{
61158		ServerResponse: googleapi.ServerResponse{
61159			Header:         res.Header,
61160			HTTPStatusCode: res.StatusCode,
61161		},
61162	}
61163	target := &ret
61164	if err := gensupport.DecodeResponse(target, res); err != nil {
61165		return nil, err
61166	}
61167	return ret, nil
61168	// {
61169	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
61170	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
61171	//   "httpMethod": "POST",
61172	//   "id": "compute.disks.setLabels",
61173	//   "parameterOrder": [
61174	//     "project",
61175	//     "zone",
61176	//     "resource"
61177	//   ],
61178	//   "parameters": {
61179	//     "project": {
61180	//       "description": "Project ID for this request.",
61181	//       "location": "path",
61182	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61183	//       "required": true,
61184	//       "type": "string"
61185	//     },
61186	//     "requestId": {
61187	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61188	//       "location": "query",
61189	//       "type": "string"
61190	//     },
61191	//     "resource": {
61192	//       "description": "Name or id of the resource for this request.",
61193	//       "location": "path",
61194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61195	//       "required": true,
61196	//       "type": "string"
61197	//     },
61198	//     "zone": {
61199	//       "description": "The name of the zone for this request.",
61200	//       "location": "path",
61201	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61202	//       "required": true,
61203	//       "type": "string"
61204	//     }
61205	//   },
61206	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
61207	//   "request": {
61208	//     "$ref": "ZoneSetLabelsRequest"
61209	//   },
61210	//   "response": {
61211	//     "$ref": "Operation"
61212	//   },
61213	//   "scopes": [
61214	//     "https://www.googleapis.com/auth/cloud-platform",
61215	//     "https://www.googleapis.com/auth/compute"
61216	//   ]
61217	// }
61218
61219}
61220
61221// method id "compute.disks.testIamPermissions":
61222
61223type DisksTestIamPermissionsCall struct {
61224	s                      *Service
61225	project                string
61226	zone                   string
61227	resource               string
61228	testpermissionsrequest *TestPermissionsRequest
61229	urlParams_             gensupport.URLParams
61230	ctx_                   context.Context
61231	header_                http.Header
61232}
61233
61234// TestIamPermissions: Returns permissions that a caller has on the
61235// specified resource.
61236//
61237// - project: Project ID for this request.
61238// - resource: Name or id of the resource for this request.
61239// - zone: The name of the zone for this request.
61240func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
61241	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61242	c.project = project
61243	c.zone = zone
61244	c.resource = resource
61245	c.testpermissionsrequest = testpermissionsrequest
61246	return c
61247}
61248
61249// Fields allows partial responses to be retrieved. See
61250// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61251// for more information.
61252func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
61253	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61254	return c
61255}
61256
61257// Context sets the context to be used in this call's Do method. Any
61258// pending HTTP request will be aborted if the provided context is
61259// canceled.
61260func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
61261	c.ctx_ = ctx
61262	return c
61263}
61264
61265// Header returns an http.Header that can be modified by the caller to
61266// add HTTP headers to the request.
61267func (c *DisksTestIamPermissionsCall) Header() http.Header {
61268	if c.header_ == nil {
61269		c.header_ = make(http.Header)
61270	}
61271	return c.header_
61272}
61273
61274func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61275	reqHeaders := make(http.Header)
61276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
61277	for k, v := range c.header_ {
61278		reqHeaders[k] = v
61279	}
61280	reqHeaders.Set("User-Agent", c.s.userAgent())
61281	var body io.Reader = nil
61282	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61283	if err != nil {
61284		return nil, err
61285	}
61286	reqHeaders.Set("Content-Type", "application/json")
61287	c.urlParams_.Set("alt", alt)
61288	c.urlParams_.Set("prettyPrint", "false")
61289	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions")
61290	urls += "?" + c.urlParams_.Encode()
61291	req, err := http.NewRequest("POST", urls, body)
61292	if err != nil {
61293		return nil, err
61294	}
61295	req.Header = reqHeaders
61296	googleapi.Expand(req.URL, map[string]string{
61297		"project":  c.project,
61298		"zone":     c.zone,
61299		"resource": c.resource,
61300	})
61301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61302}
61303
61304// Do executes the "compute.disks.testIamPermissions" call.
61305// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61306// non-2xx status code is an error. Response headers are in either
61307// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61308// returned at all) in error.(*googleapi.Error).Header. Use
61309// googleapi.IsNotModified to check whether the returned error was
61310// because http.StatusNotModified was returned.
61311func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61312	gensupport.SetOptions(c.urlParams_, opts...)
61313	res, err := c.doRequest("json")
61314	if res != nil && res.StatusCode == http.StatusNotModified {
61315		if res.Body != nil {
61316			res.Body.Close()
61317		}
61318		return nil, &googleapi.Error{
61319			Code:   res.StatusCode,
61320			Header: res.Header,
61321		}
61322	}
61323	if err != nil {
61324		return nil, err
61325	}
61326	defer googleapi.CloseBody(res)
61327	if err := googleapi.CheckResponse(res); err != nil {
61328		return nil, err
61329	}
61330	ret := &TestPermissionsResponse{
61331		ServerResponse: googleapi.ServerResponse{
61332			Header:         res.Header,
61333			HTTPStatusCode: res.StatusCode,
61334		},
61335	}
61336	target := &ret
61337	if err := gensupport.DecodeResponse(target, res); err != nil {
61338		return nil, err
61339	}
61340	return ret, nil
61341	// {
61342	//   "description": "Returns permissions that a caller has on the specified resource.",
61343	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61344	//   "httpMethod": "POST",
61345	//   "id": "compute.disks.testIamPermissions",
61346	//   "parameterOrder": [
61347	//     "project",
61348	//     "zone",
61349	//     "resource"
61350	//   ],
61351	//   "parameters": {
61352	//     "project": {
61353	//       "description": "Project ID for this request.",
61354	//       "location": "path",
61355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61356	//       "required": true,
61357	//       "type": "string"
61358	//     },
61359	//     "resource": {
61360	//       "description": "Name or id of the resource for this request.",
61361	//       "location": "path",
61362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61363	//       "required": true,
61364	//       "type": "string"
61365	//     },
61366	//     "zone": {
61367	//       "description": "The name of the zone for this request.",
61368	//       "location": "path",
61369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61370	//       "required": true,
61371	//       "type": "string"
61372	//     }
61373	//   },
61374	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61375	//   "request": {
61376	//     "$ref": "TestPermissionsRequest"
61377	//   },
61378	//   "response": {
61379	//     "$ref": "TestPermissionsResponse"
61380	//   },
61381	//   "scopes": [
61382	//     "https://www.googleapis.com/auth/cloud-platform",
61383	//     "https://www.googleapis.com/auth/compute",
61384	//     "https://www.googleapis.com/auth/compute.readonly"
61385	//   ]
61386	// }
61387
61388}
61389
61390// method id "compute.externalVpnGateways.delete":
61391
61392type ExternalVpnGatewaysDeleteCall struct {
61393	s                  *Service
61394	project            string
61395	externalVpnGateway string
61396	urlParams_         gensupport.URLParams
61397	ctx_               context.Context
61398	header_            http.Header
61399}
61400
61401// Delete: Deletes the specified externalVpnGateway.
61402//
61403// - externalVpnGateway: Name of the externalVpnGateways to delete.
61404// - project: Project ID for this request.
61405func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
61406	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61407	c.project = project
61408	c.externalVpnGateway = externalVpnGateway
61409	return c
61410}
61411
61412// RequestId sets the optional parameter "requestId": An optional
61413// request ID to identify requests. Specify a unique request ID so that
61414// if you must retry your request, the server will know to ignore the
61415// request if it has already been completed. For example, consider a
61416// situation where you make an initial request and the request times
61417// out. If you make the request again with the same request ID, the
61418// server can check if original operation with the same request ID was
61419// received, and if so, will ignore the second request. This prevents
61420// clients from accidentally creating duplicate commitments. The request
61421// ID must be a valid UUID with the exception that zero UUID is not
61422// supported ( 00000000-0000-0000-0000-000000000000).
61423func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
61424	c.urlParams_.Set("requestId", requestId)
61425	return c
61426}
61427
61428// Fields allows partial responses to be retrieved. See
61429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61430// for more information.
61431func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
61432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61433	return c
61434}
61435
61436// Context sets the context to be used in this call's Do method. Any
61437// pending HTTP request will be aborted if the provided context is
61438// canceled.
61439func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
61440	c.ctx_ = ctx
61441	return c
61442}
61443
61444// Header returns an http.Header that can be modified by the caller to
61445// add HTTP headers to the request.
61446func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
61447	if c.header_ == nil {
61448		c.header_ = make(http.Header)
61449	}
61450	return c.header_
61451}
61452
61453func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
61454	reqHeaders := make(http.Header)
61455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
61456	for k, v := range c.header_ {
61457		reqHeaders[k] = v
61458	}
61459	reqHeaders.Set("User-Agent", c.s.userAgent())
61460	var body io.Reader = nil
61461	c.urlParams_.Set("alt", alt)
61462	c.urlParams_.Set("prettyPrint", "false")
61463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
61464	urls += "?" + c.urlParams_.Encode()
61465	req, err := http.NewRequest("DELETE", urls, body)
61466	if err != nil {
61467		return nil, err
61468	}
61469	req.Header = reqHeaders
61470	googleapi.Expand(req.URL, map[string]string{
61471		"project":            c.project,
61472		"externalVpnGateway": c.externalVpnGateway,
61473	})
61474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61475}
61476
61477// Do executes the "compute.externalVpnGateways.delete" call.
61478// Exactly one of *Operation or error will be non-nil. Any non-2xx
61479// status code is an error. Response headers are in either
61480// *Operation.ServerResponse.Header or (if a response was returned at
61481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61482// to check whether the returned error was because
61483// http.StatusNotModified was returned.
61484func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61485	gensupport.SetOptions(c.urlParams_, opts...)
61486	res, err := c.doRequest("json")
61487	if res != nil && res.StatusCode == http.StatusNotModified {
61488		if res.Body != nil {
61489			res.Body.Close()
61490		}
61491		return nil, &googleapi.Error{
61492			Code:   res.StatusCode,
61493			Header: res.Header,
61494		}
61495	}
61496	if err != nil {
61497		return nil, err
61498	}
61499	defer googleapi.CloseBody(res)
61500	if err := googleapi.CheckResponse(res); err != nil {
61501		return nil, err
61502	}
61503	ret := &Operation{
61504		ServerResponse: googleapi.ServerResponse{
61505			Header:         res.Header,
61506			HTTPStatusCode: res.StatusCode,
61507		},
61508	}
61509	target := &ret
61510	if err := gensupport.DecodeResponse(target, res); err != nil {
61511		return nil, err
61512	}
61513	return ret, nil
61514	// {
61515	//   "description": "Deletes the specified externalVpnGateway.",
61516	//   "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61517	//   "httpMethod": "DELETE",
61518	//   "id": "compute.externalVpnGateways.delete",
61519	//   "parameterOrder": [
61520	//     "project",
61521	//     "externalVpnGateway"
61522	//   ],
61523	//   "parameters": {
61524	//     "externalVpnGateway": {
61525	//       "description": "Name of the externalVpnGateways to delete.",
61526	//       "location": "path",
61527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61528	//       "required": true,
61529	//       "type": "string"
61530	//     },
61531	//     "project": {
61532	//       "description": "Project ID for this request.",
61533	//       "location": "path",
61534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61535	//       "required": true,
61536	//       "type": "string"
61537	//     },
61538	//     "requestId": {
61539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61540	//       "location": "query",
61541	//       "type": "string"
61542	//     }
61543	//   },
61544	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61545	//   "response": {
61546	//     "$ref": "Operation"
61547	//   },
61548	//   "scopes": [
61549	//     "https://www.googleapis.com/auth/cloud-platform",
61550	//     "https://www.googleapis.com/auth/compute"
61551	//   ]
61552	// }
61553
61554}
61555
61556// method id "compute.externalVpnGateways.get":
61557
61558type ExternalVpnGatewaysGetCall struct {
61559	s                  *Service
61560	project            string
61561	externalVpnGateway string
61562	urlParams_         gensupport.URLParams
61563	ifNoneMatch_       string
61564	ctx_               context.Context
61565	header_            http.Header
61566}
61567
61568// Get: Returns the specified externalVpnGateway. Get a list of
61569// available externalVpnGateways by making a list() request.
61570//
61571// - externalVpnGateway: Name of the externalVpnGateway to return.
61572// - project: Project ID for this request.
61573func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
61574	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61575	c.project = project
61576	c.externalVpnGateway = externalVpnGateway
61577	return c
61578}
61579
61580// Fields allows partial responses to be retrieved. See
61581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61582// for more information.
61583func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
61584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61585	return c
61586}
61587
61588// IfNoneMatch sets the optional parameter which makes the operation
61589// fail if the object's ETag matches the given value. This is useful for
61590// getting updates only after the object has changed since the last
61591// request. Use googleapi.IsNotModified to check whether the response
61592// error from Do is the result of In-None-Match.
61593func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
61594	c.ifNoneMatch_ = entityTag
61595	return c
61596}
61597
61598// Context sets the context to be used in this call's Do method. Any
61599// pending HTTP request will be aborted if the provided context is
61600// canceled.
61601func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
61602	c.ctx_ = ctx
61603	return c
61604}
61605
61606// Header returns an http.Header that can be modified by the caller to
61607// add HTTP headers to the request.
61608func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
61609	if c.header_ == nil {
61610		c.header_ = make(http.Header)
61611	}
61612	return c.header_
61613}
61614
61615func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
61616	reqHeaders := make(http.Header)
61617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
61618	for k, v := range c.header_ {
61619		reqHeaders[k] = v
61620	}
61621	reqHeaders.Set("User-Agent", c.s.userAgent())
61622	if c.ifNoneMatch_ != "" {
61623		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61624	}
61625	var body io.Reader = nil
61626	c.urlParams_.Set("alt", alt)
61627	c.urlParams_.Set("prettyPrint", "false")
61628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
61629	urls += "?" + c.urlParams_.Encode()
61630	req, err := http.NewRequest("GET", urls, body)
61631	if err != nil {
61632		return nil, err
61633	}
61634	req.Header = reqHeaders
61635	googleapi.Expand(req.URL, map[string]string{
61636		"project":            c.project,
61637		"externalVpnGateway": c.externalVpnGateway,
61638	})
61639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61640}
61641
61642// Do executes the "compute.externalVpnGateways.get" call.
61643// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
61644// non-2xx status code is an error. Response headers are in either
61645// *ExternalVpnGateway.ServerResponse.Header or (if a response was
61646// returned at all) in error.(*googleapi.Error).Header. Use
61647// googleapi.IsNotModified to check whether the returned error was
61648// because http.StatusNotModified was returned.
61649func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
61650	gensupport.SetOptions(c.urlParams_, opts...)
61651	res, err := c.doRequest("json")
61652	if res != nil && res.StatusCode == http.StatusNotModified {
61653		if res.Body != nil {
61654			res.Body.Close()
61655		}
61656		return nil, &googleapi.Error{
61657			Code:   res.StatusCode,
61658			Header: res.Header,
61659		}
61660	}
61661	if err != nil {
61662		return nil, err
61663	}
61664	defer googleapi.CloseBody(res)
61665	if err := googleapi.CheckResponse(res); err != nil {
61666		return nil, err
61667	}
61668	ret := &ExternalVpnGateway{
61669		ServerResponse: googleapi.ServerResponse{
61670			Header:         res.Header,
61671			HTTPStatusCode: res.StatusCode,
61672		},
61673	}
61674	target := &ret
61675	if err := gensupport.DecodeResponse(target, res); err != nil {
61676		return nil, err
61677	}
61678	return ret, nil
61679	// {
61680	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
61681	//   "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61682	//   "httpMethod": "GET",
61683	//   "id": "compute.externalVpnGateways.get",
61684	//   "parameterOrder": [
61685	//     "project",
61686	//     "externalVpnGateway"
61687	//   ],
61688	//   "parameters": {
61689	//     "externalVpnGateway": {
61690	//       "description": "Name of the externalVpnGateway to return.",
61691	//       "location": "path",
61692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61693	//       "required": true,
61694	//       "type": "string"
61695	//     },
61696	//     "project": {
61697	//       "description": "Project ID for this request.",
61698	//       "location": "path",
61699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61700	//       "required": true,
61701	//       "type": "string"
61702	//     }
61703	//   },
61704	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61705	//   "response": {
61706	//     "$ref": "ExternalVpnGateway"
61707	//   },
61708	//   "scopes": [
61709	//     "https://www.googleapis.com/auth/cloud-platform",
61710	//     "https://www.googleapis.com/auth/compute",
61711	//     "https://www.googleapis.com/auth/compute.readonly"
61712	//   ]
61713	// }
61714
61715}
61716
61717// method id "compute.externalVpnGateways.insert":
61718
61719type ExternalVpnGatewaysInsertCall struct {
61720	s                  *Service
61721	project            string
61722	externalvpngateway *ExternalVpnGateway
61723	urlParams_         gensupport.URLParams
61724	ctx_               context.Context
61725	header_            http.Header
61726}
61727
61728// Insert: Creates a ExternalVpnGateway in the specified project using
61729// the data included in the request.
61730//
61731// - project: Project ID for this request.
61732func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
61733	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61734	c.project = project
61735	c.externalvpngateway = externalvpngateway
61736	return c
61737}
61738
61739// RequestId sets the optional parameter "requestId": An optional
61740// request ID to identify requests. Specify a unique request ID so that
61741// if you must retry your request, the server will know to ignore the
61742// request if it has already been completed. For example, consider a
61743// situation where you make an initial request and the request times
61744// out. If you make the request again with the same request ID, the
61745// server can check if original operation with the same request ID was
61746// received, and if so, will ignore the second request. This prevents
61747// clients from accidentally creating duplicate commitments. The request
61748// ID must be a valid UUID with the exception that zero UUID is not
61749// supported ( 00000000-0000-0000-0000-000000000000).
61750func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
61751	c.urlParams_.Set("requestId", requestId)
61752	return c
61753}
61754
61755// Fields allows partial responses to be retrieved. See
61756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61757// for more information.
61758func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
61759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61760	return c
61761}
61762
61763// Context sets the context to be used in this call's Do method. Any
61764// pending HTTP request will be aborted if the provided context is
61765// canceled.
61766func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
61767	c.ctx_ = ctx
61768	return c
61769}
61770
61771// Header returns an http.Header that can be modified by the caller to
61772// add HTTP headers to the request.
61773func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
61774	if c.header_ == nil {
61775		c.header_ = make(http.Header)
61776	}
61777	return c.header_
61778}
61779
61780func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
61781	reqHeaders := make(http.Header)
61782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
61783	for k, v := range c.header_ {
61784		reqHeaders[k] = v
61785	}
61786	reqHeaders.Set("User-Agent", c.s.userAgent())
61787	var body io.Reader = nil
61788	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
61789	if err != nil {
61790		return nil, err
61791	}
61792	reqHeaders.Set("Content-Type", "application/json")
61793	c.urlParams_.Set("alt", alt)
61794	c.urlParams_.Set("prettyPrint", "false")
61795	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
61796	urls += "?" + c.urlParams_.Encode()
61797	req, err := http.NewRequest("POST", urls, body)
61798	if err != nil {
61799		return nil, err
61800	}
61801	req.Header = reqHeaders
61802	googleapi.Expand(req.URL, map[string]string{
61803		"project": c.project,
61804	})
61805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61806}
61807
61808// Do executes the "compute.externalVpnGateways.insert" call.
61809// Exactly one of *Operation or error will be non-nil. Any non-2xx
61810// status code is an error. Response headers are in either
61811// *Operation.ServerResponse.Header or (if a response was returned at
61812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61813// to check whether the returned error was because
61814// http.StatusNotModified was returned.
61815func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61816	gensupport.SetOptions(c.urlParams_, opts...)
61817	res, err := c.doRequest("json")
61818	if res != nil && res.StatusCode == http.StatusNotModified {
61819		if res.Body != nil {
61820			res.Body.Close()
61821		}
61822		return nil, &googleapi.Error{
61823			Code:   res.StatusCode,
61824			Header: res.Header,
61825		}
61826	}
61827	if err != nil {
61828		return nil, err
61829	}
61830	defer googleapi.CloseBody(res)
61831	if err := googleapi.CheckResponse(res); err != nil {
61832		return nil, err
61833	}
61834	ret := &Operation{
61835		ServerResponse: googleapi.ServerResponse{
61836			Header:         res.Header,
61837			HTTPStatusCode: res.StatusCode,
61838		},
61839	}
61840	target := &ret
61841	if err := gensupport.DecodeResponse(target, res); err != nil {
61842		return nil, err
61843	}
61844	return ret, nil
61845	// {
61846	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
61847	//   "flatPath": "projects/{project}/global/externalVpnGateways",
61848	//   "httpMethod": "POST",
61849	//   "id": "compute.externalVpnGateways.insert",
61850	//   "parameterOrder": [
61851	//     "project"
61852	//   ],
61853	//   "parameters": {
61854	//     "project": {
61855	//       "description": "Project ID for this request.",
61856	//       "location": "path",
61857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61858	//       "required": true,
61859	//       "type": "string"
61860	//     },
61861	//     "requestId": {
61862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61863	//       "location": "query",
61864	//       "type": "string"
61865	//     }
61866	//   },
61867	//   "path": "projects/{project}/global/externalVpnGateways",
61868	//   "request": {
61869	//     "$ref": "ExternalVpnGateway"
61870	//   },
61871	//   "response": {
61872	//     "$ref": "Operation"
61873	//   },
61874	//   "scopes": [
61875	//     "https://www.googleapis.com/auth/cloud-platform",
61876	//     "https://www.googleapis.com/auth/compute"
61877	//   ]
61878	// }
61879
61880}
61881
61882// method id "compute.externalVpnGateways.list":
61883
61884type ExternalVpnGatewaysListCall struct {
61885	s            *Service
61886	project      string
61887	urlParams_   gensupport.URLParams
61888	ifNoneMatch_ string
61889	ctx_         context.Context
61890	header_      http.Header
61891}
61892
61893// List: Retrieves the list of ExternalVpnGateway available to the
61894// specified project.
61895//
61896// - project: Project ID for this request.
61897func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
61898	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61899	c.project = project
61900	return c
61901}
61902
61903// Filter sets the optional parameter "filter": A filter expression that
61904// filters resources listed in the response. The expression must specify
61905// the field name, a comparison operator, and the value that you want to
61906// use for filtering. The value must be a string, a number, or a
61907// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61908// `<`. For example, if you are filtering Compute Engine instances, you
61909// can exclude instances named `example-instance` by specifying `name !=
61910// example-instance`. You can also filter nested fields. For example,
61911// you could specify `scheduling.automaticRestart = false` to include
61912// instances only if they are not scheduled for automatic restarts. You
61913// can use filtering on nested fields to filter based on resource
61914// labels. To filter on multiple expressions, provide each separate
61915// expression within parentheses. For example: ```
61916// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
61917// ``` By default, each expression is an `AND` expression. However, you
61918// can include `AND` and `OR` expressions explicitly. For example: ```
61919// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
61920// AND (scheduling.automaticRestart = true) ```
61921func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
61922	c.urlParams_.Set("filter", filter)
61923	return c
61924}
61925
61926// MaxResults sets the optional parameter "maxResults": The maximum
61927// number of results per page that should be returned. If the number of
61928// available results is larger than `maxResults`, Compute Engine returns
61929// a `nextPageToken` that can be used to get the next page of results in
61930// subsequent list requests. Acceptable values are `0` to `500`,
61931// inclusive. (Default: `500`)
61932func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
61933	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61934	return c
61935}
61936
61937// OrderBy sets the optional parameter "orderBy": Sorts list results by
61938// a certain order. By default, results are returned in alphanumerical
61939// order based on the resource name. You can also sort results in
61940// descending order based on the creation timestamp using
61941// `orderBy="creationTimestamp desc". This sorts results based on the
61942// `creationTimestamp` field in reverse chronological order (newest
61943// result first). Use this to sort resources like operations so that the
61944// newest operation is returned first. Currently, only sorting by `name`
61945// or `creationTimestamp desc` is supported.
61946func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
61947	c.urlParams_.Set("orderBy", orderBy)
61948	return c
61949}
61950
61951// PageToken sets the optional parameter "pageToken": Specifies a page
61952// token to use. Set `pageToken` to the `nextPageToken` returned by a
61953// previous list request to get the next page of results.
61954func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
61955	c.urlParams_.Set("pageToken", pageToken)
61956	return c
61957}
61958
61959// ReturnPartialSuccess sets the optional parameter
61960// "returnPartialSuccess": Opt-in for partial success behavior which
61961// provides partial results in case of failure. The default value is
61962// false.
61963func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
61964	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
61965	return c
61966}
61967
61968// Fields allows partial responses to be retrieved. See
61969// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61970// for more information.
61971func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
61972	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61973	return c
61974}
61975
61976// IfNoneMatch sets the optional parameter which makes the operation
61977// fail if the object's ETag matches the given value. This is useful for
61978// getting updates only after the object has changed since the last
61979// request. Use googleapi.IsNotModified to check whether the response
61980// error from Do is the result of In-None-Match.
61981func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
61982	c.ifNoneMatch_ = entityTag
61983	return c
61984}
61985
61986// Context sets the context to be used in this call's Do method. Any
61987// pending HTTP request will be aborted if the provided context is
61988// canceled.
61989func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
61990	c.ctx_ = ctx
61991	return c
61992}
61993
61994// Header returns an http.Header that can be modified by the caller to
61995// add HTTP headers to the request.
61996func (c *ExternalVpnGatewaysListCall) Header() http.Header {
61997	if c.header_ == nil {
61998		c.header_ = make(http.Header)
61999	}
62000	return c.header_
62001}
62002
62003func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
62004	reqHeaders := make(http.Header)
62005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62006	for k, v := range c.header_ {
62007		reqHeaders[k] = v
62008	}
62009	reqHeaders.Set("User-Agent", c.s.userAgent())
62010	if c.ifNoneMatch_ != "" {
62011		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62012	}
62013	var body io.Reader = nil
62014	c.urlParams_.Set("alt", alt)
62015	c.urlParams_.Set("prettyPrint", "false")
62016	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
62017	urls += "?" + c.urlParams_.Encode()
62018	req, err := http.NewRequest("GET", urls, body)
62019	if err != nil {
62020		return nil, err
62021	}
62022	req.Header = reqHeaders
62023	googleapi.Expand(req.URL, map[string]string{
62024		"project": c.project,
62025	})
62026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62027}
62028
62029// Do executes the "compute.externalVpnGateways.list" call.
62030// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
62031// non-2xx status code is an error. Response headers are in either
62032// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
62033// returned at all) in error.(*googleapi.Error).Header. Use
62034// googleapi.IsNotModified to check whether the returned error was
62035// because http.StatusNotModified was returned.
62036func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
62037	gensupport.SetOptions(c.urlParams_, opts...)
62038	res, err := c.doRequest("json")
62039	if res != nil && res.StatusCode == http.StatusNotModified {
62040		if res.Body != nil {
62041			res.Body.Close()
62042		}
62043		return nil, &googleapi.Error{
62044			Code:   res.StatusCode,
62045			Header: res.Header,
62046		}
62047	}
62048	if err != nil {
62049		return nil, err
62050	}
62051	defer googleapi.CloseBody(res)
62052	if err := googleapi.CheckResponse(res); err != nil {
62053		return nil, err
62054	}
62055	ret := &ExternalVpnGatewayList{
62056		ServerResponse: googleapi.ServerResponse{
62057			Header:         res.Header,
62058			HTTPStatusCode: res.StatusCode,
62059		},
62060	}
62061	target := &ret
62062	if err := gensupport.DecodeResponse(target, res); err != nil {
62063		return nil, err
62064	}
62065	return ret, nil
62066	// {
62067	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
62068	//   "flatPath": "projects/{project}/global/externalVpnGateways",
62069	//   "httpMethod": "GET",
62070	//   "id": "compute.externalVpnGateways.list",
62071	//   "parameterOrder": [
62072	//     "project"
62073	//   ],
62074	//   "parameters": {
62075	//     "filter": {
62076	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
62077	//       "location": "query",
62078	//       "type": "string"
62079	//     },
62080	//     "maxResults": {
62081	//       "default": "500",
62082	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62083	//       "format": "uint32",
62084	//       "location": "query",
62085	//       "minimum": "0",
62086	//       "type": "integer"
62087	//     },
62088	//     "orderBy": {
62089	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
62090	//       "location": "query",
62091	//       "type": "string"
62092	//     },
62093	//     "pageToken": {
62094	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62095	//       "location": "query",
62096	//       "type": "string"
62097	//     },
62098	//     "project": {
62099	//       "description": "Project ID for this request.",
62100	//       "location": "path",
62101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62102	//       "required": true,
62103	//       "type": "string"
62104	//     },
62105	//     "returnPartialSuccess": {
62106	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
62107	//       "location": "query",
62108	//       "type": "boolean"
62109	//     }
62110	//   },
62111	//   "path": "projects/{project}/global/externalVpnGateways",
62112	//   "response": {
62113	//     "$ref": "ExternalVpnGatewayList"
62114	//   },
62115	//   "scopes": [
62116	//     "https://www.googleapis.com/auth/cloud-platform",
62117	//     "https://www.googleapis.com/auth/compute",
62118	//     "https://www.googleapis.com/auth/compute.readonly"
62119	//   ]
62120	// }
62121
62122}
62123
62124// Pages invokes f for each page of results.
62125// A non-nil error returned from f will halt the iteration.
62126// The provided context supersedes any context provided to the Context method.
62127func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
62128	c.ctx_ = ctx
62129	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62130	for {
62131		x, err := c.Do()
62132		if err != nil {
62133			return err
62134		}
62135		if err := f(x); err != nil {
62136			return err
62137		}
62138		if x.NextPageToken == "" {
62139			return nil
62140		}
62141		c.PageToken(x.NextPageToken)
62142	}
62143}
62144
62145// method id "compute.externalVpnGateways.setLabels":
62146
62147type ExternalVpnGatewaysSetLabelsCall struct {
62148	s                      *Service
62149	project                string
62150	resource               string
62151	globalsetlabelsrequest *GlobalSetLabelsRequest
62152	urlParams_             gensupport.URLParams
62153	ctx_                   context.Context
62154	header_                http.Header
62155}
62156
62157// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
62158// about labels, read the Labeling Resources documentation.
62159//
62160// - project: Project ID for this request.
62161// - resource: Name or id of the resource for this request.
62162func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
62163	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62164	c.project = project
62165	c.resource = resource
62166	c.globalsetlabelsrequest = globalsetlabelsrequest
62167	return c
62168}
62169
62170// Fields allows partial responses to be retrieved. See
62171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62172// for more information.
62173func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
62174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62175	return c
62176}
62177
62178// Context sets the context to be used in this call's Do method. Any
62179// pending HTTP request will be aborted if the provided context is
62180// canceled.
62181func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
62182	c.ctx_ = ctx
62183	return c
62184}
62185
62186// Header returns an http.Header that can be modified by the caller to
62187// add HTTP headers to the request.
62188func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
62189	if c.header_ == nil {
62190		c.header_ = make(http.Header)
62191	}
62192	return c.header_
62193}
62194
62195func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
62196	reqHeaders := make(http.Header)
62197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62198	for k, v := range c.header_ {
62199		reqHeaders[k] = v
62200	}
62201	reqHeaders.Set("User-Agent", c.s.userAgent())
62202	var body io.Reader = nil
62203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
62204	if err != nil {
62205		return nil, err
62206	}
62207	reqHeaders.Set("Content-Type", "application/json")
62208	c.urlParams_.Set("alt", alt)
62209	c.urlParams_.Set("prettyPrint", "false")
62210	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels")
62211	urls += "?" + c.urlParams_.Encode()
62212	req, err := http.NewRequest("POST", urls, body)
62213	if err != nil {
62214		return nil, err
62215	}
62216	req.Header = reqHeaders
62217	googleapi.Expand(req.URL, map[string]string{
62218		"project":  c.project,
62219		"resource": c.resource,
62220	})
62221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62222}
62223
62224// Do executes the "compute.externalVpnGateways.setLabels" call.
62225// Exactly one of *Operation or error will be non-nil. Any non-2xx
62226// status code is an error. Response headers are in either
62227// *Operation.ServerResponse.Header or (if a response was returned at
62228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62229// to check whether the returned error was because
62230// http.StatusNotModified was returned.
62231func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62232	gensupport.SetOptions(c.urlParams_, opts...)
62233	res, err := c.doRequest("json")
62234	if res != nil && res.StatusCode == http.StatusNotModified {
62235		if res.Body != nil {
62236			res.Body.Close()
62237		}
62238		return nil, &googleapi.Error{
62239			Code:   res.StatusCode,
62240			Header: res.Header,
62241		}
62242	}
62243	if err != nil {
62244		return nil, err
62245	}
62246	defer googleapi.CloseBody(res)
62247	if err := googleapi.CheckResponse(res); err != nil {
62248		return nil, err
62249	}
62250	ret := &Operation{
62251		ServerResponse: googleapi.ServerResponse{
62252			Header:         res.Header,
62253			HTTPStatusCode: res.StatusCode,
62254		},
62255	}
62256	target := &ret
62257	if err := gensupport.DecodeResponse(target, res); err != nil {
62258		return nil, err
62259	}
62260	return ret, nil
62261	// {
62262	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
62263	//   "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
62264	//   "httpMethod": "POST",
62265	//   "id": "compute.externalVpnGateways.setLabels",
62266	//   "parameterOrder": [
62267	//     "project",
62268	//     "resource"
62269	//   ],
62270	//   "parameters": {
62271	//     "project": {
62272	//       "description": "Project ID for this request.",
62273	//       "location": "path",
62274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62275	//       "required": true,
62276	//       "type": "string"
62277	//     },
62278	//     "resource": {
62279	//       "description": "Name or id of the resource for this request.",
62280	//       "location": "path",
62281	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62282	//       "required": true,
62283	//       "type": "string"
62284	//     }
62285	//   },
62286	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
62287	//   "request": {
62288	//     "$ref": "GlobalSetLabelsRequest"
62289	//   },
62290	//   "response": {
62291	//     "$ref": "Operation"
62292	//   },
62293	//   "scopes": [
62294	//     "https://www.googleapis.com/auth/cloud-platform",
62295	//     "https://www.googleapis.com/auth/compute"
62296	//   ]
62297	// }
62298
62299}
62300
62301// method id "compute.externalVpnGateways.testIamPermissions":
62302
62303type ExternalVpnGatewaysTestIamPermissionsCall struct {
62304	s                      *Service
62305	project                string
62306	resource               string
62307	testpermissionsrequest *TestPermissionsRequest
62308	urlParams_             gensupport.URLParams
62309	ctx_                   context.Context
62310	header_                http.Header
62311}
62312
62313// TestIamPermissions: Returns permissions that a caller has on the
62314// specified resource.
62315//
62316// - project: Project ID for this request.
62317// - resource: Name or id of the resource for this request.
62318func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
62319	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62320	c.project = project
62321	c.resource = resource
62322	c.testpermissionsrequest = testpermissionsrequest
62323	return c
62324}
62325
62326// Fields allows partial responses to be retrieved. See
62327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62328// for more information.
62329func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
62330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62331	return c
62332}
62333
62334// Context sets the context to be used in this call's Do method. Any
62335// pending HTTP request will be aborted if the provided context is
62336// canceled.
62337func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
62338	c.ctx_ = ctx
62339	return c
62340}
62341
62342// Header returns an http.Header that can be modified by the caller to
62343// add HTTP headers to the request.
62344func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
62345	if c.header_ == nil {
62346		c.header_ = make(http.Header)
62347	}
62348	return c.header_
62349}
62350
62351func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62352	reqHeaders := make(http.Header)
62353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62354	for k, v := range c.header_ {
62355		reqHeaders[k] = v
62356	}
62357	reqHeaders.Set("User-Agent", c.s.userAgent())
62358	var body io.Reader = nil
62359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62360	if err != nil {
62361		return nil, err
62362	}
62363	reqHeaders.Set("Content-Type", "application/json")
62364	c.urlParams_.Set("alt", alt)
62365	c.urlParams_.Set("prettyPrint", "false")
62366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions")
62367	urls += "?" + c.urlParams_.Encode()
62368	req, err := http.NewRequest("POST", urls, body)
62369	if err != nil {
62370		return nil, err
62371	}
62372	req.Header = reqHeaders
62373	googleapi.Expand(req.URL, map[string]string{
62374		"project":  c.project,
62375		"resource": c.resource,
62376	})
62377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62378}
62379
62380// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
62381// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62382// non-2xx status code is an error. Response headers are in either
62383// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62384// returned at all) in error.(*googleapi.Error).Header. Use
62385// googleapi.IsNotModified to check whether the returned error was
62386// because http.StatusNotModified was returned.
62387func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62388	gensupport.SetOptions(c.urlParams_, opts...)
62389	res, err := c.doRequest("json")
62390	if res != nil && res.StatusCode == http.StatusNotModified {
62391		if res.Body != nil {
62392			res.Body.Close()
62393		}
62394		return nil, &googleapi.Error{
62395			Code:   res.StatusCode,
62396			Header: res.Header,
62397		}
62398	}
62399	if err != nil {
62400		return nil, err
62401	}
62402	defer googleapi.CloseBody(res)
62403	if err := googleapi.CheckResponse(res); err != nil {
62404		return nil, err
62405	}
62406	ret := &TestPermissionsResponse{
62407		ServerResponse: googleapi.ServerResponse{
62408			Header:         res.Header,
62409			HTTPStatusCode: res.StatusCode,
62410		},
62411	}
62412	target := &ret
62413	if err := gensupport.DecodeResponse(target, res); err != nil {
62414		return nil, err
62415	}
62416	return ret, nil
62417	// {
62418	//   "description": "Returns permissions that a caller has on the specified resource.",
62419	//   "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62420	//   "httpMethod": "POST",
62421	//   "id": "compute.externalVpnGateways.testIamPermissions",
62422	//   "parameterOrder": [
62423	//     "project",
62424	//     "resource"
62425	//   ],
62426	//   "parameters": {
62427	//     "project": {
62428	//       "description": "Project ID for this request.",
62429	//       "location": "path",
62430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62431	//       "required": true,
62432	//       "type": "string"
62433	//     },
62434	//     "resource": {
62435	//       "description": "Name or id of the resource for this request.",
62436	//       "location": "path",
62437	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62438	//       "required": true,
62439	//       "type": "string"
62440	//     }
62441	//   },
62442	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62443	//   "request": {
62444	//     "$ref": "TestPermissionsRequest"
62445	//   },
62446	//   "response": {
62447	//     "$ref": "TestPermissionsResponse"
62448	//   },
62449	//   "scopes": [
62450	//     "https://www.googleapis.com/auth/cloud-platform",
62451	//     "https://www.googleapis.com/auth/compute",
62452	//     "https://www.googleapis.com/auth/compute.readonly"
62453	//   ]
62454	// }
62455
62456}
62457
62458// method id "compute.firewallPolicies.addAssociation":
62459
62460type FirewallPoliciesAddAssociationCall struct {
62461	s                         *Service
62462	firewallPolicy            string
62463	firewallpolicyassociation *FirewallPolicyAssociation
62464	urlParams_                gensupport.URLParams
62465	ctx_                      context.Context
62466	header_                   http.Header
62467}
62468
62469// AddAssociation: Inserts an association for the specified firewall
62470// policy.
62471//
62472// - firewallPolicy: Name of the firewall policy to update.
62473func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall {
62474	c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62475	c.firewallPolicy = firewallPolicy
62476	c.firewallpolicyassociation = firewallpolicyassociation
62477	return c
62478}
62479
62480// ReplaceExistingAssociation sets the optional parameter
62481// "replaceExistingAssociation": Indicates whether or not to replace it
62482// if an association of the attachment already exists. This is false by
62483// default, in which case an error will be returned if an association
62484// already exists.
62485func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall {
62486	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
62487	return c
62488}
62489
62490// RequestId sets the optional parameter "requestId": An optional
62491// request ID to identify requests. Specify a unique request ID so that
62492// if you must retry your request, the server will know to ignore the
62493// request if it has already been completed. For example, consider a
62494// situation where you make an initial request and the request times
62495// out. If you make the request again with the same request ID, the
62496// server can check if original operation with the same request ID was
62497// received, and if so, will ignore the second request. This prevents
62498// clients from accidentally creating duplicate commitments. The request
62499// ID must be a valid UUID with the exception that zero UUID is not
62500// supported ( 00000000-0000-0000-0000-000000000000).
62501func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall {
62502	c.urlParams_.Set("requestId", requestId)
62503	return c
62504}
62505
62506// Fields allows partial responses to be retrieved. See
62507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62508// for more information.
62509func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall {
62510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62511	return c
62512}
62513
62514// Context sets the context to be used in this call's Do method. Any
62515// pending HTTP request will be aborted if the provided context is
62516// canceled.
62517func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall {
62518	c.ctx_ = ctx
62519	return c
62520}
62521
62522// Header returns an http.Header that can be modified by the caller to
62523// add HTTP headers to the request.
62524func (c *FirewallPoliciesAddAssociationCall) Header() http.Header {
62525	if c.header_ == nil {
62526		c.header_ = make(http.Header)
62527	}
62528	return c.header_
62529}
62530
62531func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
62532	reqHeaders := make(http.Header)
62533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62534	for k, v := range c.header_ {
62535		reqHeaders[k] = v
62536	}
62537	reqHeaders.Set("User-Agent", c.s.userAgent())
62538	var body io.Reader = nil
62539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation)
62540	if err != nil {
62541		return nil, err
62542	}
62543	reqHeaders.Set("Content-Type", "application/json")
62544	c.urlParams_.Set("alt", alt)
62545	c.urlParams_.Set("prettyPrint", "false")
62546	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation")
62547	urls += "?" + c.urlParams_.Encode()
62548	req, err := http.NewRequest("POST", urls, body)
62549	if err != nil {
62550		return nil, err
62551	}
62552	req.Header = reqHeaders
62553	googleapi.Expand(req.URL, map[string]string{
62554		"firewallPolicy": c.firewallPolicy,
62555	})
62556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62557}
62558
62559// Do executes the "compute.firewallPolicies.addAssociation" call.
62560// Exactly one of *Operation or error will be non-nil. Any non-2xx
62561// status code is an error. Response headers are in either
62562// *Operation.ServerResponse.Header or (if a response was returned at
62563// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62564// to check whether the returned error was because
62565// http.StatusNotModified was returned.
62566func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62567	gensupport.SetOptions(c.urlParams_, opts...)
62568	res, err := c.doRequest("json")
62569	if res != nil && res.StatusCode == http.StatusNotModified {
62570		if res.Body != nil {
62571			res.Body.Close()
62572		}
62573		return nil, &googleapi.Error{
62574			Code:   res.StatusCode,
62575			Header: res.Header,
62576		}
62577	}
62578	if err != nil {
62579		return nil, err
62580	}
62581	defer googleapi.CloseBody(res)
62582	if err := googleapi.CheckResponse(res); err != nil {
62583		return nil, err
62584	}
62585	ret := &Operation{
62586		ServerResponse: googleapi.ServerResponse{
62587			Header:         res.Header,
62588			HTTPStatusCode: res.StatusCode,
62589		},
62590	}
62591	target := &ret
62592	if err := gensupport.DecodeResponse(target, res); err != nil {
62593		return nil, err
62594	}
62595	return ret, nil
62596	// {
62597	//   "description": "Inserts an association for the specified firewall policy.",
62598	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
62599	//   "httpMethod": "POST",
62600	//   "id": "compute.firewallPolicies.addAssociation",
62601	//   "parameterOrder": [
62602	//     "firewallPolicy"
62603	//   ],
62604	//   "parameters": {
62605	//     "firewallPolicy": {
62606	//       "description": "Name of the firewall policy to update.",
62607	//       "location": "path",
62608	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62609	//       "required": true,
62610	//       "type": "string"
62611	//     },
62612	//     "replaceExistingAssociation": {
62613	//       "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.",
62614	//       "location": "query",
62615	//       "type": "boolean"
62616	//     },
62617	//     "requestId": {
62618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
62619	//       "location": "query",
62620	//       "type": "string"
62621	//     }
62622	//   },
62623	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
62624	//   "request": {
62625	//     "$ref": "FirewallPolicyAssociation"
62626	//   },
62627	//   "response": {
62628	//     "$ref": "Operation"
62629	//   },
62630	//   "scopes": [
62631	//     "https://www.googleapis.com/auth/cloud-platform",
62632	//     "https://www.googleapis.com/auth/compute"
62633	//   ]
62634	// }
62635
62636}
62637
62638// method id "compute.firewallPolicies.addRule":
62639
62640type FirewallPoliciesAddRuleCall struct {
62641	s                  *Service
62642	firewallPolicy     string
62643	firewallpolicyrule *FirewallPolicyRule
62644	urlParams_         gensupport.URLParams
62645	ctx_               context.Context
62646	header_            http.Header
62647}
62648
62649// AddRule: Inserts a rule into a firewall policy.
62650//
62651// - firewallPolicy: Name of the firewall policy to update.
62652func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall {
62653	c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62654	c.firewallPolicy = firewallPolicy
62655	c.firewallpolicyrule = firewallpolicyrule
62656	return c
62657}
62658
62659// RequestId sets the optional parameter "requestId": An optional
62660// request ID to identify requests. Specify a unique request ID so that
62661// if you must retry your request, the server will know to ignore the
62662// request if it has already been completed. For example, consider a
62663// situation where you make an initial request and the request times
62664// out. If you make the request again with the same request ID, the
62665// server can check if original operation with the same request ID was
62666// received, and if so, will ignore the second request. This prevents
62667// clients from accidentally creating duplicate commitments. The request
62668// ID must be a valid UUID with the exception that zero UUID is not
62669// supported ( 00000000-0000-0000-0000-000000000000).
62670func (c *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall {
62671	c.urlParams_.Set("requestId", requestId)
62672	return c
62673}
62674
62675// Fields allows partial responses to be retrieved. See
62676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62677// for more information.
62678func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall {
62679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62680	return c
62681}
62682
62683// Context sets the context to be used in this call's Do method. Any
62684// pending HTTP request will be aborted if the provided context is
62685// canceled.
62686func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall {
62687	c.ctx_ = ctx
62688	return c
62689}
62690
62691// Header returns an http.Header that can be modified by the caller to
62692// add HTTP headers to the request.
62693func (c *FirewallPoliciesAddRuleCall) Header() http.Header {
62694	if c.header_ == nil {
62695		c.header_ = make(http.Header)
62696	}
62697	return c.header_
62698}
62699
62700func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
62701	reqHeaders := make(http.Header)
62702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62703	for k, v := range c.header_ {
62704		reqHeaders[k] = v
62705	}
62706	reqHeaders.Set("User-Agent", c.s.userAgent())
62707	var body io.Reader = nil
62708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
62709	if err != nil {
62710		return nil, err
62711	}
62712	reqHeaders.Set("Content-Type", "application/json")
62713	c.urlParams_.Set("alt", alt)
62714	c.urlParams_.Set("prettyPrint", "false")
62715	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule")
62716	urls += "?" + c.urlParams_.Encode()
62717	req, err := http.NewRequest("POST", urls, body)
62718	if err != nil {
62719		return nil, err
62720	}
62721	req.Header = reqHeaders
62722	googleapi.Expand(req.URL, map[string]string{
62723		"firewallPolicy": c.firewallPolicy,
62724	})
62725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62726}
62727
62728// Do executes the "compute.firewallPolicies.addRule" call.
62729// Exactly one of *Operation or error will be non-nil. Any non-2xx
62730// status code is an error. Response headers are in either
62731// *Operation.ServerResponse.Header or (if a response was returned at
62732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62733// to check whether the returned error was because
62734// http.StatusNotModified was returned.
62735func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62736	gensupport.SetOptions(c.urlParams_, opts...)
62737	res, err := c.doRequest("json")
62738	if res != nil && res.StatusCode == http.StatusNotModified {
62739		if res.Body != nil {
62740			res.Body.Close()
62741		}
62742		return nil, &googleapi.Error{
62743			Code:   res.StatusCode,
62744			Header: res.Header,
62745		}
62746	}
62747	if err != nil {
62748		return nil, err
62749	}
62750	defer googleapi.CloseBody(res)
62751	if err := googleapi.CheckResponse(res); err != nil {
62752		return nil, err
62753	}
62754	ret := &Operation{
62755		ServerResponse: googleapi.ServerResponse{
62756			Header:         res.Header,
62757			HTTPStatusCode: res.StatusCode,
62758		},
62759	}
62760	target := &ret
62761	if err := gensupport.DecodeResponse(target, res); err != nil {
62762		return nil, err
62763	}
62764	return ret, nil
62765	// {
62766	//   "description": "Inserts a rule into a firewall policy.",
62767	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
62768	//   "httpMethod": "POST",
62769	//   "id": "compute.firewallPolicies.addRule",
62770	//   "parameterOrder": [
62771	//     "firewallPolicy"
62772	//   ],
62773	//   "parameters": {
62774	//     "firewallPolicy": {
62775	//       "description": "Name of the firewall policy to update.",
62776	//       "location": "path",
62777	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62778	//       "required": true,
62779	//       "type": "string"
62780	//     },
62781	//     "requestId": {
62782	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
62783	//       "location": "query",
62784	//       "type": "string"
62785	//     }
62786	//   },
62787	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
62788	//   "request": {
62789	//     "$ref": "FirewallPolicyRule"
62790	//   },
62791	//   "response": {
62792	//     "$ref": "Operation"
62793	//   },
62794	//   "scopes": [
62795	//     "https://www.googleapis.com/auth/cloud-platform",
62796	//     "https://www.googleapis.com/auth/compute"
62797	//   ]
62798	// }
62799
62800}
62801
62802// method id "compute.firewallPolicies.cloneRules":
62803
62804type FirewallPoliciesCloneRulesCall struct {
62805	s              *Service
62806	firewallPolicy string
62807	urlParams_     gensupport.URLParams
62808	ctx_           context.Context
62809	header_        http.Header
62810}
62811
62812// CloneRules: Copies rules to the specified firewall policy.
62813//
62814// - firewallPolicy: Name of the firewall policy to update.
62815func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall {
62816	c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62817	c.firewallPolicy = firewallPolicy
62818	return c
62819}
62820
62821// RequestId sets the optional parameter "requestId": An optional
62822// request ID to identify requests. Specify a unique request ID so that
62823// if you must retry your request, the server will know to ignore the
62824// request if it has already been completed. For example, consider a
62825// situation where you make an initial request and the request times
62826// out. If you make the request again with the same request ID, the
62827// server can check if original operation with the same request ID was
62828// received, and if so, will ignore the second request. This prevents
62829// clients from accidentally creating duplicate commitments. The request
62830// ID must be a valid UUID with the exception that zero UUID is not
62831// supported ( 00000000-0000-0000-0000-000000000000).
62832func (c *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall {
62833	c.urlParams_.Set("requestId", requestId)
62834	return c
62835}
62836
62837// SourceFirewallPolicy sets the optional parameter
62838// "sourceFirewallPolicy": The firewall policy from which to copy rules.
62839func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall {
62840	c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy)
62841	return c
62842}
62843
62844// Fields allows partial responses to be retrieved. See
62845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62846// for more information.
62847func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall {
62848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62849	return c
62850}
62851
62852// Context sets the context to be used in this call's Do method. Any
62853// pending HTTP request will be aborted if the provided context is
62854// canceled.
62855func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall {
62856	c.ctx_ = ctx
62857	return c
62858}
62859
62860// Header returns an http.Header that can be modified by the caller to
62861// add HTTP headers to the request.
62862func (c *FirewallPoliciesCloneRulesCall) Header() http.Header {
62863	if c.header_ == nil {
62864		c.header_ = make(http.Header)
62865	}
62866	return c.header_
62867}
62868
62869func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) {
62870	reqHeaders := make(http.Header)
62871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
62872	for k, v := range c.header_ {
62873		reqHeaders[k] = v
62874	}
62875	reqHeaders.Set("User-Agent", c.s.userAgent())
62876	var body io.Reader = nil
62877	c.urlParams_.Set("alt", alt)
62878	c.urlParams_.Set("prettyPrint", "false")
62879	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules")
62880	urls += "?" + c.urlParams_.Encode()
62881	req, err := http.NewRequest("POST", urls, body)
62882	if err != nil {
62883		return nil, err
62884	}
62885	req.Header = reqHeaders
62886	googleapi.Expand(req.URL, map[string]string{
62887		"firewallPolicy": c.firewallPolicy,
62888	})
62889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62890}
62891
62892// Do executes the "compute.firewallPolicies.cloneRules" call.
62893// Exactly one of *Operation or error will be non-nil. Any non-2xx
62894// status code is an error. Response headers are in either
62895// *Operation.ServerResponse.Header or (if a response was returned at
62896// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62897// to check whether the returned error was because
62898// http.StatusNotModified was returned.
62899func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62900	gensupport.SetOptions(c.urlParams_, opts...)
62901	res, err := c.doRequest("json")
62902	if res != nil && res.StatusCode == http.StatusNotModified {
62903		if res.Body != nil {
62904			res.Body.Close()
62905		}
62906		return nil, &googleapi.Error{
62907			Code:   res.StatusCode,
62908			Header: res.Header,
62909		}
62910	}
62911	if err != nil {
62912		return nil, err
62913	}
62914	defer googleapi.CloseBody(res)
62915	if err := googleapi.CheckResponse(res); err != nil {
62916		return nil, err
62917	}
62918	ret := &Operation{
62919		ServerResponse: googleapi.ServerResponse{
62920			Header:         res.Header,
62921			HTTPStatusCode: res.StatusCode,
62922		},
62923	}
62924	target := &ret
62925	if err := gensupport.DecodeResponse(target, res); err != nil {
62926		return nil, err
62927	}
62928	return ret, nil
62929	// {
62930	//   "description": "Copies rules to the specified firewall policy.",
62931	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
62932	//   "httpMethod": "POST",
62933	//   "id": "compute.firewallPolicies.cloneRules",
62934	//   "parameterOrder": [
62935	//     "firewallPolicy"
62936	//   ],
62937	//   "parameters": {
62938	//     "firewallPolicy": {
62939	//       "description": "Name of the firewall policy to update.",
62940	//       "location": "path",
62941	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62942	//       "required": true,
62943	//       "type": "string"
62944	//     },
62945	//     "requestId": {
62946	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
62947	//       "location": "query",
62948	//       "type": "string"
62949	//     },
62950	//     "sourceFirewallPolicy": {
62951	//       "description": "The firewall policy from which to copy rules.",
62952	//       "location": "query",
62953	//       "type": "string"
62954	//     }
62955	//   },
62956	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
62957	//   "response": {
62958	//     "$ref": "Operation"
62959	//   },
62960	//   "scopes": [
62961	//     "https://www.googleapis.com/auth/cloud-platform",
62962	//     "https://www.googleapis.com/auth/compute"
62963	//   ]
62964	// }
62965
62966}
62967
62968// method id "compute.firewallPolicies.delete":
62969
62970type FirewallPoliciesDeleteCall struct {
62971	s              *Service
62972	firewallPolicy string
62973	urlParams_     gensupport.URLParams
62974	ctx_           context.Context
62975	header_        http.Header
62976}
62977
62978// Delete: Deletes the specified policy.
62979//
62980// - firewallPolicy: Name of the firewall policy to delete.
62981func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall {
62982	c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62983	c.firewallPolicy = firewallPolicy
62984	return c
62985}
62986
62987// RequestId sets the optional parameter "requestId": An optional
62988// request ID to identify requests. Specify a unique request ID so that
62989// if you must retry your request, the server will know to ignore the
62990// request if it has already been completed. For example, consider a
62991// situation where you make an initial request and the request times
62992// out. If you make the request again with the same request ID, the
62993// server can check if original operation with the same request ID was
62994// received, and if so, will ignore the second request. This prevents
62995// clients from accidentally creating duplicate commitments. The request
62996// ID must be a valid UUID with the exception that zero UUID is not
62997// supported ( 00000000-0000-0000-0000-000000000000).
62998func (c *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall {
62999	c.urlParams_.Set("requestId", requestId)
63000	return c
63001}
63002
63003// Fields allows partial responses to be retrieved. See
63004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63005// for more information.
63006func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall {
63007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63008	return c
63009}
63010
63011// Context sets the context to be used in this call's Do method. Any
63012// pending HTTP request will be aborted if the provided context is
63013// canceled.
63014func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall {
63015	c.ctx_ = ctx
63016	return c
63017}
63018
63019// Header returns an http.Header that can be modified by the caller to
63020// add HTTP headers to the request.
63021func (c *FirewallPoliciesDeleteCall) Header() http.Header {
63022	if c.header_ == nil {
63023		c.header_ = make(http.Header)
63024	}
63025	return c.header_
63026}
63027
63028func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
63029	reqHeaders := make(http.Header)
63030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63031	for k, v := range c.header_ {
63032		reqHeaders[k] = v
63033	}
63034	reqHeaders.Set("User-Agent", c.s.userAgent())
63035	var body io.Reader = nil
63036	c.urlParams_.Set("alt", alt)
63037	c.urlParams_.Set("prettyPrint", "false")
63038	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
63039	urls += "?" + c.urlParams_.Encode()
63040	req, err := http.NewRequest("DELETE", urls, body)
63041	if err != nil {
63042		return nil, err
63043	}
63044	req.Header = reqHeaders
63045	googleapi.Expand(req.URL, map[string]string{
63046		"firewallPolicy": c.firewallPolicy,
63047	})
63048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63049}
63050
63051// Do executes the "compute.firewallPolicies.delete" call.
63052// Exactly one of *Operation or error will be non-nil. Any non-2xx
63053// status code is an error. Response headers are in either
63054// *Operation.ServerResponse.Header or (if a response was returned at
63055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63056// to check whether the returned error was because
63057// http.StatusNotModified was returned.
63058func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63059	gensupport.SetOptions(c.urlParams_, opts...)
63060	res, err := c.doRequest("json")
63061	if res != nil && res.StatusCode == http.StatusNotModified {
63062		if res.Body != nil {
63063			res.Body.Close()
63064		}
63065		return nil, &googleapi.Error{
63066			Code:   res.StatusCode,
63067			Header: res.Header,
63068		}
63069	}
63070	if err != nil {
63071		return nil, err
63072	}
63073	defer googleapi.CloseBody(res)
63074	if err := googleapi.CheckResponse(res); err != nil {
63075		return nil, err
63076	}
63077	ret := &Operation{
63078		ServerResponse: googleapi.ServerResponse{
63079			Header:         res.Header,
63080			HTTPStatusCode: res.StatusCode,
63081		},
63082	}
63083	target := &ret
63084	if err := gensupport.DecodeResponse(target, res); err != nil {
63085		return nil, err
63086	}
63087	return ret, nil
63088	// {
63089	//   "description": "Deletes the specified policy.",
63090	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
63091	//   "httpMethod": "DELETE",
63092	//   "id": "compute.firewallPolicies.delete",
63093	//   "parameterOrder": [
63094	//     "firewallPolicy"
63095	//   ],
63096	//   "parameters": {
63097	//     "firewallPolicy": {
63098	//       "description": "Name of the firewall policy to delete.",
63099	//       "location": "path",
63100	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63101	//       "required": true,
63102	//       "type": "string"
63103	//     },
63104	//     "requestId": {
63105	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63106	//       "location": "query",
63107	//       "type": "string"
63108	//     }
63109	//   },
63110	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
63111	//   "response": {
63112	//     "$ref": "Operation"
63113	//   },
63114	//   "scopes": [
63115	//     "https://www.googleapis.com/auth/cloud-platform",
63116	//     "https://www.googleapis.com/auth/compute"
63117	//   ]
63118	// }
63119
63120}
63121
63122// method id "compute.firewallPolicies.get":
63123
63124type FirewallPoliciesGetCall struct {
63125	s              *Service
63126	firewallPolicy string
63127	urlParams_     gensupport.URLParams
63128	ifNoneMatch_   string
63129	ctx_           context.Context
63130	header_        http.Header
63131}
63132
63133// Get: Returns the specified firewall policy.
63134//
63135// - firewallPolicy: Name of the firewall policy to get.
63136func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall {
63137	c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63138	c.firewallPolicy = firewallPolicy
63139	return c
63140}
63141
63142// Fields allows partial responses to be retrieved. See
63143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63144// for more information.
63145func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall {
63146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63147	return c
63148}
63149
63150// IfNoneMatch sets the optional parameter which makes the operation
63151// fail if the object's ETag matches the given value. This is useful for
63152// getting updates only after the object has changed since the last
63153// request. Use googleapi.IsNotModified to check whether the response
63154// error from Do is the result of In-None-Match.
63155func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall {
63156	c.ifNoneMatch_ = entityTag
63157	return c
63158}
63159
63160// Context sets the context to be used in this call's Do method. Any
63161// pending HTTP request will be aborted if the provided context is
63162// canceled.
63163func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall {
63164	c.ctx_ = ctx
63165	return c
63166}
63167
63168// Header returns an http.Header that can be modified by the caller to
63169// add HTTP headers to the request.
63170func (c *FirewallPoliciesGetCall) Header() http.Header {
63171	if c.header_ == nil {
63172		c.header_ = make(http.Header)
63173	}
63174	return c.header_
63175}
63176
63177func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
63178	reqHeaders := make(http.Header)
63179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63180	for k, v := range c.header_ {
63181		reqHeaders[k] = v
63182	}
63183	reqHeaders.Set("User-Agent", c.s.userAgent())
63184	if c.ifNoneMatch_ != "" {
63185		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63186	}
63187	var body io.Reader = nil
63188	c.urlParams_.Set("alt", alt)
63189	c.urlParams_.Set("prettyPrint", "false")
63190	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
63191	urls += "?" + c.urlParams_.Encode()
63192	req, err := http.NewRequest("GET", urls, body)
63193	if err != nil {
63194		return nil, err
63195	}
63196	req.Header = reqHeaders
63197	googleapi.Expand(req.URL, map[string]string{
63198		"firewallPolicy": c.firewallPolicy,
63199	})
63200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63201}
63202
63203// Do executes the "compute.firewallPolicies.get" call.
63204// Exactly one of *FirewallPolicy or error will be non-nil. Any non-2xx
63205// status code is an error. Response headers are in either
63206// *FirewallPolicy.ServerResponse.Header or (if a response was returned
63207// at all) in error.(*googleapi.Error).Header. Use
63208// googleapi.IsNotModified to check whether the returned error was
63209// because http.StatusNotModified was returned.
63210func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) {
63211	gensupport.SetOptions(c.urlParams_, opts...)
63212	res, err := c.doRequest("json")
63213	if res != nil && res.StatusCode == http.StatusNotModified {
63214		if res.Body != nil {
63215			res.Body.Close()
63216		}
63217		return nil, &googleapi.Error{
63218			Code:   res.StatusCode,
63219			Header: res.Header,
63220		}
63221	}
63222	if err != nil {
63223		return nil, err
63224	}
63225	defer googleapi.CloseBody(res)
63226	if err := googleapi.CheckResponse(res); err != nil {
63227		return nil, err
63228	}
63229	ret := &FirewallPolicy{
63230		ServerResponse: googleapi.ServerResponse{
63231			Header:         res.Header,
63232			HTTPStatusCode: res.StatusCode,
63233		},
63234	}
63235	target := &ret
63236	if err := gensupport.DecodeResponse(target, res); err != nil {
63237		return nil, err
63238	}
63239	return ret, nil
63240	// {
63241	//   "description": "Returns the specified firewall policy.",
63242	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
63243	//   "httpMethod": "GET",
63244	//   "id": "compute.firewallPolicies.get",
63245	//   "parameterOrder": [
63246	//     "firewallPolicy"
63247	//   ],
63248	//   "parameters": {
63249	//     "firewallPolicy": {
63250	//       "description": "Name of the firewall policy to get.",
63251	//       "location": "path",
63252	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63253	//       "required": true,
63254	//       "type": "string"
63255	//     }
63256	//   },
63257	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
63258	//   "response": {
63259	//     "$ref": "FirewallPolicy"
63260	//   },
63261	//   "scopes": [
63262	//     "https://www.googleapis.com/auth/cloud-platform",
63263	//     "https://www.googleapis.com/auth/compute",
63264	//     "https://www.googleapis.com/auth/compute.readonly"
63265	//   ]
63266	// }
63267
63268}
63269
63270// method id "compute.firewallPolicies.getAssociation":
63271
63272type FirewallPoliciesGetAssociationCall struct {
63273	s              *Service
63274	firewallPolicy string
63275	urlParams_     gensupport.URLParams
63276	ifNoneMatch_   string
63277	ctx_           context.Context
63278	header_        http.Header
63279}
63280
63281// GetAssociation: Gets an association with the specified name.
63282//
63283// - firewallPolicy: Name of the firewall policy to which the queried
63284//   rule belongs.
63285func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall {
63286	c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63287	c.firewallPolicy = firewallPolicy
63288	return c
63289}
63290
63291// Name sets the optional parameter "name": The name of the association
63292// to get from the firewall policy.
63293func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall {
63294	c.urlParams_.Set("name", name)
63295	return c
63296}
63297
63298// Fields allows partial responses to be retrieved. See
63299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63300// for more information.
63301func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall {
63302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63303	return c
63304}
63305
63306// IfNoneMatch sets the optional parameter which makes the operation
63307// fail if the object's ETag matches the given value. This is useful for
63308// getting updates only after the object has changed since the last
63309// request. Use googleapi.IsNotModified to check whether the response
63310// error from Do is the result of In-None-Match.
63311func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall {
63312	c.ifNoneMatch_ = entityTag
63313	return c
63314}
63315
63316// Context sets the context to be used in this call's Do method. Any
63317// pending HTTP request will be aborted if the provided context is
63318// canceled.
63319func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall {
63320	c.ctx_ = ctx
63321	return c
63322}
63323
63324// Header returns an http.Header that can be modified by the caller to
63325// add HTTP headers to the request.
63326func (c *FirewallPoliciesGetAssociationCall) Header() http.Header {
63327	if c.header_ == nil {
63328		c.header_ = make(http.Header)
63329	}
63330	return c.header_
63331}
63332
63333func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
63334	reqHeaders := make(http.Header)
63335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63336	for k, v := range c.header_ {
63337		reqHeaders[k] = v
63338	}
63339	reqHeaders.Set("User-Agent", c.s.userAgent())
63340	if c.ifNoneMatch_ != "" {
63341		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63342	}
63343	var body io.Reader = nil
63344	c.urlParams_.Set("alt", alt)
63345	c.urlParams_.Set("prettyPrint", "false")
63346	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation")
63347	urls += "?" + c.urlParams_.Encode()
63348	req, err := http.NewRequest("GET", urls, body)
63349	if err != nil {
63350		return nil, err
63351	}
63352	req.Header = reqHeaders
63353	googleapi.Expand(req.URL, map[string]string{
63354		"firewallPolicy": c.firewallPolicy,
63355	})
63356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63357}
63358
63359// Do executes the "compute.firewallPolicies.getAssociation" call.
63360// Exactly one of *FirewallPolicyAssociation or error will be non-nil.
63361// Any non-2xx status code is an error. Response headers are in either
63362// *FirewallPolicyAssociation.ServerResponse.Header or (if a response
63363// was returned at all) in error.(*googleapi.Error).Header. Use
63364// googleapi.IsNotModified to check whether the returned error was
63365// because http.StatusNotModified was returned.
63366func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) {
63367	gensupport.SetOptions(c.urlParams_, opts...)
63368	res, err := c.doRequest("json")
63369	if res != nil && res.StatusCode == http.StatusNotModified {
63370		if res.Body != nil {
63371			res.Body.Close()
63372		}
63373		return nil, &googleapi.Error{
63374			Code:   res.StatusCode,
63375			Header: res.Header,
63376		}
63377	}
63378	if err != nil {
63379		return nil, err
63380	}
63381	defer googleapi.CloseBody(res)
63382	if err := googleapi.CheckResponse(res); err != nil {
63383		return nil, err
63384	}
63385	ret := &FirewallPolicyAssociation{
63386		ServerResponse: googleapi.ServerResponse{
63387			Header:         res.Header,
63388			HTTPStatusCode: res.StatusCode,
63389		},
63390	}
63391	target := &ret
63392	if err := gensupport.DecodeResponse(target, res); err != nil {
63393		return nil, err
63394	}
63395	return ret, nil
63396	// {
63397	//   "description": "Gets an association with the specified name.",
63398	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
63399	//   "httpMethod": "GET",
63400	//   "id": "compute.firewallPolicies.getAssociation",
63401	//   "parameterOrder": [
63402	//     "firewallPolicy"
63403	//   ],
63404	//   "parameters": {
63405	//     "firewallPolicy": {
63406	//       "description": "Name of the firewall policy to which the queried rule belongs.",
63407	//       "location": "path",
63408	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63409	//       "required": true,
63410	//       "type": "string"
63411	//     },
63412	//     "name": {
63413	//       "description": "The name of the association to get from the firewall policy.",
63414	//       "location": "query",
63415	//       "type": "string"
63416	//     }
63417	//   },
63418	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
63419	//   "response": {
63420	//     "$ref": "FirewallPolicyAssociation"
63421	//   },
63422	//   "scopes": [
63423	//     "https://www.googleapis.com/auth/cloud-platform",
63424	//     "https://www.googleapis.com/auth/compute",
63425	//     "https://www.googleapis.com/auth/compute.readonly"
63426	//   ]
63427	// }
63428
63429}
63430
63431// method id "compute.firewallPolicies.getIamPolicy":
63432
63433type FirewallPoliciesGetIamPolicyCall struct {
63434	s            *Service
63435	resource     string
63436	urlParams_   gensupport.URLParams
63437	ifNoneMatch_ string
63438	ctx_         context.Context
63439	header_      http.Header
63440}
63441
63442// GetIamPolicy: Gets the access control policy for a resource. May be
63443// empty if no such policy or resource exists.
63444//
63445// - resource: Name or id of the resource for this request.
63446func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall {
63447	c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63448	c.resource = resource
63449	return c
63450}
63451
63452// OptionsRequestedPolicyVersion sets the optional parameter
63453// "optionsRequestedPolicyVersion": Requested IAM Policy version.
63454func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall {
63455	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
63456	return c
63457}
63458
63459// Fields allows partial responses to be retrieved. See
63460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63461// for more information.
63462func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall {
63463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63464	return c
63465}
63466
63467// IfNoneMatch sets the optional parameter which makes the operation
63468// fail if the object's ETag matches the given value. This is useful for
63469// getting updates only after the object has changed since the last
63470// request. Use googleapi.IsNotModified to check whether the response
63471// error from Do is the result of In-None-Match.
63472func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall {
63473	c.ifNoneMatch_ = entityTag
63474	return c
63475}
63476
63477// Context sets the context to be used in this call's Do method. Any
63478// pending HTTP request will be aborted if the provided context is
63479// canceled.
63480func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall {
63481	c.ctx_ = ctx
63482	return c
63483}
63484
63485// Header returns an http.Header that can be modified by the caller to
63486// add HTTP headers to the request.
63487func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header {
63488	if c.header_ == nil {
63489		c.header_ = make(http.Header)
63490	}
63491	return c.header_
63492}
63493
63494func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
63495	reqHeaders := make(http.Header)
63496	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63497	for k, v := range c.header_ {
63498		reqHeaders[k] = v
63499	}
63500	reqHeaders.Set("User-Agent", c.s.userAgent())
63501	if c.ifNoneMatch_ != "" {
63502		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63503	}
63504	var body io.Reader = nil
63505	c.urlParams_.Set("alt", alt)
63506	c.urlParams_.Set("prettyPrint", "false")
63507	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy")
63508	urls += "?" + c.urlParams_.Encode()
63509	req, err := http.NewRequest("GET", urls, body)
63510	if err != nil {
63511		return nil, err
63512	}
63513	req.Header = reqHeaders
63514	googleapi.Expand(req.URL, map[string]string{
63515		"resource": c.resource,
63516	})
63517	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63518}
63519
63520// Do executes the "compute.firewallPolicies.getIamPolicy" call.
63521// Exactly one of *Policy or error will be non-nil. Any non-2xx status
63522// code is an error. Response headers are in either
63523// *Policy.ServerResponse.Header or (if a response was returned at all)
63524// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63525// check whether the returned error was because http.StatusNotModified
63526// was returned.
63527func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
63528	gensupport.SetOptions(c.urlParams_, opts...)
63529	res, err := c.doRequest("json")
63530	if res != nil && res.StatusCode == http.StatusNotModified {
63531		if res.Body != nil {
63532			res.Body.Close()
63533		}
63534		return nil, &googleapi.Error{
63535			Code:   res.StatusCode,
63536			Header: res.Header,
63537		}
63538	}
63539	if err != nil {
63540		return nil, err
63541	}
63542	defer googleapi.CloseBody(res)
63543	if err := googleapi.CheckResponse(res); err != nil {
63544		return nil, err
63545	}
63546	ret := &Policy{
63547		ServerResponse: googleapi.ServerResponse{
63548			Header:         res.Header,
63549			HTTPStatusCode: res.StatusCode,
63550		},
63551	}
63552	target := &ret
63553	if err := gensupport.DecodeResponse(target, res); err != nil {
63554		return nil, err
63555	}
63556	return ret, nil
63557	// {
63558	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
63559	//   "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy",
63560	//   "httpMethod": "GET",
63561	//   "id": "compute.firewallPolicies.getIamPolicy",
63562	//   "parameterOrder": [
63563	//     "resource"
63564	//   ],
63565	//   "parameters": {
63566	//     "optionsRequestedPolicyVersion": {
63567	//       "description": "Requested IAM Policy version.",
63568	//       "format": "int32",
63569	//       "location": "query",
63570	//       "type": "integer"
63571	//     },
63572	//     "resource": {
63573	//       "description": "Name or id of the resource for this request.",
63574	//       "location": "path",
63575	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63576	//       "required": true,
63577	//       "type": "string"
63578	//     }
63579	//   },
63580	//   "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
63581	//   "response": {
63582	//     "$ref": "Policy"
63583	//   },
63584	//   "scopes": [
63585	//     "https://www.googleapis.com/auth/cloud-platform",
63586	//     "https://www.googleapis.com/auth/compute",
63587	//     "https://www.googleapis.com/auth/compute.readonly"
63588	//   ]
63589	// }
63590
63591}
63592
63593// method id "compute.firewallPolicies.getRule":
63594
63595type FirewallPoliciesGetRuleCall struct {
63596	s              *Service
63597	firewallPolicy string
63598	urlParams_     gensupport.URLParams
63599	ifNoneMatch_   string
63600	ctx_           context.Context
63601	header_        http.Header
63602}
63603
63604// GetRule: Gets a rule of the specified priority.
63605//
63606// - firewallPolicy: Name of the firewall policy to which the queried
63607//   rule belongs.
63608func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall {
63609	c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63610	c.firewallPolicy = firewallPolicy
63611	return c
63612}
63613
63614// Priority sets the optional parameter "priority": The priority of the
63615// rule to get from the firewall policy.
63616func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall {
63617	c.urlParams_.Set("priority", fmt.Sprint(priority))
63618	return c
63619}
63620
63621// Fields allows partial responses to be retrieved. See
63622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63623// for more information.
63624func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall {
63625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63626	return c
63627}
63628
63629// IfNoneMatch sets the optional parameter which makes the operation
63630// fail if the object's ETag matches the given value. This is useful for
63631// getting updates only after the object has changed since the last
63632// request. Use googleapi.IsNotModified to check whether the response
63633// error from Do is the result of In-None-Match.
63634func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall {
63635	c.ifNoneMatch_ = entityTag
63636	return c
63637}
63638
63639// Context sets the context to be used in this call's Do method. Any
63640// pending HTTP request will be aborted if the provided context is
63641// canceled.
63642func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall {
63643	c.ctx_ = ctx
63644	return c
63645}
63646
63647// Header returns an http.Header that can be modified by the caller to
63648// add HTTP headers to the request.
63649func (c *FirewallPoliciesGetRuleCall) Header() http.Header {
63650	if c.header_ == nil {
63651		c.header_ = make(http.Header)
63652	}
63653	return c.header_
63654}
63655
63656func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
63657	reqHeaders := make(http.Header)
63658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63659	for k, v := range c.header_ {
63660		reqHeaders[k] = v
63661	}
63662	reqHeaders.Set("User-Agent", c.s.userAgent())
63663	if c.ifNoneMatch_ != "" {
63664		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63665	}
63666	var body io.Reader = nil
63667	c.urlParams_.Set("alt", alt)
63668	c.urlParams_.Set("prettyPrint", "false")
63669	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule")
63670	urls += "?" + c.urlParams_.Encode()
63671	req, err := http.NewRequest("GET", urls, body)
63672	if err != nil {
63673		return nil, err
63674	}
63675	req.Header = reqHeaders
63676	googleapi.Expand(req.URL, map[string]string{
63677		"firewallPolicy": c.firewallPolicy,
63678	})
63679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63680}
63681
63682// Do executes the "compute.firewallPolicies.getRule" call.
63683// Exactly one of *FirewallPolicyRule or error will be non-nil. Any
63684// non-2xx status code is an error. Response headers are in either
63685// *FirewallPolicyRule.ServerResponse.Header or (if a response was
63686// returned at all) in error.(*googleapi.Error).Header. Use
63687// googleapi.IsNotModified to check whether the returned error was
63688// because http.StatusNotModified was returned.
63689func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) {
63690	gensupport.SetOptions(c.urlParams_, opts...)
63691	res, err := c.doRequest("json")
63692	if res != nil && res.StatusCode == http.StatusNotModified {
63693		if res.Body != nil {
63694			res.Body.Close()
63695		}
63696		return nil, &googleapi.Error{
63697			Code:   res.StatusCode,
63698			Header: res.Header,
63699		}
63700	}
63701	if err != nil {
63702		return nil, err
63703	}
63704	defer googleapi.CloseBody(res)
63705	if err := googleapi.CheckResponse(res); err != nil {
63706		return nil, err
63707	}
63708	ret := &FirewallPolicyRule{
63709		ServerResponse: googleapi.ServerResponse{
63710			Header:         res.Header,
63711			HTTPStatusCode: res.StatusCode,
63712		},
63713	}
63714	target := &ret
63715	if err := gensupport.DecodeResponse(target, res); err != nil {
63716		return nil, err
63717	}
63718	return ret, nil
63719	// {
63720	//   "description": "Gets a rule of the specified priority.",
63721	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
63722	//   "httpMethod": "GET",
63723	//   "id": "compute.firewallPolicies.getRule",
63724	//   "parameterOrder": [
63725	//     "firewallPolicy"
63726	//   ],
63727	//   "parameters": {
63728	//     "firewallPolicy": {
63729	//       "description": "Name of the firewall policy to which the queried rule belongs.",
63730	//       "location": "path",
63731	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63732	//       "required": true,
63733	//       "type": "string"
63734	//     },
63735	//     "priority": {
63736	//       "description": "The priority of the rule to get from the firewall policy.",
63737	//       "format": "int32",
63738	//       "location": "query",
63739	//       "type": "integer"
63740	//     }
63741	//   },
63742	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
63743	//   "response": {
63744	//     "$ref": "FirewallPolicyRule"
63745	//   },
63746	//   "scopes": [
63747	//     "https://www.googleapis.com/auth/cloud-platform",
63748	//     "https://www.googleapis.com/auth/compute",
63749	//     "https://www.googleapis.com/auth/compute.readonly"
63750	//   ]
63751	// }
63752
63753}
63754
63755// method id "compute.firewallPolicies.insert":
63756
63757type FirewallPoliciesInsertCall struct {
63758	s              *Service
63759	firewallpolicy *FirewallPolicy
63760	urlParams_     gensupport.URLParams
63761	ctx_           context.Context
63762	header_        http.Header
63763}
63764
63765// Insert: Creates a new policy in the specified project using the data
63766// included in the request.
63767func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall {
63768	c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63769	c.firewallpolicy = firewallpolicy
63770	return c
63771}
63772
63773// ParentId sets the optional parameter "parentId": Parent ID for this
63774// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
63775// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
63776// organization.
63777func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall {
63778	c.urlParams_.Set("parentId", parentId)
63779	return c
63780}
63781
63782// RequestId sets the optional parameter "requestId": An optional
63783// request ID to identify requests. Specify a unique request ID so that
63784// if you must retry your request, the server will know to ignore the
63785// request if it has already been completed. For example, consider a
63786// situation where you make an initial request and the request times
63787// out. If you make the request again with the same request ID, the
63788// server can check if original operation with the same request ID was
63789// received, and if so, will ignore the second request. This prevents
63790// clients from accidentally creating duplicate commitments. The request
63791// ID must be a valid UUID with the exception that zero UUID is not
63792// supported ( 00000000-0000-0000-0000-000000000000).
63793func (c *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall {
63794	c.urlParams_.Set("requestId", requestId)
63795	return c
63796}
63797
63798// Fields allows partial responses to be retrieved. See
63799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63800// for more information.
63801func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall {
63802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63803	return c
63804}
63805
63806// Context sets the context to be used in this call's Do method. Any
63807// pending HTTP request will be aborted if the provided context is
63808// canceled.
63809func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall {
63810	c.ctx_ = ctx
63811	return c
63812}
63813
63814// Header returns an http.Header that can be modified by the caller to
63815// add HTTP headers to the request.
63816func (c *FirewallPoliciesInsertCall) Header() http.Header {
63817	if c.header_ == nil {
63818		c.header_ = make(http.Header)
63819	}
63820	return c.header_
63821}
63822
63823func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
63824	reqHeaders := make(http.Header)
63825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
63826	for k, v := range c.header_ {
63827		reqHeaders[k] = v
63828	}
63829	reqHeaders.Set("User-Agent", c.s.userAgent())
63830	var body io.Reader = nil
63831	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
63832	if err != nil {
63833		return nil, err
63834	}
63835	reqHeaders.Set("Content-Type", "application/json")
63836	c.urlParams_.Set("alt", alt)
63837	c.urlParams_.Set("prettyPrint", "false")
63838	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
63839	urls += "?" + c.urlParams_.Encode()
63840	req, err := http.NewRequest("POST", urls, body)
63841	if err != nil {
63842		return nil, err
63843	}
63844	req.Header = reqHeaders
63845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63846}
63847
63848// Do executes the "compute.firewallPolicies.insert" call.
63849// Exactly one of *Operation or error will be non-nil. Any non-2xx
63850// status code is an error. Response headers are in either
63851// *Operation.ServerResponse.Header or (if a response was returned at
63852// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63853// to check whether the returned error was because
63854// http.StatusNotModified was returned.
63855func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63856	gensupport.SetOptions(c.urlParams_, opts...)
63857	res, err := c.doRequest("json")
63858	if res != nil && res.StatusCode == http.StatusNotModified {
63859		if res.Body != nil {
63860			res.Body.Close()
63861		}
63862		return nil, &googleapi.Error{
63863			Code:   res.StatusCode,
63864			Header: res.Header,
63865		}
63866	}
63867	if err != nil {
63868		return nil, err
63869	}
63870	defer googleapi.CloseBody(res)
63871	if err := googleapi.CheckResponse(res); err != nil {
63872		return nil, err
63873	}
63874	ret := &Operation{
63875		ServerResponse: googleapi.ServerResponse{
63876			Header:         res.Header,
63877			HTTPStatusCode: res.StatusCode,
63878		},
63879	}
63880	target := &ret
63881	if err := gensupport.DecodeResponse(target, res); err != nil {
63882		return nil, err
63883	}
63884	return ret, nil
63885	// {
63886	//   "description": "Creates a new policy in the specified project using the data included in the request.",
63887	//   "flatPath": "locations/global/firewallPolicies",
63888	//   "httpMethod": "POST",
63889	//   "id": "compute.firewallPolicies.insert",
63890	//   "parameters": {
63891	//     "parentId": {
63892	//       "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.",
63893	//       "location": "query",
63894	//       "type": "string"
63895	//     },
63896	//     "requestId": {
63897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63898	//       "location": "query",
63899	//       "type": "string"
63900	//     }
63901	//   },
63902	//   "path": "locations/global/firewallPolicies",
63903	//   "request": {
63904	//     "$ref": "FirewallPolicy"
63905	//   },
63906	//   "response": {
63907	//     "$ref": "Operation"
63908	//   },
63909	//   "scopes": [
63910	//     "https://www.googleapis.com/auth/cloud-platform",
63911	//     "https://www.googleapis.com/auth/compute"
63912	//   ]
63913	// }
63914
63915}
63916
63917// method id "compute.firewallPolicies.list":
63918
63919type FirewallPoliciesListCall struct {
63920	s            *Service
63921	urlParams_   gensupport.URLParams
63922	ifNoneMatch_ string
63923	ctx_         context.Context
63924	header_      http.Header
63925}
63926
63927// List: Lists all the policies that have been configured for the
63928// specified folder or organization.
63929func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall {
63930	c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63931	return c
63932}
63933
63934// Filter sets the optional parameter "filter": A filter expression that
63935// filters resources listed in the response. The expression must specify
63936// the field name, a comparison operator, and the value that you want to
63937// use for filtering. The value must be a string, a number, or a
63938// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63939// `<`. For example, if you are filtering Compute Engine instances, you
63940// can exclude instances named `example-instance` by specifying `name !=
63941// example-instance`. You can also filter nested fields. For example,
63942// you could specify `scheduling.automaticRestart = false` to include
63943// instances only if they are not scheduled for automatic restarts. You
63944// can use filtering on nested fields to filter based on resource
63945// labels. To filter on multiple expressions, provide each separate
63946// expression within parentheses. For example: ```
63947// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
63948// ``` By default, each expression is an `AND` expression. However, you
63949// can include `AND` and `OR` expressions explicitly. For example: ```
63950// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
63951// AND (scheduling.automaticRestart = true) ```
63952func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall {
63953	c.urlParams_.Set("filter", filter)
63954	return c
63955}
63956
63957// MaxResults sets the optional parameter "maxResults": The maximum
63958// number of results per page that should be returned. If the number of
63959// available results is larger than `maxResults`, Compute Engine returns
63960// a `nextPageToken` that can be used to get the next page of results in
63961// subsequent list requests. Acceptable values are `0` to `500`,
63962// inclusive. (Default: `500`)
63963func (c *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall {
63964	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63965	return c
63966}
63967
63968// OrderBy sets the optional parameter "orderBy": Sorts list results by
63969// a certain order. By default, results are returned in alphanumerical
63970// order based on the resource name. You can also sort results in
63971// descending order based on the creation timestamp using
63972// `orderBy="creationTimestamp desc". This sorts results based on the
63973// `creationTimestamp` field in reverse chronological order (newest
63974// result first). Use this to sort resources like operations so that the
63975// newest operation is returned first. Currently, only sorting by `name`
63976// or `creationTimestamp desc` is supported.
63977func (c *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall {
63978	c.urlParams_.Set("orderBy", orderBy)
63979	return c
63980}
63981
63982// PageToken sets the optional parameter "pageToken": Specifies a page
63983// token to use. Set `pageToken` to the `nextPageToken` returned by a
63984// previous list request to get the next page of results.
63985func (c *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall {
63986	c.urlParams_.Set("pageToken", pageToken)
63987	return c
63988}
63989
63990// ParentId sets the optional parameter "parentId": Parent ID for this
63991// request.
63992func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall {
63993	c.urlParams_.Set("parentId", parentId)
63994	return c
63995}
63996
63997// ReturnPartialSuccess sets the optional parameter
63998// "returnPartialSuccess": Opt-in for partial success behavior which
63999// provides partial results in case of failure. The default value is
64000// false.
64001func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall {
64002	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
64003	return c
64004}
64005
64006// Fields allows partial responses to be retrieved. See
64007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64008// for more information.
64009func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall {
64010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64011	return c
64012}
64013
64014// IfNoneMatch sets the optional parameter which makes the operation
64015// fail if the object's ETag matches the given value. This is useful for
64016// getting updates only after the object has changed since the last
64017// request. Use googleapi.IsNotModified to check whether the response
64018// error from Do is the result of In-None-Match.
64019func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall {
64020	c.ifNoneMatch_ = entityTag
64021	return c
64022}
64023
64024// Context sets the context to be used in this call's Do method. Any
64025// pending HTTP request will be aborted if the provided context is
64026// canceled.
64027func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall {
64028	c.ctx_ = ctx
64029	return c
64030}
64031
64032// Header returns an http.Header that can be modified by the caller to
64033// add HTTP headers to the request.
64034func (c *FirewallPoliciesListCall) Header() http.Header {
64035	if c.header_ == nil {
64036		c.header_ = make(http.Header)
64037	}
64038	return c.header_
64039}
64040
64041func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) {
64042	reqHeaders := make(http.Header)
64043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64044	for k, v := range c.header_ {
64045		reqHeaders[k] = v
64046	}
64047	reqHeaders.Set("User-Agent", c.s.userAgent())
64048	if c.ifNoneMatch_ != "" {
64049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64050	}
64051	var body io.Reader = nil
64052	c.urlParams_.Set("alt", alt)
64053	c.urlParams_.Set("prettyPrint", "false")
64054	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
64055	urls += "?" + c.urlParams_.Encode()
64056	req, err := http.NewRequest("GET", urls, body)
64057	if err != nil {
64058		return nil, err
64059	}
64060	req.Header = reqHeaders
64061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64062}
64063
64064// Do executes the "compute.firewallPolicies.list" call.
64065// Exactly one of *FirewallPolicyList or error will be non-nil. Any
64066// non-2xx status code is an error. Response headers are in either
64067// *FirewallPolicyList.ServerResponse.Header or (if a response was
64068// returned at all) in error.(*googleapi.Error).Header. Use
64069// googleapi.IsNotModified to check whether the returned error was
64070// because http.StatusNotModified was returned.
64071func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) {
64072	gensupport.SetOptions(c.urlParams_, opts...)
64073	res, err := c.doRequest("json")
64074	if res != nil && res.StatusCode == http.StatusNotModified {
64075		if res.Body != nil {
64076			res.Body.Close()
64077		}
64078		return nil, &googleapi.Error{
64079			Code:   res.StatusCode,
64080			Header: res.Header,
64081		}
64082	}
64083	if err != nil {
64084		return nil, err
64085	}
64086	defer googleapi.CloseBody(res)
64087	if err := googleapi.CheckResponse(res); err != nil {
64088		return nil, err
64089	}
64090	ret := &FirewallPolicyList{
64091		ServerResponse: googleapi.ServerResponse{
64092			Header:         res.Header,
64093			HTTPStatusCode: res.StatusCode,
64094		},
64095	}
64096	target := &ret
64097	if err := gensupport.DecodeResponse(target, res); err != nil {
64098		return nil, err
64099	}
64100	return ret, nil
64101	// {
64102	//   "description": "Lists all the policies that have been configured for the specified folder or organization.",
64103	//   "flatPath": "locations/global/firewallPolicies",
64104	//   "httpMethod": "GET",
64105	//   "id": "compute.firewallPolicies.list",
64106	//   "parameters": {
64107	//     "filter": {
64108	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64109	//       "location": "query",
64110	//       "type": "string"
64111	//     },
64112	//     "maxResults": {
64113	//       "default": "500",
64114	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64115	//       "format": "uint32",
64116	//       "location": "query",
64117	//       "minimum": "0",
64118	//       "type": "integer"
64119	//     },
64120	//     "orderBy": {
64121	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
64122	//       "location": "query",
64123	//       "type": "string"
64124	//     },
64125	//     "pageToken": {
64126	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64127	//       "location": "query",
64128	//       "type": "string"
64129	//     },
64130	//     "parentId": {
64131	//       "description": "Parent ID for this request.",
64132	//       "location": "query",
64133	//       "type": "string"
64134	//     },
64135	//     "returnPartialSuccess": {
64136	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
64137	//       "location": "query",
64138	//       "type": "boolean"
64139	//     }
64140	//   },
64141	//   "path": "locations/global/firewallPolicies",
64142	//   "response": {
64143	//     "$ref": "FirewallPolicyList"
64144	//   },
64145	//   "scopes": [
64146	//     "https://www.googleapis.com/auth/cloud-platform",
64147	//     "https://www.googleapis.com/auth/compute",
64148	//     "https://www.googleapis.com/auth/compute.readonly"
64149	//   ]
64150	// }
64151
64152}
64153
64154// Pages invokes f for each page of results.
64155// A non-nil error returned from f will halt the iteration.
64156// The provided context supersedes any context provided to the Context method.
64157func (c *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error {
64158	c.ctx_ = ctx
64159	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64160	for {
64161		x, err := c.Do()
64162		if err != nil {
64163			return err
64164		}
64165		if err := f(x); err != nil {
64166			return err
64167		}
64168		if x.NextPageToken == "" {
64169			return nil
64170		}
64171		c.PageToken(x.NextPageToken)
64172	}
64173}
64174
64175// method id "compute.firewallPolicies.listAssociations":
64176
64177type FirewallPoliciesListAssociationsCall struct {
64178	s            *Service
64179	urlParams_   gensupport.URLParams
64180	ifNoneMatch_ string
64181	ctx_         context.Context
64182	header_      http.Header
64183}
64184
64185// ListAssociations: Lists associations of a specified target, i.e.,
64186// organization or folder.
64187func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall {
64188	c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64189	return c
64190}
64191
64192// TargetResource sets the optional parameter "targetResource": The
64193// target resource to list associations. It is an organization, or a
64194// folder.
64195func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall {
64196	c.urlParams_.Set("targetResource", targetResource)
64197	return c
64198}
64199
64200// Fields allows partial responses to be retrieved. See
64201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64202// for more information.
64203func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall {
64204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64205	return c
64206}
64207
64208// IfNoneMatch sets the optional parameter which makes the operation
64209// fail if the object's ETag matches the given value. This is useful for
64210// getting updates only after the object has changed since the last
64211// request. Use googleapi.IsNotModified to check whether the response
64212// error from Do is the result of In-None-Match.
64213func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall {
64214	c.ifNoneMatch_ = entityTag
64215	return c
64216}
64217
64218// Context sets the context to be used in this call's Do method. Any
64219// pending HTTP request will be aborted if the provided context is
64220// canceled.
64221func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall {
64222	c.ctx_ = ctx
64223	return c
64224}
64225
64226// Header returns an http.Header that can be modified by the caller to
64227// add HTTP headers to the request.
64228func (c *FirewallPoliciesListAssociationsCall) Header() http.Header {
64229	if c.header_ == nil {
64230		c.header_ = make(http.Header)
64231	}
64232	return c.header_
64233}
64234
64235func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
64236	reqHeaders := make(http.Header)
64237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64238	for k, v := range c.header_ {
64239		reqHeaders[k] = v
64240	}
64241	reqHeaders.Set("User-Agent", c.s.userAgent())
64242	if c.ifNoneMatch_ != "" {
64243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64244	}
64245	var body io.Reader = nil
64246	c.urlParams_.Set("alt", alt)
64247	c.urlParams_.Set("prettyPrint", "false")
64248	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations")
64249	urls += "?" + c.urlParams_.Encode()
64250	req, err := http.NewRequest("GET", urls, body)
64251	if err != nil {
64252		return nil, err
64253	}
64254	req.Header = reqHeaders
64255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64256}
64257
64258// Do executes the "compute.firewallPolicies.listAssociations" call.
64259// Exactly one of *FirewallPoliciesListAssociationsResponse or error
64260// will be non-nil. Any non-2xx status code is an error. Response
64261// headers are in either
64262// *FirewallPoliciesListAssociationsResponse.ServerResponse.Header or
64263// (if a response was returned at all) in
64264// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64265// whether the returned error was because http.StatusNotModified was
64266// returned.
64267func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) {
64268	gensupport.SetOptions(c.urlParams_, opts...)
64269	res, err := c.doRequest("json")
64270	if res != nil && res.StatusCode == http.StatusNotModified {
64271		if res.Body != nil {
64272			res.Body.Close()
64273		}
64274		return nil, &googleapi.Error{
64275			Code:   res.StatusCode,
64276			Header: res.Header,
64277		}
64278	}
64279	if err != nil {
64280		return nil, err
64281	}
64282	defer googleapi.CloseBody(res)
64283	if err := googleapi.CheckResponse(res); err != nil {
64284		return nil, err
64285	}
64286	ret := &FirewallPoliciesListAssociationsResponse{
64287		ServerResponse: googleapi.ServerResponse{
64288			Header:         res.Header,
64289			HTTPStatusCode: res.StatusCode,
64290		},
64291	}
64292	target := &ret
64293	if err := gensupport.DecodeResponse(target, res); err != nil {
64294		return nil, err
64295	}
64296	return ret, nil
64297	// {
64298	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
64299	//   "flatPath": "locations/global/firewallPolicies/listAssociations",
64300	//   "httpMethod": "GET",
64301	//   "id": "compute.firewallPolicies.listAssociations",
64302	//   "parameters": {
64303	//     "targetResource": {
64304	//       "description": "The target resource to list associations. It is an organization, or a folder.",
64305	//       "location": "query",
64306	//       "type": "string"
64307	//     }
64308	//   },
64309	//   "path": "locations/global/firewallPolicies/listAssociations",
64310	//   "response": {
64311	//     "$ref": "FirewallPoliciesListAssociationsResponse"
64312	//   },
64313	//   "scopes": [
64314	//     "https://www.googleapis.com/auth/cloud-platform",
64315	//     "https://www.googleapis.com/auth/compute",
64316	//     "https://www.googleapis.com/auth/compute.readonly"
64317	//   ]
64318	// }
64319
64320}
64321
64322// method id "compute.firewallPolicies.move":
64323
64324type FirewallPoliciesMoveCall struct {
64325	s              *Service
64326	firewallPolicy string
64327	urlParams_     gensupport.URLParams
64328	ctx_           context.Context
64329	header_        http.Header
64330}
64331
64332// Move: Moves the specified firewall policy.
64333//
64334// - firewallPolicy: Name of the firewall policy to update.
64335func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall {
64336	c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64337	c.firewallPolicy = firewallPolicy
64338	return c
64339}
64340
64341// ParentId sets the optional parameter "parentId": The new parent of
64342// the firewall policy.
64343func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall {
64344	c.urlParams_.Set("parentId", parentId)
64345	return c
64346}
64347
64348// RequestId sets the optional parameter "requestId": An optional
64349// request ID to identify requests. Specify a unique request ID so that
64350// if you must retry your request, the server will know to ignore the
64351// request if it has already been completed. For example, consider a
64352// situation where you make an initial request and the request times
64353// out. If you make the request again with the same request ID, the
64354// server can check if original operation with the same request ID was
64355// received, and if so, will ignore the second request. This prevents
64356// clients from accidentally creating duplicate commitments. The request
64357// ID must be a valid UUID with the exception that zero UUID is not
64358// supported ( 00000000-0000-0000-0000-000000000000).
64359func (c *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall {
64360	c.urlParams_.Set("requestId", requestId)
64361	return c
64362}
64363
64364// Fields allows partial responses to be retrieved. See
64365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64366// for more information.
64367func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall {
64368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64369	return c
64370}
64371
64372// Context sets the context to be used in this call's Do method. Any
64373// pending HTTP request will be aborted if the provided context is
64374// canceled.
64375func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall {
64376	c.ctx_ = ctx
64377	return c
64378}
64379
64380// Header returns an http.Header that can be modified by the caller to
64381// add HTTP headers to the request.
64382func (c *FirewallPoliciesMoveCall) Header() http.Header {
64383	if c.header_ == nil {
64384		c.header_ = make(http.Header)
64385	}
64386	return c.header_
64387}
64388
64389func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
64390	reqHeaders := make(http.Header)
64391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64392	for k, v := range c.header_ {
64393		reqHeaders[k] = v
64394	}
64395	reqHeaders.Set("User-Agent", c.s.userAgent())
64396	var body io.Reader = nil
64397	c.urlParams_.Set("alt", alt)
64398	c.urlParams_.Set("prettyPrint", "false")
64399	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move")
64400	urls += "?" + c.urlParams_.Encode()
64401	req, err := http.NewRequest("POST", urls, body)
64402	if err != nil {
64403		return nil, err
64404	}
64405	req.Header = reqHeaders
64406	googleapi.Expand(req.URL, map[string]string{
64407		"firewallPolicy": c.firewallPolicy,
64408	})
64409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64410}
64411
64412// Do executes the "compute.firewallPolicies.move" call.
64413// Exactly one of *Operation or error will be non-nil. Any non-2xx
64414// status code is an error. Response headers are in either
64415// *Operation.ServerResponse.Header or (if a response was returned at
64416// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64417// to check whether the returned error was because
64418// http.StatusNotModified was returned.
64419func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64420	gensupport.SetOptions(c.urlParams_, opts...)
64421	res, err := c.doRequest("json")
64422	if res != nil && res.StatusCode == http.StatusNotModified {
64423		if res.Body != nil {
64424			res.Body.Close()
64425		}
64426		return nil, &googleapi.Error{
64427			Code:   res.StatusCode,
64428			Header: res.Header,
64429		}
64430	}
64431	if err != nil {
64432		return nil, err
64433	}
64434	defer googleapi.CloseBody(res)
64435	if err := googleapi.CheckResponse(res); err != nil {
64436		return nil, err
64437	}
64438	ret := &Operation{
64439		ServerResponse: googleapi.ServerResponse{
64440			Header:         res.Header,
64441			HTTPStatusCode: res.StatusCode,
64442		},
64443	}
64444	target := &ret
64445	if err := gensupport.DecodeResponse(target, res); err != nil {
64446		return nil, err
64447	}
64448	return ret, nil
64449	// {
64450	//   "description": "Moves the specified firewall policy.",
64451	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move",
64452	//   "httpMethod": "POST",
64453	//   "id": "compute.firewallPolicies.move",
64454	//   "parameterOrder": [
64455	//     "firewallPolicy"
64456	//   ],
64457	//   "parameters": {
64458	//     "firewallPolicy": {
64459	//       "description": "Name of the firewall policy to update.",
64460	//       "location": "path",
64461	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64462	//       "required": true,
64463	//       "type": "string"
64464	//     },
64465	//     "parentId": {
64466	//       "description": "The new parent of the firewall policy.",
64467	//       "location": "query",
64468	//       "type": "string"
64469	//     },
64470	//     "requestId": {
64471	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64472	//       "location": "query",
64473	//       "type": "string"
64474	//     }
64475	//   },
64476	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
64477	//   "response": {
64478	//     "$ref": "Operation"
64479	//   },
64480	//   "scopes": [
64481	//     "https://www.googleapis.com/auth/cloud-platform",
64482	//     "https://www.googleapis.com/auth/compute"
64483	//   ]
64484	// }
64485
64486}
64487
64488// method id "compute.firewallPolicies.patch":
64489
64490type FirewallPoliciesPatchCall struct {
64491	s              *Service
64492	firewallPolicy string
64493	firewallpolicy *FirewallPolicy
64494	urlParams_     gensupport.URLParams
64495	ctx_           context.Context
64496	header_        http.Header
64497}
64498
64499// Patch: Patches the specified policy with the data included in the
64500// request.
64501//
64502// - firewallPolicy: Name of the firewall policy to update.
64503func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall {
64504	c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64505	c.firewallPolicy = firewallPolicy
64506	c.firewallpolicy = firewallpolicy
64507	return c
64508}
64509
64510// RequestId sets the optional parameter "requestId": An optional
64511// request ID to identify requests. Specify a unique request ID so that
64512// if you must retry your request, the server will know to ignore the
64513// request if it has already been completed. For example, consider a
64514// situation where you make an initial request and the request times
64515// out. If you make the request again with the same request ID, the
64516// server can check if original operation with the same request ID was
64517// received, and if so, will ignore the second request. This prevents
64518// clients from accidentally creating duplicate commitments. The request
64519// ID must be a valid UUID with the exception that zero UUID is not
64520// supported ( 00000000-0000-0000-0000-000000000000).
64521func (c *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall {
64522	c.urlParams_.Set("requestId", requestId)
64523	return c
64524}
64525
64526// Fields allows partial responses to be retrieved. See
64527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64528// for more information.
64529func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall {
64530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64531	return c
64532}
64533
64534// Context sets the context to be used in this call's Do method. Any
64535// pending HTTP request will be aborted if the provided context is
64536// canceled.
64537func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall {
64538	c.ctx_ = ctx
64539	return c
64540}
64541
64542// Header returns an http.Header that can be modified by the caller to
64543// add HTTP headers to the request.
64544func (c *FirewallPoliciesPatchCall) Header() http.Header {
64545	if c.header_ == nil {
64546		c.header_ = make(http.Header)
64547	}
64548	return c.header_
64549}
64550
64551func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
64552	reqHeaders := make(http.Header)
64553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64554	for k, v := range c.header_ {
64555		reqHeaders[k] = v
64556	}
64557	reqHeaders.Set("User-Agent", c.s.userAgent())
64558	var body io.Reader = nil
64559	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
64560	if err != nil {
64561		return nil, err
64562	}
64563	reqHeaders.Set("Content-Type", "application/json")
64564	c.urlParams_.Set("alt", alt)
64565	c.urlParams_.Set("prettyPrint", "false")
64566	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
64567	urls += "?" + c.urlParams_.Encode()
64568	req, err := http.NewRequest("PATCH", urls, body)
64569	if err != nil {
64570		return nil, err
64571	}
64572	req.Header = reqHeaders
64573	googleapi.Expand(req.URL, map[string]string{
64574		"firewallPolicy": c.firewallPolicy,
64575	})
64576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64577}
64578
64579// Do executes the "compute.firewallPolicies.patch" call.
64580// Exactly one of *Operation or error will be non-nil. Any non-2xx
64581// status code is an error. Response headers are in either
64582// *Operation.ServerResponse.Header or (if a response was returned at
64583// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64584// to check whether the returned error was because
64585// http.StatusNotModified was returned.
64586func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64587	gensupport.SetOptions(c.urlParams_, opts...)
64588	res, err := c.doRequest("json")
64589	if res != nil && res.StatusCode == http.StatusNotModified {
64590		if res.Body != nil {
64591			res.Body.Close()
64592		}
64593		return nil, &googleapi.Error{
64594			Code:   res.StatusCode,
64595			Header: res.Header,
64596		}
64597	}
64598	if err != nil {
64599		return nil, err
64600	}
64601	defer googleapi.CloseBody(res)
64602	if err := googleapi.CheckResponse(res); err != nil {
64603		return nil, err
64604	}
64605	ret := &Operation{
64606		ServerResponse: googleapi.ServerResponse{
64607			Header:         res.Header,
64608			HTTPStatusCode: res.StatusCode,
64609		},
64610	}
64611	target := &ret
64612	if err := gensupport.DecodeResponse(target, res); err != nil {
64613		return nil, err
64614	}
64615	return ret, nil
64616	// {
64617	//   "description": "Patches the specified policy with the data included in the request.",
64618	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
64619	//   "httpMethod": "PATCH",
64620	//   "id": "compute.firewallPolicies.patch",
64621	//   "parameterOrder": [
64622	//     "firewallPolicy"
64623	//   ],
64624	//   "parameters": {
64625	//     "firewallPolicy": {
64626	//       "description": "Name of the firewall policy to update.",
64627	//       "location": "path",
64628	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64629	//       "required": true,
64630	//       "type": "string"
64631	//     },
64632	//     "requestId": {
64633	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64634	//       "location": "query",
64635	//       "type": "string"
64636	//     }
64637	//   },
64638	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
64639	//   "request": {
64640	//     "$ref": "FirewallPolicy"
64641	//   },
64642	//   "response": {
64643	//     "$ref": "Operation"
64644	//   },
64645	//   "scopes": [
64646	//     "https://www.googleapis.com/auth/cloud-platform",
64647	//     "https://www.googleapis.com/auth/compute"
64648	//   ]
64649	// }
64650
64651}
64652
64653// method id "compute.firewallPolicies.patchRule":
64654
64655type FirewallPoliciesPatchRuleCall struct {
64656	s                  *Service
64657	firewallPolicy     string
64658	firewallpolicyrule *FirewallPolicyRule
64659	urlParams_         gensupport.URLParams
64660	ctx_               context.Context
64661	header_            http.Header
64662}
64663
64664// PatchRule: Patches a rule of the specified priority.
64665//
64666// - firewallPolicy: Name of the firewall policy to update.
64667func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall {
64668	c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64669	c.firewallPolicy = firewallPolicy
64670	c.firewallpolicyrule = firewallpolicyrule
64671	return c
64672}
64673
64674// Priority sets the optional parameter "priority": The priority of the
64675// rule to patch.
64676func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall {
64677	c.urlParams_.Set("priority", fmt.Sprint(priority))
64678	return c
64679}
64680
64681// RequestId sets the optional parameter "requestId": An optional
64682// request ID to identify requests. Specify a unique request ID so that
64683// if you must retry your request, the server will know to ignore the
64684// request if it has already been completed. For example, consider a
64685// situation where you make an initial request and the request times
64686// out. If you make the request again with the same request ID, the
64687// server can check if original operation with the same request ID was
64688// received, and if so, will ignore the second request. This prevents
64689// clients from accidentally creating duplicate commitments. The request
64690// ID must be a valid UUID with the exception that zero UUID is not
64691// supported ( 00000000-0000-0000-0000-000000000000).
64692func (c *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall {
64693	c.urlParams_.Set("requestId", requestId)
64694	return c
64695}
64696
64697// Fields allows partial responses to be retrieved. See
64698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64699// for more information.
64700func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall {
64701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64702	return c
64703}
64704
64705// Context sets the context to be used in this call's Do method. Any
64706// pending HTTP request will be aborted if the provided context is
64707// canceled.
64708func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall {
64709	c.ctx_ = ctx
64710	return c
64711}
64712
64713// Header returns an http.Header that can be modified by the caller to
64714// add HTTP headers to the request.
64715func (c *FirewallPoliciesPatchRuleCall) Header() http.Header {
64716	if c.header_ == nil {
64717		c.header_ = make(http.Header)
64718	}
64719	return c.header_
64720}
64721
64722func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
64723	reqHeaders := make(http.Header)
64724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64725	for k, v := range c.header_ {
64726		reqHeaders[k] = v
64727	}
64728	reqHeaders.Set("User-Agent", c.s.userAgent())
64729	var body io.Reader = nil
64730	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
64731	if err != nil {
64732		return nil, err
64733	}
64734	reqHeaders.Set("Content-Type", "application/json")
64735	c.urlParams_.Set("alt", alt)
64736	c.urlParams_.Set("prettyPrint", "false")
64737	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule")
64738	urls += "?" + c.urlParams_.Encode()
64739	req, err := http.NewRequest("POST", urls, body)
64740	if err != nil {
64741		return nil, err
64742	}
64743	req.Header = reqHeaders
64744	googleapi.Expand(req.URL, map[string]string{
64745		"firewallPolicy": c.firewallPolicy,
64746	})
64747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64748}
64749
64750// Do executes the "compute.firewallPolicies.patchRule" call.
64751// Exactly one of *Operation or error will be non-nil. Any non-2xx
64752// status code is an error. Response headers are in either
64753// *Operation.ServerResponse.Header or (if a response was returned at
64754// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64755// to check whether the returned error was because
64756// http.StatusNotModified was returned.
64757func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64758	gensupport.SetOptions(c.urlParams_, opts...)
64759	res, err := c.doRequest("json")
64760	if res != nil && res.StatusCode == http.StatusNotModified {
64761		if res.Body != nil {
64762			res.Body.Close()
64763		}
64764		return nil, &googleapi.Error{
64765			Code:   res.StatusCode,
64766			Header: res.Header,
64767		}
64768	}
64769	if err != nil {
64770		return nil, err
64771	}
64772	defer googleapi.CloseBody(res)
64773	if err := googleapi.CheckResponse(res); err != nil {
64774		return nil, err
64775	}
64776	ret := &Operation{
64777		ServerResponse: googleapi.ServerResponse{
64778			Header:         res.Header,
64779			HTTPStatusCode: res.StatusCode,
64780		},
64781	}
64782	target := &ret
64783	if err := gensupport.DecodeResponse(target, res); err != nil {
64784		return nil, err
64785	}
64786	return ret, nil
64787	// {
64788	//   "description": "Patches a rule of the specified priority.",
64789	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
64790	//   "httpMethod": "POST",
64791	//   "id": "compute.firewallPolicies.patchRule",
64792	//   "parameterOrder": [
64793	//     "firewallPolicy"
64794	//   ],
64795	//   "parameters": {
64796	//     "firewallPolicy": {
64797	//       "description": "Name of the firewall policy to update.",
64798	//       "location": "path",
64799	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64800	//       "required": true,
64801	//       "type": "string"
64802	//     },
64803	//     "priority": {
64804	//       "description": "The priority of the rule to patch.",
64805	//       "format": "int32",
64806	//       "location": "query",
64807	//       "type": "integer"
64808	//     },
64809	//     "requestId": {
64810	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64811	//       "location": "query",
64812	//       "type": "string"
64813	//     }
64814	//   },
64815	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
64816	//   "request": {
64817	//     "$ref": "FirewallPolicyRule"
64818	//   },
64819	//   "response": {
64820	//     "$ref": "Operation"
64821	//   },
64822	//   "scopes": [
64823	//     "https://www.googleapis.com/auth/cloud-platform",
64824	//     "https://www.googleapis.com/auth/compute"
64825	//   ]
64826	// }
64827
64828}
64829
64830// method id "compute.firewallPolicies.removeAssociation":
64831
64832type FirewallPoliciesRemoveAssociationCall struct {
64833	s              *Service
64834	firewallPolicy string
64835	urlParams_     gensupport.URLParams
64836	ctx_           context.Context
64837	header_        http.Header
64838}
64839
64840// RemoveAssociation: Removes an association for the specified firewall
64841// policy.
64842//
64843// - firewallPolicy: Name of the firewall policy to update.
64844func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall {
64845	c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64846	c.firewallPolicy = firewallPolicy
64847	return c
64848}
64849
64850// Name sets the optional parameter "name": Name for the attachment that
64851// will be removed.
64852func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall {
64853	c.urlParams_.Set("name", name)
64854	return c
64855}
64856
64857// RequestId sets the optional parameter "requestId": An optional
64858// request ID to identify requests. Specify a unique request ID so that
64859// if you must retry your request, the server will know to ignore the
64860// request if it has already been completed. For example, consider a
64861// situation where you make an initial request and the request times
64862// out. If you make the request again with the same request ID, the
64863// server can check if original operation with the same request ID was
64864// received, and if so, will ignore the second request. This prevents
64865// clients from accidentally creating duplicate commitments. The request
64866// ID must be a valid UUID with the exception that zero UUID is not
64867// supported ( 00000000-0000-0000-0000-000000000000).
64868func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall {
64869	c.urlParams_.Set("requestId", requestId)
64870	return c
64871}
64872
64873// Fields allows partial responses to be retrieved. See
64874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64875// for more information.
64876func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall {
64877	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64878	return c
64879}
64880
64881// Context sets the context to be used in this call's Do method. Any
64882// pending HTTP request will be aborted if the provided context is
64883// canceled.
64884func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall {
64885	c.ctx_ = ctx
64886	return c
64887}
64888
64889// Header returns an http.Header that can be modified by the caller to
64890// add HTTP headers to the request.
64891func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header {
64892	if c.header_ == nil {
64893		c.header_ = make(http.Header)
64894	}
64895	return c.header_
64896}
64897
64898func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
64899	reqHeaders := make(http.Header)
64900	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
64901	for k, v := range c.header_ {
64902		reqHeaders[k] = v
64903	}
64904	reqHeaders.Set("User-Agent", c.s.userAgent())
64905	var body io.Reader = nil
64906	c.urlParams_.Set("alt", alt)
64907	c.urlParams_.Set("prettyPrint", "false")
64908	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation")
64909	urls += "?" + c.urlParams_.Encode()
64910	req, err := http.NewRequest("POST", urls, body)
64911	if err != nil {
64912		return nil, err
64913	}
64914	req.Header = reqHeaders
64915	googleapi.Expand(req.URL, map[string]string{
64916		"firewallPolicy": c.firewallPolicy,
64917	})
64918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64919}
64920
64921// Do executes the "compute.firewallPolicies.removeAssociation" call.
64922// Exactly one of *Operation or error will be non-nil. Any non-2xx
64923// status code is an error. Response headers are in either
64924// *Operation.ServerResponse.Header or (if a response was returned at
64925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64926// to check whether the returned error was because
64927// http.StatusNotModified was returned.
64928func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64929	gensupport.SetOptions(c.urlParams_, opts...)
64930	res, err := c.doRequest("json")
64931	if res != nil && res.StatusCode == http.StatusNotModified {
64932		if res.Body != nil {
64933			res.Body.Close()
64934		}
64935		return nil, &googleapi.Error{
64936			Code:   res.StatusCode,
64937			Header: res.Header,
64938		}
64939	}
64940	if err != nil {
64941		return nil, err
64942	}
64943	defer googleapi.CloseBody(res)
64944	if err := googleapi.CheckResponse(res); err != nil {
64945		return nil, err
64946	}
64947	ret := &Operation{
64948		ServerResponse: googleapi.ServerResponse{
64949			Header:         res.Header,
64950			HTTPStatusCode: res.StatusCode,
64951		},
64952	}
64953	target := &ret
64954	if err := gensupport.DecodeResponse(target, res); err != nil {
64955		return nil, err
64956	}
64957	return ret, nil
64958	// {
64959	//   "description": "Removes an association for the specified firewall policy.",
64960	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
64961	//   "httpMethod": "POST",
64962	//   "id": "compute.firewallPolicies.removeAssociation",
64963	//   "parameterOrder": [
64964	//     "firewallPolicy"
64965	//   ],
64966	//   "parameters": {
64967	//     "firewallPolicy": {
64968	//       "description": "Name of the firewall policy to update.",
64969	//       "location": "path",
64970	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64971	//       "required": true,
64972	//       "type": "string"
64973	//     },
64974	//     "name": {
64975	//       "description": "Name for the attachment that will be removed.",
64976	//       "location": "query",
64977	//       "type": "string"
64978	//     },
64979	//     "requestId": {
64980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64981	//       "location": "query",
64982	//       "type": "string"
64983	//     }
64984	//   },
64985	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
64986	//   "response": {
64987	//     "$ref": "Operation"
64988	//   },
64989	//   "scopes": [
64990	//     "https://www.googleapis.com/auth/cloud-platform",
64991	//     "https://www.googleapis.com/auth/compute"
64992	//   ]
64993	// }
64994
64995}
64996
64997// method id "compute.firewallPolicies.removeRule":
64998
64999type FirewallPoliciesRemoveRuleCall struct {
65000	s              *Service
65001	firewallPolicy string
65002	urlParams_     gensupport.URLParams
65003	ctx_           context.Context
65004	header_        http.Header
65005}
65006
65007// RemoveRule: Deletes a rule of the specified priority.
65008//
65009// - firewallPolicy: Name of the firewall policy to update.
65010func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall {
65011	c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65012	c.firewallPolicy = firewallPolicy
65013	return c
65014}
65015
65016// Priority sets the optional parameter "priority": The priority of the
65017// rule to remove from the firewall policy.
65018func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall {
65019	c.urlParams_.Set("priority", fmt.Sprint(priority))
65020	return c
65021}
65022
65023// RequestId sets the optional parameter "requestId": An optional
65024// request ID to identify requests. Specify a unique request ID so that
65025// if you must retry your request, the server will know to ignore the
65026// request if it has already been completed. For example, consider a
65027// situation where you make an initial request and the request times
65028// out. If you make the request again with the same request ID, the
65029// server can check if original operation with the same request ID was
65030// received, and if so, will ignore the second request. This prevents
65031// clients from accidentally creating duplicate commitments. The request
65032// ID must be a valid UUID with the exception that zero UUID is not
65033// supported ( 00000000-0000-0000-0000-000000000000).
65034func (c *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall {
65035	c.urlParams_.Set("requestId", requestId)
65036	return c
65037}
65038
65039// Fields allows partial responses to be retrieved. See
65040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65041// for more information.
65042func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall {
65043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65044	return c
65045}
65046
65047// Context sets the context to be used in this call's Do method. Any
65048// pending HTTP request will be aborted if the provided context is
65049// canceled.
65050func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall {
65051	c.ctx_ = ctx
65052	return c
65053}
65054
65055// Header returns an http.Header that can be modified by the caller to
65056// add HTTP headers to the request.
65057func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header {
65058	if c.header_ == nil {
65059		c.header_ = make(http.Header)
65060	}
65061	return c.header_
65062}
65063
65064func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
65065	reqHeaders := make(http.Header)
65066	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65067	for k, v := range c.header_ {
65068		reqHeaders[k] = v
65069	}
65070	reqHeaders.Set("User-Agent", c.s.userAgent())
65071	var body io.Reader = nil
65072	c.urlParams_.Set("alt", alt)
65073	c.urlParams_.Set("prettyPrint", "false")
65074	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule")
65075	urls += "?" + c.urlParams_.Encode()
65076	req, err := http.NewRequest("POST", urls, body)
65077	if err != nil {
65078		return nil, err
65079	}
65080	req.Header = reqHeaders
65081	googleapi.Expand(req.URL, map[string]string{
65082		"firewallPolicy": c.firewallPolicy,
65083	})
65084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65085}
65086
65087// Do executes the "compute.firewallPolicies.removeRule" call.
65088// Exactly one of *Operation or error will be non-nil. Any non-2xx
65089// status code is an error. Response headers are in either
65090// *Operation.ServerResponse.Header or (if a response was returned at
65091// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65092// to check whether the returned error was because
65093// http.StatusNotModified was returned.
65094func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65095	gensupport.SetOptions(c.urlParams_, opts...)
65096	res, err := c.doRequest("json")
65097	if res != nil && res.StatusCode == http.StatusNotModified {
65098		if res.Body != nil {
65099			res.Body.Close()
65100		}
65101		return nil, &googleapi.Error{
65102			Code:   res.StatusCode,
65103			Header: res.Header,
65104		}
65105	}
65106	if err != nil {
65107		return nil, err
65108	}
65109	defer googleapi.CloseBody(res)
65110	if err := googleapi.CheckResponse(res); err != nil {
65111		return nil, err
65112	}
65113	ret := &Operation{
65114		ServerResponse: googleapi.ServerResponse{
65115			Header:         res.Header,
65116			HTTPStatusCode: res.StatusCode,
65117		},
65118	}
65119	target := &ret
65120	if err := gensupport.DecodeResponse(target, res); err != nil {
65121		return nil, err
65122	}
65123	return ret, nil
65124	// {
65125	//   "description": "Deletes a rule of the specified priority.",
65126	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
65127	//   "httpMethod": "POST",
65128	//   "id": "compute.firewallPolicies.removeRule",
65129	//   "parameterOrder": [
65130	//     "firewallPolicy"
65131	//   ],
65132	//   "parameters": {
65133	//     "firewallPolicy": {
65134	//       "description": "Name of the firewall policy to update.",
65135	//       "location": "path",
65136	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65137	//       "required": true,
65138	//       "type": "string"
65139	//     },
65140	//     "priority": {
65141	//       "description": "The priority of the rule to remove from the firewall policy.",
65142	//       "format": "int32",
65143	//       "location": "query",
65144	//       "type": "integer"
65145	//     },
65146	//     "requestId": {
65147	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65148	//       "location": "query",
65149	//       "type": "string"
65150	//     }
65151	//   },
65152	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
65153	//   "response": {
65154	//     "$ref": "Operation"
65155	//   },
65156	//   "scopes": [
65157	//     "https://www.googleapis.com/auth/cloud-platform",
65158	//     "https://www.googleapis.com/auth/compute"
65159	//   ]
65160	// }
65161
65162}
65163
65164// method id "compute.firewallPolicies.setIamPolicy":
65165
65166type FirewallPoliciesSetIamPolicyCall struct {
65167	s                                  *Service
65168	resource                           string
65169	globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest
65170	urlParams_                         gensupport.URLParams
65171	ctx_                               context.Context
65172	header_                            http.Header
65173}
65174
65175// SetIamPolicy: Sets the access control policy on the specified
65176// resource. Replaces any existing policy.
65177//
65178// - resource: Name or id of the resource for this request.
65179func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall {
65180	c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65181	c.resource = resource
65182	c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest
65183	return c
65184}
65185
65186// Fields allows partial responses to be retrieved. See
65187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65188// for more information.
65189func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall {
65190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65191	return c
65192}
65193
65194// Context sets the context to be used in this call's Do method. Any
65195// pending HTTP request will be aborted if the provided context is
65196// canceled.
65197func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall {
65198	c.ctx_ = ctx
65199	return c
65200}
65201
65202// Header returns an http.Header that can be modified by the caller to
65203// add HTTP headers to the request.
65204func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header {
65205	if c.header_ == nil {
65206		c.header_ = make(http.Header)
65207	}
65208	return c.header_
65209}
65210
65211func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
65212	reqHeaders := make(http.Header)
65213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65214	for k, v := range c.header_ {
65215		reqHeaders[k] = v
65216	}
65217	reqHeaders.Set("User-Agent", c.s.userAgent())
65218	var body io.Reader = nil
65219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest)
65220	if err != nil {
65221		return nil, err
65222	}
65223	reqHeaders.Set("Content-Type", "application/json")
65224	c.urlParams_.Set("alt", alt)
65225	c.urlParams_.Set("prettyPrint", "false")
65226	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy")
65227	urls += "?" + c.urlParams_.Encode()
65228	req, err := http.NewRequest("POST", urls, body)
65229	if err != nil {
65230		return nil, err
65231	}
65232	req.Header = reqHeaders
65233	googleapi.Expand(req.URL, map[string]string{
65234		"resource": c.resource,
65235	})
65236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65237}
65238
65239// Do executes the "compute.firewallPolicies.setIamPolicy" call.
65240// Exactly one of *Policy or error will be non-nil. Any non-2xx status
65241// code is an error. Response headers are in either
65242// *Policy.ServerResponse.Header or (if a response was returned at all)
65243// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
65244// check whether the returned error was because http.StatusNotModified
65245// was returned.
65246func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
65247	gensupport.SetOptions(c.urlParams_, opts...)
65248	res, err := c.doRequest("json")
65249	if res != nil && res.StatusCode == http.StatusNotModified {
65250		if res.Body != nil {
65251			res.Body.Close()
65252		}
65253		return nil, &googleapi.Error{
65254			Code:   res.StatusCode,
65255			Header: res.Header,
65256		}
65257	}
65258	if err != nil {
65259		return nil, err
65260	}
65261	defer googleapi.CloseBody(res)
65262	if err := googleapi.CheckResponse(res); err != nil {
65263		return nil, err
65264	}
65265	ret := &Policy{
65266		ServerResponse: googleapi.ServerResponse{
65267			Header:         res.Header,
65268			HTTPStatusCode: res.StatusCode,
65269		},
65270	}
65271	target := &ret
65272	if err := gensupport.DecodeResponse(target, res); err != nil {
65273		return nil, err
65274	}
65275	return ret, nil
65276	// {
65277	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
65278	//   "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy",
65279	//   "httpMethod": "POST",
65280	//   "id": "compute.firewallPolicies.setIamPolicy",
65281	//   "parameterOrder": [
65282	//     "resource"
65283	//   ],
65284	//   "parameters": {
65285	//     "resource": {
65286	//       "description": "Name or id of the resource for this request.",
65287	//       "location": "path",
65288	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65289	//       "required": true,
65290	//       "type": "string"
65291	//     }
65292	//   },
65293	//   "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
65294	//   "request": {
65295	//     "$ref": "GlobalOrganizationSetPolicyRequest"
65296	//   },
65297	//   "response": {
65298	//     "$ref": "Policy"
65299	//   },
65300	//   "scopes": [
65301	//     "https://www.googleapis.com/auth/cloud-platform",
65302	//     "https://www.googleapis.com/auth/compute"
65303	//   ]
65304	// }
65305
65306}
65307
65308// method id "compute.firewallPolicies.testIamPermissions":
65309
65310type FirewallPoliciesTestIamPermissionsCall struct {
65311	s                      *Service
65312	resource               string
65313	testpermissionsrequest *TestPermissionsRequest
65314	urlParams_             gensupport.URLParams
65315	ctx_                   context.Context
65316	header_                http.Header
65317}
65318
65319// TestIamPermissions: Returns permissions that a caller has on the
65320// specified resource.
65321//
65322// - resource: Name or id of the resource for this request.
65323func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall {
65324	c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65325	c.resource = resource
65326	c.testpermissionsrequest = testpermissionsrequest
65327	return c
65328}
65329
65330// Fields allows partial responses to be retrieved. See
65331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65332// for more information.
65333func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall {
65334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65335	return c
65336}
65337
65338// Context sets the context to be used in this call's Do method. Any
65339// pending HTTP request will be aborted if the provided context is
65340// canceled.
65341func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall {
65342	c.ctx_ = ctx
65343	return c
65344}
65345
65346// Header returns an http.Header that can be modified by the caller to
65347// add HTTP headers to the request.
65348func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header {
65349	if c.header_ == nil {
65350		c.header_ = make(http.Header)
65351	}
65352	return c.header_
65353}
65354
65355func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65356	reqHeaders := make(http.Header)
65357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65358	for k, v := range c.header_ {
65359		reqHeaders[k] = v
65360	}
65361	reqHeaders.Set("User-Agent", c.s.userAgent())
65362	var body io.Reader = nil
65363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65364	if err != nil {
65365		return nil, err
65366	}
65367	reqHeaders.Set("Content-Type", "application/json")
65368	c.urlParams_.Set("alt", alt)
65369	c.urlParams_.Set("prettyPrint", "false")
65370	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions")
65371	urls += "?" + c.urlParams_.Encode()
65372	req, err := http.NewRequest("POST", urls, body)
65373	if err != nil {
65374		return nil, err
65375	}
65376	req.Header = reqHeaders
65377	googleapi.Expand(req.URL, map[string]string{
65378		"resource": c.resource,
65379	})
65380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65381}
65382
65383// Do executes the "compute.firewallPolicies.testIamPermissions" call.
65384// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65385// non-2xx status code is an error. Response headers are in either
65386// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65387// returned at all) in error.(*googleapi.Error).Header. Use
65388// googleapi.IsNotModified to check whether the returned error was
65389// because http.StatusNotModified was returned.
65390func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65391	gensupport.SetOptions(c.urlParams_, opts...)
65392	res, err := c.doRequest("json")
65393	if res != nil && res.StatusCode == http.StatusNotModified {
65394		if res.Body != nil {
65395			res.Body.Close()
65396		}
65397		return nil, &googleapi.Error{
65398			Code:   res.StatusCode,
65399			Header: res.Header,
65400		}
65401	}
65402	if err != nil {
65403		return nil, err
65404	}
65405	defer googleapi.CloseBody(res)
65406	if err := googleapi.CheckResponse(res); err != nil {
65407		return nil, err
65408	}
65409	ret := &TestPermissionsResponse{
65410		ServerResponse: googleapi.ServerResponse{
65411			Header:         res.Header,
65412			HTTPStatusCode: res.StatusCode,
65413		},
65414	}
65415	target := &ret
65416	if err := gensupport.DecodeResponse(target, res); err != nil {
65417		return nil, err
65418	}
65419	return ret, nil
65420	// {
65421	//   "description": "Returns permissions that a caller has on the specified resource.",
65422	//   "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions",
65423	//   "httpMethod": "POST",
65424	//   "id": "compute.firewallPolicies.testIamPermissions",
65425	//   "parameterOrder": [
65426	//     "resource"
65427	//   ],
65428	//   "parameters": {
65429	//     "resource": {
65430	//       "description": "Name or id of the resource for this request.",
65431	//       "location": "path",
65432	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65433	//       "required": true,
65434	//       "type": "string"
65435	//     }
65436	//   },
65437	//   "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
65438	//   "request": {
65439	//     "$ref": "TestPermissionsRequest"
65440	//   },
65441	//   "response": {
65442	//     "$ref": "TestPermissionsResponse"
65443	//   },
65444	//   "scopes": [
65445	//     "https://www.googleapis.com/auth/cloud-platform",
65446	//     "https://www.googleapis.com/auth/compute",
65447	//     "https://www.googleapis.com/auth/compute.readonly"
65448	//   ]
65449	// }
65450
65451}
65452
65453// method id "compute.firewalls.delete":
65454
65455type FirewallsDeleteCall struct {
65456	s          *Service
65457	project    string
65458	firewall   string
65459	urlParams_ gensupport.URLParams
65460	ctx_       context.Context
65461	header_    http.Header
65462}
65463
65464// Delete: Deletes the specified firewall.
65465//
65466// - firewall: Name of the firewall rule to delete.
65467// - project: Project ID for this request.
65468func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
65469	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65470	c.project = project
65471	c.firewall = firewall
65472	return c
65473}
65474
65475// RequestId sets the optional parameter "requestId": An optional
65476// request ID to identify requests. Specify a unique request ID so that
65477// if you must retry your request, the server will know to ignore the
65478// request if it has already been completed. For example, consider a
65479// situation where you make an initial request and the request times
65480// out. If you make the request again with the same request ID, the
65481// server can check if original operation with the same request ID was
65482// received, and if so, will ignore the second request. This prevents
65483// clients from accidentally creating duplicate commitments. The request
65484// ID must be a valid UUID with the exception that zero UUID is not
65485// supported ( 00000000-0000-0000-0000-000000000000).
65486func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
65487	c.urlParams_.Set("requestId", requestId)
65488	return c
65489}
65490
65491// Fields allows partial responses to be retrieved. See
65492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65493// for more information.
65494func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
65495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65496	return c
65497}
65498
65499// Context sets the context to be used in this call's Do method. Any
65500// pending HTTP request will be aborted if the provided context is
65501// canceled.
65502func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
65503	c.ctx_ = ctx
65504	return c
65505}
65506
65507// Header returns an http.Header that can be modified by the caller to
65508// add HTTP headers to the request.
65509func (c *FirewallsDeleteCall) Header() http.Header {
65510	if c.header_ == nil {
65511		c.header_ = make(http.Header)
65512	}
65513	return c.header_
65514}
65515
65516func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
65517	reqHeaders := make(http.Header)
65518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65519	for k, v := range c.header_ {
65520		reqHeaders[k] = v
65521	}
65522	reqHeaders.Set("User-Agent", c.s.userAgent())
65523	var body io.Reader = nil
65524	c.urlParams_.Set("alt", alt)
65525	c.urlParams_.Set("prettyPrint", "false")
65526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
65527	urls += "?" + c.urlParams_.Encode()
65528	req, err := http.NewRequest("DELETE", urls, body)
65529	if err != nil {
65530		return nil, err
65531	}
65532	req.Header = reqHeaders
65533	googleapi.Expand(req.URL, map[string]string{
65534		"project":  c.project,
65535		"firewall": c.firewall,
65536	})
65537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65538}
65539
65540// Do executes the "compute.firewalls.delete" call.
65541// Exactly one of *Operation or error will be non-nil. Any non-2xx
65542// status code is an error. Response headers are in either
65543// *Operation.ServerResponse.Header or (if a response was returned at
65544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65545// to check whether the returned error was because
65546// http.StatusNotModified was returned.
65547func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65548	gensupport.SetOptions(c.urlParams_, opts...)
65549	res, err := c.doRequest("json")
65550	if res != nil && res.StatusCode == http.StatusNotModified {
65551		if res.Body != nil {
65552			res.Body.Close()
65553		}
65554		return nil, &googleapi.Error{
65555			Code:   res.StatusCode,
65556			Header: res.Header,
65557		}
65558	}
65559	if err != nil {
65560		return nil, err
65561	}
65562	defer googleapi.CloseBody(res)
65563	if err := googleapi.CheckResponse(res); err != nil {
65564		return nil, err
65565	}
65566	ret := &Operation{
65567		ServerResponse: googleapi.ServerResponse{
65568			Header:         res.Header,
65569			HTTPStatusCode: res.StatusCode,
65570		},
65571	}
65572	target := &ret
65573	if err := gensupport.DecodeResponse(target, res); err != nil {
65574		return nil, err
65575	}
65576	return ret, nil
65577	// {
65578	//   "description": "Deletes the specified firewall.",
65579	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
65580	//   "httpMethod": "DELETE",
65581	//   "id": "compute.firewalls.delete",
65582	//   "parameterOrder": [
65583	//     "project",
65584	//     "firewall"
65585	//   ],
65586	//   "parameters": {
65587	//     "firewall": {
65588	//       "description": "Name of the firewall rule to delete.",
65589	//       "location": "path",
65590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65591	//       "required": true,
65592	//       "type": "string"
65593	//     },
65594	//     "project": {
65595	//       "description": "Project ID for this request.",
65596	//       "location": "path",
65597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65598	//       "required": true,
65599	//       "type": "string"
65600	//     },
65601	//     "requestId": {
65602	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65603	//       "location": "query",
65604	//       "type": "string"
65605	//     }
65606	//   },
65607	//   "path": "projects/{project}/global/firewalls/{firewall}",
65608	//   "response": {
65609	//     "$ref": "Operation"
65610	//   },
65611	//   "scopes": [
65612	//     "https://www.googleapis.com/auth/cloud-platform",
65613	//     "https://www.googleapis.com/auth/compute"
65614	//   ]
65615	// }
65616
65617}
65618
65619// method id "compute.firewalls.get":
65620
65621type FirewallsGetCall struct {
65622	s            *Service
65623	project      string
65624	firewall     string
65625	urlParams_   gensupport.URLParams
65626	ifNoneMatch_ string
65627	ctx_         context.Context
65628	header_      http.Header
65629}
65630
65631// Get: Returns the specified firewall.
65632//
65633// - firewall: Name of the firewall rule to return.
65634// - project: Project ID for this request.
65635func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
65636	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65637	c.project = project
65638	c.firewall = firewall
65639	return c
65640}
65641
65642// Fields allows partial responses to be retrieved. See
65643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65644// for more information.
65645func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
65646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65647	return c
65648}
65649
65650// IfNoneMatch sets the optional parameter which makes the operation
65651// fail if the object's ETag matches the given value. This is useful for
65652// getting updates only after the object has changed since the last
65653// request. Use googleapi.IsNotModified to check whether the response
65654// error from Do is the result of In-None-Match.
65655func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
65656	c.ifNoneMatch_ = entityTag
65657	return c
65658}
65659
65660// Context sets the context to be used in this call's Do method. Any
65661// pending HTTP request will be aborted if the provided context is
65662// canceled.
65663func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
65664	c.ctx_ = ctx
65665	return c
65666}
65667
65668// Header returns an http.Header that can be modified by the caller to
65669// add HTTP headers to the request.
65670func (c *FirewallsGetCall) Header() http.Header {
65671	if c.header_ == nil {
65672		c.header_ = make(http.Header)
65673	}
65674	return c.header_
65675}
65676
65677func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
65678	reqHeaders := make(http.Header)
65679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65680	for k, v := range c.header_ {
65681		reqHeaders[k] = v
65682	}
65683	reqHeaders.Set("User-Agent", c.s.userAgent())
65684	if c.ifNoneMatch_ != "" {
65685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65686	}
65687	var body io.Reader = nil
65688	c.urlParams_.Set("alt", alt)
65689	c.urlParams_.Set("prettyPrint", "false")
65690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
65691	urls += "?" + c.urlParams_.Encode()
65692	req, err := http.NewRequest("GET", urls, body)
65693	if err != nil {
65694		return nil, err
65695	}
65696	req.Header = reqHeaders
65697	googleapi.Expand(req.URL, map[string]string{
65698		"project":  c.project,
65699		"firewall": c.firewall,
65700	})
65701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65702}
65703
65704// Do executes the "compute.firewalls.get" call.
65705// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
65706// code is an error. Response headers are in either
65707// *Firewall.ServerResponse.Header or (if a response was returned at
65708// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65709// to check whether the returned error was because
65710// http.StatusNotModified was returned.
65711func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
65712	gensupport.SetOptions(c.urlParams_, opts...)
65713	res, err := c.doRequest("json")
65714	if res != nil && res.StatusCode == http.StatusNotModified {
65715		if res.Body != nil {
65716			res.Body.Close()
65717		}
65718		return nil, &googleapi.Error{
65719			Code:   res.StatusCode,
65720			Header: res.Header,
65721		}
65722	}
65723	if err != nil {
65724		return nil, err
65725	}
65726	defer googleapi.CloseBody(res)
65727	if err := googleapi.CheckResponse(res); err != nil {
65728		return nil, err
65729	}
65730	ret := &Firewall{
65731		ServerResponse: googleapi.ServerResponse{
65732			Header:         res.Header,
65733			HTTPStatusCode: res.StatusCode,
65734		},
65735	}
65736	target := &ret
65737	if err := gensupport.DecodeResponse(target, res); err != nil {
65738		return nil, err
65739	}
65740	return ret, nil
65741	// {
65742	//   "description": "Returns the specified firewall.",
65743	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
65744	//   "httpMethod": "GET",
65745	//   "id": "compute.firewalls.get",
65746	//   "parameterOrder": [
65747	//     "project",
65748	//     "firewall"
65749	//   ],
65750	//   "parameters": {
65751	//     "firewall": {
65752	//       "description": "Name of the firewall rule to return.",
65753	//       "location": "path",
65754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65755	//       "required": true,
65756	//       "type": "string"
65757	//     },
65758	//     "project": {
65759	//       "description": "Project ID for this request.",
65760	//       "location": "path",
65761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65762	//       "required": true,
65763	//       "type": "string"
65764	//     }
65765	//   },
65766	//   "path": "projects/{project}/global/firewalls/{firewall}",
65767	//   "response": {
65768	//     "$ref": "Firewall"
65769	//   },
65770	//   "scopes": [
65771	//     "https://www.googleapis.com/auth/cloud-platform",
65772	//     "https://www.googleapis.com/auth/compute",
65773	//     "https://www.googleapis.com/auth/compute.readonly"
65774	//   ]
65775	// }
65776
65777}
65778
65779// method id "compute.firewalls.insert":
65780
65781type FirewallsInsertCall struct {
65782	s          *Service
65783	project    string
65784	firewall   *Firewall
65785	urlParams_ gensupport.URLParams
65786	ctx_       context.Context
65787	header_    http.Header
65788}
65789
65790// Insert: Creates a firewall rule in the specified project using the
65791// data included in the request.
65792//
65793// - project: Project ID for this request.
65794func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
65795	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65796	c.project = project
65797	c.firewall = firewall
65798	return c
65799}
65800
65801// RequestId sets the optional parameter "requestId": An optional
65802// request ID to identify requests. Specify a unique request ID so that
65803// if you must retry your request, the server will know to ignore the
65804// request if it has already been completed. For example, consider a
65805// situation where you make an initial request and the request times
65806// out. If you make the request again with the same request ID, the
65807// server can check if original operation with the same request ID was
65808// received, and if so, will ignore the second request. This prevents
65809// clients from accidentally creating duplicate commitments. The request
65810// ID must be a valid UUID with the exception that zero UUID is not
65811// supported ( 00000000-0000-0000-0000-000000000000).
65812func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
65813	c.urlParams_.Set("requestId", requestId)
65814	return c
65815}
65816
65817// Fields allows partial responses to be retrieved. See
65818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65819// for more information.
65820func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
65821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65822	return c
65823}
65824
65825// Context sets the context to be used in this call's Do method. Any
65826// pending HTTP request will be aborted if the provided context is
65827// canceled.
65828func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
65829	c.ctx_ = ctx
65830	return c
65831}
65832
65833// Header returns an http.Header that can be modified by the caller to
65834// add HTTP headers to the request.
65835func (c *FirewallsInsertCall) Header() http.Header {
65836	if c.header_ == nil {
65837		c.header_ = make(http.Header)
65838	}
65839	return c.header_
65840}
65841
65842func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
65843	reqHeaders := make(http.Header)
65844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
65845	for k, v := range c.header_ {
65846		reqHeaders[k] = v
65847	}
65848	reqHeaders.Set("User-Agent", c.s.userAgent())
65849	var body io.Reader = nil
65850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
65851	if err != nil {
65852		return nil, err
65853	}
65854	reqHeaders.Set("Content-Type", "application/json")
65855	c.urlParams_.Set("alt", alt)
65856	c.urlParams_.Set("prettyPrint", "false")
65857	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
65858	urls += "?" + c.urlParams_.Encode()
65859	req, err := http.NewRequest("POST", urls, body)
65860	if err != nil {
65861		return nil, err
65862	}
65863	req.Header = reqHeaders
65864	googleapi.Expand(req.URL, map[string]string{
65865		"project": c.project,
65866	})
65867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65868}
65869
65870// Do executes the "compute.firewalls.insert" call.
65871// Exactly one of *Operation or error will be non-nil. Any non-2xx
65872// status code is an error. Response headers are in either
65873// *Operation.ServerResponse.Header or (if a response was returned at
65874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65875// to check whether the returned error was because
65876// http.StatusNotModified was returned.
65877func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65878	gensupport.SetOptions(c.urlParams_, opts...)
65879	res, err := c.doRequest("json")
65880	if res != nil && res.StatusCode == http.StatusNotModified {
65881		if res.Body != nil {
65882			res.Body.Close()
65883		}
65884		return nil, &googleapi.Error{
65885			Code:   res.StatusCode,
65886			Header: res.Header,
65887		}
65888	}
65889	if err != nil {
65890		return nil, err
65891	}
65892	defer googleapi.CloseBody(res)
65893	if err := googleapi.CheckResponse(res); err != nil {
65894		return nil, err
65895	}
65896	ret := &Operation{
65897		ServerResponse: googleapi.ServerResponse{
65898			Header:         res.Header,
65899			HTTPStatusCode: res.StatusCode,
65900		},
65901	}
65902	target := &ret
65903	if err := gensupport.DecodeResponse(target, res); err != nil {
65904		return nil, err
65905	}
65906	return ret, nil
65907	// {
65908	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
65909	//   "flatPath": "projects/{project}/global/firewalls",
65910	//   "httpMethod": "POST",
65911	//   "id": "compute.firewalls.insert",
65912	//   "parameterOrder": [
65913	//     "project"
65914	//   ],
65915	//   "parameters": {
65916	//     "project": {
65917	//       "description": "Project ID for this request.",
65918	//       "location": "path",
65919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65920	//       "required": true,
65921	//       "type": "string"
65922	//     },
65923	//     "requestId": {
65924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65925	//       "location": "query",
65926	//       "type": "string"
65927	//     }
65928	//   },
65929	//   "path": "projects/{project}/global/firewalls",
65930	//   "request": {
65931	//     "$ref": "Firewall"
65932	//   },
65933	//   "response": {
65934	//     "$ref": "Operation"
65935	//   },
65936	//   "scopes": [
65937	//     "https://www.googleapis.com/auth/cloud-platform",
65938	//     "https://www.googleapis.com/auth/compute"
65939	//   ]
65940	// }
65941
65942}
65943
65944// method id "compute.firewalls.list":
65945
65946type FirewallsListCall struct {
65947	s            *Service
65948	project      string
65949	urlParams_   gensupport.URLParams
65950	ifNoneMatch_ string
65951	ctx_         context.Context
65952	header_      http.Header
65953}
65954
65955// List: Retrieves the list of firewall rules available to the specified
65956// project.
65957//
65958// - project: Project ID for this request.
65959func (r *FirewallsService) List(project string) *FirewallsListCall {
65960	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65961	c.project = project
65962	return c
65963}
65964
65965// Filter sets the optional parameter "filter": A filter expression that
65966// filters resources listed in the response. The expression must specify
65967// the field name, a comparison operator, and the value that you want to
65968// use for filtering. The value must be a string, a number, or a
65969// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65970// `<`. For example, if you are filtering Compute Engine instances, you
65971// can exclude instances named `example-instance` by specifying `name !=
65972// example-instance`. You can also filter nested fields. For example,
65973// you could specify `scheduling.automaticRestart = false` to include
65974// instances only if they are not scheduled for automatic restarts. You
65975// can use filtering on nested fields to filter based on resource
65976// labels. To filter on multiple expressions, provide each separate
65977// expression within parentheses. For example: ```
65978// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
65979// ``` By default, each expression is an `AND` expression. However, you
65980// can include `AND` and `OR` expressions explicitly. For example: ```
65981// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
65982// AND (scheduling.automaticRestart = true) ```
65983func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
65984	c.urlParams_.Set("filter", filter)
65985	return c
65986}
65987
65988// MaxResults sets the optional parameter "maxResults": The maximum
65989// number of results per page that should be returned. If the number of
65990// available results is larger than `maxResults`, Compute Engine returns
65991// a `nextPageToken` that can be used to get the next page of results in
65992// subsequent list requests. Acceptable values are `0` to `500`,
65993// inclusive. (Default: `500`)
65994func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
65995	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65996	return c
65997}
65998
65999// OrderBy sets the optional parameter "orderBy": Sorts list results by
66000// a certain order. By default, results are returned in alphanumerical
66001// order based on the resource name. You can also sort results in
66002// descending order based on the creation timestamp using
66003// `orderBy="creationTimestamp desc". This sorts results based on the
66004// `creationTimestamp` field in reverse chronological order (newest
66005// result first). Use this to sort resources like operations so that the
66006// newest operation is returned first. Currently, only sorting by `name`
66007// or `creationTimestamp desc` is supported.
66008func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
66009	c.urlParams_.Set("orderBy", orderBy)
66010	return c
66011}
66012
66013// PageToken sets the optional parameter "pageToken": Specifies a page
66014// token to use. Set `pageToken` to the `nextPageToken` returned by a
66015// previous list request to get the next page of results.
66016func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
66017	c.urlParams_.Set("pageToken", pageToken)
66018	return c
66019}
66020
66021// ReturnPartialSuccess sets the optional parameter
66022// "returnPartialSuccess": Opt-in for partial success behavior which
66023// provides partial results in case of failure. The default value is
66024// false.
66025func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
66026	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
66027	return c
66028}
66029
66030// Fields allows partial responses to be retrieved. See
66031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66032// for more information.
66033func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
66034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66035	return c
66036}
66037
66038// IfNoneMatch sets the optional parameter which makes the operation
66039// fail if the object's ETag matches the given value. This is useful for
66040// getting updates only after the object has changed since the last
66041// request. Use googleapi.IsNotModified to check whether the response
66042// error from Do is the result of In-None-Match.
66043func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
66044	c.ifNoneMatch_ = entityTag
66045	return c
66046}
66047
66048// Context sets the context to be used in this call's Do method. Any
66049// pending HTTP request will be aborted if the provided context is
66050// canceled.
66051func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
66052	c.ctx_ = ctx
66053	return c
66054}
66055
66056// Header returns an http.Header that can be modified by the caller to
66057// add HTTP headers to the request.
66058func (c *FirewallsListCall) Header() http.Header {
66059	if c.header_ == nil {
66060		c.header_ = make(http.Header)
66061	}
66062	return c.header_
66063}
66064
66065func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
66066	reqHeaders := make(http.Header)
66067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
66068	for k, v := range c.header_ {
66069		reqHeaders[k] = v
66070	}
66071	reqHeaders.Set("User-Agent", c.s.userAgent())
66072	if c.ifNoneMatch_ != "" {
66073		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66074	}
66075	var body io.Reader = nil
66076	c.urlParams_.Set("alt", alt)
66077	c.urlParams_.Set("prettyPrint", "false")
66078	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
66079	urls += "?" + c.urlParams_.Encode()
66080	req, err := http.NewRequest("GET", urls, body)
66081	if err != nil {
66082		return nil, err
66083	}
66084	req.Header = reqHeaders
66085	googleapi.Expand(req.URL, map[string]string{
66086		"project": c.project,
66087	})
66088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66089}
66090
66091// Do executes the "compute.firewalls.list" call.
66092// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
66093// status code is an error. Response headers are in either
66094// *FirewallList.ServerResponse.Header or (if a response was returned at
66095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66096// to check whether the returned error was because
66097// http.StatusNotModified was returned.
66098func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
66099	gensupport.SetOptions(c.urlParams_, opts...)
66100	res, err := c.doRequest("json")
66101	if res != nil && res.StatusCode == http.StatusNotModified {
66102		if res.Body != nil {
66103			res.Body.Close()
66104		}
66105		return nil, &googleapi.Error{
66106			Code:   res.StatusCode,
66107			Header: res.Header,
66108		}
66109	}
66110	if err != nil {
66111		return nil, err
66112	}
66113	defer googleapi.CloseBody(res)
66114	if err := googleapi.CheckResponse(res); err != nil {
66115		return nil, err
66116	}
66117	ret := &FirewallList{
66118		ServerResponse: googleapi.ServerResponse{
66119			Header:         res.Header,
66120			HTTPStatusCode: res.StatusCode,
66121		},
66122	}
66123	target := &ret
66124	if err := gensupport.DecodeResponse(target, res); err != nil {
66125		return nil, err
66126	}
66127	return ret, nil
66128	// {
66129	//   "description": "Retrieves the list of firewall rules available to the specified project.",
66130	//   "flatPath": "projects/{project}/global/firewalls",
66131	//   "httpMethod": "GET",
66132	//   "id": "compute.firewalls.list",
66133	//   "parameterOrder": [
66134	//     "project"
66135	//   ],
66136	//   "parameters": {
66137	//     "filter": {
66138	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66139	//       "location": "query",
66140	//       "type": "string"
66141	//     },
66142	//     "maxResults": {
66143	//       "default": "500",
66144	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66145	//       "format": "uint32",
66146	//       "location": "query",
66147	//       "minimum": "0",
66148	//       "type": "integer"
66149	//     },
66150	//     "orderBy": {
66151	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
66152	//       "location": "query",
66153	//       "type": "string"
66154	//     },
66155	//     "pageToken": {
66156	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66157	//       "location": "query",
66158	//       "type": "string"
66159	//     },
66160	//     "project": {
66161	//       "description": "Project ID for this request.",
66162	//       "location": "path",
66163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66164	//       "required": true,
66165	//       "type": "string"
66166	//     },
66167	//     "returnPartialSuccess": {
66168	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
66169	//       "location": "query",
66170	//       "type": "boolean"
66171	//     }
66172	//   },
66173	//   "path": "projects/{project}/global/firewalls",
66174	//   "response": {
66175	//     "$ref": "FirewallList"
66176	//   },
66177	//   "scopes": [
66178	//     "https://www.googleapis.com/auth/cloud-platform",
66179	//     "https://www.googleapis.com/auth/compute",
66180	//     "https://www.googleapis.com/auth/compute.readonly"
66181	//   ]
66182	// }
66183
66184}
66185
66186// Pages invokes f for each page of results.
66187// A non-nil error returned from f will halt the iteration.
66188// The provided context supersedes any context provided to the Context method.
66189func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
66190	c.ctx_ = ctx
66191	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66192	for {
66193		x, err := c.Do()
66194		if err != nil {
66195			return err
66196		}
66197		if err := f(x); err != nil {
66198			return err
66199		}
66200		if x.NextPageToken == "" {
66201			return nil
66202		}
66203		c.PageToken(x.NextPageToken)
66204	}
66205}
66206
66207// method id "compute.firewalls.patch":
66208
66209type FirewallsPatchCall struct {
66210	s          *Service
66211	project    string
66212	firewall   string
66213	firewall2  *Firewall
66214	urlParams_ gensupport.URLParams
66215	ctx_       context.Context
66216	header_    http.Header
66217}
66218
66219// Patch: Updates the specified firewall rule with the data included in
66220// the request. This method supports PATCH semantics and uses the JSON
66221// merge patch format and processing rules.
66222//
66223// - firewall: Name of the firewall rule to patch.
66224// - project: Project ID for this request.
66225func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
66226	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66227	c.project = project
66228	c.firewall = firewall
66229	c.firewall2 = firewall2
66230	return c
66231}
66232
66233// RequestId sets the optional parameter "requestId": An optional
66234// request ID to identify requests. Specify a unique request ID so that
66235// if you must retry your request, the server will know to ignore the
66236// request if it has already been completed. For example, consider a
66237// situation where you make an initial request and the request times
66238// out. If you make the request again with the same request ID, the
66239// server can check if original operation with the same request ID was
66240// received, and if so, will ignore the second request. This prevents
66241// clients from accidentally creating duplicate commitments. The request
66242// ID must be a valid UUID with the exception that zero UUID is not
66243// supported ( 00000000-0000-0000-0000-000000000000).
66244func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
66245	c.urlParams_.Set("requestId", requestId)
66246	return c
66247}
66248
66249// Fields allows partial responses to be retrieved. See
66250// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66251// for more information.
66252func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
66253	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66254	return c
66255}
66256
66257// Context sets the context to be used in this call's Do method. Any
66258// pending HTTP request will be aborted if the provided context is
66259// canceled.
66260func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
66261	c.ctx_ = ctx
66262	return c
66263}
66264
66265// Header returns an http.Header that can be modified by the caller to
66266// add HTTP headers to the request.
66267func (c *FirewallsPatchCall) Header() http.Header {
66268	if c.header_ == nil {
66269		c.header_ = make(http.Header)
66270	}
66271	return c.header_
66272}
66273
66274func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
66275	reqHeaders := make(http.Header)
66276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
66277	for k, v := range c.header_ {
66278		reqHeaders[k] = v
66279	}
66280	reqHeaders.Set("User-Agent", c.s.userAgent())
66281	var body io.Reader = nil
66282	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66283	if err != nil {
66284		return nil, err
66285	}
66286	reqHeaders.Set("Content-Type", "application/json")
66287	c.urlParams_.Set("alt", alt)
66288	c.urlParams_.Set("prettyPrint", "false")
66289	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66290	urls += "?" + c.urlParams_.Encode()
66291	req, err := http.NewRequest("PATCH", urls, body)
66292	if err != nil {
66293		return nil, err
66294	}
66295	req.Header = reqHeaders
66296	googleapi.Expand(req.URL, map[string]string{
66297		"project":  c.project,
66298		"firewall": c.firewall,
66299	})
66300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66301}
66302
66303// Do executes the "compute.firewalls.patch" call.
66304// Exactly one of *Operation or error will be non-nil. Any non-2xx
66305// status code is an error. Response headers are in either
66306// *Operation.ServerResponse.Header or (if a response was returned at
66307// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66308// to check whether the returned error was because
66309// http.StatusNotModified was returned.
66310func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66311	gensupport.SetOptions(c.urlParams_, opts...)
66312	res, err := c.doRequest("json")
66313	if res != nil && res.StatusCode == http.StatusNotModified {
66314		if res.Body != nil {
66315			res.Body.Close()
66316		}
66317		return nil, &googleapi.Error{
66318			Code:   res.StatusCode,
66319			Header: res.Header,
66320		}
66321	}
66322	if err != nil {
66323		return nil, err
66324	}
66325	defer googleapi.CloseBody(res)
66326	if err := googleapi.CheckResponse(res); err != nil {
66327		return nil, err
66328	}
66329	ret := &Operation{
66330		ServerResponse: googleapi.ServerResponse{
66331			Header:         res.Header,
66332			HTTPStatusCode: res.StatusCode,
66333		},
66334	}
66335	target := &ret
66336	if err := gensupport.DecodeResponse(target, res); err != nil {
66337		return nil, err
66338	}
66339	return ret, nil
66340	// {
66341	//   "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.",
66342	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
66343	//   "httpMethod": "PATCH",
66344	//   "id": "compute.firewalls.patch",
66345	//   "parameterOrder": [
66346	//     "project",
66347	//     "firewall"
66348	//   ],
66349	//   "parameters": {
66350	//     "firewall": {
66351	//       "description": "Name of the firewall rule to patch.",
66352	//       "location": "path",
66353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66354	//       "required": true,
66355	//       "type": "string"
66356	//     },
66357	//     "project": {
66358	//       "description": "Project ID for this request.",
66359	//       "location": "path",
66360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66361	//       "required": true,
66362	//       "type": "string"
66363	//     },
66364	//     "requestId": {
66365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
66366	//       "location": "query",
66367	//       "type": "string"
66368	//     }
66369	//   },
66370	//   "path": "projects/{project}/global/firewalls/{firewall}",
66371	//   "request": {
66372	//     "$ref": "Firewall"
66373	//   },
66374	//   "response": {
66375	//     "$ref": "Operation"
66376	//   },
66377	//   "scopes": [
66378	//     "https://www.googleapis.com/auth/cloud-platform",
66379	//     "https://www.googleapis.com/auth/compute"
66380	//   ]
66381	// }
66382
66383}
66384
66385// method id "compute.firewalls.update":
66386
66387type FirewallsUpdateCall struct {
66388	s          *Service
66389	project    string
66390	firewall   string
66391	firewall2  *Firewall
66392	urlParams_ gensupport.URLParams
66393	ctx_       context.Context
66394	header_    http.Header
66395}
66396
66397// Update: Updates the specified firewall rule with the data included in
66398// the request. Note that all fields will be updated if using PUT, even
66399// fields that are not specified. To update individual fields, please
66400// use PATCH instead.
66401//
66402// - firewall: Name of the firewall rule to update.
66403// - project: Project ID for this request.
66404func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
66405	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66406	c.project = project
66407	c.firewall = firewall
66408	c.firewall2 = firewall2
66409	return c
66410}
66411
66412// RequestId sets the optional parameter "requestId": An optional
66413// request ID to identify requests. Specify a unique request ID so that
66414// if you must retry your request, the server will know to ignore the
66415// request if it has already been completed. For example, consider a
66416// situation where you make an initial request and the request times
66417// out. If you make the request again with the same request ID, the
66418// server can check if original operation with the same request ID was
66419// received, and if so, will ignore the second request. This prevents
66420// clients from accidentally creating duplicate commitments. The request
66421// ID must be a valid UUID with the exception that zero UUID is not
66422// supported ( 00000000-0000-0000-0000-000000000000).
66423func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
66424	c.urlParams_.Set("requestId", requestId)
66425	return c
66426}
66427
66428// Fields allows partial responses to be retrieved. See
66429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66430// for more information.
66431func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
66432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66433	return c
66434}
66435
66436// Context sets the context to be used in this call's Do method. Any
66437// pending HTTP request will be aborted if the provided context is
66438// canceled.
66439func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
66440	c.ctx_ = ctx
66441	return c
66442}
66443
66444// Header returns an http.Header that can be modified by the caller to
66445// add HTTP headers to the request.
66446func (c *FirewallsUpdateCall) Header() http.Header {
66447	if c.header_ == nil {
66448		c.header_ = make(http.Header)
66449	}
66450	return c.header_
66451}
66452
66453func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
66454	reqHeaders := make(http.Header)
66455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
66456	for k, v := range c.header_ {
66457		reqHeaders[k] = v
66458	}
66459	reqHeaders.Set("User-Agent", c.s.userAgent())
66460	var body io.Reader = nil
66461	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66462	if err != nil {
66463		return nil, err
66464	}
66465	reqHeaders.Set("Content-Type", "application/json")
66466	c.urlParams_.Set("alt", alt)
66467	c.urlParams_.Set("prettyPrint", "false")
66468	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66469	urls += "?" + c.urlParams_.Encode()
66470	req, err := http.NewRequest("PUT", urls, body)
66471	if err != nil {
66472		return nil, err
66473	}
66474	req.Header = reqHeaders
66475	googleapi.Expand(req.URL, map[string]string{
66476		"project":  c.project,
66477		"firewall": c.firewall,
66478	})
66479	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66480}
66481
66482// Do executes the "compute.firewalls.update" call.
66483// Exactly one of *Operation or error will be non-nil. Any non-2xx
66484// status code is an error. Response headers are in either
66485// *Operation.ServerResponse.Header or (if a response was returned at
66486// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66487// to check whether the returned error was because
66488// http.StatusNotModified was returned.
66489func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66490	gensupport.SetOptions(c.urlParams_, opts...)
66491	res, err := c.doRequest("json")
66492	if res != nil && res.StatusCode == http.StatusNotModified {
66493		if res.Body != nil {
66494			res.Body.Close()
66495		}
66496		return nil, &googleapi.Error{
66497			Code:   res.StatusCode,
66498			Header: res.Header,
66499		}
66500	}
66501	if err != nil {
66502		return nil, err
66503	}
66504	defer googleapi.CloseBody(res)
66505	if err := googleapi.CheckResponse(res); err != nil {
66506		return nil, err
66507	}
66508	ret := &Operation{
66509		ServerResponse: googleapi.ServerResponse{
66510			Header:         res.Header,
66511			HTTPStatusCode: res.StatusCode,
66512		},
66513	}
66514	target := &ret
66515	if err := gensupport.DecodeResponse(target, res); err != nil {
66516		return nil, err
66517	}
66518	return ret, nil
66519	// {
66520	//   "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.",
66521	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
66522	//   "httpMethod": "PUT",
66523	//   "id": "compute.firewalls.update",
66524	//   "parameterOrder": [
66525	//     "project",
66526	//     "firewall"
66527	//   ],
66528	//   "parameters": {
66529	//     "firewall": {
66530	//       "description": "Name of the firewall rule to update.",
66531	//       "location": "path",
66532	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66533	//       "required": true,
66534	//       "type": "string"
66535	//     },
66536	//     "project": {
66537	//       "description": "Project ID for this request.",
66538	//       "location": "path",
66539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66540	//       "required": true,
66541	//       "type": "string"
66542	//     },
66543	//     "requestId": {
66544	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
66545	//       "location": "query",
66546	//       "type": "string"
66547	//     }
66548	//   },
66549	//   "path": "projects/{project}/global/firewalls/{firewall}",
66550	//   "request": {
66551	//     "$ref": "Firewall"
66552	//   },
66553	//   "response": {
66554	//     "$ref": "Operation"
66555	//   },
66556	//   "scopes": [
66557	//     "https://www.googleapis.com/auth/cloud-platform",
66558	//     "https://www.googleapis.com/auth/compute"
66559	//   ]
66560	// }
66561
66562}
66563
66564// method id "compute.forwardingRules.aggregatedList":
66565
66566type ForwardingRulesAggregatedListCall struct {
66567	s            *Service
66568	project      string
66569	urlParams_   gensupport.URLParams
66570	ifNoneMatch_ string
66571	ctx_         context.Context
66572	header_      http.Header
66573}
66574
66575// AggregatedList: Retrieves an aggregated list of forwarding rules.
66576//
66577// - project: Project ID for this request.
66578func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
66579	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66580	c.project = project
66581	return c
66582}
66583
66584// Filter sets the optional parameter "filter": A filter expression that
66585// filters resources listed in the response. The expression must specify
66586// the field name, a comparison operator, and the value that you want to
66587// use for filtering. The value must be a string, a number, or a
66588// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66589// `<`. For example, if you are filtering Compute Engine instances, you
66590// can exclude instances named `example-instance` by specifying `name !=
66591// example-instance`. You can also filter nested fields. For example,
66592// you could specify `scheduling.automaticRestart = false` to include
66593// instances only if they are not scheduled for automatic restarts. You
66594// can use filtering on nested fields to filter based on resource
66595// labels. To filter on multiple expressions, provide each separate
66596// expression within parentheses. For example: ```
66597// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
66598// ``` By default, each expression is an `AND` expression. However, you
66599// can include `AND` and `OR` expressions explicitly. For example: ```
66600// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
66601// AND (scheduling.automaticRestart = true) ```
66602func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
66603	c.urlParams_.Set("filter", filter)
66604	return c
66605}
66606
66607// IncludeAllScopes sets the optional parameter "includeAllScopes":
66608// Indicates whether every visible scope for each scope type (zone,
66609// region, global) should be included in the response. For new resource
66610// types added after this field, the flag has no effect as new resource
66611// types will always include every visible scope for each scope type in
66612// response. For resource types which predate this field, if this flag
66613// is omitted or false, only scopes of the scope types where the
66614// resource type is expected to be found will be included.
66615func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
66616	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
66617	return c
66618}
66619
66620// MaxResults sets the optional parameter "maxResults": The maximum
66621// number of results per page that should be returned. If the number of
66622// available results is larger than `maxResults`, Compute Engine returns
66623// a `nextPageToken` that can be used to get the next page of results in
66624// subsequent list requests. Acceptable values are `0` to `500`,
66625// inclusive. (Default: `500`)
66626func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
66627	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66628	return c
66629}
66630
66631// OrderBy sets the optional parameter "orderBy": Sorts list results by
66632// a certain order. By default, results are returned in alphanumerical
66633// order based on the resource name. You can also sort results in
66634// descending order based on the creation timestamp using
66635// `orderBy="creationTimestamp desc". This sorts results based on the
66636// `creationTimestamp` field in reverse chronological order (newest
66637// result first). Use this to sort resources like operations so that the
66638// newest operation is returned first. Currently, only sorting by `name`
66639// or `creationTimestamp desc` is supported.
66640func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
66641	c.urlParams_.Set("orderBy", orderBy)
66642	return c
66643}
66644
66645// PageToken sets the optional parameter "pageToken": Specifies a page
66646// token to use. Set `pageToken` to the `nextPageToken` returned by a
66647// previous list request to get the next page of results.
66648func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
66649	c.urlParams_.Set("pageToken", pageToken)
66650	return c
66651}
66652
66653// ReturnPartialSuccess sets the optional parameter
66654// "returnPartialSuccess": Opt-in for partial success behavior which
66655// provides partial results in case of failure. The default value is
66656// false.
66657func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
66658	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
66659	return c
66660}
66661
66662// Fields allows partial responses to be retrieved. See
66663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66664// for more information.
66665func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
66666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66667	return c
66668}
66669
66670// IfNoneMatch sets the optional parameter which makes the operation
66671// fail if the object's ETag matches the given value. This is useful for
66672// getting updates only after the object has changed since the last
66673// request. Use googleapi.IsNotModified to check whether the response
66674// error from Do is the result of In-None-Match.
66675func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
66676	c.ifNoneMatch_ = entityTag
66677	return c
66678}
66679
66680// Context sets the context to be used in this call's Do method. Any
66681// pending HTTP request will be aborted if the provided context is
66682// canceled.
66683func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
66684	c.ctx_ = ctx
66685	return c
66686}
66687
66688// Header returns an http.Header that can be modified by the caller to
66689// add HTTP headers to the request.
66690func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
66691	if c.header_ == nil {
66692		c.header_ = make(http.Header)
66693	}
66694	return c.header_
66695}
66696
66697func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
66698	reqHeaders := make(http.Header)
66699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
66700	for k, v := range c.header_ {
66701		reqHeaders[k] = v
66702	}
66703	reqHeaders.Set("User-Agent", c.s.userAgent())
66704	if c.ifNoneMatch_ != "" {
66705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66706	}
66707	var body io.Reader = nil
66708	c.urlParams_.Set("alt", alt)
66709	c.urlParams_.Set("prettyPrint", "false")
66710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules")
66711	urls += "?" + c.urlParams_.Encode()
66712	req, err := http.NewRequest("GET", urls, body)
66713	if err != nil {
66714		return nil, err
66715	}
66716	req.Header = reqHeaders
66717	googleapi.Expand(req.URL, map[string]string{
66718		"project": c.project,
66719	})
66720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66721}
66722
66723// Do executes the "compute.forwardingRules.aggregatedList" call.
66724// Exactly one of *ForwardingRuleAggregatedList or error will be
66725// non-nil. Any non-2xx status code is an error. Response headers are in
66726// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
66727// response was returned at all) in error.(*googleapi.Error).Header. Use
66728// googleapi.IsNotModified to check whether the returned error was
66729// because http.StatusNotModified was returned.
66730func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
66731	gensupport.SetOptions(c.urlParams_, opts...)
66732	res, err := c.doRequest("json")
66733	if res != nil && res.StatusCode == http.StatusNotModified {
66734		if res.Body != nil {
66735			res.Body.Close()
66736		}
66737		return nil, &googleapi.Error{
66738			Code:   res.StatusCode,
66739			Header: res.Header,
66740		}
66741	}
66742	if err != nil {
66743		return nil, err
66744	}
66745	defer googleapi.CloseBody(res)
66746	if err := googleapi.CheckResponse(res); err != nil {
66747		return nil, err
66748	}
66749	ret := &ForwardingRuleAggregatedList{
66750		ServerResponse: googleapi.ServerResponse{
66751			Header:         res.Header,
66752			HTTPStatusCode: res.StatusCode,
66753		},
66754	}
66755	target := &ret
66756	if err := gensupport.DecodeResponse(target, res); err != nil {
66757		return nil, err
66758	}
66759	return ret, nil
66760	// {
66761	//   "description": "Retrieves an aggregated list of forwarding rules.",
66762	//   "flatPath": "projects/{project}/aggregated/forwardingRules",
66763	//   "httpMethod": "GET",
66764	//   "id": "compute.forwardingRules.aggregatedList",
66765	//   "parameterOrder": [
66766	//     "project"
66767	//   ],
66768	//   "parameters": {
66769	//     "filter": {
66770	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66771	//       "location": "query",
66772	//       "type": "string"
66773	//     },
66774	//     "includeAllScopes": {
66775	//       "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.",
66776	//       "location": "query",
66777	//       "type": "boolean"
66778	//     },
66779	//     "maxResults": {
66780	//       "default": "500",
66781	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66782	//       "format": "uint32",
66783	//       "location": "query",
66784	//       "minimum": "0",
66785	//       "type": "integer"
66786	//     },
66787	//     "orderBy": {
66788	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
66789	//       "location": "query",
66790	//       "type": "string"
66791	//     },
66792	//     "pageToken": {
66793	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66794	//       "location": "query",
66795	//       "type": "string"
66796	//     },
66797	//     "project": {
66798	//       "description": "Project ID for this request.",
66799	//       "location": "path",
66800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66801	//       "required": true,
66802	//       "type": "string"
66803	//     },
66804	//     "returnPartialSuccess": {
66805	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
66806	//       "location": "query",
66807	//       "type": "boolean"
66808	//     }
66809	//   },
66810	//   "path": "projects/{project}/aggregated/forwardingRules",
66811	//   "response": {
66812	//     "$ref": "ForwardingRuleAggregatedList"
66813	//   },
66814	//   "scopes": [
66815	//     "https://www.googleapis.com/auth/cloud-platform",
66816	//     "https://www.googleapis.com/auth/compute",
66817	//     "https://www.googleapis.com/auth/compute.readonly"
66818	//   ]
66819	// }
66820
66821}
66822
66823// Pages invokes f for each page of results.
66824// A non-nil error returned from f will halt the iteration.
66825// The provided context supersedes any context provided to the Context method.
66826func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
66827	c.ctx_ = ctx
66828	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66829	for {
66830		x, err := c.Do()
66831		if err != nil {
66832			return err
66833		}
66834		if err := f(x); err != nil {
66835			return err
66836		}
66837		if x.NextPageToken == "" {
66838			return nil
66839		}
66840		c.PageToken(x.NextPageToken)
66841	}
66842}
66843
66844// method id "compute.forwardingRules.delete":
66845
66846type ForwardingRulesDeleteCall struct {
66847	s              *Service
66848	project        string
66849	region         string
66850	forwardingRule string
66851	urlParams_     gensupport.URLParams
66852	ctx_           context.Context
66853	header_        http.Header
66854}
66855
66856// Delete: Deletes the specified ForwardingRule resource.
66857//
66858// - forwardingRule: Name of the ForwardingRule resource to delete.
66859// - project: Project ID for this request.
66860// - region: Name of the region scoping this request.
66861func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
66862	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66863	c.project = project
66864	c.region = region
66865	c.forwardingRule = forwardingRule
66866	return c
66867}
66868
66869// RequestId sets the optional parameter "requestId": An optional
66870// request ID to identify requests. Specify a unique request ID so that
66871// if you must retry your request, the server will know to ignore the
66872// request if it has already been completed. For example, consider a
66873// situation where you make an initial request and the request times
66874// out. If you make the request again with the same request ID, the
66875// server can check if original operation with the same request ID was
66876// received, and if so, will ignore the second request. This prevents
66877// clients from accidentally creating duplicate commitments. The request
66878// ID must be a valid UUID with the exception that zero UUID is not
66879// supported ( 00000000-0000-0000-0000-000000000000).
66880func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
66881	c.urlParams_.Set("requestId", requestId)
66882	return c
66883}
66884
66885// Fields allows partial responses to be retrieved. See
66886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66887// for more information.
66888func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
66889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66890	return c
66891}
66892
66893// Context sets the context to be used in this call's Do method. Any
66894// pending HTTP request will be aborted if the provided context is
66895// canceled.
66896func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
66897	c.ctx_ = ctx
66898	return c
66899}
66900
66901// Header returns an http.Header that can be modified by the caller to
66902// add HTTP headers to the request.
66903func (c *ForwardingRulesDeleteCall) Header() http.Header {
66904	if c.header_ == nil {
66905		c.header_ = make(http.Header)
66906	}
66907	return c.header_
66908}
66909
66910func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
66911	reqHeaders := make(http.Header)
66912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
66913	for k, v := range c.header_ {
66914		reqHeaders[k] = v
66915	}
66916	reqHeaders.Set("User-Agent", c.s.userAgent())
66917	var body io.Reader = nil
66918	c.urlParams_.Set("alt", alt)
66919	c.urlParams_.Set("prettyPrint", "false")
66920	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
66921	urls += "?" + c.urlParams_.Encode()
66922	req, err := http.NewRequest("DELETE", urls, body)
66923	if err != nil {
66924		return nil, err
66925	}
66926	req.Header = reqHeaders
66927	googleapi.Expand(req.URL, map[string]string{
66928		"project":        c.project,
66929		"region":         c.region,
66930		"forwardingRule": c.forwardingRule,
66931	})
66932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66933}
66934
66935// Do executes the "compute.forwardingRules.delete" call.
66936// Exactly one of *Operation or error will be non-nil. Any non-2xx
66937// status code is an error. Response headers are in either
66938// *Operation.ServerResponse.Header or (if a response was returned at
66939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66940// to check whether the returned error was because
66941// http.StatusNotModified was returned.
66942func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66943	gensupport.SetOptions(c.urlParams_, opts...)
66944	res, err := c.doRequest("json")
66945	if res != nil && res.StatusCode == http.StatusNotModified {
66946		if res.Body != nil {
66947			res.Body.Close()
66948		}
66949		return nil, &googleapi.Error{
66950			Code:   res.StatusCode,
66951			Header: res.Header,
66952		}
66953	}
66954	if err != nil {
66955		return nil, err
66956	}
66957	defer googleapi.CloseBody(res)
66958	if err := googleapi.CheckResponse(res); err != nil {
66959		return nil, err
66960	}
66961	ret := &Operation{
66962		ServerResponse: googleapi.ServerResponse{
66963			Header:         res.Header,
66964			HTTPStatusCode: res.StatusCode,
66965		},
66966	}
66967	target := &ret
66968	if err := gensupport.DecodeResponse(target, res); err != nil {
66969		return nil, err
66970	}
66971	return ret, nil
66972	// {
66973	//   "description": "Deletes the specified ForwardingRule resource.",
66974	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
66975	//   "httpMethod": "DELETE",
66976	//   "id": "compute.forwardingRules.delete",
66977	//   "parameterOrder": [
66978	//     "project",
66979	//     "region",
66980	//     "forwardingRule"
66981	//   ],
66982	//   "parameters": {
66983	//     "forwardingRule": {
66984	//       "description": "Name of the ForwardingRule resource to delete.",
66985	//       "location": "path",
66986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66987	//       "required": true,
66988	//       "type": "string"
66989	//     },
66990	//     "project": {
66991	//       "description": "Project ID for this request.",
66992	//       "location": "path",
66993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66994	//       "required": true,
66995	//       "type": "string"
66996	//     },
66997	//     "region": {
66998	//       "description": "Name of the region scoping this request.",
66999	//       "location": "path",
67000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67001	//       "required": true,
67002	//       "type": "string"
67003	//     },
67004	//     "requestId": {
67005	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
67006	//       "location": "query",
67007	//       "type": "string"
67008	//     }
67009	//   },
67010	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67011	//   "response": {
67012	//     "$ref": "Operation"
67013	//   },
67014	//   "scopes": [
67015	//     "https://www.googleapis.com/auth/cloud-platform",
67016	//     "https://www.googleapis.com/auth/compute"
67017	//   ]
67018	// }
67019
67020}
67021
67022// method id "compute.forwardingRules.get":
67023
67024type ForwardingRulesGetCall struct {
67025	s              *Service
67026	project        string
67027	region         string
67028	forwardingRule string
67029	urlParams_     gensupport.URLParams
67030	ifNoneMatch_   string
67031	ctx_           context.Context
67032	header_        http.Header
67033}
67034
67035// Get: Returns the specified ForwardingRule resource.
67036//
67037// - forwardingRule: Name of the ForwardingRule resource to return.
67038// - project: Project ID for this request.
67039// - region: Name of the region scoping this request.
67040func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
67041	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67042	c.project = project
67043	c.region = region
67044	c.forwardingRule = forwardingRule
67045	return c
67046}
67047
67048// Fields allows partial responses to be retrieved. See
67049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67050// for more information.
67051func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
67052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67053	return c
67054}
67055
67056// IfNoneMatch sets the optional parameter which makes the operation
67057// fail if the object's ETag matches the given value. This is useful for
67058// getting updates only after the object has changed since the last
67059// request. Use googleapi.IsNotModified to check whether the response
67060// error from Do is the result of In-None-Match.
67061func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
67062	c.ifNoneMatch_ = entityTag
67063	return c
67064}
67065
67066// Context sets the context to be used in this call's Do method. Any
67067// pending HTTP request will be aborted if the provided context is
67068// canceled.
67069func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
67070	c.ctx_ = ctx
67071	return c
67072}
67073
67074// Header returns an http.Header that can be modified by the caller to
67075// add HTTP headers to the request.
67076func (c *ForwardingRulesGetCall) Header() http.Header {
67077	if c.header_ == nil {
67078		c.header_ = make(http.Header)
67079	}
67080	return c.header_
67081}
67082
67083func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
67084	reqHeaders := make(http.Header)
67085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
67086	for k, v := range c.header_ {
67087		reqHeaders[k] = v
67088	}
67089	reqHeaders.Set("User-Agent", c.s.userAgent())
67090	if c.ifNoneMatch_ != "" {
67091		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67092	}
67093	var body io.Reader = nil
67094	c.urlParams_.Set("alt", alt)
67095	c.urlParams_.Set("prettyPrint", "false")
67096	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67097	urls += "?" + c.urlParams_.Encode()
67098	req, err := http.NewRequest("GET", urls, body)
67099	if err != nil {
67100		return nil, err
67101	}
67102	req.Header = reqHeaders
67103	googleapi.Expand(req.URL, map[string]string{
67104		"project":        c.project,
67105		"region":         c.region,
67106		"forwardingRule": c.forwardingRule,
67107	})
67108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67109}
67110
67111// Do executes the "compute.forwardingRules.get" call.
67112// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
67113// status code is an error. Response headers are in either
67114// *ForwardingRule.ServerResponse.Header or (if a response was returned
67115// at all) in error.(*googleapi.Error).Header. Use
67116// googleapi.IsNotModified to check whether the returned error was
67117// because http.StatusNotModified was returned.
67118func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
67119	gensupport.SetOptions(c.urlParams_, opts...)
67120	res, err := c.doRequest("json")
67121	if res != nil && res.StatusCode == http.StatusNotModified {
67122		if res.Body != nil {
67123			res.Body.Close()
67124		}
67125		return nil, &googleapi.Error{
67126			Code:   res.StatusCode,
67127			Header: res.Header,
67128		}
67129	}
67130	if err != nil {
67131		return nil, err
67132	}
67133	defer googleapi.CloseBody(res)
67134	if err := googleapi.CheckResponse(res); err != nil {
67135		return nil, err
67136	}
67137	ret := &ForwardingRule{
67138		ServerResponse: googleapi.ServerResponse{
67139			Header:         res.Header,
67140			HTTPStatusCode: res.StatusCode,
67141		},
67142	}
67143	target := &ret
67144	if err := gensupport.DecodeResponse(target, res); err != nil {
67145		return nil, err
67146	}
67147	return ret, nil
67148	// {
67149	//   "description": "Returns the specified ForwardingRule resource.",
67150	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67151	//   "httpMethod": "GET",
67152	//   "id": "compute.forwardingRules.get",
67153	//   "parameterOrder": [
67154	//     "project",
67155	//     "region",
67156	//     "forwardingRule"
67157	//   ],
67158	//   "parameters": {
67159	//     "forwardingRule": {
67160	//       "description": "Name of the ForwardingRule resource to return.",
67161	//       "location": "path",
67162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67163	//       "required": true,
67164	//       "type": "string"
67165	//     },
67166	//     "project": {
67167	//       "description": "Project ID for this request.",
67168	//       "location": "path",
67169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67170	//       "required": true,
67171	//       "type": "string"
67172	//     },
67173	//     "region": {
67174	//       "description": "Name of the region scoping this request.",
67175	//       "location": "path",
67176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67177	//       "required": true,
67178	//       "type": "string"
67179	//     }
67180	//   },
67181	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67182	//   "response": {
67183	//     "$ref": "ForwardingRule"
67184	//   },
67185	//   "scopes": [
67186	//     "https://www.googleapis.com/auth/cloud-platform",
67187	//     "https://www.googleapis.com/auth/compute",
67188	//     "https://www.googleapis.com/auth/compute.readonly"
67189	//   ]
67190	// }
67191
67192}
67193
67194// method id "compute.forwardingRules.insert":
67195
67196type ForwardingRulesInsertCall struct {
67197	s              *Service
67198	project        string
67199	region         string
67200	forwardingrule *ForwardingRule
67201	urlParams_     gensupport.URLParams
67202	ctx_           context.Context
67203	header_        http.Header
67204}
67205
67206// Insert: Creates a ForwardingRule resource in the specified project
67207// and region using the data included in the request.
67208//
67209// - project: Project ID for this request.
67210// - region: Name of the region scoping this request.
67211func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
67212	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67213	c.project = project
67214	c.region = region
67215	c.forwardingrule = forwardingrule
67216	return c
67217}
67218
67219// RequestId sets the optional parameter "requestId": An optional
67220// request ID to identify requests. Specify a unique request ID so that
67221// if you must retry your request, the server will know to ignore the
67222// request if it has already been completed. For example, consider a
67223// situation where you make an initial request and the request times
67224// out. If you make the request again with the same request ID, the
67225// server can check if original operation with the same request ID was
67226// received, and if so, will ignore the second request. This prevents
67227// clients from accidentally creating duplicate commitments. The request
67228// ID must be a valid UUID with the exception that zero UUID is not
67229// supported ( 00000000-0000-0000-0000-000000000000).
67230func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
67231	c.urlParams_.Set("requestId", requestId)
67232	return c
67233}
67234
67235// Fields allows partial responses to be retrieved. See
67236// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67237// for more information.
67238func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
67239	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67240	return c
67241}
67242
67243// Context sets the context to be used in this call's Do method. Any
67244// pending HTTP request will be aborted if the provided context is
67245// canceled.
67246func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
67247	c.ctx_ = ctx
67248	return c
67249}
67250
67251// Header returns an http.Header that can be modified by the caller to
67252// add HTTP headers to the request.
67253func (c *ForwardingRulesInsertCall) Header() http.Header {
67254	if c.header_ == nil {
67255		c.header_ = make(http.Header)
67256	}
67257	return c.header_
67258}
67259
67260func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
67261	reqHeaders := make(http.Header)
67262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
67263	for k, v := range c.header_ {
67264		reqHeaders[k] = v
67265	}
67266	reqHeaders.Set("User-Agent", c.s.userAgent())
67267	var body io.Reader = nil
67268	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67269	if err != nil {
67270		return nil, err
67271	}
67272	reqHeaders.Set("Content-Type", "application/json")
67273	c.urlParams_.Set("alt", alt)
67274	c.urlParams_.Set("prettyPrint", "false")
67275	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67276	urls += "?" + c.urlParams_.Encode()
67277	req, err := http.NewRequest("POST", urls, body)
67278	if err != nil {
67279		return nil, err
67280	}
67281	req.Header = reqHeaders
67282	googleapi.Expand(req.URL, map[string]string{
67283		"project": c.project,
67284		"region":  c.region,
67285	})
67286	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67287}
67288
67289// Do executes the "compute.forwardingRules.insert" call.
67290// Exactly one of *Operation or error will be non-nil. Any non-2xx
67291// status code is an error. Response headers are in either
67292// *Operation.ServerResponse.Header or (if a response was returned at
67293// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67294// to check whether the returned error was because
67295// http.StatusNotModified was returned.
67296func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67297	gensupport.SetOptions(c.urlParams_, opts...)
67298	res, err := c.doRequest("json")
67299	if res != nil && res.StatusCode == http.StatusNotModified {
67300		if res.Body != nil {
67301			res.Body.Close()
67302		}
67303		return nil, &googleapi.Error{
67304			Code:   res.StatusCode,
67305			Header: res.Header,
67306		}
67307	}
67308	if err != nil {
67309		return nil, err
67310	}
67311	defer googleapi.CloseBody(res)
67312	if err := googleapi.CheckResponse(res); err != nil {
67313		return nil, err
67314	}
67315	ret := &Operation{
67316		ServerResponse: googleapi.ServerResponse{
67317			Header:         res.Header,
67318			HTTPStatusCode: res.StatusCode,
67319		},
67320	}
67321	target := &ret
67322	if err := gensupport.DecodeResponse(target, res); err != nil {
67323		return nil, err
67324	}
67325	return ret, nil
67326	// {
67327	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
67328	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules",
67329	//   "httpMethod": "POST",
67330	//   "id": "compute.forwardingRules.insert",
67331	//   "parameterOrder": [
67332	//     "project",
67333	//     "region"
67334	//   ],
67335	//   "parameters": {
67336	//     "project": {
67337	//       "description": "Project ID for this request.",
67338	//       "location": "path",
67339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67340	//       "required": true,
67341	//       "type": "string"
67342	//     },
67343	//     "region": {
67344	//       "description": "Name of the region scoping this request.",
67345	//       "location": "path",
67346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67347	//       "required": true,
67348	//       "type": "string"
67349	//     },
67350	//     "requestId": {
67351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
67352	//       "location": "query",
67353	//       "type": "string"
67354	//     }
67355	//   },
67356	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67357	//   "request": {
67358	//     "$ref": "ForwardingRule"
67359	//   },
67360	//   "response": {
67361	//     "$ref": "Operation"
67362	//   },
67363	//   "scopes": [
67364	//     "https://www.googleapis.com/auth/cloud-platform",
67365	//     "https://www.googleapis.com/auth/compute"
67366	//   ]
67367	// }
67368
67369}
67370
67371// method id "compute.forwardingRules.list":
67372
67373type ForwardingRulesListCall struct {
67374	s            *Service
67375	project      string
67376	region       string
67377	urlParams_   gensupport.URLParams
67378	ifNoneMatch_ string
67379	ctx_         context.Context
67380	header_      http.Header
67381}
67382
67383// List: Retrieves a list of ForwardingRule resources available to the
67384// specified project and region.
67385//
67386// - project: Project ID for this request.
67387// - region: Name of the region scoping this request.
67388func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
67389	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67390	c.project = project
67391	c.region = region
67392	return c
67393}
67394
67395// Filter sets the optional parameter "filter": A filter expression that
67396// filters resources listed in the response. The expression must specify
67397// the field name, a comparison operator, and the value that you want to
67398// use for filtering. The value must be a string, a number, or a
67399// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67400// `<`. For example, if you are filtering Compute Engine instances, you
67401// can exclude instances named `example-instance` by specifying `name !=
67402// example-instance`. You can also filter nested fields. For example,
67403// you could specify `scheduling.automaticRestart = false` to include
67404// instances only if they are not scheduled for automatic restarts. You
67405// can use filtering on nested fields to filter based on resource
67406// labels. To filter on multiple expressions, provide each separate
67407// expression within parentheses. For example: ```
67408// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
67409// ``` By default, each expression is an `AND` expression. However, you
67410// can include `AND` and `OR` expressions explicitly. For example: ```
67411// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
67412// AND (scheduling.automaticRestart = true) ```
67413func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
67414	c.urlParams_.Set("filter", filter)
67415	return c
67416}
67417
67418// MaxResults sets the optional parameter "maxResults": The maximum
67419// number of results per page that should be returned. If the number of
67420// available results is larger than `maxResults`, Compute Engine returns
67421// a `nextPageToken` that can be used to get the next page of results in
67422// subsequent list requests. Acceptable values are `0` to `500`,
67423// inclusive. (Default: `500`)
67424func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
67425	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67426	return c
67427}
67428
67429// OrderBy sets the optional parameter "orderBy": Sorts list results by
67430// a certain order. By default, results are returned in alphanumerical
67431// order based on the resource name. You can also sort results in
67432// descending order based on the creation timestamp using
67433// `orderBy="creationTimestamp desc". This sorts results based on the
67434// `creationTimestamp` field in reverse chronological order (newest
67435// result first). Use this to sort resources like operations so that the
67436// newest operation is returned first. Currently, only sorting by `name`
67437// or `creationTimestamp desc` is supported.
67438func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
67439	c.urlParams_.Set("orderBy", orderBy)
67440	return c
67441}
67442
67443// PageToken sets the optional parameter "pageToken": Specifies a page
67444// token to use. Set `pageToken` to the `nextPageToken` returned by a
67445// previous list request to get the next page of results.
67446func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
67447	c.urlParams_.Set("pageToken", pageToken)
67448	return c
67449}
67450
67451// ReturnPartialSuccess sets the optional parameter
67452// "returnPartialSuccess": Opt-in for partial success behavior which
67453// provides partial results in case of failure. The default value is
67454// false.
67455func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
67456	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67457	return c
67458}
67459
67460// Fields allows partial responses to be retrieved. See
67461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67462// for more information.
67463func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
67464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67465	return c
67466}
67467
67468// IfNoneMatch sets the optional parameter which makes the operation
67469// fail if the object's ETag matches the given value. This is useful for
67470// getting updates only after the object has changed since the last
67471// request. Use googleapi.IsNotModified to check whether the response
67472// error from Do is the result of In-None-Match.
67473func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
67474	c.ifNoneMatch_ = entityTag
67475	return c
67476}
67477
67478// Context sets the context to be used in this call's Do method. Any
67479// pending HTTP request will be aborted if the provided context is
67480// canceled.
67481func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
67482	c.ctx_ = ctx
67483	return c
67484}
67485
67486// Header returns an http.Header that can be modified by the caller to
67487// add HTTP headers to the request.
67488func (c *ForwardingRulesListCall) Header() http.Header {
67489	if c.header_ == nil {
67490		c.header_ = make(http.Header)
67491	}
67492	return c.header_
67493}
67494
67495func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
67496	reqHeaders := make(http.Header)
67497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
67498	for k, v := range c.header_ {
67499		reqHeaders[k] = v
67500	}
67501	reqHeaders.Set("User-Agent", c.s.userAgent())
67502	if c.ifNoneMatch_ != "" {
67503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67504	}
67505	var body io.Reader = nil
67506	c.urlParams_.Set("alt", alt)
67507	c.urlParams_.Set("prettyPrint", "false")
67508	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67509	urls += "?" + c.urlParams_.Encode()
67510	req, err := http.NewRequest("GET", urls, body)
67511	if err != nil {
67512		return nil, err
67513	}
67514	req.Header = reqHeaders
67515	googleapi.Expand(req.URL, map[string]string{
67516		"project": c.project,
67517		"region":  c.region,
67518	})
67519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67520}
67521
67522// Do executes the "compute.forwardingRules.list" call.
67523// Exactly one of *ForwardingRuleList or error will be non-nil. Any
67524// non-2xx status code is an error. Response headers are in either
67525// *ForwardingRuleList.ServerResponse.Header or (if a response was
67526// returned at all) in error.(*googleapi.Error).Header. Use
67527// googleapi.IsNotModified to check whether the returned error was
67528// because http.StatusNotModified was returned.
67529func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
67530	gensupport.SetOptions(c.urlParams_, opts...)
67531	res, err := c.doRequest("json")
67532	if res != nil && res.StatusCode == http.StatusNotModified {
67533		if res.Body != nil {
67534			res.Body.Close()
67535		}
67536		return nil, &googleapi.Error{
67537			Code:   res.StatusCode,
67538			Header: res.Header,
67539		}
67540	}
67541	if err != nil {
67542		return nil, err
67543	}
67544	defer googleapi.CloseBody(res)
67545	if err := googleapi.CheckResponse(res); err != nil {
67546		return nil, err
67547	}
67548	ret := &ForwardingRuleList{
67549		ServerResponse: googleapi.ServerResponse{
67550			Header:         res.Header,
67551			HTTPStatusCode: res.StatusCode,
67552		},
67553	}
67554	target := &ret
67555	if err := gensupport.DecodeResponse(target, res); err != nil {
67556		return nil, err
67557	}
67558	return ret, nil
67559	// {
67560	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
67561	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules",
67562	//   "httpMethod": "GET",
67563	//   "id": "compute.forwardingRules.list",
67564	//   "parameterOrder": [
67565	//     "project",
67566	//     "region"
67567	//   ],
67568	//   "parameters": {
67569	//     "filter": {
67570	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67571	//       "location": "query",
67572	//       "type": "string"
67573	//     },
67574	//     "maxResults": {
67575	//       "default": "500",
67576	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67577	//       "format": "uint32",
67578	//       "location": "query",
67579	//       "minimum": "0",
67580	//       "type": "integer"
67581	//     },
67582	//     "orderBy": {
67583	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
67584	//       "location": "query",
67585	//       "type": "string"
67586	//     },
67587	//     "pageToken": {
67588	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67589	//       "location": "query",
67590	//       "type": "string"
67591	//     },
67592	//     "project": {
67593	//       "description": "Project ID for this request.",
67594	//       "location": "path",
67595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67596	//       "required": true,
67597	//       "type": "string"
67598	//     },
67599	//     "region": {
67600	//       "description": "Name of the region scoping this request.",
67601	//       "location": "path",
67602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67603	//       "required": true,
67604	//       "type": "string"
67605	//     },
67606	//     "returnPartialSuccess": {
67607	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67608	//       "location": "query",
67609	//       "type": "boolean"
67610	//     }
67611	//   },
67612	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67613	//   "response": {
67614	//     "$ref": "ForwardingRuleList"
67615	//   },
67616	//   "scopes": [
67617	//     "https://www.googleapis.com/auth/cloud-platform",
67618	//     "https://www.googleapis.com/auth/compute",
67619	//     "https://www.googleapis.com/auth/compute.readonly"
67620	//   ]
67621	// }
67622
67623}
67624
67625// Pages invokes f for each page of results.
67626// A non-nil error returned from f will halt the iteration.
67627// The provided context supersedes any context provided to the Context method.
67628func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
67629	c.ctx_ = ctx
67630	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67631	for {
67632		x, err := c.Do()
67633		if err != nil {
67634			return err
67635		}
67636		if err := f(x); err != nil {
67637			return err
67638		}
67639		if x.NextPageToken == "" {
67640			return nil
67641		}
67642		c.PageToken(x.NextPageToken)
67643	}
67644}
67645
67646// method id "compute.forwardingRules.patch":
67647
67648type ForwardingRulesPatchCall struct {
67649	s              *Service
67650	project        string
67651	region         string
67652	forwardingRule string
67653	forwardingrule *ForwardingRule
67654	urlParams_     gensupport.URLParams
67655	ctx_           context.Context
67656	header_        http.Header
67657}
67658
67659// Patch: Updates the specified forwarding rule with the data included
67660// in the request. This method supports PATCH semantics and uses the
67661// JSON merge patch format and processing rules. Currently, you can only
67662// patch the network_tier field.
67663//
67664// - forwardingRule: Name of the ForwardingRule resource to patch.
67665// - project: Project ID for this request.
67666// - region: Name of the region scoping this request.
67667func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
67668	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67669	c.project = project
67670	c.region = region
67671	c.forwardingRule = forwardingRule
67672	c.forwardingrule = forwardingrule
67673	return c
67674}
67675
67676// RequestId sets the optional parameter "requestId": An optional
67677// request ID to identify requests. Specify a unique request ID so that
67678// if you must retry your request, the server will know to ignore the
67679// request if it has already been completed. For example, consider a
67680// situation where you make an initial request and the request times
67681// out. If you make the request again with the same request ID, the
67682// server can check if original operation with the same request ID was
67683// received, and if so, will ignore the second request. This prevents
67684// clients from accidentally creating duplicate commitments. The request
67685// ID must be a valid UUID with the exception that zero UUID is not
67686// supported ( 00000000-0000-0000-0000-000000000000).
67687func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
67688	c.urlParams_.Set("requestId", requestId)
67689	return c
67690}
67691
67692// Fields allows partial responses to be retrieved. See
67693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67694// for more information.
67695func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
67696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67697	return c
67698}
67699
67700// Context sets the context to be used in this call's Do method. Any
67701// pending HTTP request will be aborted if the provided context is
67702// canceled.
67703func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
67704	c.ctx_ = ctx
67705	return c
67706}
67707
67708// Header returns an http.Header that can be modified by the caller to
67709// add HTTP headers to the request.
67710func (c *ForwardingRulesPatchCall) Header() http.Header {
67711	if c.header_ == nil {
67712		c.header_ = make(http.Header)
67713	}
67714	return c.header_
67715}
67716
67717func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
67718	reqHeaders := make(http.Header)
67719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
67720	for k, v := range c.header_ {
67721		reqHeaders[k] = v
67722	}
67723	reqHeaders.Set("User-Agent", c.s.userAgent())
67724	var body io.Reader = nil
67725	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67726	if err != nil {
67727		return nil, err
67728	}
67729	reqHeaders.Set("Content-Type", "application/json")
67730	c.urlParams_.Set("alt", alt)
67731	c.urlParams_.Set("prettyPrint", "false")
67732	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67733	urls += "?" + c.urlParams_.Encode()
67734	req, err := http.NewRequest("PATCH", urls, body)
67735	if err != nil {
67736		return nil, err
67737	}
67738	req.Header = reqHeaders
67739	googleapi.Expand(req.URL, map[string]string{
67740		"project":        c.project,
67741		"region":         c.region,
67742		"forwardingRule": c.forwardingRule,
67743	})
67744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67745}
67746
67747// Do executes the "compute.forwardingRules.patch" call.
67748// Exactly one of *Operation or error will be non-nil. Any non-2xx
67749// status code is an error. Response headers are in either
67750// *Operation.ServerResponse.Header or (if a response was returned at
67751// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67752// to check whether the returned error was because
67753// http.StatusNotModified was returned.
67754func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67755	gensupport.SetOptions(c.urlParams_, opts...)
67756	res, err := c.doRequest("json")
67757	if res != nil && res.StatusCode == http.StatusNotModified {
67758		if res.Body != nil {
67759			res.Body.Close()
67760		}
67761		return nil, &googleapi.Error{
67762			Code:   res.StatusCode,
67763			Header: res.Header,
67764		}
67765	}
67766	if err != nil {
67767		return nil, err
67768	}
67769	defer googleapi.CloseBody(res)
67770	if err := googleapi.CheckResponse(res); err != nil {
67771		return nil, err
67772	}
67773	ret := &Operation{
67774		ServerResponse: googleapi.ServerResponse{
67775			Header:         res.Header,
67776			HTTPStatusCode: res.StatusCode,
67777		},
67778	}
67779	target := &ret
67780	if err := gensupport.DecodeResponse(target, res); err != nil {
67781		return nil, err
67782	}
67783	return ret, nil
67784	// {
67785	//   "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.",
67786	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67787	//   "httpMethod": "PATCH",
67788	//   "id": "compute.forwardingRules.patch",
67789	//   "parameterOrder": [
67790	//     "project",
67791	//     "region",
67792	//     "forwardingRule"
67793	//   ],
67794	//   "parameters": {
67795	//     "forwardingRule": {
67796	//       "description": "Name of the ForwardingRule resource to patch.",
67797	//       "location": "path",
67798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67799	//       "required": true,
67800	//       "type": "string"
67801	//     },
67802	//     "project": {
67803	//       "description": "Project ID for this request.",
67804	//       "location": "path",
67805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67806	//       "required": true,
67807	//       "type": "string"
67808	//     },
67809	//     "region": {
67810	//       "description": "Name of the region scoping this request.",
67811	//       "location": "path",
67812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67813	//       "required": true,
67814	//       "type": "string"
67815	//     },
67816	//     "requestId": {
67817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
67818	//       "location": "query",
67819	//       "type": "string"
67820	//     }
67821	//   },
67822	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67823	//   "request": {
67824	//     "$ref": "ForwardingRule"
67825	//   },
67826	//   "response": {
67827	//     "$ref": "Operation"
67828	//   },
67829	//   "scopes": [
67830	//     "https://www.googleapis.com/auth/cloud-platform",
67831	//     "https://www.googleapis.com/auth/compute"
67832	//   ]
67833	// }
67834
67835}
67836
67837// method id "compute.forwardingRules.setLabels":
67838
67839type ForwardingRulesSetLabelsCall struct {
67840	s                      *Service
67841	project                string
67842	region                 string
67843	resource               string
67844	regionsetlabelsrequest *RegionSetLabelsRequest
67845	urlParams_             gensupport.URLParams
67846	ctx_                   context.Context
67847	header_                http.Header
67848}
67849
67850// SetLabels: Sets the labels on the specified resource. To learn more
67851// about labels, read the Labeling Resources documentation.
67852//
67853// - project: Project ID for this request.
67854// - region: The region for this request.
67855// - resource: Name or id of the resource for this request.
67856func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
67857	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67858	c.project = project
67859	c.region = region
67860	c.resource = resource
67861	c.regionsetlabelsrequest = regionsetlabelsrequest
67862	return c
67863}
67864
67865// RequestId sets the optional parameter "requestId": An optional
67866// request ID to identify requests. Specify a unique request ID so that
67867// if you must retry your request, the server will know to ignore the
67868// request if it has already been completed. For example, consider a
67869// situation where you make an initial request and the request times
67870// out. If you make the request again with the same request ID, the
67871// server can check if original operation with the same request ID was
67872// received, and if so, will ignore the second request. This prevents
67873// clients from accidentally creating duplicate commitments. The request
67874// ID must be a valid UUID with the exception that zero UUID is not
67875// supported ( 00000000-0000-0000-0000-000000000000).
67876func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
67877	c.urlParams_.Set("requestId", requestId)
67878	return c
67879}
67880
67881// Fields allows partial responses to be retrieved. See
67882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67883// for more information.
67884func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
67885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67886	return c
67887}
67888
67889// Context sets the context to be used in this call's Do method. Any
67890// pending HTTP request will be aborted if the provided context is
67891// canceled.
67892func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
67893	c.ctx_ = ctx
67894	return c
67895}
67896
67897// Header returns an http.Header that can be modified by the caller to
67898// add HTTP headers to the request.
67899func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
67900	if c.header_ == nil {
67901		c.header_ = make(http.Header)
67902	}
67903	return c.header_
67904}
67905
67906func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
67907	reqHeaders := make(http.Header)
67908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
67909	for k, v := range c.header_ {
67910		reqHeaders[k] = v
67911	}
67912	reqHeaders.Set("User-Agent", c.s.userAgent())
67913	var body io.Reader = nil
67914	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
67915	if err != nil {
67916		return nil, err
67917	}
67918	reqHeaders.Set("Content-Type", "application/json")
67919	c.urlParams_.Set("alt", alt)
67920	c.urlParams_.Set("prettyPrint", "false")
67921	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels")
67922	urls += "?" + c.urlParams_.Encode()
67923	req, err := http.NewRequest("POST", urls, body)
67924	if err != nil {
67925		return nil, err
67926	}
67927	req.Header = reqHeaders
67928	googleapi.Expand(req.URL, map[string]string{
67929		"project":  c.project,
67930		"region":   c.region,
67931		"resource": c.resource,
67932	})
67933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67934}
67935
67936// Do executes the "compute.forwardingRules.setLabels" call.
67937// Exactly one of *Operation or error will be non-nil. Any non-2xx
67938// status code is an error. Response headers are in either
67939// *Operation.ServerResponse.Header or (if a response was returned at
67940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67941// to check whether the returned error was because
67942// http.StatusNotModified was returned.
67943func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67944	gensupport.SetOptions(c.urlParams_, opts...)
67945	res, err := c.doRequest("json")
67946	if res != nil && res.StatusCode == http.StatusNotModified {
67947		if res.Body != nil {
67948			res.Body.Close()
67949		}
67950		return nil, &googleapi.Error{
67951			Code:   res.StatusCode,
67952			Header: res.Header,
67953		}
67954	}
67955	if err != nil {
67956		return nil, err
67957	}
67958	defer googleapi.CloseBody(res)
67959	if err := googleapi.CheckResponse(res); err != nil {
67960		return nil, err
67961	}
67962	ret := &Operation{
67963		ServerResponse: googleapi.ServerResponse{
67964			Header:         res.Header,
67965			HTTPStatusCode: res.StatusCode,
67966		},
67967	}
67968	target := &ret
67969	if err := gensupport.DecodeResponse(target, res); err != nil {
67970		return nil, err
67971	}
67972	return ret, nil
67973	// {
67974	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
67975	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
67976	//   "httpMethod": "POST",
67977	//   "id": "compute.forwardingRules.setLabels",
67978	//   "parameterOrder": [
67979	//     "project",
67980	//     "region",
67981	//     "resource"
67982	//   ],
67983	//   "parameters": {
67984	//     "project": {
67985	//       "description": "Project ID for this request.",
67986	//       "location": "path",
67987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67988	//       "required": true,
67989	//       "type": "string"
67990	//     },
67991	//     "region": {
67992	//       "description": "The region for this request.",
67993	//       "location": "path",
67994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67995	//       "required": true,
67996	//       "type": "string"
67997	//     },
67998	//     "requestId": {
67999	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68000	//       "location": "query",
68001	//       "type": "string"
68002	//     },
68003	//     "resource": {
68004	//       "description": "Name or id of the resource for this request.",
68005	//       "location": "path",
68006	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68007	//       "required": true,
68008	//       "type": "string"
68009	//     }
68010	//   },
68011	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
68012	//   "request": {
68013	//     "$ref": "RegionSetLabelsRequest"
68014	//   },
68015	//   "response": {
68016	//     "$ref": "Operation"
68017	//   },
68018	//   "scopes": [
68019	//     "https://www.googleapis.com/auth/cloud-platform",
68020	//     "https://www.googleapis.com/auth/compute"
68021	//   ]
68022	// }
68023
68024}
68025
68026// method id "compute.forwardingRules.setTarget":
68027
68028type ForwardingRulesSetTargetCall struct {
68029	s               *Service
68030	project         string
68031	region          string
68032	forwardingRule  string
68033	targetreference *TargetReference
68034	urlParams_      gensupport.URLParams
68035	ctx_            context.Context
68036	header_         http.Header
68037}
68038
68039// SetTarget: Changes target URL for forwarding rule. The new target
68040// should be of the same type as the old target.
68041//
68042// - forwardingRule: Name of the ForwardingRule resource in which target
68043//   is to be set.
68044// - project: Project ID for this request.
68045// - region: Name of the region scoping this request.
68046func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
68047	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68048	c.project = project
68049	c.region = region
68050	c.forwardingRule = forwardingRule
68051	c.targetreference = targetreference
68052	return c
68053}
68054
68055// RequestId sets the optional parameter "requestId": An optional
68056// request ID to identify requests. Specify a unique request ID so that
68057// if you must retry your request, the server will know to ignore the
68058// request if it has already been completed. For example, consider a
68059// situation where you make an initial request and the request times
68060// out. If you make the request again with the same request ID, the
68061// server can check if original operation with the same request ID was
68062// received, and if so, will ignore the second request. This prevents
68063// clients from accidentally creating duplicate commitments. The request
68064// ID must be a valid UUID with the exception that zero UUID is not
68065// supported ( 00000000-0000-0000-0000-000000000000).
68066func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
68067	c.urlParams_.Set("requestId", requestId)
68068	return c
68069}
68070
68071// Fields allows partial responses to be retrieved. See
68072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68073// for more information.
68074func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
68075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68076	return c
68077}
68078
68079// Context sets the context to be used in this call's Do method. Any
68080// pending HTTP request will be aborted if the provided context is
68081// canceled.
68082func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
68083	c.ctx_ = ctx
68084	return c
68085}
68086
68087// Header returns an http.Header that can be modified by the caller to
68088// add HTTP headers to the request.
68089func (c *ForwardingRulesSetTargetCall) Header() http.Header {
68090	if c.header_ == nil {
68091		c.header_ = make(http.Header)
68092	}
68093	return c.header_
68094}
68095
68096func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
68097	reqHeaders := make(http.Header)
68098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
68099	for k, v := range c.header_ {
68100		reqHeaders[k] = v
68101	}
68102	reqHeaders.Set("User-Agent", c.s.userAgent())
68103	var body io.Reader = nil
68104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
68105	if err != nil {
68106		return nil, err
68107	}
68108	reqHeaders.Set("Content-Type", "application/json")
68109	c.urlParams_.Set("alt", alt)
68110	c.urlParams_.Set("prettyPrint", "false")
68111	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
68112	urls += "?" + c.urlParams_.Encode()
68113	req, err := http.NewRequest("POST", urls, body)
68114	if err != nil {
68115		return nil, err
68116	}
68117	req.Header = reqHeaders
68118	googleapi.Expand(req.URL, map[string]string{
68119		"project":        c.project,
68120		"region":         c.region,
68121		"forwardingRule": c.forwardingRule,
68122	})
68123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68124}
68125
68126// Do executes the "compute.forwardingRules.setTarget" call.
68127// Exactly one of *Operation or error will be non-nil. Any non-2xx
68128// status code is an error. Response headers are in either
68129// *Operation.ServerResponse.Header or (if a response was returned at
68130// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68131// to check whether the returned error was because
68132// http.StatusNotModified was returned.
68133func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68134	gensupport.SetOptions(c.urlParams_, opts...)
68135	res, err := c.doRequest("json")
68136	if res != nil && res.StatusCode == http.StatusNotModified {
68137		if res.Body != nil {
68138			res.Body.Close()
68139		}
68140		return nil, &googleapi.Error{
68141			Code:   res.StatusCode,
68142			Header: res.Header,
68143		}
68144	}
68145	if err != nil {
68146		return nil, err
68147	}
68148	defer googleapi.CloseBody(res)
68149	if err := googleapi.CheckResponse(res); err != nil {
68150		return nil, err
68151	}
68152	ret := &Operation{
68153		ServerResponse: googleapi.ServerResponse{
68154			Header:         res.Header,
68155			HTTPStatusCode: res.StatusCode,
68156		},
68157	}
68158	target := &ret
68159	if err := gensupport.DecodeResponse(target, res); err != nil {
68160		return nil, err
68161	}
68162	return ret, nil
68163	// {
68164	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
68165	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
68166	//   "httpMethod": "POST",
68167	//   "id": "compute.forwardingRules.setTarget",
68168	//   "parameterOrder": [
68169	//     "project",
68170	//     "region",
68171	//     "forwardingRule"
68172	//   ],
68173	//   "parameters": {
68174	//     "forwardingRule": {
68175	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
68176	//       "location": "path",
68177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68178	//       "required": true,
68179	//       "type": "string"
68180	//     },
68181	//     "project": {
68182	//       "description": "Project ID for this request.",
68183	//       "location": "path",
68184	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68185	//       "required": true,
68186	//       "type": "string"
68187	//     },
68188	//     "region": {
68189	//       "description": "Name of the region scoping this request.",
68190	//       "location": "path",
68191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68192	//       "required": true,
68193	//       "type": "string"
68194	//     },
68195	//     "requestId": {
68196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68197	//       "location": "query",
68198	//       "type": "string"
68199	//     }
68200	//   },
68201	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
68202	//   "request": {
68203	//     "$ref": "TargetReference"
68204	//   },
68205	//   "response": {
68206	//     "$ref": "Operation"
68207	//   },
68208	//   "scopes": [
68209	//     "https://www.googleapis.com/auth/cloud-platform",
68210	//     "https://www.googleapis.com/auth/compute"
68211	//   ]
68212	// }
68213
68214}
68215
68216// method id "compute.globalAddresses.delete":
68217
68218type GlobalAddressesDeleteCall struct {
68219	s          *Service
68220	project    string
68221	address    string
68222	urlParams_ gensupport.URLParams
68223	ctx_       context.Context
68224	header_    http.Header
68225}
68226
68227// Delete: Deletes the specified address resource.
68228//
68229// - address: Name of the address resource to delete.
68230// - project: Project ID for this request.
68231func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
68232	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68233	c.project = project
68234	c.address = address
68235	return c
68236}
68237
68238// RequestId sets the optional parameter "requestId": An optional
68239// request ID to identify requests. Specify a unique request ID so that
68240// if you must retry your request, the server will know to ignore the
68241// request if it has already been completed. For example, consider a
68242// situation where you make an initial request and the request times
68243// out. If you make the request again with the same request ID, the
68244// server can check if original operation with the same request ID was
68245// received, and if so, will ignore the second request. This prevents
68246// clients from accidentally creating duplicate commitments. The request
68247// ID must be a valid UUID with the exception that zero UUID is not
68248// supported ( 00000000-0000-0000-0000-000000000000).
68249func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
68250	c.urlParams_.Set("requestId", requestId)
68251	return c
68252}
68253
68254// Fields allows partial responses to be retrieved. See
68255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68256// for more information.
68257func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
68258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68259	return c
68260}
68261
68262// Context sets the context to be used in this call's Do method. Any
68263// pending HTTP request will be aborted if the provided context is
68264// canceled.
68265func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
68266	c.ctx_ = ctx
68267	return c
68268}
68269
68270// Header returns an http.Header that can be modified by the caller to
68271// add HTTP headers to the request.
68272func (c *GlobalAddressesDeleteCall) Header() http.Header {
68273	if c.header_ == nil {
68274		c.header_ = make(http.Header)
68275	}
68276	return c.header_
68277}
68278
68279func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
68280	reqHeaders := make(http.Header)
68281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
68282	for k, v := range c.header_ {
68283		reqHeaders[k] = v
68284	}
68285	reqHeaders.Set("User-Agent", c.s.userAgent())
68286	var body io.Reader = nil
68287	c.urlParams_.Set("alt", alt)
68288	c.urlParams_.Set("prettyPrint", "false")
68289	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68290	urls += "?" + c.urlParams_.Encode()
68291	req, err := http.NewRequest("DELETE", urls, body)
68292	if err != nil {
68293		return nil, err
68294	}
68295	req.Header = reqHeaders
68296	googleapi.Expand(req.URL, map[string]string{
68297		"project": c.project,
68298		"address": c.address,
68299	})
68300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68301}
68302
68303// Do executes the "compute.globalAddresses.delete" call.
68304// Exactly one of *Operation or error will be non-nil. Any non-2xx
68305// status code is an error. Response headers are in either
68306// *Operation.ServerResponse.Header or (if a response was returned at
68307// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68308// to check whether the returned error was because
68309// http.StatusNotModified was returned.
68310func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68311	gensupport.SetOptions(c.urlParams_, opts...)
68312	res, err := c.doRequest("json")
68313	if res != nil && res.StatusCode == http.StatusNotModified {
68314		if res.Body != nil {
68315			res.Body.Close()
68316		}
68317		return nil, &googleapi.Error{
68318			Code:   res.StatusCode,
68319			Header: res.Header,
68320		}
68321	}
68322	if err != nil {
68323		return nil, err
68324	}
68325	defer googleapi.CloseBody(res)
68326	if err := googleapi.CheckResponse(res); err != nil {
68327		return nil, err
68328	}
68329	ret := &Operation{
68330		ServerResponse: googleapi.ServerResponse{
68331			Header:         res.Header,
68332			HTTPStatusCode: res.StatusCode,
68333		},
68334	}
68335	target := &ret
68336	if err := gensupport.DecodeResponse(target, res); err != nil {
68337		return nil, err
68338	}
68339	return ret, nil
68340	// {
68341	//   "description": "Deletes the specified address resource.",
68342	//   "flatPath": "projects/{project}/global/addresses/{address}",
68343	//   "httpMethod": "DELETE",
68344	//   "id": "compute.globalAddresses.delete",
68345	//   "parameterOrder": [
68346	//     "project",
68347	//     "address"
68348	//   ],
68349	//   "parameters": {
68350	//     "address": {
68351	//       "description": "Name of the address resource to delete.",
68352	//       "location": "path",
68353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68354	//       "required": true,
68355	//       "type": "string"
68356	//     },
68357	//     "project": {
68358	//       "description": "Project ID for this request.",
68359	//       "location": "path",
68360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68361	//       "required": true,
68362	//       "type": "string"
68363	//     },
68364	//     "requestId": {
68365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68366	//       "location": "query",
68367	//       "type": "string"
68368	//     }
68369	//   },
68370	//   "path": "projects/{project}/global/addresses/{address}",
68371	//   "response": {
68372	//     "$ref": "Operation"
68373	//   },
68374	//   "scopes": [
68375	//     "https://www.googleapis.com/auth/cloud-platform",
68376	//     "https://www.googleapis.com/auth/compute"
68377	//   ]
68378	// }
68379
68380}
68381
68382// method id "compute.globalAddresses.get":
68383
68384type GlobalAddressesGetCall struct {
68385	s            *Service
68386	project      string
68387	address      string
68388	urlParams_   gensupport.URLParams
68389	ifNoneMatch_ string
68390	ctx_         context.Context
68391	header_      http.Header
68392}
68393
68394// Get: Returns the specified address resource. Gets a list of available
68395// addresses by making a list() request.
68396//
68397// - address: Name of the address resource to return.
68398// - project: Project ID for this request.
68399func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
68400	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68401	c.project = project
68402	c.address = address
68403	return c
68404}
68405
68406// Fields allows partial responses to be retrieved. See
68407// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68408// for more information.
68409func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
68410	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68411	return c
68412}
68413
68414// IfNoneMatch sets the optional parameter which makes the operation
68415// fail if the object's ETag matches the given value. This is useful for
68416// getting updates only after the object has changed since the last
68417// request. Use googleapi.IsNotModified to check whether the response
68418// error from Do is the result of In-None-Match.
68419func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
68420	c.ifNoneMatch_ = entityTag
68421	return c
68422}
68423
68424// Context sets the context to be used in this call's Do method. Any
68425// pending HTTP request will be aborted if the provided context is
68426// canceled.
68427func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
68428	c.ctx_ = ctx
68429	return c
68430}
68431
68432// Header returns an http.Header that can be modified by the caller to
68433// add HTTP headers to the request.
68434func (c *GlobalAddressesGetCall) Header() http.Header {
68435	if c.header_ == nil {
68436		c.header_ = make(http.Header)
68437	}
68438	return c.header_
68439}
68440
68441func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
68442	reqHeaders := make(http.Header)
68443	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
68444	for k, v := range c.header_ {
68445		reqHeaders[k] = v
68446	}
68447	reqHeaders.Set("User-Agent", c.s.userAgent())
68448	if c.ifNoneMatch_ != "" {
68449		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68450	}
68451	var body io.Reader = nil
68452	c.urlParams_.Set("alt", alt)
68453	c.urlParams_.Set("prettyPrint", "false")
68454	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68455	urls += "?" + c.urlParams_.Encode()
68456	req, err := http.NewRequest("GET", urls, body)
68457	if err != nil {
68458		return nil, err
68459	}
68460	req.Header = reqHeaders
68461	googleapi.Expand(req.URL, map[string]string{
68462		"project": c.project,
68463		"address": c.address,
68464	})
68465	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68466}
68467
68468// Do executes the "compute.globalAddresses.get" call.
68469// Exactly one of *Address or error will be non-nil. Any non-2xx status
68470// code is an error. Response headers are in either
68471// *Address.ServerResponse.Header or (if a response was returned at all)
68472// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
68473// check whether the returned error was because http.StatusNotModified
68474// was returned.
68475func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
68476	gensupport.SetOptions(c.urlParams_, opts...)
68477	res, err := c.doRequest("json")
68478	if res != nil && res.StatusCode == http.StatusNotModified {
68479		if res.Body != nil {
68480			res.Body.Close()
68481		}
68482		return nil, &googleapi.Error{
68483			Code:   res.StatusCode,
68484			Header: res.Header,
68485		}
68486	}
68487	if err != nil {
68488		return nil, err
68489	}
68490	defer googleapi.CloseBody(res)
68491	if err := googleapi.CheckResponse(res); err != nil {
68492		return nil, err
68493	}
68494	ret := &Address{
68495		ServerResponse: googleapi.ServerResponse{
68496			Header:         res.Header,
68497			HTTPStatusCode: res.StatusCode,
68498		},
68499	}
68500	target := &ret
68501	if err := gensupport.DecodeResponse(target, res); err != nil {
68502		return nil, err
68503	}
68504	return ret, nil
68505	// {
68506	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
68507	//   "flatPath": "projects/{project}/global/addresses/{address}",
68508	//   "httpMethod": "GET",
68509	//   "id": "compute.globalAddresses.get",
68510	//   "parameterOrder": [
68511	//     "project",
68512	//     "address"
68513	//   ],
68514	//   "parameters": {
68515	//     "address": {
68516	//       "description": "Name of the address resource to return.",
68517	//       "location": "path",
68518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68519	//       "required": true,
68520	//       "type": "string"
68521	//     },
68522	//     "project": {
68523	//       "description": "Project ID for this request.",
68524	//       "location": "path",
68525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68526	//       "required": true,
68527	//       "type": "string"
68528	//     }
68529	//   },
68530	//   "path": "projects/{project}/global/addresses/{address}",
68531	//   "response": {
68532	//     "$ref": "Address"
68533	//   },
68534	//   "scopes": [
68535	//     "https://www.googleapis.com/auth/cloud-platform",
68536	//     "https://www.googleapis.com/auth/compute",
68537	//     "https://www.googleapis.com/auth/compute.readonly"
68538	//   ]
68539	// }
68540
68541}
68542
68543// method id "compute.globalAddresses.insert":
68544
68545type GlobalAddressesInsertCall struct {
68546	s          *Service
68547	project    string
68548	address    *Address
68549	urlParams_ gensupport.URLParams
68550	ctx_       context.Context
68551	header_    http.Header
68552}
68553
68554// Insert: Creates an address resource in the specified project by using
68555// the data included in the request.
68556//
68557// - project: Project ID for this request.
68558func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
68559	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68560	c.project = project
68561	c.address = address
68562	return c
68563}
68564
68565// RequestId sets the optional parameter "requestId": An optional
68566// request ID to identify requests. Specify a unique request ID so that
68567// if you must retry your request, the server will know to ignore the
68568// request if it has already been completed. For example, consider a
68569// situation where you make an initial request and the request times
68570// out. If you make the request again with the same request ID, the
68571// server can check if original operation with the same request ID was
68572// received, and if so, will ignore the second request. This prevents
68573// clients from accidentally creating duplicate commitments. The request
68574// ID must be a valid UUID with the exception that zero UUID is not
68575// supported ( 00000000-0000-0000-0000-000000000000).
68576func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
68577	c.urlParams_.Set("requestId", requestId)
68578	return c
68579}
68580
68581// Fields allows partial responses to be retrieved. See
68582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68583// for more information.
68584func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
68585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68586	return c
68587}
68588
68589// Context sets the context to be used in this call's Do method. Any
68590// pending HTTP request will be aborted if the provided context is
68591// canceled.
68592func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
68593	c.ctx_ = ctx
68594	return c
68595}
68596
68597// Header returns an http.Header that can be modified by the caller to
68598// add HTTP headers to the request.
68599func (c *GlobalAddressesInsertCall) Header() http.Header {
68600	if c.header_ == nil {
68601		c.header_ = make(http.Header)
68602	}
68603	return c.header_
68604}
68605
68606func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
68607	reqHeaders := make(http.Header)
68608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
68609	for k, v := range c.header_ {
68610		reqHeaders[k] = v
68611	}
68612	reqHeaders.Set("User-Agent", c.s.userAgent())
68613	var body io.Reader = nil
68614	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
68615	if err != nil {
68616		return nil, err
68617	}
68618	reqHeaders.Set("Content-Type", "application/json")
68619	c.urlParams_.Set("alt", alt)
68620	c.urlParams_.Set("prettyPrint", "false")
68621	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
68622	urls += "?" + c.urlParams_.Encode()
68623	req, err := http.NewRequest("POST", urls, body)
68624	if err != nil {
68625		return nil, err
68626	}
68627	req.Header = reqHeaders
68628	googleapi.Expand(req.URL, map[string]string{
68629		"project": c.project,
68630	})
68631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68632}
68633
68634// Do executes the "compute.globalAddresses.insert" call.
68635// Exactly one of *Operation or error will be non-nil. Any non-2xx
68636// status code is an error. Response headers are in either
68637// *Operation.ServerResponse.Header or (if a response was returned at
68638// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68639// to check whether the returned error was because
68640// http.StatusNotModified was returned.
68641func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68642	gensupport.SetOptions(c.urlParams_, opts...)
68643	res, err := c.doRequest("json")
68644	if res != nil && res.StatusCode == http.StatusNotModified {
68645		if res.Body != nil {
68646			res.Body.Close()
68647		}
68648		return nil, &googleapi.Error{
68649			Code:   res.StatusCode,
68650			Header: res.Header,
68651		}
68652	}
68653	if err != nil {
68654		return nil, err
68655	}
68656	defer googleapi.CloseBody(res)
68657	if err := googleapi.CheckResponse(res); err != nil {
68658		return nil, err
68659	}
68660	ret := &Operation{
68661		ServerResponse: googleapi.ServerResponse{
68662			Header:         res.Header,
68663			HTTPStatusCode: res.StatusCode,
68664		},
68665	}
68666	target := &ret
68667	if err := gensupport.DecodeResponse(target, res); err != nil {
68668		return nil, err
68669	}
68670	return ret, nil
68671	// {
68672	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
68673	//   "flatPath": "projects/{project}/global/addresses",
68674	//   "httpMethod": "POST",
68675	//   "id": "compute.globalAddresses.insert",
68676	//   "parameterOrder": [
68677	//     "project"
68678	//   ],
68679	//   "parameters": {
68680	//     "project": {
68681	//       "description": "Project ID for this request.",
68682	//       "location": "path",
68683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68684	//       "required": true,
68685	//       "type": "string"
68686	//     },
68687	//     "requestId": {
68688	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68689	//       "location": "query",
68690	//       "type": "string"
68691	//     }
68692	//   },
68693	//   "path": "projects/{project}/global/addresses",
68694	//   "request": {
68695	//     "$ref": "Address"
68696	//   },
68697	//   "response": {
68698	//     "$ref": "Operation"
68699	//   },
68700	//   "scopes": [
68701	//     "https://www.googleapis.com/auth/cloud-platform",
68702	//     "https://www.googleapis.com/auth/compute"
68703	//   ]
68704	// }
68705
68706}
68707
68708// method id "compute.globalAddresses.list":
68709
68710type GlobalAddressesListCall struct {
68711	s            *Service
68712	project      string
68713	urlParams_   gensupport.URLParams
68714	ifNoneMatch_ string
68715	ctx_         context.Context
68716	header_      http.Header
68717}
68718
68719// List: Retrieves a list of global addresses.
68720//
68721// - project: Project ID for this request.
68722func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
68723	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68724	c.project = project
68725	return c
68726}
68727
68728// Filter sets the optional parameter "filter": A filter expression that
68729// filters resources listed in the response. The expression must specify
68730// the field name, a comparison operator, and the value that you want to
68731// use for filtering. The value must be a string, a number, or a
68732// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68733// `<`. For example, if you are filtering Compute Engine instances, you
68734// can exclude instances named `example-instance` by specifying `name !=
68735// example-instance`. You can also filter nested fields. For example,
68736// you could specify `scheduling.automaticRestart = false` to include
68737// instances only if they are not scheduled for automatic restarts. You
68738// can use filtering on nested fields to filter based on resource
68739// labels. To filter on multiple expressions, provide each separate
68740// expression within parentheses. For example: ```
68741// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
68742// ``` By default, each expression is an `AND` expression. However, you
68743// can include `AND` and `OR` expressions explicitly. For example: ```
68744// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
68745// AND (scheduling.automaticRestart = true) ```
68746func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
68747	c.urlParams_.Set("filter", filter)
68748	return c
68749}
68750
68751// MaxResults sets the optional parameter "maxResults": The maximum
68752// number of results per page that should be returned. If the number of
68753// available results is larger than `maxResults`, Compute Engine returns
68754// a `nextPageToken` that can be used to get the next page of results in
68755// subsequent list requests. Acceptable values are `0` to `500`,
68756// inclusive. (Default: `500`)
68757func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
68758	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68759	return c
68760}
68761
68762// OrderBy sets the optional parameter "orderBy": Sorts list results by
68763// a certain order. By default, results are returned in alphanumerical
68764// order based on the resource name. You can also sort results in
68765// descending order based on the creation timestamp using
68766// `orderBy="creationTimestamp desc". This sorts results based on the
68767// `creationTimestamp` field in reverse chronological order (newest
68768// result first). Use this to sort resources like operations so that the
68769// newest operation is returned first. Currently, only sorting by `name`
68770// or `creationTimestamp desc` is supported.
68771func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
68772	c.urlParams_.Set("orderBy", orderBy)
68773	return c
68774}
68775
68776// PageToken sets the optional parameter "pageToken": Specifies a page
68777// token to use. Set `pageToken` to the `nextPageToken` returned by a
68778// previous list request to get the next page of results.
68779func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
68780	c.urlParams_.Set("pageToken", pageToken)
68781	return c
68782}
68783
68784// ReturnPartialSuccess sets the optional parameter
68785// "returnPartialSuccess": Opt-in for partial success behavior which
68786// provides partial results in case of failure. The default value is
68787// false.
68788func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
68789	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68790	return c
68791}
68792
68793// Fields allows partial responses to be retrieved. See
68794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68795// for more information.
68796func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
68797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68798	return c
68799}
68800
68801// IfNoneMatch sets the optional parameter which makes the operation
68802// fail if the object's ETag matches the given value. This is useful for
68803// getting updates only after the object has changed since the last
68804// request. Use googleapi.IsNotModified to check whether the response
68805// error from Do is the result of In-None-Match.
68806func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
68807	c.ifNoneMatch_ = entityTag
68808	return c
68809}
68810
68811// Context sets the context to be used in this call's Do method. Any
68812// pending HTTP request will be aborted if the provided context is
68813// canceled.
68814func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
68815	c.ctx_ = ctx
68816	return c
68817}
68818
68819// Header returns an http.Header that can be modified by the caller to
68820// add HTTP headers to the request.
68821func (c *GlobalAddressesListCall) Header() http.Header {
68822	if c.header_ == nil {
68823		c.header_ = make(http.Header)
68824	}
68825	return c.header_
68826}
68827
68828func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
68829	reqHeaders := make(http.Header)
68830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
68831	for k, v := range c.header_ {
68832		reqHeaders[k] = v
68833	}
68834	reqHeaders.Set("User-Agent", c.s.userAgent())
68835	if c.ifNoneMatch_ != "" {
68836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68837	}
68838	var body io.Reader = nil
68839	c.urlParams_.Set("alt", alt)
68840	c.urlParams_.Set("prettyPrint", "false")
68841	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
68842	urls += "?" + c.urlParams_.Encode()
68843	req, err := http.NewRequest("GET", urls, body)
68844	if err != nil {
68845		return nil, err
68846	}
68847	req.Header = reqHeaders
68848	googleapi.Expand(req.URL, map[string]string{
68849		"project": c.project,
68850	})
68851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68852}
68853
68854// Do executes the "compute.globalAddresses.list" call.
68855// Exactly one of *AddressList or error will be non-nil. Any non-2xx
68856// status code is an error. Response headers are in either
68857// *AddressList.ServerResponse.Header or (if a response was returned at
68858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68859// to check whether the returned error was because
68860// http.StatusNotModified was returned.
68861func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
68862	gensupport.SetOptions(c.urlParams_, opts...)
68863	res, err := c.doRequest("json")
68864	if res != nil && res.StatusCode == http.StatusNotModified {
68865		if res.Body != nil {
68866			res.Body.Close()
68867		}
68868		return nil, &googleapi.Error{
68869			Code:   res.StatusCode,
68870			Header: res.Header,
68871		}
68872	}
68873	if err != nil {
68874		return nil, err
68875	}
68876	defer googleapi.CloseBody(res)
68877	if err := googleapi.CheckResponse(res); err != nil {
68878		return nil, err
68879	}
68880	ret := &AddressList{
68881		ServerResponse: googleapi.ServerResponse{
68882			Header:         res.Header,
68883			HTTPStatusCode: res.StatusCode,
68884		},
68885	}
68886	target := &ret
68887	if err := gensupport.DecodeResponse(target, res); err != nil {
68888		return nil, err
68889	}
68890	return ret, nil
68891	// {
68892	//   "description": "Retrieves a list of global addresses.",
68893	//   "flatPath": "projects/{project}/global/addresses",
68894	//   "httpMethod": "GET",
68895	//   "id": "compute.globalAddresses.list",
68896	//   "parameterOrder": [
68897	//     "project"
68898	//   ],
68899	//   "parameters": {
68900	//     "filter": {
68901	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68902	//       "location": "query",
68903	//       "type": "string"
68904	//     },
68905	//     "maxResults": {
68906	//       "default": "500",
68907	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68908	//       "format": "uint32",
68909	//       "location": "query",
68910	//       "minimum": "0",
68911	//       "type": "integer"
68912	//     },
68913	//     "orderBy": {
68914	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
68915	//       "location": "query",
68916	//       "type": "string"
68917	//     },
68918	//     "pageToken": {
68919	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68920	//       "location": "query",
68921	//       "type": "string"
68922	//     },
68923	//     "project": {
68924	//       "description": "Project ID for this request.",
68925	//       "location": "path",
68926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68927	//       "required": true,
68928	//       "type": "string"
68929	//     },
68930	//     "returnPartialSuccess": {
68931	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
68932	//       "location": "query",
68933	//       "type": "boolean"
68934	//     }
68935	//   },
68936	//   "path": "projects/{project}/global/addresses",
68937	//   "response": {
68938	//     "$ref": "AddressList"
68939	//   },
68940	//   "scopes": [
68941	//     "https://www.googleapis.com/auth/cloud-platform",
68942	//     "https://www.googleapis.com/auth/compute",
68943	//     "https://www.googleapis.com/auth/compute.readonly"
68944	//   ]
68945	// }
68946
68947}
68948
68949// Pages invokes f for each page of results.
68950// A non-nil error returned from f will halt the iteration.
68951// The provided context supersedes any context provided to the Context method.
68952func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
68953	c.ctx_ = ctx
68954	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68955	for {
68956		x, err := c.Do()
68957		if err != nil {
68958			return err
68959		}
68960		if err := f(x); err != nil {
68961			return err
68962		}
68963		if x.NextPageToken == "" {
68964			return nil
68965		}
68966		c.PageToken(x.NextPageToken)
68967	}
68968}
68969
68970// method id "compute.globalForwardingRules.delete":
68971
68972type GlobalForwardingRulesDeleteCall struct {
68973	s              *Service
68974	project        string
68975	forwardingRule string
68976	urlParams_     gensupport.URLParams
68977	ctx_           context.Context
68978	header_        http.Header
68979}
68980
68981// Delete: Deletes the specified GlobalForwardingRule resource.
68982//
68983// - forwardingRule: Name of the ForwardingRule resource to delete.
68984// - project: Project ID for this request.
68985func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
68986	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68987	c.project = project
68988	c.forwardingRule = forwardingRule
68989	return c
68990}
68991
68992// RequestId sets the optional parameter "requestId": An optional
68993// request ID to identify requests. Specify a unique request ID so that
68994// if you must retry your request, the server will know to ignore the
68995// request if it has already been completed. For example, consider a
68996// situation where you make an initial request and the request times
68997// out. If you make the request again with the same request ID, the
68998// server can check if original operation with the same request ID was
68999// received, and if so, will ignore the second request. This prevents
69000// clients from accidentally creating duplicate commitments. The request
69001// ID must be a valid UUID with the exception that zero UUID is not
69002// supported ( 00000000-0000-0000-0000-000000000000).
69003func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
69004	c.urlParams_.Set("requestId", requestId)
69005	return c
69006}
69007
69008// Fields allows partial responses to be retrieved. See
69009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69010// for more information.
69011func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
69012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69013	return c
69014}
69015
69016// Context sets the context to be used in this call's Do method. Any
69017// pending HTTP request will be aborted if the provided context is
69018// canceled.
69019func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
69020	c.ctx_ = ctx
69021	return c
69022}
69023
69024// Header returns an http.Header that can be modified by the caller to
69025// add HTTP headers to the request.
69026func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
69027	if c.header_ == nil {
69028		c.header_ = make(http.Header)
69029	}
69030	return c.header_
69031}
69032
69033func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
69034	reqHeaders := make(http.Header)
69035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69036	for k, v := range c.header_ {
69037		reqHeaders[k] = v
69038	}
69039	reqHeaders.Set("User-Agent", c.s.userAgent())
69040	var body io.Reader = nil
69041	c.urlParams_.Set("alt", alt)
69042	c.urlParams_.Set("prettyPrint", "false")
69043	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69044	urls += "?" + c.urlParams_.Encode()
69045	req, err := http.NewRequest("DELETE", urls, body)
69046	if err != nil {
69047		return nil, err
69048	}
69049	req.Header = reqHeaders
69050	googleapi.Expand(req.URL, map[string]string{
69051		"project":        c.project,
69052		"forwardingRule": c.forwardingRule,
69053	})
69054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69055}
69056
69057// Do executes the "compute.globalForwardingRules.delete" call.
69058// Exactly one of *Operation or error will be non-nil. Any non-2xx
69059// status code is an error. Response headers are in either
69060// *Operation.ServerResponse.Header or (if a response was returned at
69061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69062// to check whether the returned error was because
69063// http.StatusNotModified was returned.
69064func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69065	gensupport.SetOptions(c.urlParams_, opts...)
69066	res, err := c.doRequest("json")
69067	if res != nil && res.StatusCode == http.StatusNotModified {
69068		if res.Body != nil {
69069			res.Body.Close()
69070		}
69071		return nil, &googleapi.Error{
69072			Code:   res.StatusCode,
69073			Header: res.Header,
69074		}
69075	}
69076	if err != nil {
69077		return nil, err
69078	}
69079	defer googleapi.CloseBody(res)
69080	if err := googleapi.CheckResponse(res); err != nil {
69081		return nil, err
69082	}
69083	ret := &Operation{
69084		ServerResponse: googleapi.ServerResponse{
69085			Header:         res.Header,
69086			HTTPStatusCode: res.StatusCode,
69087		},
69088	}
69089	target := &ret
69090	if err := gensupport.DecodeResponse(target, res); err != nil {
69091		return nil, err
69092	}
69093	return ret, nil
69094	// {
69095	//   "description": "Deletes the specified GlobalForwardingRule resource.",
69096	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
69097	//   "httpMethod": "DELETE",
69098	//   "id": "compute.globalForwardingRules.delete",
69099	//   "parameterOrder": [
69100	//     "project",
69101	//     "forwardingRule"
69102	//   ],
69103	//   "parameters": {
69104	//     "forwardingRule": {
69105	//       "description": "Name of the ForwardingRule resource to delete.",
69106	//       "location": "path",
69107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69108	//       "required": true,
69109	//       "type": "string"
69110	//     },
69111	//     "project": {
69112	//       "description": "Project ID for this request.",
69113	//       "location": "path",
69114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69115	//       "required": true,
69116	//       "type": "string"
69117	//     },
69118	//     "requestId": {
69119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69120	//       "location": "query",
69121	//       "type": "string"
69122	//     }
69123	//   },
69124	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69125	//   "response": {
69126	//     "$ref": "Operation"
69127	//   },
69128	//   "scopes": [
69129	//     "https://www.googleapis.com/auth/cloud-platform",
69130	//     "https://www.googleapis.com/auth/compute"
69131	//   ]
69132	// }
69133
69134}
69135
69136// method id "compute.globalForwardingRules.get":
69137
69138type GlobalForwardingRulesGetCall struct {
69139	s              *Service
69140	project        string
69141	forwardingRule string
69142	urlParams_     gensupport.URLParams
69143	ifNoneMatch_   string
69144	ctx_           context.Context
69145	header_        http.Header
69146}
69147
69148// Get: Returns the specified GlobalForwardingRule resource. Gets a list
69149// of available forwarding rules by making a list() request.
69150//
69151// - forwardingRule: Name of the ForwardingRule resource to return.
69152// - project: Project ID for this request.
69153func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
69154	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69155	c.project = project
69156	c.forwardingRule = forwardingRule
69157	return c
69158}
69159
69160// Fields allows partial responses to be retrieved. See
69161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69162// for more information.
69163func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
69164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69165	return c
69166}
69167
69168// IfNoneMatch sets the optional parameter which makes the operation
69169// fail if the object's ETag matches the given value. This is useful for
69170// getting updates only after the object has changed since the last
69171// request. Use googleapi.IsNotModified to check whether the response
69172// error from Do is the result of In-None-Match.
69173func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
69174	c.ifNoneMatch_ = entityTag
69175	return c
69176}
69177
69178// Context sets the context to be used in this call's Do method. Any
69179// pending HTTP request will be aborted if the provided context is
69180// canceled.
69181func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
69182	c.ctx_ = ctx
69183	return c
69184}
69185
69186// Header returns an http.Header that can be modified by the caller to
69187// add HTTP headers to the request.
69188func (c *GlobalForwardingRulesGetCall) Header() http.Header {
69189	if c.header_ == nil {
69190		c.header_ = make(http.Header)
69191	}
69192	return c.header_
69193}
69194
69195func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
69196	reqHeaders := make(http.Header)
69197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69198	for k, v := range c.header_ {
69199		reqHeaders[k] = v
69200	}
69201	reqHeaders.Set("User-Agent", c.s.userAgent())
69202	if c.ifNoneMatch_ != "" {
69203		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69204	}
69205	var body io.Reader = nil
69206	c.urlParams_.Set("alt", alt)
69207	c.urlParams_.Set("prettyPrint", "false")
69208	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69209	urls += "?" + c.urlParams_.Encode()
69210	req, err := http.NewRequest("GET", urls, body)
69211	if err != nil {
69212		return nil, err
69213	}
69214	req.Header = reqHeaders
69215	googleapi.Expand(req.URL, map[string]string{
69216		"project":        c.project,
69217		"forwardingRule": c.forwardingRule,
69218	})
69219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69220}
69221
69222// Do executes the "compute.globalForwardingRules.get" call.
69223// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
69224// status code is an error. Response headers are in either
69225// *ForwardingRule.ServerResponse.Header or (if a response was returned
69226// at all) in error.(*googleapi.Error).Header. Use
69227// googleapi.IsNotModified to check whether the returned error was
69228// because http.StatusNotModified was returned.
69229func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
69230	gensupport.SetOptions(c.urlParams_, opts...)
69231	res, err := c.doRequest("json")
69232	if res != nil && res.StatusCode == http.StatusNotModified {
69233		if res.Body != nil {
69234			res.Body.Close()
69235		}
69236		return nil, &googleapi.Error{
69237			Code:   res.StatusCode,
69238			Header: res.Header,
69239		}
69240	}
69241	if err != nil {
69242		return nil, err
69243	}
69244	defer googleapi.CloseBody(res)
69245	if err := googleapi.CheckResponse(res); err != nil {
69246		return nil, err
69247	}
69248	ret := &ForwardingRule{
69249		ServerResponse: googleapi.ServerResponse{
69250			Header:         res.Header,
69251			HTTPStatusCode: res.StatusCode,
69252		},
69253	}
69254	target := &ret
69255	if err := gensupport.DecodeResponse(target, res); err != nil {
69256		return nil, err
69257	}
69258	return ret, nil
69259	// {
69260	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
69261	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
69262	//   "httpMethod": "GET",
69263	//   "id": "compute.globalForwardingRules.get",
69264	//   "parameterOrder": [
69265	//     "project",
69266	//     "forwardingRule"
69267	//   ],
69268	//   "parameters": {
69269	//     "forwardingRule": {
69270	//       "description": "Name of the ForwardingRule resource to return.",
69271	//       "location": "path",
69272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69273	//       "required": true,
69274	//       "type": "string"
69275	//     },
69276	//     "project": {
69277	//       "description": "Project ID for this request.",
69278	//       "location": "path",
69279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69280	//       "required": true,
69281	//       "type": "string"
69282	//     }
69283	//   },
69284	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69285	//   "response": {
69286	//     "$ref": "ForwardingRule"
69287	//   },
69288	//   "scopes": [
69289	//     "https://www.googleapis.com/auth/cloud-platform",
69290	//     "https://www.googleapis.com/auth/compute",
69291	//     "https://www.googleapis.com/auth/compute.readonly"
69292	//   ]
69293	// }
69294
69295}
69296
69297// method id "compute.globalForwardingRules.insert":
69298
69299type GlobalForwardingRulesInsertCall struct {
69300	s              *Service
69301	project        string
69302	forwardingrule *ForwardingRule
69303	urlParams_     gensupport.URLParams
69304	ctx_           context.Context
69305	header_        http.Header
69306}
69307
69308// Insert: Creates a GlobalForwardingRule resource in the specified
69309// project using the data included in the request.
69310//
69311// - project: Project ID for this request.
69312func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
69313	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69314	c.project = project
69315	c.forwardingrule = forwardingrule
69316	return c
69317}
69318
69319// RequestId sets the optional parameter "requestId": An optional
69320// request ID to identify requests. Specify a unique request ID so that
69321// if you must retry your request, the server will know to ignore the
69322// request if it has already been completed. For example, consider a
69323// situation where you make an initial request and the request times
69324// out. If you make the request again with the same request ID, the
69325// server can check if original operation with the same request ID was
69326// received, and if so, will ignore the second request. This prevents
69327// clients from accidentally creating duplicate commitments. The request
69328// ID must be a valid UUID with the exception that zero UUID is not
69329// supported ( 00000000-0000-0000-0000-000000000000).
69330func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
69331	c.urlParams_.Set("requestId", requestId)
69332	return c
69333}
69334
69335// Fields allows partial responses to be retrieved. See
69336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69337// for more information.
69338func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
69339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69340	return c
69341}
69342
69343// Context sets the context to be used in this call's Do method. Any
69344// pending HTTP request will be aborted if the provided context is
69345// canceled.
69346func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
69347	c.ctx_ = ctx
69348	return c
69349}
69350
69351// Header returns an http.Header that can be modified by the caller to
69352// add HTTP headers to the request.
69353func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
69354	if c.header_ == nil {
69355		c.header_ = make(http.Header)
69356	}
69357	return c.header_
69358}
69359
69360func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
69361	reqHeaders := make(http.Header)
69362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69363	for k, v := range c.header_ {
69364		reqHeaders[k] = v
69365	}
69366	reqHeaders.Set("User-Agent", c.s.userAgent())
69367	var body io.Reader = nil
69368	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
69369	if err != nil {
69370		return nil, err
69371	}
69372	reqHeaders.Set("Content-Type", "application/json")
69373	c.urlParams_.Set("alt", alt)
69374	c.urlParams_.Set("prettyPrint", "false")
69375	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69376	urls += "?" + c.urlParams_.Encode()
69377	req, err := http.NewRequest("POST", urls, body)
69378	if err != nil {
69379		return nil, err
69380	}
69381	req.Header = reqHeaders
69382	googleapi.Expand(req.URL, map[string]string{
69383		"project": c.project,
69384	})
69385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69386}
69387
69388// Do executes the "compute.globalForwardingRules.insert" call.
69389// Exactly one of *Operation or error will be non-nil. Any non-2xx
69390// status code is an error. Response headers are in either
69391// *Operation.ServerResponse.Header or (if a response was returned at
69392// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69393// to check whether the returned error was because
69394// http.StatusNotModified was returned.
69395func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69396	gensupport.SetOptions(c.urlParams_, opts...)
69397	res, err := c.doRequest("json")
69398	if res != nil && res.StatusCode == http.StatusNotModified {
69399		if res.Body != nil {
69400			res.Body.Close()
69401		}
69402		return nil, &googleapi.Error{
69403			Code:   res.StatusCode,
69404			Header: res.Header,
69405		}
69406	}
69407	if err != nil {
69408		return nil, err
69409	}
69410	defer googleapi.CloseBody(res)
69411	if err := googleapi.CheckResponse(res); err != nil {
69412		return nil, err
69413	}
69414	ret := &Operation{
69415		ServerResponse: googleapi.ServerResponse{
69416			Header:         res.Header,
69417			HTTPStatusCode: res.StatusCode,
69418		},
69419	}
69420	target := &ret
69421	if err := gensupport.DecodeResponse(target, res); err != nil {
69422		return nil, err
69423	}
69424	return ret, nil
69425	// {
69426	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
69427	//   "flatPath": "projects/{project}/global/forwardingRules",
69428	//   "httpMethod": "POST",
69429	//   "id": "compute.globalForwardingRules.insert",
69430	//   "parameterOrder": [
69431	//     "project"
69432	//   ],
69433	//   "parameters": {
69434	//     "project": {
69435	//       "description": "Project ID for this request.",
69436	//       "location": "path",
69437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69438	//       "required": true,
69439	//       "type": "string"
69440	//     },
69441	//     "requestId": {
69442	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69443	//       "location": "query",
69444	//       "type": "string"
69445	//     }
69446	//   },
69447	//   "path": "projects/{project}/global/forwardingRules",
69448	//   "request": {
69449	//     "$ref": "ForwardingRule"
69450	//   },
69451	//   "response": {
69452	//     "$ref": "Operation"
69453	//   },
69454	//   "scopes": [
69455	//     "https://www.googleapis.com/auth/cloud-platform",
69456	//     "https://www.googleapis.com/auth/compute"
69457	//   ]
69458	// }
69459
69460}
69461
69462// method id "compute.globalForwardingRules.list":
69463
69464type GlobalForwardingRulesListCall struct {
69465	s            *Service
69466	project      string
69467	urlParams_   gensupport.URLParams
69468	ifNoneMatch_ string
69469	ctx_         context.Context
69470	header_      http.Header
69471}
69472
69473// List: Retrieves a list of GlobalForwardingRule resources available to
69474// the specified project.
69475//
69476// - project: Project ID for this request.
69477func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
69478	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69479	c.project = project
69480	return c
69481}
69482
69483// Filter sets the optional parameter "filter": A filter expression that
69484// filters resources listed in the response. The expression must specify
69485// the field name, a comparison operator, and the value that you want to
69486// use for filtering. The value must be a string, a number, or a
69487// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69488// `<`. For example, if you are filtering Compute Engine instances, you
69489// can exclude instances named `example-instance` by specifying `name !=
69490// example-instance`. You can also filter nested fields. For example,
69491// you could specify `scheduling.automaticRestart = false` to include
69492// instances only if they are not scheduled for automatic restarts. You
69493// can use filtering on nested fields to filter based on resource
69494// labels. To filter on multiple expressions, provide each separate
69495// expression within parentheses. For example: ```
69496// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
69497// ``` By default, each expression is an `AND` expression. However, you
69498// can include `AND` and `OR` expressions explicitly. For example: ```
69499// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
69500// AND (scheduling.automaticRestart = true) ```
69501func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
69502	c.urlParams_.Set("filter", filter)
69503	return c
69504}
69505
69506// MaxResults sets the optional parameter "maxResults": The maximum
69507// number of results per page that should be returned. If the number of
69508// available results is larger than `maxResults`, Compute Engine returns
69509// a `nextPageToken` that can be used to get the next page of results in
69510// subsequent list requests. Acceptable values are `0` to `500`,
69511// inclusive. (Default: `500`)
69512func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
69513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69514	return c
69515}
69516
69517// OrderBy sets the optional parameter "orderBy": Sorts list results by
69518// a certain order. By default, results are returned in alphanumerical
69519// order based on the resource name. You can also sort results in
69520// descending order based on the creation timestamp using
69521// `orderBy="creationTimestamp desc". This sorts results based on the
69522// `creationTimestamp` field in reverse chronological order (newest
69523// result first). Use this to sort resources like operations so that the
69524// newest operation is returned first. Currently, only sorting by `name`
69525// or `creationTimestamp desc` is supported.
69526func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
69527	c.urlParams_.Set("orderBy", orderBy)
69528	return c
69529}
69530
69531// PageToken sets the optional parameter "pageToken": Specifies a page
69532// token to use. Set `pageToken` to the `nextPageToken` returned by a
69533// previous list request to get the next page of results.
69534func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
69535	c.urlParams_.Set("pageToken", pageToken)
69536	return c
69537}
69538
69539// ReturnPartialSuccess sets the optional parameter
69540// "returnPartialSuccess": Opt-in for partial success behavior which
69541// provides partial results in case of failure. The default value is
69542// false.
69543func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
69544	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69545	return c
69546}
69547
69548// Fields allows partial responses to be retrieved. See
69549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69550// for more information.
69551func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
69552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69553	return c
69554}
69555
69556// IfNoneMatch sets the optional parameter which makes the operation
69557// fail if the object's ETag matches the given value. This is useful for
69558// getting updates only after the object has changed since the last
69559// request. Use googleapi.IsNotModified to check whether the response
69560// error from Do is the result of In-None-Match.
69561func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
69562	c.ifNoneMatch_ = entityTag
69563	return c
69564}
69565
69566// Context sets the context to be used in this call's Do method. Any
69567// pending HTTP request will be aborted if the provided context is
69568// canceled.
69569func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
69570	c.ctx_ = ctx
69571	return c
69572}
69573
69574// Header returns an http.Header that can be modified by the caller to
69575// add HTTP headers to the request.
69576func (c *GlobalForwardingRulesListCall) Header() http.Header {
69577	if c.header_ == nil {
69578		c.header_ = make(http.Header)
69579	}
69580	return c.header_
69581}
69582
69583func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
69584	reqHeaders := make(http.Header)
69585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69586	for k, v := range c.header_ {
69587		reqHeaders[k] = v
69588	}
69589	reqHeaders.Set("User-Agent", c.s.userAgent())
69590	if c.ifNoneMatch_ != "" {
69591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69592	}
69593	var body io.Reader = nil
69594	c.urlParams_.Set("alt", alt)
69595	c.urlParams_.Set("prettyPrint", "false")
69596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69597	urls += "?" + c.urlParams_.Encode()
69598	req, err := http.NewRequest("GET", urls, body)
69599	if err != nil {
69600		return nil, err
69601	}
69602	req.Header = reqHeaders
69603	googleapi.Expand(req.URL, map[string]string{
69604		"project": c.project,
69605	})
69606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69607}
69608
69609// Do executes the "compute.globalForwardingRules.list" call.
69610// Exactly one of *ForwardingRuleList or error will be non-nil. Any
69611// non-2xx status code is an error. Response headers are in either
69612// *ForwardingRuleList.ServerResponse.Header or (if a response was
69613// returned at all) in error.(*googleapi.Error).Header. Use
69614// googleapi.IsNotModified to check whether the returned error was
69615// because http.StatusNotModified was returned.
69616func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
69617	gensupport.SetOptions(c.urlParams_, opts...)
69618	res, err := c.doRequest("json")
69619	if res != nil && res.StatusCode == http.StatusNotModified {
69620		if res.Body != nil {
69621			res.Body.Close()
69622		}
69623		return nil, &googleapi.Error{
69624			Code:   res.StatusCode,
69625			Header: res.Header,
69626		}
69627	}
69628	if err != nil {
69629		return nil, err
69630	}
69631	defer googleapi.CloseBody(res)
69632	if err := googleapi.CheckResponse(res); err != nil {
69633		return nil, err
69634	}
69635	ret := &ForwardingRuleList{
69636		ServerResponse: googleapi.ServerResponse{
69637			Header:         res.Header,
69638			HTTPStatusCode: res.StatusCode,
69639		},
69640	}
69641	target := &ret
69642	if err := gensupport.DecodeResponse(target, res); err != nil {
69643		return nil, err
69644	}
69645	return ret, nil
69646	// {
69647	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
69648	//   "flatPath": "projects/{project}/global/forwardingRules",
69649	//   "httpMethod": "GET",
69650	//   "id": "compute.globalForwardingRules.list",
69651	//   "parameterOrder": [
69652	//     "project"
69653	//   ],
69654	//   "parameters": {
69655	//     "filter": {
69656	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69657	//       "location": "query",
69658	//       "type": "string"
69659	//     },
69660	//     "maxResults": {
69661	//       "default": "500",
69662	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69663	//       "format": "uint32",
69664	//       "location": "query",
69665	//       "minimum": "0",
69666	//       "type": "integer"
69667	//     },
69668	//     "orderBy": {
69669	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
69670	//       "location": "query",
69671	//       "type": "string"
69672	//     },
69673	//     "pageToken": {
69674	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69675	//       "location": "query",
69676	//       "type": "string"
69677	//     },
69678	//     "project": {
69679	//       "description": "Project ID for this request.",
69680	//       "location": "path",
69681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69682	//       "required": true,
69683	//       "type": "string"
69684	//     },
69685	//     "returnPartialSuccess": {
69686	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
69687	//       "location": "query",
69688	//       "type": "boolean"
69689	//     }
69690	//   },
69691	//   "path": "projects/{project}/global/forwardingRules",
69692	//   "response": {
69693	//     "$ref": "ForwardingRuleList"
69694	//   },
69695	//   "scopes": [
69696	//     "https://www.googleapis.com/auth/cloud-platform",
69697	//     "https://www.googleapis.com/auth/compute",
69698	//     "https://www.googleapis.com/auth/compute.readonly"
69699	//   ]
69700	// }
69701
69702}
69703
69704// Pages invokes f for each page of results.
69705// A non-nil error returned from f will halt the iteration.
69706// The provided context supersedes any context provided to the Context method.
69707func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
69708	c.ctx_ = ctx
69709	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69710	for {
69711		x, err := c.Do()
69712		if err != nil {
69713			return err
69714		}
69715		if err := f(x); err != nil {
69716			return err
69717		}
69718		if x.NextPageToken == "" {
69719			return nil
69720		}
69721		c.PageToken(x.NextPageToken)
69722	}
69723}
69724
69725// method id "compute.globalForwardingRules.patch":
69726
69727type GlobalForwardingRulesPatchCall struct {
69728	s              *Service
69729	project        string
69730	forwardingRule string
69731	forwardingrule *ForwardingRule
69732	urlParams_     gensupport.URLParams
69733	ctx_           context.Context
69734	header_        http.Header
69735}
69736
69737// Patch: Updates the specified forwarding rule with the data included
69738// in the request. This method supports PATCH semantics and uses the
69739// JSON merge patch format and processing rules. Currently, you can only
69740// patch the network_tier field.
69741//
69742// - forwardingRule: Name of the ForwardingRule resource to patch.
69743// - project: Project ID for this request.
69744func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
69745	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69746	c.project = project
69747	c.forwardingRule = forwardingRule
69748	c.forwardingrule = forwardingrule
69749	return c
69750}
69751
69752// RequestId sets the optional parameter "requestId": An optional
69753// request ID to identify requests. Specify a unique request ID so that
69754// if you must retry your request, the server will know to ignore the
69755// request if it has already been completed. For example, consider a
69756// situation where you make an initial request and the request times
69757// out. If you make the request again with the same request ID, the
69758// server can check if original operation with the same request ID was
69759// received, and if so, will ignore the second request. This prevents
69760// clients from accidentally creating duplicate commitments. The request
69761// ID must be a valid UUID with the exception that zero UUID is not
69762// supported ( 00000000-0000-0000-0000-000000000000).
69763func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
69764	c.urlParams_.Set("requestId", requestId)
69765	return c
69766}
69767
69768// Fields allows partial responses to be retrieved. See
69769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69770// for more information.
69771func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
69772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69773	return c
69774}
69775
69776// Context sets the context to be used in this call's Do method. Any
69777// pending HTTP request will be aborted if the provided context is
69778// canceled.
69779func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
69780	c.ctx_ = ctx
69781	return c
69782}
69783
69784// Header returns an http.Header that can be modified by the caller to
69785// add HTTP headers to the request.
69786func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
69787	if c.header_ == nil {
69788		c.header_ = make(http.Header)
69789	}
69790	return c.header_
69791}
69792
69793func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
69794	reqHeaders := make(http.Header)
69795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69796	for k, v := range c.header_ {
69797		reqHeaders[k] = v
69798	}
69799	reqHeaders.Set("User-Agent", c.s.userAgent())
69800	var body io.Reader = nil
69801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
69802	if err != nil {
69803		return nil, err
69804	}
69805	reqHeaders.Set("Content-Type", "application/json")
69806	c.urlParams_.Set("alt", alt)
69807	c.urlParams_.Set("prettyPrint", "false")
69808	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69809	urls += "?" + c.urlParams_.Encode()
69810	req, err := http.NewRequest("PATCH", urls, body)
69811	if err != nil {
69812		return nil, err
69813	}
69814	req.Header = reqHeaders
69815	googleapi.Expand(req.URL, map[string]string{
69816		"project":        c.project,
69817		"forwardingRule": c.forwardingRule,
69818	})
69819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69820}
69821
69822// Do executes the "compute.globalForwardingRules.patch" call.
69823// Exactly one of *Operation or error will be non-nil. Any non-2xx
69824// status code is an error. Response headers are in either
69825// *Operation.ServerResponse.Header or (if a response was returned at
69826// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69827// to check whether the returned error was because
69828// http.StatusNotModified was returned.
69829func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69830	gensupport.SetOptions(c.urlParams_, opts...)
69831	res, err := c.doRequest("json")
69832	if res != nil && res.StatusCode == http.StatusNotModified {
69833		if res.Body != nil {
69834			res.Body.Close()
69835		}
69836		return nil, &googleapi.Error{
69837			Code:   res.StatusCode,
69838			Header: res.Header,
69839		}
69840	}
69841	if err != nil {
69842		return nil, err
69843	}
69844	defer googleapi.CloseBody(res)
69845	if err := googleapi.CheckResponse(res); err != nil {
69846		return nil, err
69847	}
69848	ret := &Operation{
69849		ServerResponse: googleapi.ServerResponse{
69850			Header:         res.Header,
69851			HTTPStatusCode: res.StatusCode,
69852		},
69853	}
69854	target := &ret
69855	if err := gensupport.DecodeResponse(target, res); err != nil {
69856		return nil, err
69857	}
69858	return ret, nil
69859	// {
69860	//   "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.",
69861	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
69862	//   "httpMethod": "PATCH",
69863	//   "id": "compute.globalForwardingRules.patch",
69864	//   "parameterOrder": [
69865	//     "project",
69866	//     "forwardingRule"
69867	//   ],
69868	//   "parameters": {
69869	//     "forwardingRule": {
69870	//       "description": "Name of the ForwardingRule resource to patch.",
69871	//       "location": "path",
69872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69873	//       "required": true,
69874	//       "type": "string"
69875	//     },
69876	//     "project": {
69877	//       "description": "Project ID for this request.",
69878	//       "location": "path",
69879	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69880	//       "required": true,
69881	//       "type": "string"
69882	//     },
69883	//     "requestId": {
69884	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69885	//       "location": "query",
69886	//       "type": "string"
69887	//     }
69888	//   },
69889	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69890	//   "request": {
69891	//     "$ref": "ForwardingRule"
69892	//   },
69893	//   "response": {
69894	//     "$ref": "Operation"
69895	//   },
69896	//   "scopes": [
69897	//     "https://www.googleapis.com/auth/cloud-platform",
69898	//     "https://www.googleapis.com/auth/compute"
69899	//   ]
69900	// }
69901
69902}
69903
69904// method id "compute.globalForwardingRules.setLabels":
69905
69906type GlobalForwardingRulesSetLabelsCall struct {
69907	s                      *Service
69908	project                string
69909	resource               string
69910	globalsetlabelsrequest *GlobalSetLabelsRequest
69911	urlParams_             gensupport.URLParams
69912	ctx_                   context.Context
69913	header_                http.Header
69914}
69915
69916// SetLabels: Sets the labels on the specified resource. To learn more
69917// about labels, read the Labeling resources documentation.
69918//
69919// - project: Project ID for this request.
69920// - resource: Name or id of the resource for this request.
69921func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
69922	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69923	c.project = project
69924	c.resource = resource
69925	c.globalsetlabelsrequest = globalsetlabelsrequest
69926	return c
69927}
69928
69929// Fields allows partial responses to be retrieved. See
69930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69931// for more information.
69932func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
69933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69934	return c
69935}
69936
69937// Context sets the context to be used in this call's Do method. Any
69938// pending HTTP request will be aborted if the provided context is
69939// canceled.
69940func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
69941	c.ctx_ = ctx
69942	return c
69943}
69944
69945// Header returns an http.Header that can be modified by the caller to
69946// add HTTP headers to the request.
69947func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
69948	if c.header_ == nil {
69949		c.header_ = make(http.Header)
69950	}
69951	return c.header_
69952}
69953
69954func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
69955	reqHeaders := make(http.Header)
69956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
69957	for k, v := range c.header_ {
69958		reqHeaders[k] = v
69959	}
69960	reqHeaders.Set("User-Agent", c.s.userAgent())
69961	var body io.Reader = nil
69962	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
69963	if err != nil {
69964		return nil, err
69965	}
69966	reqHeaders.Set("Content-Type", "application/json")
69967	c.urlParams_.Set("alt", alt)
69968	c.urlParams_.Set("prettyPrint", "false")
69969	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels")
69970	urls += "?" + c.urlParams_.Encode()
69971	req, err := http.NewRequest("POST", urls, body)
69972	if err != nil {
69973		return nil, err
69974	}
69975	req.Header = reqHeaders
69976	googleapi.Expand(req.URL, map[string]string{
69977		"project":  c.project,
69978		"resource": c.resource,
69979	})
69980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69981}
69982
69983// Do executes the "compute.globalForwardingRules.setLabels" call.
69984// Exactly one of *Operation or error will be non-nil. Any non-2xx
69985// status code is an error. Response headers are in either
69986// *Operation.ServerResponse.Header or (if a response was returned at
69987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69988// to check whether the returned error was because
69989// http.StatusNotModified was returned.
69990func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69991	gensupport.SetOptions(c.urlParams_, opts...)
69992	res, err := c.doRequest("json")
69993	if res != nil && res.StatusCode == http.StatusNotModified {
69994		if res.Body != nil {
69995			res.Body.Close()
69996		}
69997		return nil, &googleapi.Error{
69998			Code:   res.StatusCode,
69999			Header: res.Header,
70000		}
70001	}
70002	if err != nil {
70003		return nil, err
70004	}
70005	defer googleapi.CloseBody(res)
70006	if err := googleapi.CheckResponse(res); err != nil {
70007		return nil, err
70008	}
70009	ret := &Operation{
70010		ServerResponse: googleapi.ServerResponse{
70011			Header:         res.Header,
70012			HTTPStatusCode: res.StatusCode,
70013		},
70014	}
70015	target := &ret
70016	if err := gensupport.DecodeResponse(target, res); err != nil {
70017		return nil, err
70018	}
70019	return ret, nil
70020	// {
70021	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.",
70022	//   "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels",
70023	//   "httpMethod": "POST",
70024	//   "id": "compute.globalForwardingRules.setLabels",
70025	//   "parameterOrder": [
70026	//     "project",
70027	//     "resource"
70028	//   ],
70029	//   "parameters": {
70030	//     "project": {
70031	//       "description": "Project ID for this request.",
70032	//       "location": "path",
70033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70034	//       "required": true,
70035	//       "type": "string"
70036	//     },
70037	//     "resource": {
70038	//       "description": "Name or id of the resource for this request.",
70039	//       "location": "path",
70040	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70041	//       "required": true,
70042	//       "type": "string"
70043	//     }
70044	//   },
70045	//   "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
70046	//   "request": {
70047	//     "$ref": "GlobalSetLabelsRequest"
70048	//   },
70049	//   "response": {
70050	//     "$ref": "Operation"
70051	//   },
70052	//   "scopes": [
70053	//     "https://www.googleapis.com/auth/cloud-platform",
70054	//     "https://www.googleapis.com/auth/compute"
70055	//   ]
70056	// }
70057
70058}
70059
70060// method id "compute.globalForwardingRules.setTarget":
70061
70062type GlobalForwardingRulesSetTargetCall struct {
70063	s               *Service
70064	project         string
70065	forwardingRule  string
70066	targetreference *TargetReference
70067	urlParams_      gensupport.URLParams
70068	ctx_            context.Context
70069	header_         http.Header
70070}
70071
70072// SetTarget: Changes target URL for the GlobalForwardingRule resource.
70073// The new target should be of the same type as the old target.
70074//
70075// - forwardingRule: Name of the ForwardingRule resource in which target
70076//   is to be set.
70077// - project: Project ID for this request.
70078func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
70079	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70080	c.project = project
70081	c.forwardingRule = forwardingRule
70082	c.targetreference = targetreference
70083	return c
70084}
70085
70086// RequestId sets the optional parameter "requestId": An optional
70087// request ID to identify requests. Specify a unique request ID so that
70088// if you must retry your request, the server will know to ignore the
70089// request if it has already been completed. For example, consider a
70090// situation where you make an initial request and the request times
70091// out. If you make the request again with the same request ID, the
70092// server can check if original operation with the same request ID was
70093// received, and if so, will ignore the second request. This prevents
70094// clients from accidentally creating duplicate commitments. The request
70095// ID must be a valid UUID with the exception that zero UUID is not
70096// supported ( 00000000-0000-0000-0000-000000000000).
70097func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
70098	c.urlParams_.Set("requestId", requestId)
70099	return c
70100}
70101
70102// Fields allows partial responses to be retrieved. See
70103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70104// for more information.
70105func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
70106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70107	return c
70108}
70109
70110// Context sets the context to be used in this call's Do method. Any
70111// pending HTTP request will be aborted if the provided context is
70112// canceled.
70113func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
70114	c.ctx_ = ctx
70115	return c
70116}
70117
70118// Header returns an http.Header that can be modified by the caller to
70119// add HTTP headers to the request.
70120func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
70121	if c.header_ == nil {
70122		c.header_ = make(http.Header)
70123	}
70124	return c.header_
70125}
70126
70127func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
70128	reqHeaders := make(http.Header)
70129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70130	for k, v := range c.header_ {
70131		reqHeaders[k] = v
70132	}
70133	reqHeaders.Set("User-Agent", c.s.userAgent())
70134	var body io.Reader = nil
70135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
70136	if err != nil {
70137		return nil, err
70138	}
70139	reqHeaders.Set("Content-Type", "application/json")
70140	c.urlParams_.Set("alt", alt)
70141	c.urlParams_.Set("prettyPrint", "false")
70142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget")
70143	urls += "?" + c.urlParams_.Encode()
70144	req, err := http.NewRequest("POST", urls, body)
70145	if err != nil {
70146		return nil, err
70147	}
70148	req.Header = reqHeaders
70149	googleapi.Expand(req.URL, map[string]string{
70150		"project":        c.project,
70151		"forwardingRule": c.forwardingRule,
70152	})
70153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70154}
70155
70156// Do executes the "compute.globalForwardingRules.setTarget" call.
70157// Exactly one of *Operation or error will be non-nil. Any non-2xx
70158// status code is an error. Response headers are in either
70159// *Operation.ServerResponse.Header or (if a response was returned at
70160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70161// to check whether the returned error was because
70162// http.StatusNotModified was returned.
70163func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70164	gensupport.SetOptions(c.urlParams_, opts...)
70165	res, err := c.doRequest("json")
70166	if res != nil && res.StatusCode == http.StatusNotModified {
70167		if res.Body != nil {
70168			res.Body.Close()
70169		}
70170		return nil, &googleapi.Error{
70171			Code:   res.StatusCode,
70172			Header: res.Header,
70173		}
70174	}
70175	if err != nil {
70176		return nil, err
70177	}
70178	defer googleapi.CloseBody(res)
70179	if err := googleapi.CheckResponse(res); err != nil {
70180		return nil, err
70181	}
70182	ret := &Operation{
70183		ServerResponse: googleapi.ServerResponse{
70184			Header:         res.Header,
70185			HTTPStatusCode: res.StatusCode,
70186		},
70187	}
70188	target := &ret
70189	if err := gensupport.DecodeResponse(target, res); err != nil {
70190		return nil, err
70191	}
70192	return ret, nil
70193	// {
70194	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
70195	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
70196	//   "httpMethod": "POST",
70197	//   "id": "compute.globalForwardingRules.setTarget",
70198	//   "parameterOrder": [
70199	//     "project",
70200	//     "forwardingRule"
70201	//   ],
70202	//   "parameters": {
70203	//     "forwardingRule": {
70204	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
70205	//       "location": "path",
70206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70207	//       "required": true,
70208	//       "type": "string"
70209	//     },
70210	//     "project": {
70211	//       "description": "Project ID for this request.",
70212	//       "location": "path",
70213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70214	//       "required": true,
70215	//       "type": "string"
70216	//     },
70217	//     "requestId": {
70218	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70219	//       "location": "query",
70220	//       "type": "string"
70221	//     }
70222	//   },
70223	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
70224	//   "request": {
70225	//     "$ref": "TargetReference"
70226	//   },
70227	//   "response": {
70228	//     "$ref": "Operation"
70229	//   },
70230	//   "scopes": [
70231	//     "https://www.googleapis.com/auth/cloud-platform",
70232	//     "https://www.googleapis.com/auth/compute"
70233	//   ]
70234	// }
70235
70236}
70237
70238// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
70239
70240type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
70241	s                                                 *Service
70242	project                                           string
70243	networkEndpointGroup                              string
70244	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
70245	urlParams_                                        gensupport.URLParams
70246	ctx_                                              context.Context
70247	header_                                           http.Header
70248}
70249
70250// AttachNetworkEndpoints: Attach a network endpoint to the specified
70251// network endpoint group.
70252//
70253// - networkEndpointGroup: The name of the network endpoint group where
70254//   you are attaching network endpoints to. It should comply with
70255//   RFC1035.
70256// - project: Project ID for this request.
70257func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70258	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70259	c.project = project
70260	c.networkEndpointGroup = networkEndpointGroup
70261	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
70262	return c
70263}
70264
70265// RequestId sets the optional parameter "requestId": An optional
70266// request ID to identify requests. Specify a unique request ID so that
70267// if you must retry your request, the server will know to ignore the
70268// request if it has already been completed. For example, consider a
70269// situation where you make an initial request and the request times
70270// out. If you make the request again with the same request ID, the
70271// server can check if original operation with the same request ID was
70272// received, and if so, will ignore the second request. This prevents
70273// clients from accidentally creating duplicate commitments. The request
70274// ID must be a valid UUID with the exception that zero UUID is not
70275// supported ( 00000000-0000-0000-0000-000000000000).
70276func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70277	c.urlParams_.Set("requestId", requestId)
70278	return c
70279}
70280
70281// Fields allows partial responses to be retrieved. See
70282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70283// for more information.
70284func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70286	return c
70287}
70288
70289// Context sets the context to be used in this call's Do method. Any
70290// pending HTTP request will be aborted if the provided context is
70291// canceled.
70292func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70293	c.ctx_ = ctx
70294	return c
70295}
70296
70297// Header returns an http.Header that can be modified by the caller to
70298// add HTTP headers to the request.
70299func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
70300	if c.header_ == nil {
70301		c.header_ = make(http.Header)
70302	}
70303	return c.header_
70304}
70305
70306func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
70307	reqHeaders := make(http.Header)
70308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70309	for k, v := range c.header_ {
70310		reqHeaders[k] = v
70311	}
70312	reqHeaders.Set("User-Agent", c.s.userAgent())
70313	var body io.Reader = nil
70314	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
70315	if err != nil {
70316		return nil, err
70317	}
70318	reqHeaders.Set("Content-Type", "application/json")
70319	c.urlParams_.Set("alt", alt)
70320	c.urlParams_.Set("prettyPrint", "false")
70321	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
70322	urls += "?" + c.urlParams_.Encode()
70323	req, err := http.NewRequest("POST", urls, body)
70324	if err != nil {
70325		return nil, err
70326	}
70327	req.Header = reqHeaders
70328	googleapi.Expand(req.URL, map[string]string{
70329		"project":              c.project,
70330		"networkEndpointGroup": c.networkEndpointGroup,
70331	})
70332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70333}
70334
70335// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
70336// Exactly one of *Operation or error will be non-nil. Any non-2xx
70337// status code is an error. Response headers are in either
70338// *Operation.ServerResponse.Header or (if a response was returned at
70339// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70340// to check whether the returned error was because
70341// http.StatusNotModified was returned.
70342func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70343	gensupport.SetOptions(c.urlParams_, opts...)
70344	res, err := c.doRequest("json")
70345	if res != nil && res.StatusCode == http.StatusNotModified {
70346		if res.Body != nil {
70347			res.Body.Close()
70348		}
70349		return nil, &googleapi.Error{
70350			Code:   res.StatusCode,
70351			Header: res.Header,
70352		}
70353	}
70354	if err != nil {
70355		return nil, err
70356	}
70357	defer googleapi.CloseBody(res)
70358	if err := googleapi.CheckResponse(res); err != nil {
70359		return nil, err
70360	}
70361	ret := &Operation{
70362		ServerResponse: googleapi.ServerResponse{
70363			Header:         res.Header,
70364			HTTPStatusCode: res.StatusCode,
70365		},
70366	}
70367	target := &ret
70368	if err := gensupport.DecodeResponse(target, res); err != nil {
70369		return nil, err
70370	}
70371	return ret, nil
70372	// {
70373	//   "description": "Attach a network endpoint to the specified network endpoint group.",
70374	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
70375	//   "httpMethod": "POST",
70376	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
70377	//   "parameterOrder": [
70378	//     "project",
70379	//     "networkEndpointGroup"
70380	//   ],
70381	//   "parameters": {
70382	//     "networkEndpointGroup": {
70383	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
70384	//       "location": "path",
70385	//       "required": true,
70386	//       "type": "string"
70387	//     },
70388	//     "project": {
70389	//       "description": "Project ID for this request.",
70390	//       "location": "path",
70391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70392	//       "required": true,
70393	//       "type": "string"
70394	//     },
70395	//     "requestId": {
70396	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70397	//       "location": "query",
70398	//       "type": "string"
70399	//     }
70400	//   },
70401	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
70402	//   "request": {
70403	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
70404	//   },
70405	//   "response": {
70406	//     "$ref": "Operation"
70407	//   },
70408	//   "scopes": [
70409	//     "https://www.googleapis.com/auth/cloud-platform",
70410	//     "https://www.googleapis.com/auth/compute"
70411	//   ]
70412	// }
70413
70414}
70415
70416// method id "compute.globalNetworkEndpointGroups.delete":
70417
70418type GlobalNetworkEndpointGroupsDeleteCall struct {
70419	s                    *Service
70420	project              string
70421	networkEndpointGroup string
70422	urlParams_           gensupport.URLParams
70423	ctx_                 context.Context
70424	header_              http.Header
70425}
70426
70427// Delete: Deletes the specified network endpoint group.Note that the
70428// NEG cannot be deleted if there are backend services referencing it.
70429//
70430// - networkEndpointGroup: The name of the network endpoint group to
70431//   delete. It should comply with RFC1035.
70432// - project: Project ID for this request.
70433func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
70434	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70435	c.project = project
70436	c.networkEndpointGroup = networkEndpointGroup
70437	return c
70438}
70439
70440// RequestId sets the optional parameter "requestId": An optional
70441// request ID to identify requests. Specify a unique request ID so that
70442// if you must retry your request, the server will know to ignore the
70443// request if it has already been completed. For example, consider a
70444// situation where you make an initial request and the request times
70445// out. If you make the request again with the same request ID, the
70446// server can check if original operation with the same request ID was
70447// received, and if so, will ignore the second request. This prevents
70448// clients from accidentally creating duplicate commitments. The request
70449// ID must be a valid UUID with the exception that zero UUID is not
70450// supported ( 00000000-0000-0000-0000-000000000000).
70451func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
70452	c.urlParams_.Set("requestId", requestId)
70453	return c
70454}
70455
70456// Fields allows partial responses to be retrieved. See
70457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70458// for more information.
70459func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
70460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70461	return c
70462}
70463
70464// Context sets the context to be used in this call's Do method. Any
70465// pending HTTP request will be aborted if the provided context is
70466// canceled.
70467func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
70468	c.ctx_ = ctx
70469	return c
70470}
70471
70472// Header returns an http.Header that can be modified by the caller to
70473// add HTTP headers to the request.
70474func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
70475	if c.header_ == nil {
70476		c.header_ = make(http.Header)
70477	}
70478	return c.header_
70479}
70480
70481func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
70482	reqHeaders := make(http.Header)
70483	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70484	for k, v := range c.header_ {
70485		reqHeaders[k] = v
70486	}
70487	reqHeaders.Set("User-Agent", c.s.userAgent())
70488	var body io.Reader = nil
70489	c.urlParams_.Set("alt", alt)
70490	c.urlParams_.Set("prettyPrint", "false")
70491	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
70492	urls += "?" + c.urlParams_.Encode()
70493	req, err := http.NewRequest("DELETE", urls, body)
70494	if err != nil {
70495		return nil, err
70496	}
70497	req.Header = reqHeaders
70498	googleapi.Expand(req.URL, map[string]string{
70499		"project":              c.project,
70500		"networkEndpointGroup": c.networkEndpointGroup,
70501	})
70502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70503}
70504
70505// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
70506// Exactly one of *Operation or error will be non-nil. Any non-2xx
70507// status code is an error. Response headers are in either
70508// *Operation.ServerResponse.Header or (if a response was returned at
70509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70510// to check whether the returned error was because
70511// http.StatusNotModified was returned.
70512func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70513	gensupport.SetOptions(c.urlParams_, opts...)
70514	res, err := c.doRequest("json")
70515	if res != nil && res.StatusCode == http.StatusNotModified {
70516		if res.Body != nil {
70517			res.Body.Close()
70518		}
70519		return nil, &googleapi.Error{
70520			Code:   res.StatusCode,
70521			Header: res.Header,
70522		}
70523	}
70524	if err != nil {
70525		return nil, err
70526	}
70527	defer googleapi.CloseBody(res)
70528	if err := googleapi.CheckResponse(res); err != nil {
70529		return nil, err
70530	}
70531	ret := &Operation{
70532		ServerResponse: googleapi.ServerResponse{
70533			Header:         res.Header,
70534			HTTPStatusCode: res.StatusCode,
70535		},
70536	}
70537	target := &ret
70538	if err := gensupport.DecodeResponse(target, res); err != nil {
70539		return nil, err
70540	}
70541	return ret, nil
70542	// {
70543	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
70544	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70545	//   "httpMethod": "DELETE",
70546	//   "id": "compute.globalNetworkEndpointGroups.delete",
70547	//   "parameterOrder": [
70548	//     "project",
70549	//     "networkEndpointGroup"
70550	//   ],
70551	//   "parameters": {
70552	//     "networkEndpointGroup": {
70553	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
70554	//       "location": "path",
70555	//       "required": true,
70556	//       "type": "string"
70557	//     },
70558	//     "project": {
70559	//       "description": "Project ID for this request.",
70560	//       "location": "path",
70561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70562	//       "required": true,
70563	//       "type": "string"
70564	//     },
70565	//     "requestId": {
70566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70567	//       "location": "query",
70568	//       "type": "string"
70569	//     }
70570	//   },
70571	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70572	//   "response": {
70573	//     "$ref": "Operation"
70574	//   },
70575	//   "scopes": [
70576	//     "https://www.googleapis.com/auth/cloud-platform",
70577	//     "https://www.googleapis.com/auth/compute"
70578	//   ]
70579	// }
70580
70581}
70582
70583// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
70584
70585type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
70586	s                                                 *Service
70587	project                                           string
70588	networkEndpointGroup                              string
70589	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
70590	urlParams_                                        gensupport.URLParams
70591	ctx_                                              context.Context
70592	header_                                           http.Header
70593}
70594
70595// DetachNetworkEndpoints: Detach the network endpoint from the
70596// specified network endpoint group.
70597//
70598// - networkEndpointGroup: The name of the network endpoint group where
70599//   you are removing network endpoints. It should comply with RFC1035.
70600// - project: Project ID for this request.
70601func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
70602	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70603	c.project = project
70604	c.networkEndpointGroup = networkEndpointGroup
70605	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
70606	return c
70607}
70608
70609// RequestId sets the optional parameter "requestId": An optional
70610// request ID to identify requests. Specify a unique request ID so that
70611// if you must retry your request, the server will know to ignore the
70612// request if it has already been completed. For example, consider a
70613// situation where you make an initial request and the request times
70614// out. If you make the request again with the same request ID, the
70615// server can check if original operation with the same request ID was
70616// received, and if so, will ignore the second request. This prevents
70617// clients from accidentally creating duplicate commitments. The request
70618// ID must be a valid UUID with the exception that zero UUID is not
70619// supported ( 00000000-0000-0000-0000-000000000000).
70620func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
70621	c.urlParams_.Set("requestId", requestId)
70622	return c
70623}
70624
70625// Fields allows partial responses to be retrieved. See
70626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70627// for more information.
70628func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
70629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70630	return c
70631}
70632
70633// Context sets the context to be used in this call's Do method. Any
70634// pending HTTP request will be aborted if the provided context is
70635// canceled.
70636func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
70637	c.ctx_ = ctx
70638	return c
70639}
70640
70641// Header returns an http.Header that can be modified by the caller to
70642// add HTTP headers to the request.
70643func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
70644	if c.header_ == nil {
70645		c.header_ = make(http.Header)
70646	}
70647	return c.header_
70648}
70649
70650func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
70651	reqHeaders := make(http.Header)
70652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70653	for k, v := range c.header_ {
70654		reqHeaders[k] = v
70655	}
70656	reqHeaders.Set("User-Agent", c.s.userAgent())
70657	var body io.Reader = nil
70658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
70659	if err != nil {
70660		return nil, err
70661	}
70662	reqHeaders.Set("Content-Type", "application/json")
70663	c.urlParams_.Set("alt", alt)
70664	c.urlParams_.Set("prettyPrint", "false")
70665	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
70666	urls += "?" + c.urlParams_.Encode()
70667	req, err := http.NewRequest("POST", urls, body)
70668	if err != nil {
70669		return nil, err
70670	}
70671	req.Header = reqHeaders
70672	googleapi.Expand(req.URL, map[string]string{
70673		"project":              c.project,
70674		"networkEndpointGroup": c.networkEndpointGroup,
70675	})
70676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70677}
70678
70679// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
70680// Exactly one of *Operation or error will be non-nil. Any non-2xx
70681// status code is an error. Response headers are in either
70682// *Operation.ServerResponse.Header or (if a response was returned at
70683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70684// to check whether the returned error was because
70685// http.StatusNotModified was returned.
70686func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70687	gensupport.SetOptions(c.urlParams_, opts...)
70688	res, err := c.doRequest("json")
70689	if res != nil && res.StatusCode == http.StatusNotModified {
70690		if res.Body != nil {
70691			res.Body.Close()
70692		}
70693		return nil, &googleapi.Error{
70694			Code:   res.StatusCode,
70695			Header: res.Header,
70696		}
70697	}
70698	if err != nil {
70699		return nil, err
70700	}
70701	defer googleapi.CloseBody(res)
70702	if err := googleapi.CheckResponse(res); err != nil {
70703		return nil, err
70704	}
70705	ret := &Operation{
70706		ServerResponse: googleapi.ServerResponse{
70707			Header:         res.Header,
70708			HTTPStatusCode: res.StatusCode,
70709		},
70710	}
70711	target := &ret
70712	if err := gensupport.DecodeResponse(target, res); err != nil {
70713		return nil, err
70714	}
70715	return ret, nil
70716	// {
70717	//   "description": "Detach the network endpoint from the specified network endpoint group.",
70718	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
70719	//   "httpMethod": "POST",
70720	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
70721	//   "parameterOrder": [
70722	//     "project",
70723	//     "networkEndpointGroup"
70724	//   ],
70725	//   "parameters": {
70726	//     "networkEndpointGroup": {
70727	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
70728	//       "location": "path",
70729	//       "required": true,
70730	//       "type": "string"
70731	//     },
70732	//     "project": {
70733	//       "description": "Project ID for this request.",
70734	//       "location": "path",
70735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70736	//       "required": true,
70737	//       "type": "string"
70738	//     },
70739	//     "requestId": {
70740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70741	//       "location": "query",
70742	//       "type": "string"
70743	//     }
70744	//   },
70745	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
70746	//   "request": {
70747	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
70748	//   },
70749	//   "response": {
70750	//     "$ref": "Operation"
70751	//   },
70752	//   "scopes": [
70753	//     "https://www.googleapis.com/auth/cloud-platform",
70754	//     "https://www.googleapis.com/auth/compute"
70755	//   ]
70756	// }
70757
70758}
70759
70760// method id "compute.globalNetworkEndpointGroups.get":
70761
70762type GlobalNetworkEndpointGroupsGetCall struct {
70763	s                    *Service
70764	project              string
70765	networkEndpointGroup string
70766	urlParams_           gensupport.URLParams
70767	ifNoneMatch_         string
70768	ctx_                 context.Context
70769	header_              http.Header
70770}
70771
70772// Get: Returns the specified network endpoint group. Gets a list of
70773// available network endpoint groups by making a list() request.
70774//
70775// - networkEndpointGroup: The name of the network endpoint group. It
70776//   should comply with RFC1035.
70777// - project: Project ID for this request.
70778func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
70779	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70780	c.project = project
70781	c.networkEndpointGroup = networkEndpointGroup
70782	return c
70783}
70784
70785// Fields allows partial responses to be retrieved. See
70786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70787// for more information.
70788func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
70789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70790	return c
70791}
70792
70793// IfNoneMatch sets the optional parameter which makes the operation
70794// fail if the object's ETag matches the given value. This is useful for
70795// getting updates only after the object has changed since the last
70796// request. Use googleapi.IsNotModified to check whether the response
70797// error from Do is the result of In-None-Match.
70798func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
70799	c.ifNoneMatch_ = entityTag
70800	return c
70801}
70802
70803// Context sets the context to be used in this call's Do method. Any
70804// pending HTTP request will be aborted if the provided context is
70805// canceled.
70806func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
70807	c.ctx_ = ctx
70808	return c
70809}
70810
70811// Header returns an http.Header that can be modified by the caller to
70812// add HTTP headers to the request.
70813func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
70814	if c.header_ == nil {
70815		c.header_ = make(http.Header)
70816	}
70817	return c.header_
70818}
70819
70820func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
70821	reqHeaders := make(http.Header)
70822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70823	for k, v := range c.header_ {
70824		reqHeaders[k] = v
70825	}
70826	reqHeaders.Set("User-Agent", c.s.userAgent())
70827	if c.ifNoneMatch_ != "" {
70828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70829	}
70830	var body io.Reader = nil
70831	c.urlParams_.Set("alt", alt)
70832	c.urlParams_.Set("prettyPrint", "false")
70833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
70834	urls += "?" + c.urlParams_.Encode()
70835	req, err := http.NewRequest("GET", urls, body)
70836	if err != nil {
70837		return nil, err
70838	}
70839	req.Header = reqHeaders
70840	googleapi.Expand(req.URL, map[string]string{
70841		"project":              c.project,
70842		"networkEndpointGroup": c.networkEndpointGroup,
70843	})
70844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70845}
70846
70847// Do executes the "compute.globalNetworkEndpointGroups.get" call.
70848// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
70849// non-2xx status code is an error. Response headers are in either
70850// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
70851// returned at all) in error.(*googleapi.Error).Header. Use
70852// googleapi.IsNotModified to check whether the returned error was
70853// because http.StatusNotModified was returned.
70854func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
70855	gensupport.SetOptions(c.urlParams_, opts...)
70856	res, err := c.doRequest("json")
70857	if res != nil && res.StatusCode == http.StatusNotModified {
70858		if res.Body != nil {
70859			res.Body.Close()
70860		}
70861		return nil, &googleapi.Error{
70862			Code:   res.StatusCode,
70863			Header: res.Header,
70864		}
70865	}
70866	if err != nil {
70867		return nil, err
70868	}
70869	defer googleapi.CloseBody(res)
70870	if err := googleapi.CheckResponse(res); err != nil {
70871		return nil, err
70872	}
70873	ret := &NetworkEndpointGroup{
70874		ServerResponse: googleapi.ServerResponse{
70875			Header:         res.Header,
70876			HTTPStatusCode: res.StatusCode,
70877		},
70878	}
70879	target := &ret
70880	if err := gensupport.DecodeResponse(target, res); err != nil {
70881		return nil, err
70882	}
70883	return ret, nil
70884	// {
70885	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
70886	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70887	//   "httpMethod": "GET",
70888	//   "id": "compute.globalNetworkEndpointGroups.get",
70889	//   "parameterOrder": [
70890	//     "project",
70891	//     "networkEndpointGroup"
70892	//   ],
70893	//   "parameters": {
70894	//     "networkEndpointGroup": {
70895	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
70896	//       "location": "path",
70897	//       "required": true,
70898	//       "type": "string"
70899	//     },
70900	//     "project": {
70901	//       "description": "Project ID for this request.",
70902	//       "location": "path",
70903	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70904	//       "required": true,
70905	//       "type": "string"
70906	//     }
70907	//   },
70908	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70909	//   "response": {
70910	//     "$ref": "NetworkEndpointGroup"
70911	//   },
70912	//   "scopes": [
70913	//     "https://www.googleapis.com/auth/cloud-platform",
70914	//     "https://www.googleapis.com/auth/compute",
70915	//     "https://www.googleapis.com/auth/compute.readonly"
70916	//   ]
70917	// }
70918
70919}
70920
70921// method id "compute.globalNetworkEndpointGroups.insert":
70922
70923type GlobalNetworkEndpointGroupsInsertCall struct {
70924	s                    *Service
70925	project              string
70926	networkendpointgroup *NetworkEndpointGroup
70927	urlParams_           gensupport.URLParams
70928	ctx_                 context.Context
70929	header_              http.Header
70930}
70931
70932// Insert: Creates a network endpoint group in the specified project
70933// using the parameters that are included in the request.
70934//
70935// - project: Project ID for this request.
70936func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
70937	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70938	c.project = project
70939	c.networkendpointgroup = networkendpointgroup
70940	return c
70941}
70942
70943// RequestId sets the optional parameter "requestId": An optional
70944// request ID to identify requests. Specify a unique request ID so that
70945// if you must retry your request, the server will know to ignore the
70946// request if it has already been completed. For example, consider a
70947// situation where you make an initial request and the request times
70948// out. If you make the request again with the same request ID, the
70949// server can check if original operation with the same request ID was
70950// received, and if so, will ignore the second request. This prevents
70951// clients from accidentally creating duplicate commitments. The request
70952// ID must be a valid UUID with the exception that zero UUID is not
70953// supported ( 00000000-0000-0000-0000-000000000000).
70954func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
70955	c.urlParams_.Set("requestId", requestId)
70956	return c
70957}
70958
70959// Fields allows partial responses to be retrieved. See
70960// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70961// for more information.
70962func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
70963	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70964	return c
70965}
70966
70967// Context sets the context to be used in this call's Do method. Any
70968// pending HTTP request will be aborted if the provided context is
70969// canceled.
70970func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
70971	c.ctx_ = ctx
70972	return c
70973}
70974
70975// Header returns an http.Header that can be modified by the caller to
70976// add HTTP headers to the request.
70977func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
70978	if c.header_ == nil {
70979		c.header_ = make(http.Header)
70980	}
70981	return c.header_
70982}
70983
70984func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
70985	reqHeaders := make(http.Header)
70986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
70987	for k, v := range c.header_ {
70988		reqHeaders[k] = v
70989	}
70990	reqHeaders.Set("User-Agent", c.s.userAgent())
70991	var body io.Reader = nil
70992	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
70993	if err != nil {
70994		return nil, err
70995	}
70996	reqHeaders.Set("Content-Type", "application/json")
70997	c.urlParams_.Set("alt", alt)
70998	c.urlParams_.Set("prettyPrint", "false")
70999	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71000	urls += "?" + c.urlParams_.Encode()
71001	req, err := http.NewRequest("POST", urls, body)
71002	if err != nil {
71003		return nil, err
71004	}
71005	req.Header = reqHeaders
71006	googleapi.Expand(req.URL, map[string]string{
71007		"project": c.project,
71008	})
71009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71010}
71011
71012// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
71013// Exactly one of *Operation or error will be non-nil. Any non-2xx
71014// status code is an error. Response headers are in either
71015// *Operation.ServerResponse.Header or (if a response was returned at
71016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71017// to check whether the returned error was because
71018// http.StatusNotModified was returned.
71019func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71020	gensupport.SetOptions(c.urlParams_, opts...)
71021	res, err := c.doRequest("json")
71022	if res != nil && res.StatusCode == http.StatusNotModified {
71023		if res.Body != nil {
71024			res.Body.Close()
71025		}
71026		return nil, &googleapi.Error{
71027			Code:   res.StatusCode,
71028			Header: res.Header,
71029		}
71030	}
71031	if err != nil {
71032		return nil, err
71033	}
71034	defer googleapi.CloseBody(res)
71035	if err := googleapi.CheckResponse(res); err != nil {
71036		return nil, err
71037	}
71038	ret := &Operation{
71039		ServerResponse: googleapi.ServerResponse{
71040			Header:         res.Header,
71041			HTTPStatusCode: res.StatusCode,
71042		},
71043	}
71044	target := &ret
71045	if err := gensupport.DecodeResponse(target, res); err != nil {
71046		return nil, err
71047	}
71048	return ret, nil
71049	// {
71050	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
71051	//   "flatPath": "projects/{project}/global/networkEndpointGroups",
71052	//   "httpMethod": "POST",
71053	//   "id": "compute.globalNetworkEndpointGroups.insert",
71054	//   "parameterOrder": [
71055	//     "project"
71056	//   ],
71057	//   "parameters": {
71058	//     "project": {
71059	//       "description": "Project ID for this request.",
71060	//       "location": "path",
71061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71062	//       "required": true,
71063	//       "type": "string"
71064	//     },
71065	//     "requestId": {
71066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
71067	//       "location": "query",
71068	//       "type": "string"
71069	//     }
71070	//   },
71071	//   "path": "projects/{project}/global/networkEndpointGroups",
71072	//   "request": {
71073	//     "$ref": "NetworkEndpointGroup"
71074	//   },
71075	//   "response": {
71076	//     "$ref": "Operation"
71077	//   },
71078	//   "scopes": [
71079	//     "https://www.googleapis.com/auth/cloud-platform",
71080	//     "https://www.googleapis.com/auth/compute"
71081	//   ]
71082	// }
71083
71084}
71085
71086// method id "compute.globalNetworkEndpointGroups.list":
71087
71088type GlobalNetworkEndpointGroupsListCall struct {
71089	s            *Service
71090	project      string
71091	urlParams_   gensupport.URLParams
71092	ifNoneMatch_ string
71093	ctx_         context.Context
71094	header_      http.Header
71095}
71096
71097// List: Retrieves the list of network endpoint groups that are located
71098// in the specified project.
71099//
71100// - project: Project ID for this request.
71101func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
71102	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71103	c.project = project
71104	return c
71105}
71106
71107// Filter sets the optional parameter "filter": A filter expression that
71108// filters resources listed in the response. The expression must specify
71109// the field name, a comparison operator, and the value that you want to
71110// use for filtering. The value must be a string, a number, or a
71111// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71112// `<`. For example, if you are filtering Compute Engine instances, you
71113// can exclude instances named `example-instance` by specifying `name !=
71114// example-instance`. You can also filter nested fields. For example,
71115// you could specify `scheduling.automaticRestart = false` to include
71116// instances only if they are not scheduled for automatic restarts. You
71117// can use filtering on nested fields to filter based on resource
71118// labels. To filter on multiple expressions, provide each separate
71119// expression within parentheses. For example: ```
71120// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
71121// ``` By default, each expression is an `AND` expression. However, you
71122// can include `AND` and `OR` expressions explicitly. For example: ```
71123// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
71124// AND (scheduling.automaticRestart = true) ```
71125func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
71126	c.urlParams_.Set("filter", filter)
71127	return c
71128}
71129
71130// MaxResults sets the optional parameter "maxResults": The maximum
71131// number of results per page that should be returned. If the number of
71132// available results is larger than `maxResults`, Compute Engine returns
71133// a `nextPageToken` that can be used to get the next page of results in
71134// subsequent list requests. Acceptable values are `0` to `500`,
71135// inclusive. (Default: `500`)
71136func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
71137	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71138	return c
71139}
71140
71141// OrderBy sets the optional parameter "orderBy": Sorts list results by
71142// a certain order. By default, results are returned in alphanumerical
71143// order based on the resource name. You can also sort results in
71144// descending order based on the creation timestamp using
71145// `orderBy="creationTimestamp desc". This sorts results based on the
71146// `creationTimestamp` field in reverse chronological order (newest
71147// result first). Use this to sort resources like operations so that the
71148// newest operation is returned first. Currently, only sorting by `name`
71149// or `creationTimestamp desc` is supported.
71150func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
71151	c.urlParams_.Set("orderBy", orderBy)
71152	return c
71153}
71154
71155// PageToken sets the optional parameter "pageToken": Specifies a page
71156// token to use. Set `pageToken` to the `nextPageToken` returned by a
71157// previous list request to get the next page of results.
71158func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
71159	c.urlParams_.Set("pageToken", pageToken)
71160	return c
71161}
71162
71163// ReturnPartialSuccess sets the optional parameter
71164// "returnPartialSuccess": Opt-in for partial success behavior which
71165// provides partial results in case of failure. The default value is
71166// false.
71167func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
71168	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71169	return c
71170}
71171
71172// Fields allows partial responses to be retrieved. See
71173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71174// for more information.
71175func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
71176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71177	return c
71178}
71179
71180// IfNoneMatch sets the optional parameter which makes the operation
71181// fail if the object's ETag matches the given value. This is useful for
71182// getting updates only after the object has changed since the last
71183// request. Use googleapi.IsNotModified to check whether the response
71184// error from Do is the result of In-None-Match.
71185func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
71186	c.ifNoneMatch_ = entityTag
71187	return c
71188}
71189
71190// Context sets the context to be used in this call's Do method. Any
71191// pending HTTP request will be aborted if the provided context is
71192// canceled.
71193func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
71194	c.ctx_ = ctx
71195	return c
71196}
71197
71198// Header returns an http.Header that can be modified by the caller to
71199// add HTTP headers to the request.
71200func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
71201	if c.header_ == nil {
71202		c.header_ = make(http.Header)
71203	}
71204	return c.header_
71205}
71206
71207func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
71208	reqHeaders := make(http.Header)
71209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
71210	for k, v := range c.header_ {
71211		reqHeaders[k] = v
71212	}
71213	reqHeaders.Set("User-Agent", c.s.userAgent())
71214	if c.ifNoneMatch_ != "" {
71215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71216	}
71217	var body io.Reader = nil
71218	c.urlParams_.Set("alt", alt)
71219	c.urlParams_.Set("prettyPrint", "false")
71220	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71221	urls += "?" + c.urlParams_.Encode()
71222	req, err := http.NewRequest("GET", urls, body)
71223	if err != nil {
71224		return nil, err
71225	}
71226	req.Header = reqHeaders
71227	googleapi.Expand(req.URL, map[string]string{
71228		"project": c.project,
71229	})
71230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71231}
71232
71233// Do executes the "compute.globalNetworkEndpointGroups.list" call.
71234// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
71235// Any non-2xx status code is an error. Response headers are in either
71236// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
71237// returned at all) in error.(*googleapi.Error).Header. Use
71238// googleapi.IsNotModified to check whether the returned error was
71239// because http.StatusNotModified was returned.
71240func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
71241	gensupport.SetOptions(c.urlParams_, opts...)
71242	res, err := c.doRequest("json")
71243	if res != nil && res.StatusCode == http.StatusNotModified {
71244		if res.Body != nil {
71245			res.Body.Close()
71246		}
71247		return nil, &googleapi.Error{
71248			Code:   res.StatusCode,
71249			Header: res.Header,
71250		}
71251	}
71252	if err != nil {
71253		return nil, err
71254	}
71255	defer googleapi.CloseBody(res)
71256	if err := googleapi.CheckResponse(res); err != nil {
71257		return nil, err
71258	}
71259	ret := &NetworkEndpointGroupList{
71260		ServerResponse: googleapi.ServerResponse{
71261			Header:         res.Header,
71262			HTTPStatusCode: res.StatusCode,
71263		},
71264	}
71265	target := &ret
71266	if err := gensupport.DecodeResponse(target, res); err != nil {
71267		return nil, err
71268	}
71269	return ret, nil
71270	// {
71271	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
71272	//   "flatPath": "projects/{project}/global/networkEndpointGroups",
71273	//   "httpMethod": "GET",
71274	//   "id": "compute.globalNetworkEndpointGroups.list",
71275	//   "parameterOrder": [
71276	//     "project"
71277	//   ],
71278	//   "parameters": {
71279	//     "filter": {
71280	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71281	//       "location": "query",
71282	//       "type": "string"
71283	//     },
71284	//     "maxResults": {
71285	//       "default": "500",
71286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71287	//       "format": "uint32",
71288	//       "location": "query",
71289	//       "minimum": "0",
71290	//       "type": "integer"
71291	//     },
71292	//     "orderBy": {
71293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
71294	//       "location": "query",
71295	//       "type": "string"
71296	//     },
71297	//     "pageToken": {
71298	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71299	//       "location": "query",
71300	//       "type": "string"
71301	//     },
71302	//     "project": {
71303	//       "description": "Project ID for this request.",
71304	//       "location": "path",
71305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71306	//       "required": true,
71307	//       "type": "string"
71308	//     },
71309	//     "returnPartialSuccess": {
71310	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71311	//       "location": "query",
71312	//       "type": "boolean"
71313	//     }
71314	//   },
71315	//   "path": "projects/{project}/global/networkEndpointGroups",
71316	//   "response": {
71317	//     "$ref": "NetworkEndpointGroupList"
71318	//   },
71319	//   "scopes": [
71320	//     "https://www.googleapis.com/auth/cloud-platform",
71321	//     "https://www.googleapis.com/auth/compute",
71322	//     "https://www.googleapis.com/auth/compute.readonly"
71323	//   ]
71324	// }
71325
71326}
71327
71328// Pages invokes f for each page of results.
71329// A non-nil error returned from f will halt the iteration.
71330// The provided context supersedes any context provided to the Context method.
71331func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
71332	c.ctx_ = ctx
71333	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71334	for {
71335		x, err := c.Do()
71336		if err != nil {
71337			return err
71338		}
71339		if err := f(x); err != nil {
71340			return err
71341		}
71342		if x.NextPageToken == "" {
71343			return nil
71344		}
71345		c.PageToken(x.NextPageToken)
71346	}
71347}
71348
71349// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
71350
71351type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
71352	s                    *Service
71353	project              string
71354	networkEndpointGroup string
71355	urlParams_           gensupport.URLParams
71356	ctx_                 context.Context
71357	header_              http.Header
71358}
71359
71360// ListNetworkEndpoints: Lists the network endpoints in the specified
71361// network endpoint group.
71362//
71363// - networkEndpointGroup: The name of the network endpoint group from
71364//   which you want to generate a list of included network endpoints. It
71365//   should comply with RFC1035.
71366// - project: Project ID for this request.
71367func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71368	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71369	c.project = project
71370	c.networkEndpointGroup = networkEndpointGroup
71371	return c
71372}
71373
71374// Filter sets the optional parameter "filter": A filter expression that
71375// filters resources listed in the response. The expression must specify
71376// the field name, a comparison operator, and the value that you want to
71377// use for filtering. The value must be a string, a number, or a
71378// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71379// `<`. For example, if you are filtering Compute Engine instances, you
71380// can exclude instances named `example-instance` by specifying `name !=
71381// example-instance`. You can also filter nested fields. For example,
71382// you could specify `scheduling.automaticRestart = false` to include
71383// instances only if they are not scheduled for automatic restarts. You
71384// can use filtering on nested fields to filter based on resource
71385// labels. To filter on multiple expressions, provide each separate
71386// expression within parentheses. For example: ```
71387// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
71388// ``` By default, each expression is an `AND` expression. However, you
71389// can include `AND` and `OR` expressions explicitly. For example: ```
71390// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
71391// AND (scheduling.automaticRestart = true) ```
71392func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71393	c.urlParams_.Set("filter", filter)
71394	return c
71395}
71396
71397// MaxResults sets the optional parameter "maxResults": The maximum
71398// number of results per page that should be returned. If the number of
71399// available results is larger than `maxResults`, Compute Engine returns
71400// a `nextPageToken` that can be used to get the next page of results in
71401// subsequent list requests. Acceptable values are `0` to `500`,
71402// inclusive. (Default: `500`)
71403func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71404	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71405	return c
71406}
71407
71408// OrderBy sets the optional parameter "orderBy": Sorts list results by
71409// a certain order. By default, results are returned in alphanumerical
71410// order based on the resource name. You can also sort results in
71411// descending order based on the creation timestamp using
71412// `orderBy="creationTimestamp desc". This sorts results based on the
71413// `creationTimestamp` field in reverse chronological order (newest
71414// result first). Use this to sort resources like operations so that the
71415// newest operation is returned first. Currently, only sorting by `name`
71416// or `creationTimestamp desc` is supported.
71417func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71418	c.urlParams_.Set("orderBy", orderBy)
71419	return c
71420}
71421
71422// PageToken sets the optional parameter "pageToken": Specifies a page
71423// token to use. Set `pageToken` to the `nextPageToken` returned by a
71424// previous list request to get the next page of results.
71425func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71426	c.urlParams_.Set("pageToken", pageToken)
71427	return c
71428}
71429
71430// ReturnPartialSuccess sets the optional parameter
71431// "returnPartialSuccess": Opt-in for partial success behavior which
71432// provides partial results in case of failure. The default value is
71433// false.
71434func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71435	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71436	return c
71437}
71438
71439// Fields allows partial responses to be retrieved. See
71440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71441// for more information.
71442func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71444	return c
71445}
71446
71447// Context sets the context to be used in this call's Do method. Any
71448// pending HTTP request will be aborted if the provided context is
71449// canceled.
71450func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71451	c.ctx_ = ctx
71452	return c
71453}
71454
71455// Header returns an http.Header that can be modified by the caller to
71456// add HTTP headers to the request.
71457func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
71458	if c.header_ == nil {
71459		c.header_ = make(http.Header)
71460	}
71461	return c.header_
71462}
71463
71464func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
71465	reqHeaders := make(http.Header)
71466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
71467	for k, v := range c.header_ {
71468		reqHeaders[k] = v
71469	}
71470	reqHeaders.Set("User-Agent", c.s.userAgent())
71471	var body io.Reader = nil
71472	c.urlParams_.Set("alt", alt)
71473	c.urlParams_.Set("prettyPrint", "false")
71474	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
71475	urls += "?" + c.urlParams_.Encode()
71476	req, err := http.NewRequest("POST", urls, body)
71477	if err != nil {
71478		return nil, err
71479	}
71480	req.Header = reqHeaders
71481	googleapi.Expand(req.URL, map[string]string{
71482		"project":              c.project,
71483		"networkEndpointGroup": c.networkEndpointGroup,
71484	})
71485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71486}
71487
71488// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
71489// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
71490// will be non-nil. Any non-2xx status code is an error. Response
71491// headers are in either
71492// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
71493// (if a response was returned at all) in
71494// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
71495// whether the returned error was because http.StatusNotModified was
71496// returned.
71497func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
71498	gensupport.SetOptions(c.urlParams_, opts...)
71499	res, err := c.doRequest("json")
71500	if res != nil && res.StatusCode == http.StatusNotModified {
71501		if res.Body != nil {
71502			res.Body.Close()
71503		}
71504		return nil, &googleapi.Error{
71505			Code:   res.StatusCode,
71506			Header: res.Header,
71507		}
71508	}
71509	if err != nil {
71510		return nil, err
71511	}
71512	defer googleapi.CloseBody(res)
71513	if err := googleapi.CheckResponse(res); err != nil {
71514		return nil, err
71515	}
71516	ret := &NetworkEndpointGroupsListNetworkEndpoints{
71517		ServerResponse: googleapi.ServerResponse{
71518			Header:         res.Header,
71519			HTTPStatusCode: res.StatusCode,
71520		},
71521	}
71522	target := &ret
71523	if err := gensupport.DecodeResponse(target, res); err != nil {
71524		return nil, err
71525	}
71526	return ret, nil
71527	// {
71528	//   "description": "Lists the network endpoints in the specified network endpoint group.",
71529	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
71530	//   "httpMethod": "POST",
71531	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
71532	//   "parameterOrder": [
71533	//     "project",
71534	//     "networkEndpointGroup"
71535	//   ],
71536	//   "parameters": {
71537	//     "filter": {
71538	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71539	//       "location": "query",
71540	//       "type": "string"
71541	//     },
71542	//     "maxResults": {
71543	//       "default": "500",
71544	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71545	//       "format": "uint32",
71546	//       "location": "query",
71547	//       "minimum": "0",
71548	//       "type": "integer"
71549	//     },
71550	//     "networkEndpointGroup": {
71551	//       "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.",
71552	//       "location": "path",
71553	//       "required": true,
71554	//       "type": "string"
71555	//     },
71556	//     "orderBy": {
71557	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
71558	//       "location": "query",
71559	//       "type": "string"
71560	//     },
71561	//     "pageToken": {
71562	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71563	//       "location": "query",
71564	//       "type": "string"
71565	//     },
71566	//     "project": {
71567	//       "description": "Project ID for this request.",
71568	//       "location": "path",
71569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71570	//       "required": true,
71571	//       "type": "string"
71572	//     },
71573	//     "returnPartialSuccess": {
71574	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71575	//       "location": "query",
71576	//       "type": "boolean"
71577	//     }
71578	//   },
71579	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
71580	//   "response": {
71581	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
71582	//   },
71583	//   "scopes": [
71584	//     "https://www.googleapis.com/auth/cloud-platform",
71585	//     "https://www.googleapis.com/auth/compute",
71586	//     "https://www.googleapis.com/auth/compute.readonly"
71587	//   ]
71588	// }
71589
71590}
71591
71592// Pages invokes f for each page of results.
71593// A non-nil error returned from f will halt the iteration.
71594// The provided context supersedes any context provided to the Context method.
71595func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
71596	c.ctx_ = ctx
71597	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71598	for {
71599		x, err := c.Do()
71600		if err != nil {
71601			return err
71602		}
71603		if err := f(x); err != nil {
71604			return err
71605		}
71606		if x.NextPageToken == "" {
71607			return nil
71608		}
71609		c.PageToken(x.NextPageToken)
71610	}
71611}
71612
71613// method id "compute.globalOperations.aggregatedList":
71614
71615type GlobalOperationsAggregatedListCall struct {
71616	s            *Service
71617	project      string
71618	urlParams_   gensupport.URLParams
71619	ifNoneMatch_ string
71620	ctx_         context.Context
71621	header_      http.Header
71622}
71623
71624// AggregatedList: Retrieves an aggregated list of all operations.
71625//
71626// - project: Project ID for this request.
71627func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
71628	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71629	c.project = project
71630	return c
71631}
71632
71633// Filter sets the optional parameter "filter": A filter expression that
71634// filters resources listed in the response. The expression must specify
71635// the field name, a comparison operator, and the value that you want to
71636// use for filtering. The value must be a string, a number, or a
71637// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71638// `<`. For example, if you are filtering Compute Engine instances, you
71639// can exclude instances named `example-instance` by specifying `name !=
71640// example-instance`. You can also filter nested fields. For example,
71641// you could specify `scheduling.automaticRestart = false` to include
71642// instances only if they are not scheduled for automatic restarts. You
71643// can use filtering on nested fields to filter based on resource
71644// labels. To filter on multiple expressions, provide each separate
71645// expression within parentheses. For example: ```
71646// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
71647// ``` By default, each expression is an `AND` expression. However, you
71648// can include `AND` and `OR` expressions explicitly. For example: ```
71649// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
71650// AND (scheduling.automaticRestart = true) ```
71651func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
71652	c.urlParams_.Set("filter", filter)
71653	return c
71654}
71655
71656// IncludeAllScopes sets the optional parameter "includeAllScopes":
71657// Indicates whether every visible scope for each scope type (zone,
71658// region, global) should be included in the response. For new resource
71659// types added after this field, the flag has no effect as new resource
71660// types will always include every visible scope for each scope type in
71661// response. For resource types which predate this field, if this flag
71662// is omitted or false, only scopes of the scope types where the
71663// resource type is expected to be found will be included.
71664func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
71665	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
71666	return c
71667}
71668
71669// MaxResults sets the optional parameter "maxResults": The maximum
71670// number of results per page that should be returned. If the number of
71671// available results is larger than `maxResults`, Compute Engine returns
71672// a `nextPageToken` that can be used to get the next page of results in
71673// subsequent list requests. Acceptable values are `0` to `500`,
71674// inclusive. (Default: `500`)
71675func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
71676	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71677	return c
71678}
71679
71680// OrderBy sets the optional parameter "orderBy": Sorts list results by
71681// a certain order. By default, results are returned in alphanumerical
71682// order based on the resource name. You can also sort results in
71683// descending order based on the creation timestamp using
71684// `orderBy="creationTimestamp desc". This sorts results based on the
71685// `creationTimestamp` field in reverse chronological order (newest
71686// result first). Use this to sort resources like operations so that the
71687// newest operation is returned first. Currently, only sorting by `name`
71688// or `creationTimestamp desc` is supported.
71689func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
71690	c.urlParams_.Set("orderBy", orderBy)
71691	return c
71692}
71693
71694// PageToken sets the optional parameter "pageToken": Specifies a page
71695// token to use. Set `pageToken` to the `nextPageToken` returned by a
71696// previous list request to get the next page of results.
71697func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
71698	c.urlParams_.Set("pageToken", pageToken)
71699	return c
71700}
71701
71702// ReturnPartialSuccess sets the optional parameter
71703// "returnPartialSuccess": Opt-in for partial success behavior which
71704// provides partial results in case of failure. The default value is
71705// false.
71706func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
71707	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71708	return c
71709}
71710
71711// Fields allows partial responses to be retrieved. See
71712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71713// for more information.
71714func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
71715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71716	return c
71717}
71718
71719// IfNoneMatch sets the optional parameter which makes the operation
71720// fail if the object's ETag matches the given value. This is useful for
71721// getting updates only after the object has changed since the last
71722// request. Use googleapi.IsNotModified to check whether the response
71723// error from Do is the result of In-None-Match.
71724func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
71725	c.ifNoneMatch_ = entityTag
71726	return c
71727}
71728
71729// Context sets the context to be used in this call's Do method. Any
71730// pending HTTP request will be aborted if the provided context is
71731// canceled.
71732func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
71733	c.ctx_ = ctx
71734	return c
71735}
71736
71737// Header returns an http.Header that can be modified by the caller to
71738// add HTTP headers to the request.
71739func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
71740	if c.header_ == nil {
71741		c.header_ = make(http.Header)
71742	}
71743	return c.header_
71744}
71745
71746func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71747	reqHeaders := make(http.Header)
71748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
71749	for k, v := range c.header_ {
71750		reqHeaders[k] = v
71751	}
71752	reqHeaders.Set("User-Agent", c.s.userAgent())
71753	if c.ifNoneMatch_ != "" {
71754		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71755	}
71756	var body io.Reader = nil
71757	c.urlParams_.Set("alt", alt)
71758	c.urlParams_.Set("prettyPrint", "false")
71759	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations")
71760	urls += "?" + c.urlParams_.Encode()
71761	req, err := http.NewRequest("GET", urls, body)
71762	if err != nil {
71763		return nil, err
71764	}
71765	req.Header = reqHeaders
71766	googleapi.Expand(req.URL, map[string]string{
71767		"project": c.project,
71768	})
71769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71770}
71771
71772// Do executes the "compute.globalOperations.aggregatedList" call.
71773// Exactly one of *OperationAggregatedList or error will be non-nil. Any
71774// non-2xx status code is an error. Response headers are in either
71775// *OperationAggregatedList.ServerResponse.Header or (if a response was
71776// returned at all) in error.(*googleapi.Error).Header. Use
71777// googleapi.IsNotModified to check whether the returned error was
71778// because http.StatusNotModified was returned.
71779func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
71780	gensupport.SetOptions(c.urlParams_, opts...)
71781	res, err := c.doRequest("json")
71782	if res != nil && res.StatusCode == http.StatusNotModified {
71783		if res.Body != nil {
71784			res.Body.Close()
71785		}
71786		return nil, &googleapi.Error{
71787			Code:   res.StatusCode,
71788			Header: res.Header,
71789		}
71790	}
71791	if err != nil {
71792		return nil, err
71793	}
71794	defer googleapi.CloseBody(res)
71795	if err := googleapi.CheckResponse(res); err != nil {
71796		return nil, err
71797	}
71798	ret := &OperationAggregatedList{
71799		ServerResponse: googleapi.ServerResponse{
71800			Header:         res.Header,
71801			HTTPStatusCode: res.StatusCode,
71802		},
71803	}
71804	target := &ret
71805	if err := gensupport.DecodeResponse(target, res); err != nil {
71806		return nil, err
71807	}
71808	return ret, nil
71809	// {
71810	//   "description": "Retrieves an aggregated list of all operations.",
71811	//   "flatPath": "projects/{project}/aggregated/operations",
71812	//   "httpMethod": "GET",
71813	//   "id": "compute.globalOperations.aggregatedList",
71814	//   "parameterOrder": [
71815	//     "project"
71816	//   ],
71817	//   "parameters": {
71818	//     "filter": {
71819	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71820	//       "location": "query",
71821	//       "type": "string"
71822	//     },
71823	//     "includeAllScopes": {
71824	//       "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.",
71825	//       "location": "query",
71826	//       "type": "boolean"
71827	//     },
71828	//     "maxResults": {
71829	//       "default": "500",
71830	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71831	//       "format": "uint32",
71832	//       "location": "query",
71833	//       "minimum": "0",
71834	//       "type": "integer"
71835	//     },
71836	//     "orderBy": {
71837	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
71838	//       "location": "query",
71839	//       "type": "string"
71840	//     },
71841	//     "pageToken": {
71842	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71843	//       "location": "query",
71844	//       "type": "string"
71845	//     },
71846	//     "project": {
71847	//       "description": "Project ID for this request.",
71848	//       "location": "path",
71849	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71850	//       "required": true,
71851	//       "type": "string"
71852	//     },
71853	//     "returnPartialSuccess": {
71854	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71855	//       "location": "query",
71856	//       "type": "boolean"
71857	//     }
71858	//   },
71859	//   "path": "projects/{project}/aggregated/operations",
71860	//   "response": {
71861	//     "$ref": "OperationAggregatedList"
71862	//   },
71863	//   "scopes": [
71864	//     "https://www.googleapis.com/auth/cloud-platform",
71865	//     "https://www.googleapis.com/auth/compute",
71866	//     "https://www.googleapis.com/auth/compute.readonly"
71867	//   ]
71868	// }
71869
71870}
71871
71872// Pages invokes f for each page of results.
71873// A non-nil error returned from f will halt the iteration.
71874// The provided context supersedes any context provided to the Context method.
71875func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
71876	c.ctx_ = ctx
71877	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71878	for {
71879		x, err := c.Do()
71880		if err != nil {
71881			return err
71882		}
71883		if err := f(x); err != nil {
71884			return err
71885		}
71886		if x.NextPageToken == "" {
71887			return nil
71888		}
71889		c.PageToken(x.NextPageToken)
71890	}
71891}
71892
71893// method id "compute.globalOperations.delete":
71894
71895type GlobalOperationsDeleteCall struct {
71896	s          *Service
71897	project    string
71898	operation  string
71899	urlParams_ gensupport.URLParams
71900	ctx_       context.Context
71901	header_    http.Header
71902}
71903
71904// Delete: Deletes the specified Operations resource.
71905//
71906// - operation: Name of the Operations resource to delete.
71907// - project: Project ID for this request.
71908func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
71909	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71910	c.project = project
71911	c.operation = operation
71912	return c
71913}
71914
71915// Fields allows partial responses to be retrieved. See
71916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71917// for more information.
71918func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
71919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71920	return c
71921}
71922
71923// Context sets the context to be used in this call's Do method. Any
71924// pending HTTP request will be aborted if the provided context is
71925// canceled.
71926func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
71927	c.ctx_ = ctx
71928	return c
71929}
71930
71931// Header returns an http.Header that can be modified by the caller to
71932// add HTTP headers to the request.
71933func (c *GlobalOperationsDeleteCall) Header() http.Header {
71934	if c.header_ == nil {
71935		c.header_ = make(http.Header)
71936	}
71937	return c.header_
71938}
71939
71940func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
71941	reqHeaders := make(http.Header)
71942	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
71943	for k, v := range c.header_ {
71944		reqHeaders[k] = v
71945	}
71946	reqHeaders.Set("User-Agent", c.s.userAgent())
71947	var body io.Reader = nil
71948	c.urlParams_.Set("alt", alt)
71949	c.urlParams_.Set("prettyPrint", "false")
71950	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
71951	urls += "?" + c.urlParams_.Encode()
71952	req, err := http.NewRequest("DELETE", urls, body)
71953	if err != nil {
71954		return nil, err
71955	}
71956	req.Header = reqHeaders
71957	googleapi.Expand(req.URL, map[string]string{
71958		"project":   c.project,
71959		"operation": c.operation,
71960	})
71961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71962}
71963
71964// Do executes the "compute.globalOperations.delete" call.
71965func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
71966	gensupport.SetOptions(c.urlParams_, opts...)
71967	res, err := c.doRequest("json")
71968	if err != nil {
71969		return err
71970	}
71971	defer googleapi.CloseBody(res)
71972	if err := googleapi.CheckResponse(res); err != nil {
71973		return err
71974	}
71975	return nil
71976	// {
71977	//   "description": "Deletes the specified Operations resource.",
71978	//   "flatPath": "projects/{project}/global/operations/{operation}",
71979	//   "httpMethod": "DELETE",
71980	//   "id": "compute.globalOperations.delete",
71981	//   "parameterOrder": [
71982	//     "project",
71983	//     "operation"
71984	//   ],
71985	//   "parameters": {
71986	//     "operation": {
71987	//       "description": "Name of the Operations resource to delete.",
71988	//       "location": "path",
71989	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71990	//       "required": true,
71991	//       "type": "string"
71992	//     },
71993	//     "project": {
71994	//       "description": "Project ID for this request.",
71995	//       "location": "path",
71996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71997	//       "required": true,
71998	//       "type": "string"
71999	//     }
72000	//   },
72001	//   "path": "projects/{project}/global/operations/{operation}",
72002	//   "scopes": [
72003	//     "https://www.googleapis.com/auth/cloud-platform",
72004	//     "https://www.googleapis.com/auth/compute"
72005	//   ]
72006	// }
72007
72008}
72009
72010// method id "compute.globalOperations.get":
72011
72012type GlobalOperationsGetCall struct {
72013	s            *Service
72014	project      string
72015	operation    string
72016	urlParams_   gensupport.URLParams
72017	ifNoneMatch_ string
72018	ctx_         context.Context
72019	header_      http.Header
72020}
72021
72022// Get: Retrieves the specified Operations resource. Gets a list of
72023// operations by making a `list()` request.
72024//
72025// - operation: Name of the Operations resource to return.
72026// - project: Project ID for this request.
72027func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
72028	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72029	c.project = project
72030	c.operation = operation
72031	return c
72032}
72033
72034// Fields allows partial responses to be retrieved. See
72035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72036// for more information.
72037func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
72038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72039	return c
72040}
72041
72042// IfNoneMatch sets the optional parameter which makes the operation
72043// fail if the object's ETag matches the given value. This is useful for
72044// getting updates only after the object has changed since the last
72045// request. Use googleapi.IsNotModified to check whether the response
72046// error from Do is the result of In-None-Match.
72047func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
72048	c.ifNoneMatch_ = entityTag
72049	return c
72050}
72051
72052// Context sets the context to be used in this call's Do method. Any
72053// pending HTTP request will be aborted if the provided context is
72054// canceled.
72055func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
72056	c.ctx_ = ctx
72057	return c
72058}
72059
72060// Header returns an http.Header that can be modified by the caller to
72061// add HTTP headers to the request.
72062func (c *GlobalOperationsGetCall) Header() http.Header {
72063	if c.header_ == nil {
72064		c.header_ = make(http.Header)
72065	}
72066	return c.header_
72067}
72068
72069func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
72070	reqHeaders := make(http.Header)
72071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72072	for k, v := range c.header_ {
72073		reqHeaders[k] = v
72074	}
72075	reqHeaders.Set("User-Agent", c.s.userAgent())
72076	if c.ifNoneMatch_ != "" {
72077		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72078	}
72079	var body io.Reader = nil
72080	c.urlParams_.Set("alt", alt)
72081	c.urlParams_.Set("prettyPrint", "false")
72082	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
72083	urls += "?" + c.urlParams_.Encode()
72084	req, err := http.NewRequest("GET", urls, body)
72085	if err != nil {
72086		return nil, err
72087	}
72088	req.Header = reqHeaders
72089	googleapi.Expand(req.URL, map[string]string{
72090		"project":   c.project,
72091		"operation": c.operation,
72092	})
72093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72094}
72095
72096// Do executes the "compute.globalOperations.get" call.
72097// Exactly one of *Operation or error will be non-nil. Any non-2xx
72098// status code is an error. Response headers are in either
72099// *Operation.ServerResponse.Header or (if a response was returned at
72100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72101// to check whether the returned error was because
72102// http.StatusNotModified was returned.
72103func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72104	gensupport.SetOptions(c.urlParams_, opts...)
72105	res, err := c.doRequest("json")
72106	if res != nil && res.StatusCode == http.StatusNotModified {
72107		if res.Body != nil {
72108			res.Body.Close()
72109		}
72110		return nil, &googleapi.Error{
72111			Code:   res.StatusCode,
72112			Header: res.Header,
72113		}
72114	}
72115	if err != nil {
72116		return nil, err
72117	}
72118	defer googleapi.CloseBody(res)
72119	if err := googleapi.CheckResponse(res); err != nil {
72120		return nil, err
72121	}
72122	ret := &Operation{
72123		ServerResponse: googleapi.ServerResponse{
72124			Header:         res.Header,
72125			HTTPStatusCode: res.StatusCode,
72126		},
72127	}
72128	target := &ret
72129	if err := gensupport.DecodeResponse(target, res); err != nil {
72130		return nil, err
72131	}
72132	return ret, nil
72133	// {
72134	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
72135	//   "flatPath": "projects/{project}/global/operations/{operation}",
72136	//   "httpMethod": "GET",
72137	//   "id": "compute.globalOperations.get",
72138	//   "parameterOrder": [
72139	//     "project",
72140	//     "operation"
72141	//   ],
72142	//   "parameters": {
72143	//     "operation": {
72144	//       "description": "Name of the Operations resource to return.",
72145	//       "location": "path",
72146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72147	//       "required": true,
72148	//       "type": "string"
72149	//     },
72150	//     "project": {
72151	//       "description": "Project ID for this request.",
72152	//       "location": "path",
72153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72154	//       "required": true,
72155	//       "type": "string"
72156	//     }
72157	//   },
72158	//   "path": "projects/{project}/global/operations/{operation}",
72159	//   "response": {
72160	//     "$ref": "Operation"
72161	//   },
72162	//   "scopes": [
72163	//     "https://www.googleapis.com/auth/cloud-platform",
72164	//     "https://www.googleapis.com/auth/compute",
72165	//     "https://www.googleapis.com/auth/compute.readonly"
72166	//   ]
72167	// }
72168
72169}
72170
72171// method id "compute.globalOperations.list":
72172
72173type GlobalOperationsListCall struct {
72174	s            *Service
72175	project      string
72176	urlParams_   gensupport.URLParams
72177	ifNoneMatch_ string
72178	ctx_         context.Context
72179	header_      http.Header
72180}
72181
72182// List: Retrieves a list of Operation resources contained within the
72183// specified project.
72184//
72185// - project: Project ID for this request.
72186func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
72187	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72188	c.project = project
72189	return c
72190}
72191
72192// Filter sets the optional parameter "filter": A filter expression that
72193// filters resources listed in the response. The expression must specify
72194// the field name, a comparison operator, and the value that you want to
72195// use for filtering. The value must be a string, a number, or a
72196// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72197// `<`. For example, if you are filtering Compute Engine instances, you
72198// can exclude instances named `example-instance` by specifying `name !=
72199// example-instance`. You can also filter nested fields. For example,
72200// you could specify `scheduling.automaticRestart = false` to include
72201// instances only if they are not scheduled for automatic restarts. You
72202// can use filtering on nested fields to filter based on resource
72203// labels. To filter on multiple expressions, provide each separate
72204// expression within parentheses. For example: ```
72205// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
72206// ``` By default, each expression is an `AND` expression. However, you
72207// can include `AND` and `OR` expressions explicitly. For example: ```
72208// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
72209// AND (scheduling.automaticRestart = true) ```
72210func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
72211	c.urlParams_.Set("filter", filter)
72212	return c
72213}
72214
72215// MaxResults sets the optional parameter "maxResults": The maximum
72216// number of results per page that should be returned. If the number of
72217// available results is larger than `maxResults`, Compute Engine returns
72218// a `nextPageToken` that can be used to get the next page of results in
72219// subsequent list requests. Acceptable values are `0` to `500`,
72220// inclusive. (Default: `500`)
72221func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
72222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72223	return c
72224}
72225
72226// OrderBy sets the optional parameter "orderBy": Sorts list results by
72227// a certain order. By default, results are returned in alphanumerical
72228// order based on the resource name. You can also sort results in
72229// descending order based on the creation timestamp using
72230// `orderBy="creationTimestamp desc". This sorts results based on the
72231// `creationTimestamp` field in reverse chronological order (newest
72232// result first). Use this to sort resources like operations so that the
72233// newest operation is returned first. Currently, only sorting by `name`
72234// or `creationTimestamp desc` is supported.
72235func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
72236	c.urlParams_.Set("orderBy", orderBy)
72237	return c
72238}
72239
72240// PageToken sets the optional parameter "pageToken": Specifies a page
72241// token to use. Set `pageToken` to the `nextPageToken` returned by a
72242// previous list request to get the next page of results.
72243func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
72244	c.urlParams_.Set("pageToken", pageToken)
72245	return c
72246}
72247
72248// ReturnPartialSuccess sets the optional parameter
72249// "returnPartialSuccess": Opt-in for partial success behavior which
72250// provides partial results in case of failure. The default value is
72251// false.
72252func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
72253	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72254	return c
72255}
72256
72257// Fields allows partial responses to be retrieved. See
72258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72259// for more information.
72260func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
72261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72262	return c
72263}
72264
72265// IfNoneMatch sets the optional parameter which makes the operation
72266// fail if the object's ETag matches the given value. This is useful for
72267// getting updates only after the object has changed since the last
72268// request. Use googleapi.IsNotModified to check whether the response
72269// error from Do is the result of In-None-Match.
72270func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
72271	c.ifNoneMatch_ = entityTag
72272	return c
72273}
72274
72275// Context sets the context to be used in this call's Do method. Any
72276// pending HTTP request will be aborted if the provided context is
72277// canceled.
72278func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
72279	c.ctx_ = ctx
72280	return c
72281}
72282
72283// Header returns an http.Header that can be modified by the caller to
72284// add HTTP headers to the request.
72285func (c *GlobalOperationsListCall) Header() http.Header {
72286	if c.header_ == nil {
72287		c.header_ = make(http.Header)
72288	}
72289	return c.header_
72290}
72291
72292func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
72293	reqHeaders := make(http.Header)
72294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72295	for k, v := range c.header_ {
72296		reqHeaders[k] = v
72297	}
72298	reqHeaders.Set("User-Agent", c.s.userAgent())
72299	if c.ifNoneMatch_ != "" {
72300		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72301	}
72302	var body io.Reader = nil
72303	c.urlParams_.Set("alt", alt)
72304	c.urlParams_.Set("prettyPrint", "false")
72305	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations")
72306	urls += "?" + c.urlParams_.Encode()
72307	req, err := http.NewRequest("GET", urls, body)
72308	if err != nil {
72309		return nil, err
72310	}
72311	req.Header = reqHeaders
72312	googleapi.Expand(req.URL, map[string]string{
72313		"project": c.project,
72314	})
72315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72316}
72317
72318// Do executes the "compute.globalOperations.list" call.
72319// Exactly one of *OperationList or error will be non-nil. Any non-2xx
72320// status code is an error. Response headers are in either
72321// *OperationList.ServerResponse.Header or (if a response was returned
72322// at all) in error.(*googleapi.Error).Header. Use
72323// googleapi.IsNotModified to check whether the returned error was
72324// because http.StatusNotModified was returned.
72325func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
72326	gensupport.SetOptions(c.urlParams_, opts...)
72327	res, err := c.doRequest("json")
72328	if res != nil && res.StatusCode == http.StatusNotModified {
72329		if res.Body != nil {
72330			res.Body.Close()
72331		}
72332		return nil, &googleapi.Error{
72333			Code:   res.StatusCode,
72334			Header: res.Header,
72335		}
72336	}
72337	if err != nil {
72338		return nil, err
72339	}
72340	defer googleapi.CloseBody(res)
72341	if err := googleapi.CheckResponse(res); err != nil {
72342		return nil, err
72343	}
72344	ret := &OperationList{
72345		ServerResponse: googleapi.ServerResponse{
72346			Header:         res.Header,
72347			HTTPStatusCode: res.StatusCode,
72348		},
72349	}
72350	target := &ret
72351	if err := gensupport.DecodeResponse(target, res); err != nil {
72352		return nil, err
72353	}
72354	return ret, nil
72355	// {
72356	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
72357	//   "flatPath": "projects/{project}/global/operations",
72358	//   "httpMethod": "GET",
72359	//   "id": "compute.globalOperations.list",
72360	//   "parameterOrder": [
72361	//     "project"
72362	//   ],
72363	//   "parameters": {
72364	//     "filter": {
72365	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72366	//       "location": "query",
72367	//       "type": "string"
72368	//     },
72369	//     "maxResults": {
72370	//       "default": "500",
72371	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72372	//       "format": "uint32",
72373	//       "location": "query",
72374	//       "minimum": "0",
72375	//       "type": "integer"
72376	//     },
72377	//     "orderBy": {
72378	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
72379	//       "location": "query",
72380	//       "type": "string"
72381	//     },
72382	//     "pageToken": {
72383	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72384	//       "location": "query",
72385	//       "type": "string"
72386	//     },
72387	//     "project": {
72388	//       "description": "Project ID for this request.",
72389	//       "location": "path",
72390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72391	//       "required": true,
72392	//       "type": "string"
72393	//     },
72394	//     "returnPartialSuccess": {
72395	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72396	//       "location": "query",
72397	//       "type": "boolean"
72398	//     }
72399	//   },
72400	//   "path": "projects/{project}/global/operations",
72401	//   "response": {
72402	//     "$ref": "OperationList"
72403	//   },
72404	//   "scopes": [
72405	//     "https://www.googleapis.com/auth/cloud-platform",
72406	//     "https://www.googleapis.com/auth/compute",
72407	//     "https://www.googleapis.com/auth/compute.readonly"
72408	//   ]
72409	// }
72410
72411}
72412
72413// Pages invokes f for each page of results.
72414// A non-nil error returned from f will halt the iteration.
72415// The provided context supersedes any context provided to the Context method.
72416func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
72417	c.ctx_ = ctx
72418	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72419	for {
72420		x, err := c.Do()
72421		if err != nil {
72422			return err
72423		}
72424		if err := f(x); err != nil {
72425			return err
72426		}
72427		if x.NextPageToken == "" {
72428			return nil
72429		}
72430		c.PageToken(x.NextPageToken)
72431	}
72432}
72433
72434// method id "compute.globalOperations.wait":
72435
72436type GlobalOperationsWaitCall struct {
72437	s          *Service
72438	project    string
72439	operation  string
72440	urlParams_ gensupport.URLParams
72441	ctx_       context.Context
72442	header_    http.Header
72443}
72444
72445// Wait: Waits for the specified Operation resource to return as `DONE`
72446// or for the request to approach the 2 minute deadline, and retrieves
72447// the specified Operation resource. This method differs from the `GET`
72448// method in that it waits for no more than the default deadline (2
72449// minutes) and then returns the current state of the operation, which
72450// might be `DONE` or still in progress. This method is called on a
72451// best-effort basis. Specifically: - In uncommon cases, when the server
72452// is overloaded, the request might return before the default deadline
72453// is reached, or might return after zero seconds. - If the default
72454// deadline is reached, there is no guarantee that the operation is
72455// actually done when the method returns. Be prepared to retry if the
72456// operation is not `DONE`.
72457//
72458// - operation: Name of the Operations resource to return.
72459// - project: Project ID for this request.
72460func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
72461	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72462	c.project = project
72463	c.operation = operation
72464	return c
72465}
72466
72467// Fields allows partial responses to be retrieved. See
72468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72469// for more information.
72470func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
72471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72472	return c
72473}
72474
72475// Context sets the context to be used in this call's Do method. Any
72476// pending HTTP request will be aborted if the provided context is
72477// canceled.
72478func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
72479	c.ctx_ = ctx
72480	return c
72481}
72482
72483// Header returns an http.Header that can be modified by the caller to
72484// add HTTP headers to the request.
72485func (c *GlobalOperationsWaitCall) Header() http.Header {
72486	if c.header_ == nil {
72487		c.header_ = make(http.Header)
72488	}
72489	return c.header_
72490}
72491
72492func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
72493	reqHeaders := make(http.Header)
72494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72495	for k, v := range c.header_ {
72496		reqHeaders[k] = v
72497	}
72498	reqHeaders.Set("User-Agent", c.s.userAgent())
72499	var body io.Reader = nil
72500	c.urlParams_.Set("alt", alt)
72501	c.urlParams_.Set("prettyPrint", "false")
72502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait")
72503	urls += "?" + c.urlParams_.Encode()
72504	req, err := http.NewRequest("POST", urls, body)
72505	if err != nil {
72506		return nil, err
72507	}
72508	req.Header = reqHeaders
72509	googleapi.Expand(req.URL, map[string]string{
72510		"project":   c.project,
72511		"operation": c.operation,
72512	})
72513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72514}
72515
72516// Do executes the "compute.globalOperations.wait" call.
72517// Exactly one of *Operation or error will be non-nil. Any non-2xx
72518// status code is an error. Response headers are in either
72519// *Operation.ServerResponse.Header or (if a response was returned at
72520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72521// to check whether the returned error was because
72522// http.StatusNotModified was returned.
72523func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72524	gensupport.SetOptions(c.urlParams_, opts...)
72525	res, err := c.doRequest("json")
72526	if res != nil && res.StatusCode == http.StatusNotModified {
72527		if res.Body != nil {
72528			res.Body.Close()
72529		}
72530		return nil, &googleapi.Error{
72531			Code:   res.StatusCode,
72532			Header: res.Header,
72533		}
72534	}
72535	if err != nil {
72536		return nil, err
72537	}
72538	defer googleapi.CloseBody(res)
72539	if err := googleapi.CheckResponse(res); err != nil {
72540		return nil, err
72541	}
72542	ret := &Operation{
72543		ServerResponse: googleapi.ServerResponse{
72544			Header:         res.Header,
72545			HTTPStatusCode: res.StatusCode,
72546		},
72547	}
72548	target := &ret
72549	if err := gensupport.DecodeResponse(target, res); err != nil {
72550		return nil, err
72551	}
72552	return ret, nil
72553	// {
72554	//   "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. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - 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`. ",
72555	//   "flatPath": "projects/{project}/global/operations/{operation}/wait",
72556	//   "httpMethod": "POST",
72557	//   "id": "compute.globalOperations.wait",
72558	//   "parameterOrder": [
72559	//     "project",
72560	//     "operation"
72561	//   ],
72562	//   "parameters": {
72563	//     "operation": {
72564	//       "description": "Name of the Operations resource to return.",
72565	//       "location": "path",
72566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72567	//       "required": true,
72568	//       "type": "string"
72569	//     },
72570	//     "project": {
72571	//       "description": "Project ID for this request.",
72572	//       "location": "path",
72573	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72574	//       "required": true,
72575	//       "type": "string"
72576	//     }
72577	//   },
72578	//   "path": "projects/{project}/global/operations/{operation}/wait",
72579	//   "response": {
72580	//     "$ref": "Operation"
72581	//   },
72582	//   "scopes": [
72583	//     "https://www.googleapis.com/auth/cloud-platform",
72584	//     "https://www.googleapis.com/auth/compute",
72585	//     "https://www.googleapis.com/auth/compute.readonly"
72586	//   ]
72587	// }
72588
72589}
72590
72591// method id "compute.globalOrganizationOperations.delete":
72592
72593type GlobalOrganizationOperationsDeleteCall struct {
72594	s          *Service
72595	operation  string
72596	urlParams_ gensupport.URLParams
72597	ctx_       context.Context
72598	header_    http.Header
72599}
72600
72601// Delete: Deletes the specified Operations resource.
72602//
72603// - operation: Name of the Operations resource to delete.
72604func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
72605	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72606	c.operation = operation
72607	return c
72608}
72609
72610// ParentId sets the optional parameter "parentId": Parent ID for this
72611// request.
72612func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
72613	c.urlParams_.Set("parentId", parentId)
72614	return c
72615}
72616
72617// Fields allows partial responses to be retrieved. See
72618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72619// for more information.
72620func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
72621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72622	return c
72623}
72624
72625// Context sets the context to be used in this call's Do method. Any
72626// pending HTTP request will be aborted if the provided context is
72627// canceled.
72628func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
72629	c.ctx_ = ctx
72630	return c
72631}
72632
72633// Header returns an http.Header that can be modified by the caller to
72634// add HTTP headers to the request.
72635func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
72636	if c.header_ == nil {
72637		c.header_ = make(http.Header)
72638	}
72639	return c.header_
72640}
72641
72642func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
72643	reqHeaders := make(http.Header)
72644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72645	for k, v := range c.header_ {
72646		reqHeaders[k] = v
72647	}
72648	reqHeaders.Set("User-Agent", c.s.userAgent())
72649	var body io.Reader = nil
72650	c.urlParams_.Set("alt", alt)
72651	c.urlParams_.Set("prettyPrint", "false")
72652	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
72653	urls += "?" + c.urlParams_.Encode()
72654	req, err := http.NewRequest("DELETE", urls, body)
72655	if err != nil {
72656		return nil, err
72657	}
72658	req.Header = reqHeaders
72659	googleapi.Expand(req.URL, map[string]string{
72660		"operation": c.operation,
72661	})
72662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72663}
72664
72665// Do executes the "compute.globalOrganizationOperations.delete" call.
72666func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
72667	gensupport.SetOptions(c.urlParams_, opts...)
72668	res, err := c.doRequest("json")
72669	if err != nil {
72670		return err
72671	}
72672	defer googleapi.CloseBody(res)
72673	if err := googleapi.CheckResponse(res); err != nil {
72674		return err
72675	}
72676	return nil
72677	// {
72678	//   "description": "Deletes the specified Operations resource.",
72679	//   "flatPath": "locations/global/operations/{operation}",
72680	//   "httpMethod": "DELETE",
72681	//   "id": "compute.globalOrganizationOperations.delete",
72682	//   "parameterOrder": [
72683	//     "operation"
72684	//   ],
72685	//   "parameters": {
72686	//     "operation": {
72687	//       "description": "Name of the Operations resource to delete.",
72688	//       "location": "path",
72689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72690	//       "required": true,
72691	//       "type": "string"
72692	//     },
72693	//     "parentId": {
72694	//       "description": "Parent ID for this request.",
72695	//       "location": "query",
72696	//       "type": "string"
72697	//     }
72698	//   },
72699	//   "path": "locations/global/operations/{operation}",
72700	//   "scopes": [
72701	//     "https://www.googleapis.com/auth/cloud-platform",
72702	//     "https://www.googleapis.com/auth/compute"
72703	//   ]
72704	// }
72705
72706}
72707
72708// method id "compute.globalOrganizationOperations.get":
72709
72710type GlobalOrganizationOperationsGetCall struct {
72711	s            *Service
72712	operation    string
72713	urlParams_   gensupport.URLParams
72714	ifNoneMatch_ string
72715	ctx_         context.Context
72716	header_      http.Header
72717}
72718
72719// Get: Retrieves the specified Operations resource. Gets a list of
72720// operations by making a `list()` request.
72721//
72722// - operation: Name of the Operations resource to return.
72723func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
72724	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72725	c.operation = operation
72726	return c
72727}
72728
72729// ParentId sets the optional parameter "parentId": Parent ID for this
72730// request.
72731func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
72732	c.urlParams_.Set("parentId", parentId)
72733	return c
72734}
72735
72736// Fields allows partial responses to be retrieved. See
72737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72738// for more information.
72739func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
72740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72741	return c
72742}
72743
72744// IfNoneMatch sets the optional parameter which makes the operation
72745// fail if the object's ETag matches the given value. This is useful for
72746// getting updates only after the object has changed since the last
72747// request. Use googleapi.IsNotModified to check whether the response
72748// error from Do is the result of In-None-Match.
72749func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
72750	c.ifNoneMatch_ = entityTag
72751	return c
72752}
72753
72754// Context sets the context to be used in this call's Do method. Any
72755// pending HTTP request will be aborted if the provided context is
72756// canceled.
72757func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
72758	c.ctx_ = ctx
72759	return c
72760}
72761
72762// Header returns an http.Header that can be modified by the caller to
72763// add HTTP headers to the request.
72764func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
72765	if c.header_ == nil {
72766		c.header_ = make(http.Header)
72767	}
72768	return c.header_
72769}
72770
72771func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
72772	reqHeaders := make(http.Header)
72773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72774	for k, v := range c.header_ {
72775		reqHeaders[k] = v
72776	}
72777	reqHeaders.Set("User-Agent", c.s.userAgent())
72778	if c.ifNoneMatch_ != "" {
72779		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72780	}
72781	var body io.Reader = nil
72782	c.urlParams_.Set("alt", alt)
72783	c.urlParams_.Set("prettyPrint", "false")
72784	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
72785	urls += "?" + c.urlParams_.Encode()
72786	req, err := http.NewRequest("GET", urls, body)
72787	if err != nil {
72788		return nil, err
72789	}
72790	req.Header = reqHeaders
72791	googleapi.Expand(req.URL, map[string]string{
72792		"operation": c.operation,
72793	})
72794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72795}
72796
72797// Do executes the "compute.globalOrganizationOperations.get" call.
72798// Exactly one of *Operation or error will be non-nil. Any non-2xx
72799// status code is an error. Response headers are in either
72800// *Operation.ServerResponse.Header or (if a response was returned at
72801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72802// to check whether the returned error was because
72803// http.StatusNotModified was returned.
72804func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72805	gensupport.SetOptions(c.urlParams_, opts...)
72806	res, err := c.doRequest("json")
72807	if res != nil && res.StatusCode == http.StatusNotModified {
72808		if res.Body != nil {
72809			res.Body.Close()
72810		}
72811		return nil, &googleapi.Error{
72812			Code:   res.StatusCode,
72813			Header: res.Header,
72814		}
72815	}
72816	if err != nil {
72817		return nil, err
72818	}
72819	defer googleapi.CloseBody(res)
72820	if err := googleapi.CheckResponse(res); err != nil {
72821		return nil, err
72822	}
72823	ret := &Operation{
72824		ServerResponse: googleapi.ServerResponse{
72825			Header:         res.Header,
72826			HTTPStatusCode: res.StatusCode,
72827		},
72828	}
72829	target := &ret
72830	if err := gensupport.DecodeResponse(target, res); err != nil {
72831		return nil, err
72832	}
72833	return ret, nil
72834	// {
72835	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
72836	//   "flatPath": "locations/global/operations/{operation}",
72837	//   "httpMethod": "GET",
72838	//   "id": "compute.globalOrganizationOperations.get",
72839	//   "parameterOrder": [
72840	//     "operation"
72841	//   ],
72842	//   "parameters": {
72843	//     "operation": {
72844	//       "description": "Name of the Operations resource to return.",
72845	//       "location": "path",
72846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72847	//       "required": true,
72848	//       "type": "string"
72849	//     },
72850	//     "parentId": {
72851	//       "description": "Parent ID for this request.",
72852	//       "location": "query",
72853	//       "type": "string"
72854	//     }
72855	//   },
72856	//   "path": "locations/global/operations/{operation}",
72857	//   "response": {
72858	//     "$ref": "Operation"
72859	//   },
72860	//   "scopes": [
72861	//     "https://www.googleapis.com/auth/cloud-platform",
72862	//     "https://www.googleapis.com/auth/compute",
72863	//     "https://www.googleapis.com/auth/compute.readonly"
72864	//   ]
72865	// }
72866
72867}
72868
72869// method id "compute.globalOrganizationOperations.list":
72870
72871type GlobalOrganizationOperationsListCall struct {
72872	s            *Service
72873	urlParams_   gensupport.URLParams
72874	ifNoneMatch_ string
72875	ctx_         context.Context
72876	header_      http.Header
72877}
72878
72879// List: Retrieves a list of Operation resources contained within the
72880// specified organization.
72881func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
72882	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72883	return c
72884}
72885
72886// Filter sets the optional parameter "filter": A filter expression that
72887// filters resources listed in the response. The expression must specify
72888// the field name, a comparison operator, and the value that you want to
72889// use for filtering. The value must be a string, a number, or a
72890// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72891// `<`. For example, if you are filtering Compute Engine instances, you
72892// can exclude instances named `example-instance` by specifying `name !=
72893// example-instance`. You can also filter nested fields. For example,
72894// you could specify `scheduling.automaticRestart = false` to include
72895// instances only if they are not scheduled for automatic restarts. You
72896// can use filtering on nested fields to filter based on resource
72897// labels. To filter on multiple expressions, provide each separate
72898// expression within parentheses. For example: ```
72899// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
72900// ``` By default, each expression is an `AND` expression. However, you
72901// can include `AND` and `OR` expressions explicitly. For example: ```
72902// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
72903// AND (scheduling.automaticRestart = true) ```
72904func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
72905	c.urlParams_.Set("filter", filter)
72906	return c
72907}
72908
72909// MaxResults sets the optional parameter "maxResults": The maximum
72910// number of results per page that should be returned. If the number of
72911// available results is larger than `maxResults`, Compute Engine returns
72912// a `nextPageToken` that can be used to get the next page of results in
72913// subsequent list requests. Acceptable values are `0` to `500`,
72914// inclusive. (Default: `500`)
72915func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
72916	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72917	return c
72918}
72919
72920// OrderBy sets the optional parameter "orderBy": Sorts list results by
72921// a certain order. By default, results are returned in alphanumerical
72922// order based on the resource name. You can also sort results in
72923// descending order based on the creation timestamp using
72924// `orderBy="creationTimestamp desc". This sorts results based on the
72925// `creationTimestamp` field in reverse chronological order (newest
72926// result first). Use this to sort resources like operations so that the
72927// newest operation is returned first. Currently, only sorting by `name`
72928// or `creationTimestamp desc` is supported.
72929func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
72930	c.urlParams_.Set("orderBy", orderBy)
72931	return c
72932}
72933
72934// PageToken sets the optional parameter "pageToken": Specifies a page
72935// token to use. Set `pageToken` to the `nextPageToken` returned by a
72936// previous list request to get the next page of results.
72937func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
72938	c.urlParams_.Set("pageToken", pageToken)
72939	return c
72940}
72941
72942// ParentId sets the optional parameter "parentId": Parent ID for this
72943// request.
72944func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
72945	c.urlParams_.Set("parentId", parentId)
72946	return c
72947}
72948
72949// ReturnPartialSuccess sets the optional parameter
72950// "returnPartialSuccess": Opt-in for partial success behavior which
72951// provides partial results in case of failure. The default value is
72952// false.
72953func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
72954	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72955	return c
72956}
72957
72958// Fields allows partial responses to be retrieved. See
72959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72960// for more information.
72961func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
72962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72963	return c
72964}
72965
72966// IfNoneMatch sets the optional parameter which makes the operation
72967// fail if the object's ETag matches the given value. This is useful for
72968// getting updates only after the object has changed since the last
72969// request. Use googleapi.IsNotModified to check whether the response
72970// error from Do is the result of In-None-Match.
72971func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
72972	c.ifNoneMatch_ = entityTag
72973	return c
72974}
72975
72976// Context sets the context to be used in this call's Do method. Any
72977// pending HTTP request will be aborted if the provided context is
72978// canceled.
72979func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
72980	c.ctx_ = ctx
72981	return c
72982}
72983
72984// Header returns an http.Header that can be modified by the caller to
72985// add HTTP headers to the request.
72986func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
72987	if c.header_ == nil {
72988		c.header_ = make(http.Header)
72989	}
72990	return c.header_
72991}
72992
72993func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
72994	reqHeaders := make(http.Header)
72995	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
72996	for k, v := range c.header_ {
72997		reqHeaders[k] = v
72998	}
72999	reqHeaders.Set("User-Agent", c.s.userAgent())
73000	if c.ifNoneMatch_ != "" {
73001		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73002	}
73003	var body io.Reader = nil
73004	c.urlParams_.Set("alt", alt)
73005	c.urlParams_.Set("prettyPrint", "false")
73006	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
73007	urls += "?" + c.urlParams_.Encode()
73008	req, err := http.NewRequest("GET", urls, body)
73009	if err != nil {
73010		return nil, err
73011	}
73012	req.Header = reqHeaders
73013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73014}
73015
73016// Do executes the "compute.globalOrganizationOperations.list" call.
73017// Exactly one of *OperationList or error will be non-nil. Any non-2xx
73018// status code is an error. Response headers are in either
73019// *OperationList.ServerResponse.Header or (if a response was returned
73020// at all) in error.(*googleapi.Error).Header. Use
73021// googleapi.IsNotModified to check whether the returned error was
73022// because http.StatusNotModified was returned.
73023func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
73024	gensupport.SetOptions(c.urlParams_, opts...)
73025	res, err := c.doRequest("json")
73026	if res != nil && res.StatusCode == http.StatusNotModified {
73027		if res.Body != nil {
73028			res.Body.Close()
73029		}
73030		return nil, &googleapi.Error{
73031			Code:   res.StatusCode,
73032			Header: res.Header,
73033		}
73034	}
73035	if err != nil {
73036		return nil, err
73037	}
73038	defer googleapi.CloseBody(res)
73039	if err := googleapi.CheckResponse(res); err != nil {
73040		return nil, err
73041	}
73042	ret := &OperationList{
73043		ServerResponse: googleapi.ServerResponse{
73044			Header:         res.Header,
73045			HTTPStatusCode: res.StatusCode,
73046		},
73047	}
73048	target := &ret
73049	if err := gensupport.DecodeResponse(target, res); err != nil {
73050		return nil, err
73051	}
73052	return ret, nil
73053	// {
73054	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
73055	//   "flatPath": "locations/global/operations",
73056	//   "httpMethod": "GET",
73057	//   "id": "compute.globalOrganizationOperations.list",
73058	//   "parameters": {
73059	//     "filter": {
73060	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73061	//       "location": "query",
73062	//       "type": "string"
73063	//     },
73064	//     "maxResults": {
73065	//       "default": "500",
73066	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73067	//       "format": "uint32",
73068	//       "location": "query",
73069	//       "minimum": "0",
73070	//       "type": "integer"
73071	//     },
73072	//     "orderBy": {
73073	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
73074	//       "location": "query",
73075	//       "type": "string"
73076	//     },
73077	//     "pageToken": {
73078	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73079	//       "location": "query",
73080	//       "type": "string"
73081	//     },
73082	//     "parentId": {
73083	//       "description": "Parent ID for this request.",
73084	//       "location": "query",
73085	//       "type": "string"
73086	//     },
73087	//     "returnPartialSuccess": {
73088	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73089	//       "location": "query",
73090	//       "type": "boolean"
73091	//     }
73092	//   },
73093	//   "path": "locations/global/operations",
73094	//   "response": {
73095	//     "$ref": "OperationList"
73096	//   },
73097	//   "scopes": [
73098	//     "https://www.googleapis.com/auth/cloud-platform",
73099	//     "https://www.googleapis.com/auth/compute",
73100	//     "https://www.googleapis.com/auth/compute.readonly"
73101	//   ]
73102	// }
73103
73104}
73105
73106// Pages invokes f for each page of results.
73107// A non-nil error returned from f will halt the iteration.
73108// The provided context supersedes any context provided to the Context method.
73109func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
73110	c.ctx_ = ctx
73111	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73112	for {
73113		x, err := c.Do()
73114		if err != nil {
73115			return err
73116		}
73117		if err := f(x); err != nil {
73118			return err
73119		}
73120		if x.NextPageToken == "" {
73121			return nil
73122		}
73123		c.PageToken(x.NextPageToken)
73124	}
73125}
73126
73127// method id "compute.globalPublicDelegatedPrefixes.delete":
73128
73129type GlobalPublicDelegatedPrefixesDeleteCall struct {
73130	s                     *Service
73131	project               string
73132	publicDelegatedPrefix string
73133	urlParams_            gensupport.URLParams
73134	ctx_                  context.Context
73135	header_               http.Header
73136}
73137
73138// Delete: Deletes the specified global PublicDelegatedPrefix.
73139//
73140// - project: Project ID for this request.
73141// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
73142//   to delete.
73143func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
73144	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73145	c.project = project
73146	c.publicDelegatedPrefix = publicDelegatedPrefix
73147	return c
73148}
73149
73150// RequestId sets the optional parameter "requestId": An optional
73151// request ID to identify requests. Specify a unique request ID so that
73152// if you must retry your request, the server will know to ignore the
73153// request if it has already been completed. For example, consider a
73154// situation where you make an initial request and the request times
73155// out. If you make the request again with the same request ID, the
73156// server can check if original operation with the same request ID was
73157// received, and if so, will ignore the second request. This prevents
73158// clients from accidentally creating duplicate commitments. The request
73159// ID must be a valid UUID with the exception that zero UUID is not
73160// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
73161// MixerMutationRequestBuilder
73162func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
73163	c.urlParams_.Set("requestId", requestId)
73164	return c
73165}
73166
73167// Fields allows partial responses to be retrieved. See
73168// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73169// for more information.
73170func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
73171	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73172	return c
73173}
73174
73175// Context sets the context to be used in this call's Do method. Any
73176// pending HTTP request will be aborted if the provided context is
73177// canceled.
73178func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
73179	c.ctx_ = ctx
73180	return c
73181}
73182
73183// Header returns an http.Header that can be modified by the caller to
73184// add HTTP headers to the request.
73185func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
73186	if c.header_ == nil {
73187		c.header_ = make(http.Header)
73188	}
73189	return c.header_
73190}
73191
73192func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
73193	reqHeaders := make(http.Header)
73194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
73195	for k, v := range c.header_ {
73196		reqHeaders[k] = v
73197	}
73198	reqHeaders.Set("User-Agent", c.s.userAgent())
73199	var body io.Reader = nil
73200	c.urlParams_.Set("alt", alt)
73201	c.urlParams_.Set("prettyPrint", "false")
73202	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73203	urls += "?" + c.urlParams_.Encode()
73204	req, err := http.NewRequest("DELETE", urls, body)
73205	if err != nil {
73206		return nil, err
73207	}
73208	req.Header = reqHeaders
73209	googleapi.Expand(req.URL, map[string]string{
73210		"project":               c.project,
73211		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73212	})
73213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73214}
73215
73216// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
73217// Exactly one of *Operation or error will be non-nil. Any non-2xx
73218// status code is an error. Response headers are in either
73219// *Operation.ServerResponse.Header or (if a response was returned at
73220// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73221// to check whether the returned error was because
73222// http.StatusNotModified was returned.
73223func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73224	gensupport.SetOptions(c.urlParams_, opts...)
73225	res, err := c.doRequest("json")
73226	if res != nil && res.StatusCode == http.StatusNotModified {
73227		if res.Body != nil {
73228			res.Body.Close()
73229		}
73230		return nil, &googleapi.Error{
73231			Code:   res.StatusCode,
73232			Header: res.Header,
73233		}
73234	}
73235	if err != nil {
73236		return nil, err
73237	}
73238	defer googleapi.CloseBody(res)
73239	if err := googleapi.CheckResponse(res); err != nil {
73240		return nil, err
73241	}
73242	ret := &Operation{
73243		ServerResponse: googleapi.ServerResponse{
73244			Header:         res.Header,
73245			HTTPStatusCode: res.StatusCode,
73246		},
73247	}
73248	target := &ret
73249	if err := gensupport.DecodeResponse(target, res); err != nil {
73250		return nil, err
73251	}
73252	return ret, nil
73253	// {
73254	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
73255	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73256	//   "httpMethod": "DELETE",
73257	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
73258	//   "parameterOrder": [
73259	//     "project",
73260	//     "publicDelegatedPrefix"
73261	//   ],
73262	//   "parameters": {
73263	//     "project": {
73264	//       "description": "Project ID for this request.",
73265	//       "location": "path",
73266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73267	//       "required": true,
73268	//       "type": "string"
73269	//     },
73270	//     "publicDelegatedPrefix": {
73271	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
73272	//       "location": "path",
73273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73274	//       "required": true,
73275	//       "type": "string"
73276	//     },
73277	//     "requestId": {
73278	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
73279	//       "location": "query",
73280	//       "type": "string"
73281	//     }
73282	//   },
73283	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73284	//   "response": {
73285	//     "$ref": "Operation"
73286	//   },
73287	//   "scopes": [
73288	//     "https://www.googleapis.com/auth/cloud-platform",
73289	//     "https://www.googleapis.com/auth/compute"
73290	//   ]
73291	// }
73292
73293}
73294
73295// method id "compute.globalPublicDelegatedPrefixes.get":
73296
73297type GlobalPublicDelegatedPrefixesGetCall struct {
73298	s                     *Service
73299	project               string
73300	publicDelegatedPrefix string
73301	urlParams_            gensupport.URLParams
73302	ifNoneMatch_          string
73303	ctx_                  context.Context
73304	header_               http.Header
73305}
73306
73307// Get: Returns the specified global PublicDelegatedPrefix resource.
73308//
73309// - project: Project ID for this request.
73310// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
73311//   to return.
73312func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
73313	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73314	c.project = project
73315	c.publicDelegatedPrefix = publicDelegatedPrefix
73316	return c
73317}
73318
73319// Fields allows partial responses to be retrieved. See
73320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73321// for more information.
73322func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
73323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73324	return c
73325}
73326
73327// IfNoneMatch sets the optional parameter which makes the operation
73328// fail if the object's ETag matches the given value. This is useful for
73329// getting updates only after the object has changed since the last
73330// request. Use googleapi.IsNotModified to check whether the response
73331// error from Do is the result of In-None-Match.
73332func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
73333	c.ifNoneMatch_ = entityTag
73334	return c
73335}
73336
73337// Context sets the context to be used in this call's Do method. Any
73338// pending HTTP request will be aborted if the provided context is
73339// canceled.
73340func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
73341	c.ctx_ = ctx
73342	return c
73343}
73344
73345// Header returns an http.Header that can be modified by the caller to
73346// add HTTP headers to the request.
73347func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
73348	if c.header_ == nil {
73349		c.header_ = make(http.Header)
73350	}
73351	return c.header_
73352}
73353
73354func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
73355	reqHeaders := make(http.Header)
73356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
73357	for k, v := range c.header_ {
73358		reqHeaders[k] = v
73359	}
73360	reqHeaders.Set("User-Agent", c.s.userAgent())
73361	if c.ifNoneMatch_ != "" {
73362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73363	}
73364	var body io.Reader = nil
73365	c.urlParams_.Set("alt", alt)
73366	c.urlParams_.Set("prettyPrint", "false")
73367	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73368	urls += "?" + c.urlParams_.Encode()
73369	req, err := http.NewRequest("GET", urls, body)
73370	if err != nil {
73371		return nil, err
73372	}
73373	req.Header = reqHeaders
73374	googleapi.Expand(req.URL, map[string]string{
73375		"project":               c.project,
73376		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73377	})
73378	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73379}
73380
73381// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
73382// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
73383// non-2xx status code is an error. Response headers are in either
73384// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
73385// returned at all) in error.(*googleapi.Error).Header. Use
73386// googleapi.IsNotModified to check whether the returned error was
73387// because http.StatusNotModified was returned.
73388func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
73389	gensupport.SetOptions(c.urlParams_, opts...)
73390	res, err := c.doRequest("json")
73391	if res != nil && res.StatusCode == http.StatusNotModified {
73392		if res.Body != nil {
73393			res.Body.Close()
73394		}
73395		return nil, &googleapi.Error{
73396			Code:   res.StatusCode,
73397			Header: res.Header,
73398		}
73399	}
73400	if err != nil {
73401		return nil, err
73402	}
73403	defer googleapi.CloseBody(res)
73404	if err := googleapi.CheckResponse(res); err != nil {
73405		return nil, err
73406	}
73407	ret := &PublicDelegatedPrefix{
73408		ServerResponse: googleapi.ServerResponse{
73409			Header:         res.Header,
73410			HTTPStatusCode: res.StatusCode,
73411		},
73412	}
73413	target := &ret
73414	if err := gensupport.DecodeResponse(target, res); err != nil {
73415		return nil, err
73416	}
73417	return ret, nil
73418	// {
73419	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
73420	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73421	//   "httpMethod": "GET",
73422	//   "id": "compute.globalPublicDelegatedPrefixes.get",
73423	//   "parameterOrder": [
73424	//     "project",
73425	//     "publicDelegatedPrefix"
73426	//   ],
73427	//   "parameters": {
73428	//     "project": {
73429	//       "description": "Project ID for this request.",
73430	//       "location": "path",
73431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73432	//       "required": true,
73433	//       "type": "string"
73434	//     },
73435	//     "publicDelegatedPrefix": {
73436	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
73437	//       "location": "path",
73438	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73439	//       "required": true,
73440	//       "type": "string"
73441	//     }
73442	//   },
73443	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73444	//   "response": {
73445	//     "$ref": "PublicDelegatedPrefix"
73446	//   },
73447	//   "scopes": [
73448	//     "https://www.googleapis.com/auth/cloud-platform",
73449	//     "https://www.googleapis.com/auth/compute",
73450	//     "https://www.googleapis.com/auth/compute.readonly"
73451	//   ]
73452	// }
73453
73454}
73455
73456// method id "compute.globalPublicDelegatedPrefixes.insert":
73457
73458type GlobalPublicDelegatedPrefixesInsertCall struct {
73459	s                     *Service
73460	project               string
73461	publicdelegatedprefix *PublicDelegatedPrefix
73462	urlParams_            gensupport.URLParams
73463	ctx_                  context.Context
73464	header_               http.Header
73465}
73466
73467// Insert: Creates a global PublicDelegatedPrefix in the specified
73468// project using the parameters that are included in the request.
73469//
73470// - project: Project ID for this request.
73471func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
73472	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73473	c.project = project
73474	c.publicdelegatedprefix = publicdelegatedprefix
73475	return c
73476}
73477
73478// RequestId sets the optional parameter "requestId": An optional
73479// request ID to identify requests. Specify a unique request ID so that
73480// if you must retry your request, the server will know to ignore the
73481// request if it has already been completed. For example, consider a
73482// situation where you make an initial request and the request times
73483// out. If you make the request again with the same request ID, the
73484// server can check if original operation with the same request ID was
73485// received, and if so, will ignore the second request. This prevents
73486// clients from accidentally creating duplicate commitments. The request
73487// ID must be a valid UUID with the exception that zero UUID is not
73488// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
73489// MixerMutationRequestBuilder
73490func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
73491	c.urlParams_.Set("requestId", requestId)
73492	return c
73493}
73494
73495// Fields allows partial responses to be retrieved. See
73496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73497// for more information.
73498func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
73499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73500	return c
73501}
73502
73503// Context sets the context to be used in this call's Do method. Any
73504// pending HTTP request will be aborted if the provided context is
73505// canceled.
73506func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
73507	c.ctx_ = ctx
73508	return c
73509}
73510
73511// Header returns an http.Header that can be modified by the caller to
73512// add HTTP headers to the request.
73513func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
73514	if c.header_ == nil {
73515		c.header_ = make(http.Header)
73516	}
73517	return c.header_
73518}
73519
73520func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
73521	reqHeaders := make(http.Header)
73522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
73523	for k, v := range c.header_ {
73524		reqHeaders[k] = v
73525	}
73526	reqHeaders.Set("User-Agent", c.s.userAgent())
73527	var body io.Reader = nil
73528	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
73529	if err != nil {
73530		return nil, err
73531	}
73532	reqHeaders.Set("Content-Type", "application/json")
73533	c.urlParams_.Set("alt", alt)
73534	c.urlParams_.Set("prettyPrint", "false")
73535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
73536	urls += "?" + c.urlParams_.Encode()
73537	req, err := http.NewRequest("POST", urls, body)
73538	if err != nil {
73539		return nil, err
73540	}
73541	req.Header = reqHeaders
73542	googleapi.Expand(req.URL, map[string]string{
73543		"project": c.project,
73544	})
73545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73546}
73547
73548// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
73549// Exactly one of *Operation or error will be non-nil. Any non-2xx
73550// status code is an error. Response headers are in either
73551// *Operation.ServerResponse.Header or (if a response was returned at
73552// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73553// to check whether the returned error was because
73554// http.StatusNotModified was returned.
73555func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73556	gensupport.SetOptions(c.urlParams_, opts...)
73557	res, err := c.doRequest("json")
73558	if res != nil && res.StatusCode == http.StatusNotModified {
73559		if res.Body != nil {
73560			res.Body.Close()
73561		}
73562		return nil, &googleapi.Error{
73563			Code:   res.StatusCode,
73564			Header: res.Header,
73565		}
73566	}
73567	if err != nil {
73568		return nil, err
73569	}
73570	defer googleapi.CloseBody(res)
73571	if err := googleapi.CheckResponse(res); err != nil {
73572		return nil, err
73573	}
73574	ret := &Operation{
73575		ServerResponse: googleapi.ServerResponse{
73576			Header:         res.Header,
73577			HTTPStatusCode: res.StatusCode,
73578		},
73579	}
73580	target := &ret
73581	if err := gensupport.DecodeResponse(target, res); err != nil {
73582		return nil, err
73583	}
73584	return ret, nil
73585	// {
73586	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
73587	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
73588	//   "httpMethod": "POST",
73589	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
73590	//   "parameterOrder": [
73591	//     "project"
73592	//   ],
73593	//   "parameters": {
73594	//     "project": {
73595	//       "description": "Project ID for this request.",
73596	//       "location": "path",
73597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73598	//       "required": true,
73599	//       "type": "string"
73600	//     },
73601	//     "requestId": {
73602	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
73603	//       "location": "query",
73604	//       "type": "string"
73605	//     }
73606	//   },
73607	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
73608	//   "request": {
73609	//     "$ref": "PublicDelegatedPrefix"
73610	//   },
73611	//   "response": {
73612	//     "$ref": "Operation"
73613	//   },
73614	//   "scopes": [
73615	//     "https://www.googleapis.com/auth/cloud-platform",
73616	//     "https://www.googleapis.com/auth/compute"
73617	//   ]
73618	// }
73619
73620}
73621
73622// method id "compute.globalPublicDelegatedPrefixes.list":
73623
73624type GlobalPublicDelegatedPrefixesListCall struct {
73625	s            *Service
73626	project      string
73627	urlParams_   gensupport.URLParams
73628	ifNoneMatch_ string
73629	ctx_         context.Context
73630	header_      http.Header
73631}
73632
73633// List: Lists the global PublicDelegatedPrefixes for a project.
73634//
73635// - project: Project ID for this request.
73636func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
73637	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73638	c.project = project
73639	return c
73640}
73641
73642// Filter sets the optional parameter "filter": A filter expression that
73643// filters resources listed in the response. The expression must specify
73644// the field name, a comparison operator, and the value that you want to
73645// use for filtering. The value must be a string, a number, or a
73646// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73647// `<`. For example, if you are filtering Compute Engine instances, you
73648// can exclude instances named `example-instance` by specifying `name !=
73649// example-instance`. You can also filter nested fields. For example,
73650// you could specify `scheduling.automaticRestart = false` to include
73651// instances only if they are not scheduled for automatic restarts. You
73652// can use filtering on nested fields to filter based on resource
73653// labels. To filter on multiple expressions, provide each separate
73654// expression within parentheses. For example: ```
73655// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
73656// ``` By default, each expression is an `AND` expression. However, you
73657// can include `AND` and `OR` expressions explicitly. For example: ```
73658// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
73659// AND (scheduling.automaticRestart = true) ```
73660func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
73661	c.urlParams_.Set("filter", filter)
73662	return c
73663}
73664
73665// MaxResults sets the optional parameter "maxResults": The maximum
73666// number of results per page that should be returned. If the number of
73667// available results is larger than `maxResults`, Compute Engine returns
73668// a `nextPageToken` that can be used to get the next page of results in
73669// subsequent list requests. Acceptable values are `0` to `500`,
73670// inclusive. (Default: `500`)
73671func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
73672	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73673	return c
73674}
73675
73676// OrderBy sets the optional parameter "orderBy": Sorts list results by
73677// a certain order. By default, results are returned in alphanumerical
73678// order based on the resource name. You can also sort results in
73679// descending order based on the creation timestamp using
73680// `orderBy="creationTimestamp desc". This sorts results based on the
73681// `creationTimestamp` field in reverse chronological order (newest
73682// result first). Use this to sort resources like operations so that the
73683// newest operation is returned first. Currently, only sorting by `name`
73684// or `creationTimestamp desc` is supported.
73685func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
73686	c.urlParams_.Set("orderBy", orderBy)
73687	return c
73688}
73689
73690// PageToken sets the optional parameter "pageToken": Specifies a page
73691// token to use. Set `pageToken` to the `nextPageToken` returned by a
73692// previous list request to get the next page of results.
73693func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
73694	c.urlParams_.Set("pageToken", pageToken)
73695	return c
73696}
73697
73698// ReturnPartialSuccess sets the optional parameter
73699// "returnPartialSuccess": Opt-in for partial success behavior which
73700// provides partial results in case of failure. The default value is
73701// false.
73702func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
73703	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73704	return c
73705}
73706
73707// Fields allows partial responses to be retrieved. See
73708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73709// for more information.
73710func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
73711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73712	return c
73713}
73714
73715// IfNoneMatch sets the optional parameter which makes the operation
73716// fail if the object's ETag matches the given value. This is useful for
73717// getting updates only after the object has changed since the last
73718// request. Use googleapi.IsNotModified to check whether the response
73719// error from Do is the result of In-None-Match.
73720func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
73721	c.ifNoneMatch_ = entityTag
73722	return c
73723}
73724
73725// Context sets the context to be used in this call's Do method. Any
73726// pending HTTP request will be aborted if the provided context is
73727// canceled.
73728func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
73729	c.ctx_ = ctx
73730	return c
73731}
73732
73733// Header returns an http.Header that can be modified by the caller to
73734// add HTTP headers to the request.
73735func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
73736	if c.header_ == nil {
73737		c.header_ = make(http.Header)
73738	}
73739	return c.header_
73740}
73741
73742func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
73743	reqHeaders := make(http.Header)
73744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
73745	for k, v := range c.header_ {
73746		reqHeaders[k] = v
73747	}
73748	reqHeaders.Set("User-Agent", c.s.userAgent())
73749	if c.ifNoneMatch_ != "" {
73750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73751	}
73752	var body io.Reader = nil
73753	c.urlParams_.Set("alt", alt)
73754	c.urlParams_.Set("prettyPrint", "false")
73755	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
73756	urls += "?" + c.urlParams_.Encode()
73757	req, err := http.NewRequest("GET", urls, body)
73758	if err != nil {
73759		return nil, err
73760	}
73761	req.Header = reqHeaders
73762	googleapi.Expand(req.URL, map[string]string{
73763		"project": c.project,
73764	})
73765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73766}
73767
73768// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
73769// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
73770// Any non-2xx status code is an error. Response headers are in either
73771// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
73772// was returned at all) in error.(*googleapi.Error).Header. Use
73773// googleapi.IsNotModified to check whether the returned error was
73774// because http.StatusNotModified was returned.
73775func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
73776	gensupport.SetOptions(c.urlParams_, opts...)
73777	res, err := c.doRequest("json")
73778	if res != nil && res.StatusCode == http.StatusNotModified {
73779		if res.Body != nil {
73780			res.Body.Close()
73781		}
73782		return nil, &googleapi.Error{
73783			Code:   res.StatusCode,
73784			Header: res.Header,
73785		}
73786	}
73787	if err != nil {
73788		return nil, err
73789	}
73790	defer googleapi.CloseBody(res)
73791	if err := googleapi.CheckResponse(res); err != nil {
73792		return nil, err
73793	}
73794	ret := &PublicDelegatedPrefixList{
73795		ServerResponse: googleapi.ServerResponse{
73796			Header:         res.Header,
73797			HTTPStatusCode: res.StatusCode,
73798		},
73799	}
73800	target := &ret
73801	if err := gensupport.DecodeResponse(target, res); err != nil {
73802		return nil, err
73803	}
73804	return ret, nil
73805	// {
73806	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
73807	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
73808	//   "httpMethod": "GET",
73809	//   "id": "compute.globalPublicDelegatedPrefixes.list",
73810	//   "parameterOrder": [
73811	//     "project"
73812	//   ],
73813	//   "parameters": {
73814	//     "filter": {
73815	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73816	//       "location": "query",
73817	//       "type": "string"
73818	//     },
73819	//     "maxResults": {
73820	//       "default": "500",
73821	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73822	//       "format": "uint32",
73823	//       "location": "query",
73824	//       "minimum": "0",
73825	//       "type": "integer"
73826	//     },
73827	//     "orderBy": {
73828	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
73829	//       "location": "query",
73830	//       "type": "string"
73831	//     },
73832	//     "pageToken": {
73833	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73834	//       "location": "query",
73835	//       "type": "string"
73836	//     },
73837	//     "project": {
73838	//       "description": "Project ID for this request.",
73839	//       "location": "path",
73840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73841	//       "required": true,
73842	//       "type": "string"
73843	//     },
73844	//     "returnPartialSuccess": {
73845	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73846	//       "location": "query",
73847	//       "type": "boolean"
73848	//     }
73849	//   },
73850	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
73851	//   "response": {
73852	//     "$ref": "PublicDelegatedPrefixList"
73853	//   },
73854	//   "scopes": [
73855	//     "https://www.googleapis.com/auth/cloud-platform",
73856	//     "https://www.googleapis.com/auth/compute",
73857	//     "https://www.googleapis.com/auth/compute.readonly"
73858	//   ]
73859	// }
73860
73861}
73862
73863// Pages invokes f for each page of results.
73864// A non-nil error returned from f will halt the iteration.
73865// The provided context supersedes any context provided to the Context method.
73866func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
73867	c.ctx_ = ctx
73868	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73869	for {
73870		x, err := c.Do()
73871		if err != nil {
73872			return err
73873		}
73874		if err := f(x); err != nil {
73875			return err
73876		}
73877		if x.NextPageToken == "" {
73878			return nil
73879		}
73880		c.PageToken(x.NextPageToken)
73881	}
73882}
73883
73884// method id "compute.globalPublicDelegatedPrefixes.patch":
73885
73886type GlobalPublicDelegatedPrefixesPatchCall struct {
73887	s                     *Service
73888	project               string
73889	publicDelegatedPrefix string
73890	publicdelegatedprefix *PublicDelegatedPrefix
73891	urlParams_            gensupport.URLParams
73892	ctx_                  context.Context
73893	header_               http.Header
73894}
73895
73896// Patch: Patches the specified global PublicDelegatedPrefix resource
73897// with the data included in the request. This method supports PATCH
73898// semantics and uses JSON merge patch format and processing rules.
73899//
73900// - project: Project ID for this request.
73901// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
73902//   to patch.
73903func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
73904	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73905	c.project = project
73906	c.publicDelegatedPrefix = publicDelegatedPrefix
73907	c.publicdelegatedprefix = publicdelegatedprefix
73908	return c
73909}
73910
73911// RequestId sets the optional parameter "requestId": An optional
73912// request ID to identify requests. Specify a unique request ID so that
73913// if you must retry your request, the server will know to ignore the
73914// request if it has already been completed. For example, consider a
73915// situation where you make an initial request and the request times
73916// out. If you make the request again with the same request ID, the
73917// server can check if original operation with the same request ID was
73918// received, and if so, will ignore the second request. This prevents
73919// clients from accidentally creating duplicate commitments. The request
73920// ID must be a valid UUID with the exception that zero UUID is not
73921// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
73922// MixerMutationRequestBuilder
73923func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
73924	c.urlParams_.Set("requestId", requestId)
73925	return c
73926}
73927
73928// Fields allows partial responses to be retrieved. See
73929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73930// for more information.
73931func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
73932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73933	return c
73934}
73935
73936// Context sets the context to be used in this call's Do method. Any
73937// pending HTTP request will be aborted if the provided context is
73938// canceled.
73939func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
73940	c.ctx_ = ctx
73941	return c
73942}
73943
73944// Header returns an http.Header that can be modified by the caller to
73945// add HTTP headers to the request.
73946func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
73947	if c.header_ == nil {
73948		c.header_ = make(http.Header)
73949	}
73950	return c.header_
73951}
73952
73953func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
73954	reqHeaders := make(http.Header)
73955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
73956	for k, v := range c.header_ {
73957		reqHeaders[k] = v
73958	}
73959	reqHeaders.Set("User-Agent", c.s.userAgent())
73960	var body io.Reader = nil
73961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
73962	if err != nil {
73963		return nil, err
73964	}
73965	reqHeaders.Set("Content-Type", "application/json")
73966	c.urlParams_.Set("alt", alt)
73967	c.urlParams_.Set("prettyPrint", "false")
73968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73969	urls += "?" + c.urlParams_.Encode()
73970	req, err := http.NewRequest("PATCH", urls, body)
73971	if err != nil {
73972		return nil, err
73973	}
73974	req.Header = reqHeaders
73975	googleapi.Expand(req.URL, map[string]string{
73976		"project":               c.project,
73977		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73978	})
73979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73980}
73981
73982// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
73983// Exactly one of *Operation or error will be non-nil. Any non-2xx
73984// status code is an error. Response headers are in either
73985// *Operation.ServerResponse.Header or (if a response was returned at
73986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73987// to check whether the returned error was because
73988// http.StatusNotModified was returned.
73989func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73990	gensupport.SetOptions(c.urlParams_, opts...)
73991	res, err := c.doRequest("json")
73992	if res != nil && res.StatusCode == http.StatusNotModified {
73993		if res.Body != nil {
73994			res.Body.Close()
73995		}
73996		return nil, &googleapi.Error{
73997			Code:   res.StatusCode,
73998			Header: res.Header,
73999		}
74000	}
74001	if err != nil {
74002		return nil, err
74003	}
74004	defer googleapi.CloseBody(res)
74005	if err := googleapi.CheckResponse(res); err != nil {
74006		return nil, err
74007	}
74008	ret := &Operation{
74009		ServerResponse: googleapi.ServerResponse{
74010			Header:         res.Header,
74011			HTTPStatusCode: res.StatusCode,
74012		},
74013	}
74014	target := &ret
74015	if err := gensupport.DecodeResponse(target, res); err != nil {
74016		return nil, err
74017	}
74018	return ret, nil
74019	// {
74020	//   "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.",
74021	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
74022	//   "httpMethod": "PATCH",
74023	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
74024	//   "parameterOrder": [
74025	//     "project",
74026	//     "publicDelegatedPrefix"
74027	//   ],
74028	//   "parameters": {
74029	//     "project": {
74030	//       "description": "Project ID for this request.",
74031	//       "location": "path",
74032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74033	//       "required": true,
74034	//       "type": "string"
74035	//     },
74036	//     "publicDelegatedPrefix": {
74037	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
74038	//       "location": "path",
74039	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74040	//       "required": true,
74041	//       "type": "string"
74042	//     },
74043	//     "requestId": {
74044	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
74045	//       "location": "query",
74046	//       "type": "string"
74047	//     }
74048	//   },
74049	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
74050	//   "request": {
74051	//     "$ref": "PublicDelegatedPrefix"
74052	//   },
74053	//   "response": {
74054	//     "$ref": "Operation"
74055	//   },
74056	//   "scopes": [
74057	//     "https://www.googleapis.com/auth/cloud-platform",
74058	//     "https://www.googleapis.com/auth/compute"
74059	//   ]
74060	// }
74061
74062}
74063
74064// method id "compute.healthChecks.aggregatedList":
74065
74066type HealthChecksAggregatedListCall struct {
74067	s            *Service
74068	project      string
74069	urlParams_   gensupport.URLParams
74070	ifNoneMatch_ string
74071	ctx_         context.Context
74072	header_      http.Header
74073}
74074
74075// AggregatedList: Retrieves the list of all HealthCheck resources,
74076// regional and global, available to the specified project.
74077//
74078// - project: Name of the project scoping this request.
74079func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
74080	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74081	c.project = project
74082	return c
74083}
74084
74085// Filter sets the optional parameter "filter": A filter expression that
74086// filters resources listed in the response. The expression must specify
74087// the field name, a comparison operator, and the value that you want to
74088// use for filtering. The value must be a string, a number, or a
74089// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74090// `<`. For example, if you are filtering Compute Engine instances, you
74091// can exclude instances named `example-instance` by specifying `name !=
74092// example-instance`. You can also filter nested fields. For example,
74093// you could specify `scheduling.automaticRestart = false` to include
74094// instances only if they are not scheduled for automatic restarts. You
74095// can use filtering on nested fields to filter based on resource
74096// labels. To filter on multiple expressions, provide each separate
74097// expression within parentheses. For example: ```
74098// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
74099// ``` By default, each expression is an `AND` expression. However, you
74100// can include `AND` and `OR` expressions explicitly. For example: ```
74101// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
74102// AND (scheduling.automaticRestart = true) ```
74103func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
74104	c.urlParams_.Set("filter", filter)
74105	return c
74106}
74107
74108// IncludeAllScopes sets the optional parameter "includeAllScopes":
74109// Indicates whether every visible scope for each scope type (zone,
74110// region, global) should be included in the response. For new resource
74111// types added after this field, the flag has no effect as new resource
74112// types will always include every visible scope for each scope type in
74113// response. For resource types which predate this field, if this flag
74114// is omitted or false, only scopes of the scope types where the
74115// resource type is expected to be found will be included.
74116func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
74117	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
74118	return c
74119}
74120
74121// MaxResults sets the optional parameter "maxResults": The maximum
74122// number of results per page that should be returned. If the number of
74123// available results is larger than `maxResults`, Compute Engine returns
74124// a `nextPageToken` that can be used to get the next page of results in
74125// subsequent list requests. Acceptable values are `0` to `500`,
74126// inclusive. (Default: `500`)
74127func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
74128	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74129	return c
74130}
74131
74132// OrderBy sets the optional parameter "orderBy": Sorts list results by
74133// a certain order. By default, results are returned in alphanumerical
74134// order based on the resource name. You can also sort results in
74135// descending order based on the creation timestamp using
74136// `orderBy="creationTimestamp desc". This sorts results based on the
74137// `creationTimestamp` field in reverse chronological order (newest
74138// result first). Use this to sort resources like operations so that the
74139// newest operation is returned first. Currently, only sorting by `name`
74140// or `creationTimestamp desc` is supported.
74141func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
74142	c.urlParams_.Set("orderBy", orderBy)
74143	return c
74144}
74145
74146// PageToken sets the optional parameter "pageToken": Specifies a page
74147// token to use. Set `pageToken` to the `nextPageToken` returned by a
74148// previous list request to get the next page of results.
74149func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
74150	c.urlParams_.Set("pageToken", pageToken)
74151	return c
74152}
74153
74154// ReturnPartialSuccess sets the optional parameter
74155// "returnPartialSuccess": Opt-in for partial success behavior which
74156// provides partial results in case of failure. The default value is
74157// false.
74158func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
74159	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74160	return c
74161}
74162
74163// Fields allows partial responses to be retrieved. See
74164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74165// for more information.
74166func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
74167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74168	return c
74169}
74170
74171// IfNoneMatch sets the optional parameter which makes the operation
74172// fail if the object's ETag matches the given value. This is useful for
74173// getting updates only after the object has changed since the last
74174// request. Use googleapi.IsNotModified to check whether the response
74175// error from Do is the result of In-None-Match.
74176func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
74177	c.ifNoneMatch_ = entityTag
74178	return c
74179}
74180
74181// Context sets the context to be used in this call's Do method. Any
74182// pending HTTP request will be aborted if the provided context is
74183// canceled.
74184func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
74185	c.ctx_ = ctx
74186	return c
74187}
74188
74189// Header returns an http.Header that can be modified by the caller to
74190// add HTTP headers to the request.
74191func (c *HealthChecksAggregatedListCall) Header() http.Header {
74192	if c.header_ == nil {
74193		c.header_ = make(http.Header)
74194	}
74195	return c.header_
74196}
74197
74198func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74199	reqHeaders := make(http.Header)
74200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
74201	for k, v := range c.header_ {
74202		reqHeaders[k] = v
74203	}
74204	reqHeaders.Set("User-Agent", c.s.userAgent())
74205	if c.ifNoneMatch_ != "" {
74206		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74207	}
74208	var body io.Reader = nil
74209	c.urlParams_.Set("alt", alt)
74210	c.urlParams_.Set("prettyPrint", "false")
74211	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks")
74212	urls += "?" + c.urlParams_.Encode()
74213	req, err := http.NewRequest("GET", urls, body)
74214	if err != nil {
74215		return nil, err
74216	}
74217	req.Header = reqHeaders
74218	googleapi.Expand(req.URL, map[string]string{
74219		"project": c.project,
74220	})
74221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74222}
74223
74224// Do executes the "compute.healthChecks.aggregatedList" call.
74225// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
74226// Any non-2xx status code is an error. Response headers are in either
74227// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
74228// was returned at all) in error.(*googleapi.Error).Header. Use
74229// googleapi.IsNotModified to check whether the returned error was
74230// because http.StatusNotModified was returned.
74231func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
74232	gensupport.SetOptions(c.urlParams_, opts...)
74233	res, err := c.doRequest("json")
74234	if res != nil && res.StatusCode == http.StatusNotModified {
74235		if res.Body != nil {
74236			res.Body.Close()
74237		}
74238		return nil, &googleapi.Error{
74239			Code:   res.StatusCode,
74240			Header: res.Header,
74241		}
74242	}
74243	if err != nil {
74244		return nil, err
74245	}
74246	defer googleapi.CloseBody(res)
74247	if err := googleapi.CheckResponse(res); err != nil {
74248		return nil, err
74249	}
74250	ret := &HealthChecksAggregatedList{
74251		ServerResponse: googleapi.ServerResponse{
74252			Header:         res.Header,
74253			HTTPStatusCode: res.StatusCode,
74254		},
74255	}
74256	target := &ret
74257	if err := gensupport.DecodeResponse(target, res); err != nil {
74258		return nil, err
74259	}
74260	return ret, nil
74261	// {
74262	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
74263	//   "flatPath": "projects/{project}/aggregated/healthChecks",
74264	//   "httpMethod": "GET",
74265	//   "id": "compute.healthChecks.aggregatedList",
74266	//   "parameterOrder": [
74267	//     "project"
74268	//   ],
74269	//   "parameters": {
74270	//     "filter": {
74271	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
74272	//       "location": "query",
74273	//       "type": "string"
74274	//     },
74275	//     "includeAllScopes": {
74276	//       "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.",
74277	//       "location": "query",
74278	//       "type": "boolean"
74279	//     },
74280	//     "maxResults": {
74281	//       "default": "500",
74282	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
74283	//       "format": "uint32",
74284	//       "location": "query",
74285	//       "minimum": "0",
74286	//       "type": "integer"
74287	//     },
74288	//     "orderBy": {
74289	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
74290	//       "location": "query",
74291	//       "type": "string"
74292	//     },
74293	//     "pageToken": {
74294	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
74295	//       "location": "query",
74296	//       "type": "string"
74297	//     },
74298	//     "project": {
74299	//       "description": "Name of the project scoping this request.",
74300	//       "location": "path",
74301	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74302	//       "required": true,
74303	//       "type": "string"
74304	//     },
74305	//     "returnPartialSuccess": {
74306	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74307	//       "location": "query",
74308	//       "type": "boolean"
74309	//     }
74310	//   },
74311	//   "path": "projects/{project}/aggregated/healthChecks",
74312	//   "response": {
74313	//     "$ref": "HealthChecksAggregatedList"
74314	//   },
74315	//   "scopes": [
74316	//     "https://www.googleapis.com/auth/cloud-platform",
74317	//     "https://www.googleapis.com/auth/compute",
74318	//     "https://www.googleapis.com/auth/compute.readonly"
74319	//   ]
74320	// }
74321
74322}
74323
74324// Pages invokes f for each page of results.
74325// A non-nil error returned from f will halt the iteration.
74326// The provided context supersedes any context provided to the Context method.
74327func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
74328	c.ctx_ = ctx
74329	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74330	for {
74331		x, err := c.Do()
74332		if err != nil {
74333			return err
74334		}
74335		if err := f(x); err != nil {
74336			return err
74337		}
74338		if x.NextPageToken == "" {
74339			return nil
74340		}
74341		c.PageToken(x.NextPageToken)
74342	}
74343}
74344
74345// method id "compute.healthChecks.delete":
74346
74347type HealthChecksDeleteCall struct {
74348	s           *Service
74349	project     string
74350	healthCheck string
74351	urlParams_  gensupport.URLParams
74352	ctx_        context.Context
74353	header_     http.Header
74354}
74355
74356// Delete: Deletes the specified HealthCheck resource.
74357//
74358// - healthCheck: Name of the HealthCheck resource to delete.
74359// - project: Project ID for this request.
74360func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
74361	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74362	c.project = project
74363	c.healthCheck = healthCheck
74364	return c
74365}
74366
74367// RequestId sets the optional parameter "requestId": An optional
74368// request ID to identify requests. Specify a unique request ID so that
74369// if you must retry your request, the server will know to ignore the
74370// request if it has already been completed. For example, consider a
74371// situation where you make an initial request and the request times
74372// out. If you make the request again with the same request ID, the
74373// server can check if original operation with the same request ID was
74374// received, and if so, will ignore the second request. This prevents
74375// clients from accidentally creating duplicate commitments. The request
74376// ID must be a valid UUID with the exception that zero UUID is not
74377// supported ( 00000000-0000-0000-0000-000000000000).
74378func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
74379	c.urlParams_.Set("requestId", requestId)
74380	return c
74381}
74382
74383// Fields allows partial responses to be retrieved. See
74384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74385// for more information.
74386func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
74387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74388	return c
74389}
74390
74391// Context sets the context to be used in this call's Do method. Any
74392// pending HTTP request will be aborted if the provided context is
74393// canceled.
74394func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
74395	c.ctx_ = ctx
74396	return c
74397}
74398
74399// Header returns an http.Header that can be modified by the caller to
74400// add HTTP headers to the request.
74401func (c *HealthChecksDeleteCall) Header() http.Header {
74402	if c.header_ == nil {
74403		c.header_ = make(http.Header)
74404	}
74405	return c.header_
74406}
74407
74408func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
74409	reqHeaders := make(http.Header)
74410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
74411	for k, v := range c.header_ {
74412		reqHeaders[k] = v
74413	}
74414	reqHeaders.Set("User-Agent", c.s.userAgent())
74415	var body io.Reader = nil
74416	c.urlParams_.Set("alt", alt)
74417	c.urlParams_.Set("prettyPrint", "false")
74418	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
74419	urls += "?" + c.urlParams_.Encode()
74420	req, err := http.NewRequest("DELETE", urls, body)
74421	if err != nil {
74422		return nil, err
74423	}
74424	req.Header = reqHeaders
74425	googleapi.Expand(req.URL, map[string]string{
74426		"project":     c.project,
74427		"healthCheck": c.healthCheck,
74428	})
74429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74430}
74431
74432// Do executes the "compute.healthChecks.delete" call.
74433// Exactly one of *Operation or error will be non-nil. Any non-2xx
74434// status code is an error. Response headers are in either
74435// *Operation.ServerResponse.Header or (if a response was returned at
74436// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74437// to check whether the returned error was because
74438// http.StatusNotModified was returned.
74439func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74440	gensupport.SetOptions(c.urlParams_, opts...)
74441	res, err := c.doRequest("json")
74442	if res != nil && res.StatusCode == http.StatusNotModified {
74443		if res.Body != nil {
74444			res.Body.Close()
74445		}
74446		return nil, &googleapi.Error{
74447			Code:   res.StatusCode,
74448			Header: res.Header,
74449		}
74450	}
74451	if err != nil {
74452		return nil, err
74453	}
74454	defer googleapi.CloseBody(res)
74455	if err := googleapi.CheckResponse(res); err != nil {
74456		return nil, err
74457	}
74458	ret := &Operation{
74459		ServerResponse: googleapi.ServerResponse{
74460			Header:         res.Header,
74461			HTTPStatusCode: res.StatusCode,
74462		},
74463	}
74464	target := &ret
74465	if err := gensupport.DecodeResponse(target, res); err != nil {
74466		return nil, err
74467	}
74468	return ret, nil
74469	// {
74470	//   "description": "Deletes the specified HealthCheck resource.",
74471	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
74472	//   "httpMethod": "DELETE",
74473	//   "id": "compute.healthChecks.delete",
74474	//   "parameterOrder": [
74475	//     "project",
74476	//     "healthCheck"
74477	//   ],
74478	//   "parameters": {
74479	//     "healthCheck": {
74480	//       "description": "Name of the HealthCheck resource to delete.",
74481	//       "location": "path",
74482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74483	//       "required": true,
74484	//       "type": "string"
74485	//     },
74486	//     "project": {
74487	//       "description": "Project ID for this request.",
74488	//       "location": "path",
74489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74490	//       "required": true,
74491	//       "type": "string"
74492	//     },
74493	//     "requestId": {
74494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
74495	//       "location": "query",
74496	//       "type": "string"
74497	//     }
74498	//   },
74499	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
74500	//   "response": {
74501	//     "$ref": "Operation"
74502	//   },
74503	//   "scopes": [
74504	//     "https://www.googleapis.com/auth/cloud-platform",
74505	//     "https://www.googleapis.com/auth/compute"
74506	//   ]
74507	// }
74508
74509}
74510
74511// method id "compute.healthChecks.get":
74512
74513type HealthChecksGetCall struct {
74514	s            *Service
74515	project      string
74516	healthCheck  string
74517	urlParams_   gensupport.URLParams
74518	ifNoneMatch_ string
74519	ctx_         context.Context
74520	header_      http.Header
74521}
74522
74523// Get: Returns the specified HealthCheck resource. Gets a list of
74524// available health checks by making a list() request.
74525//
74526// - healthCheck: Name of the HealthCheck resource to return.
74527// - project: Project ID for this request.
74528func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
74529	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74530	c.project = project
74531	c.healthCheck = healthCheck
74532	return c
74533}
74534
74535// Fields allows partial responses to be retrieved. See
74536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74537// for more information.
74538func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
74539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74540	return c
74541}
74542
74543// IfNoneMatch sets the optional parameter which makes the operation
74544// fail if the object's ETag matches the given value. This is useful for
74545// getting updates only after the object has changed since the last
74546// request. Use googleapi.IsNotModified to check whether the response
74547// error from Do is the result of In-None-Match.
74548func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
74549	c.ifNoneMatch_ = entityTag
74550	return c
74551}
74552
74553// Context sets the context to be used in this call's Do method. Any
74554// pending HTTP request will be aborted if the provided context is
74555// canceled.
74556func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
74557	c.ctx_ = ctx
74558	return c
74559}
74560
74561// Header returns an http.Header that can be modified by the caller to
74562// add HTTP headers to the request.
74563func (c *HealthChecksGetCall) Header() http.Header {
74564	if c.header_ == nil {
74565		c.header_ = make(http.Header)
74566	}
74567	return c.header_
74568}
74569
74570func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
74571	reqHeaders := make(http.Header)
74572	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
74573	for k, v := range c.header_ {
74574		reqHeaders[k] = v
74575	}
74576	reqHeaders.Set("User-Agent", c.s.userAgent())
74577	if c.ifNoneMatch_ != "" {
74578		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74579	}
74580	var body io.Reader = nil
74581	c.urlParams_.Set("alt", alt)
74582	c.urlParams_.Set("prettyPrint", "false")
74583	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
74584	urls += "?" + c.urlParams_.Encode()
74585	req, err := http.NewRequest("GET", urls, body)
74586	if err != nil {
74587		return nil, err
74588	}
74589	req.Header = reqHeaders
74590	googleapi.Expand(req.URL, map[string]string{
74591		"project":     c.project,
74592		"healthCheck": c.healthCheck,
74593	})
74594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74595}
74596
74597// Do executes the "compute.healthChecks.get" call.
74598// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
74599// status code is an error. Response headers are in either
74600// *HealthCheck.ServerResponse.Header or (if a response was returned at
74601// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74602// to check whether the returned error was because
74603// http.StatusNotModified was returned.
74604func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
74605	gensupport.SetOptions(c.urlParams_, opts...)
74606	res, err := c.doRequest("json")
74607	if res != nil && res.StatusCode == http.StatusNotModified {
74608		if res.Body != nil {
74609			res.Body.Close()
74610		}
74611		return nil, &googleapi.Error{
74612			Code:   res.StatusCode,
74613			Header: res.Header,
74614		}
74615	}
74616	if err != nil {
74617		return nil, err
74618	}
74619	defer googleapi.CloseBody(res)
74620	if err := googleapi.CheckResponse(res); err != nil {
74621		return nil, err
74622	}
74623	ret := &HealthCheck{
74624		ServerResponse: googleapi.ServerResponse{
74625			Header:         res.Header,
74626			HTTPStatusCode: res.StatusCode,
74627		},
74628	}
74629	target := &ret
74630	if err := gensupport.DecodeResponse(target, res); err != nil {
74631		return nil, err
74632	}
74633	return ret, nil
74634	// {
74635	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
74636	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
74637	//   "httpMethod": "GET",
74638	//   "id": "compute.healthChecks.get",
74639	//   "parameterOrder": [
74640	//     "project",
74641	//     "healthCheck"
74642	//   ],
74643	//   "parameters": {
74644	//     "healthCheck": {
74645	//       "description": "Name of the HealthCheck resource to return.",
74646	//       "location": "path",
74647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74648	//       "required": true,
74649	//       "type": "string"
74650	//     },
74651	//     "project": {
74652	//       "description": "Project ID for this request.",
74653	//       "location": "path",
74654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74655	//       "required": true,
74656	//       "type": "string"
74657	//     }
74658	//   },
74659	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
74660	//   "response": {
74661	//     "$ref": "HealthCheck"
74662	//   },
74663	//   "scopes": [
74664	//     "https://www.googleapis.com/auth/cloud-platform",
74665	//     "https://www.googleapis.com/auth/compute",
74666	//     "https://www.googleapis.com/auth/compute.readonly"
74667	//   ]
74668	// }
74669
74670}
74671
74672// method id "compute.healthChecks.insert":
74673
74674type HealthChecksInsertCall struct {
74675	s           *Service
74676	project     string
74677	healthcheck *HealthCheck
74678	urlParams_  gensupport.URLParams
74679	ctx_        context.Context
74680	header_     http.Header
74681}
74682
74683// Insert: Creates a HealthCheck resource in the specified project using
74684// the data included in the request.
74685//
74686// - project: Project ID for this request.
74687func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
74688	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74689	c.project = project
74690	c.healthcheck = healthcheck
74691	return c
74692}
74693
74694// RequestId sets the optional parameter "requestId": An optional
74695// request ID to identify requests. Specify a unique request ID so that
74696// if you must retry your request, the server will know to ignore the
74697// request if it has already been completed. For example, consider a
74698// situation where you make an initial request and the request times
74699// out. If you make the request again with the same request ID, the
74700// server can check if original operation with the same request ID was
74701// received, and if so, will ignore the second request. This prevents
74702// clients from accidentally creating duplicate commitments. The request
74703// ID must be a valid UUID with the exception that zero UUID is not
74704// supported ( 00000000-0000-0000-0000-000000000000).
74705func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
74706	c.urlParams_.Set("requestId", requestId)
74707	return c
74708}
74709
74710// Fields allows partial responses to be retrieved. See
74711// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74712// for more information.
74713func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
74714	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74715	return c
74716}
74717
74718// Context sets the context to be used in this call's Do method. Any
74719// pending HTTP request will be aborted if the provided context is
74720// canceled.
74721func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
74722	c.ctx_ = ctx
74723	return c
74724}
74725
74726// Header returns an http.Header that can be modified by the caller to
74727// add HTTP headers to the request.
74728func (c *HealthChecksInsertCall) Header() http.Header {
74729	if c.header_ == nil {
74730		c.header_ = make(http.Header)
74731	}
74732	return c.header_
74733}
74734
74735func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
74736	reqHeaders := make(http.Header)
74737	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
74738	for k, v := range c.header_ {
74739		reqHeaders[k] = v
74740	}
74741	reqHeaders.Set("User-Agent", c.s.userAgent())
74742	var body io.Reader = nil
74743	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
74744	if err != nil {
74745		return nil, err
74746	}
74747	reqHeaders.Set("Content-Type", "application/json")
74748	c.urlParams_.Set("alt", alt)
74749	c.urlParams_.Set("prettyPrint", "false")
74750	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
74751	urls += "?" + c.urlParams_.Encode()
74752	req, err := http.NewRequest("POST", urls, body)
74753	if err != nil {
74754		return nil, err
74755	}
74756	req.Header = reqHeaders
74757	googleapi.Expand(req.URL, map[string]string{
74758		"project": c.project,
74759	})
74760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74761}
74762
74763// Do executes the "compute.healthChecks.insert" call.
74764// Exactly one of *Operation or error will be non-nil. Any non-2xx
74765// status code is an error. Response headers are in either
74766// *Operation.ServerResponse.Header or (if a response was returned at
74767// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74768// to check whether the returned error was because
74769// http.StatusNotModified was returned.
74770func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74771	gensupport.SetOptions(c.urlParams_, opts...)
74772	res, err := c.doRequest("json")
74773	if res != nil && res.StatusCode == http.StatusNotModified {
74774		if res.Body != nil {
74775			res.Body.Close()
74776		}
74777		return nil, &googleapi.Error{
74778			Code:   res.StatusCode,
74779			Header: res.Header,
74780		}
74781	}
74782	if err != nil {
74783		return nil, err
74784	}
74785	defer googleapi.CloseBody(res)
74786	if err := googleapi.CheckResponse(res); err != nil {
74787		return nil, err
74788	}
74789	ret := &Operation{
74790		ServerResponse: googleapi.ServerResponse{
74791			Header:         res.Header,
74792			HTTPStatusCode: res.StatusCode,
74793		},
74794	}
74795	target := &ret
74796	if err := gensupport.DecodeResponse(target, res); err != nil {
74797		return nil, err
74798	}
74799	return ret, nil
74800	// {
74801	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
74802	//   "flatPath": "projects/{project}/global/healthChecks",
74803	//   "httpMethod": "POST",
74804	//   "id": "compute.healthChecks.insert",
74805	//   "parameterOrder": [
74806	//     "project"
74807	//   ],
74808	//   "parameters": {
74809	//     "project": {
74810	//       "description": "Project ID for this request.",
74811	//       "location": "path",
74812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74813	//       "required": true,
74814	//       "type": "string"
74815	//     },
74816	//     "requestId": {
74817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
74818	//       "location": "query",
74819	//       "type": "string"
74820	//     }
74821	//   },
74822	//   "path": "projects/{project}/global/healthChecks",
74823	//   "request": {
74824	//     "$ref": "HealthCheck"
74825	//   },
74826	//   "response": {
74827	//     "$ref": "Operation"
74828	//   },
74829	//   "scopes": [
74830	//     "https://www.googleapis.com/auth/cloud-platform",
74831	//     "https://www.googleapis.com/auth/compute"
74832	//   ]
74833	// }
74834
74835}
74836
74837// method id "compute.healthChecks.list":
74838
74839type HealthChecksListCall struct {
74840	s            *Service
74841	project      string
74842	urlParams_   gensupport.URLParams
74843	ifNoneMatch_ string
74844	ctx_         context.Context
74845	header_      http.Header
74846}
74847
74848// List: Retrieves the list of HealthCheck resources available to the
74849// specified project.
74850//
74851// - project: Project ID for this request.
74852func (r *HealthChecksService) List(project string) *HealthChecksListCall {
74853	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74854	c.project = project
74855	return c
74856}
74857
74858// Filter sets the optional parameter "filter": A filter expression that
74859// filters resources listed in the response. The expression must specify
74860// the field name, a comparison operator, and the value that you want to
74861// use for filtering. The value must be a string, a number, or a
74862// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74863// `<`. For example, if you are filtering Compute Engine instances, you
74864// can exclude instances named `example-instance` by specifying `name !=
74865// example-instance`. You can also filter nested fields. For example,
74866// you could specify `scheduling.automaticRestart = false` to include
74867// instances only if they are not scheduled for automatic restarts. You
74868// can use filtering on nested fields to filter based on resource
74869// labels. To filter on multiple expressions, provide each separate
74870// expression within parentheses. For example: ```
74871// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
74872// ``` By default, each expression is an `AND` expression. However, you
74873// can include `AND` and `OR` expressions explicitly. For example: ```
74874// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
74875// AND (scheduling.automaticRestart = true) ```
74876func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
74877	c.urlParams_.Set("filter", filter)
74878	return c
74879}
74880
74881// MaxResults sets the optional parameter "maxResults": The maximum
74882// number of results per page that should be returned. If the number of
74883// available results is larger than `maxResults`, Compute Engine returns
74884// a `nextPageToken` that can be used to get the next page of results in
74885// subsequent list requests. Acceptable values are `0` to `500`,
74886// inclusive. (Default: `500`)
74887func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
74888	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74889	return c
74890}
74891
74892// OrderBy sets the optional parameter "orderBy": Sorts list results by
74893// a certain order. By default, results are returned in alphanumerical
74894// order based on the resource name. You can also sort results in
74895// descending order based on the creation timestamp using
74896// `orderBy="creationTimestamp desc". This sorts results based on the
74897// `creationTimestamp` field in reverse chronological order (newest
74898// result first). Use this to sort resources like operations so that the
74899// newest operation is returned first. Currently, only sorting by `name`
74900// or `creationTimestamp desc` is supported.
74901func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
74902	c.urlParams_.Set("orderBy", orderBy)
74903	return c
74904}
74905
74906// PageToken sets the optional parameter "pageToken": Specifies a page
74907// token to use. Set `pageToken` to the `nextPageToken` returned by a
74908// previous list request to get the next page of results.
74909func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
74910	c.urlParams_.Set("pageToken", pageToken)
74911	return c
74912}
74913
74914// ReturnPartialSuccess sets the optional parameter
74915// "returnPartialSuccess": Opt-in for partial success behavior which
74916// provides partial results in case of failure. The default value is
74917// false.
74918func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
74919	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74920	return c
74921}
74922
74923// Fields allows partial responses to be retrieved. See
74924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74925// for more information.
74926func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
74927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74928	return c
74929}
74930
74931// IfNoneMatch sets the optional parameter which makes the operation
74932// fail if the object's ETag matches the given value. This is useful for
74933// getting updates only after the object has changed since the last
74934// request. Use googleapi.IsNotModified to check whether the response
74935// error from Do is the result of In-None-Match.
74936func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
74937	c.ifNoneMatch_ = entityTag
74938	return c
74939}
74940
74941// Context sets the context to be used in this call's Do method. Any
74942// pending HTTP request will be aborted if the provided context is
74943// canceled.
74944func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
74945	c.ctx_ = ctx
74946	return c
74947}
74948
74949// Header returns an http.Header that can be modified by the caller to
74950// add HTTP headers to the request.
74951func (c *HealthChecksListCall) Header() http.Header {
74952	if c.header_ == nil {
74953		c.header_ = make(http.Header)
74954	}
74955	return c.header_
74956}
74957
74958func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
74959	reqHeaders := make(http.Header)
74960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
74961	for k, v := range c.header_ {
74962		reqHeaders[k] = v
74963	}
74964	reqHeaders.Set("User-Agent", c.s.userAgent())
74965	if c.ifNoneMatch_ != "" {
74966		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74967	}
74968	var body io.Reader = nil
74969	c.urlParams_.Set("alt", alt)
74970	c.urlParams_.Set("prettyPrint", "false")
74971	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
74972	urls += "?" + c.urlParams_.Encode()
74973	req, err := http.NewRequest("GET", urls, body)
74974	if err != nil {
74975		return nil, err
74976	}
74977	req.Header = reqHeaders
74978	googleapi.Expand(req.URL, map[string]string{
74979		"project": c.project,
74980	})
74981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74982}
74983
74984// Do executes the "compute.healthChecks.list" call.
74985// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
74986// status code is an error. Response headers are in either
74987// *HealthCheckList.ServerResponse.Header or (if a response was returned
74988// at all) in error.(*googleapi.Error).Header. Use
74989// googleapi.IsNotModified to check whether the returned error was
74990// because http.StatusNotModified was returned.
74991func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
74992	gensupport.SetOptions(c.urlParams_, opts...)
74993	res, err := c.doRequest("json")
74994	if res != nil && res.StatusCode == http.StatusNotModified {
74995		if res.Body != nil {
74996			res.Body.Close()
74997		}
74998		return nil, &googleapi.Error{
74999			Code:   res.StatusCode,
75000			Header: res.Header,
75001		}
75002	}
75003	if err != nil {
75004		return nil, err
75005	}
75006	defer googleapi.CloseBody(res)
75007	if err := googleapi.CheckResponse(res); err != nil {
75008		return nil, err
75009	}
75010	ret := &HealthCheckList{
75011		ServerResponse: googleapi.ServerResponse{
75012			Header:         res.Header,
75013			HTTPStatusCode: res.StatusCode,
75014		},
75015	}
75016	target := &ret
75017	if err := gensupport.DecodeResponse(target, res); err != nil {
75018		return nil, err
75019	}
75020	return ret, nil
75021	// {
75022	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
75023	//   "flatPath": "projects/{project}/global/healthChecks",
75024	//   "httpMethod": "GET",
75025	//   "id": "compute.healthChecks.list",
75026	//   "parameterOrder": [
75027	//     "project"
75028	//   ],
75029	//   "parameters": {
75030	//     "filter": {
75031	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
75032	//       "location": "query",
75033	//       "type": "string"
75034	//     },
75035	//     "maxResults": {
75036	//       "default": "500",
75037	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
75038	//       "format": "uint32",
75039	//       "location": "query",
75040	//       "minimum": "0",
75041	//       "type": "integer"
75042	//     },
75043	//     "orderBy": {
75044	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
75045	//       "location": "query",
75046	//       "type": "string"
75047	//     },
75048	//     "pageToken": {
75049	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
75050	//       "location": "query",
75051	//       "type": "string"
75052	//     },
75053	//     "project": {
75054	//       "description": "Project ID for this request.",
75055	//       "location": "path",
75056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75057	//       "required": true,
75058	//       "type": "string"
75059	//     },
75060	//     "returnPartialSuccess": {
75061	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75062	//       "location": "query",
75063	//       "type": "boolean"
75064	//     }
75065	//   },
75066	//   "path": "projects/{project}/global/healthChecks",
75067	//   "response": {
75068	//     "$ref": "HealthCheckList"
75069	//   },
75070	//   "scopes": [
75071	//     "https://www.googleapis.com/auth/cloud-platform",
75072	//     "https://www.googleapis.com/auth/compute",
75073	//     "https://www.googleapis.com/auth/compute.readonly"
75074	//   ]
75075	// }
75076
75077}
75078
75079// Pages invokes f for each page of results.
75080// A non-nil error returned from f will halt the iteration.
75081// The provided context supersedes any context provided to the Context method.
75082func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
75083	c.ctx_ = ctx
75084	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75085	for {
75086		x, err := c.Do()
75087		if err != nil {
75088			return err
75089		}
75090		if err := f(x); err != nil {
75091			return err
75092		}
75093		if x.NextPageToken == "" {
75094			return nil
75095		}
75096		c.PageToken(x.NextPageToken)
75097	}
75098}
75099
75100// method id "compute.healthChecks.patch":
75101
75102type HealthChecksPatchCall struct {
75103	s           *Service
75104	project     string
75105	healthCheck string
75106	healthcheck *HealthCheck
75107	urlParams_  gensupport.URLParams
75108	ctx_        context.Context
75109	header_     http.Header
75110}
75111
75112// Patch: Updates a HealthCheck resource in the specified project using
75113// the data included in the request. This method supports PATCH
75114// semantics and uses the JSON merge patch format and processing rules.
75115//
75116// - healthCheck: Name of the HealthCheck resource to patch.
75117// - project: Project ID for this request.
75118func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
75119	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75120	c.project = project
75121	c.healthCheck = healthCheck
75122	c.healthcheck = healthcheck
75123	return c
75124}
75125
75126// RequestId sets the optional parameter "requestId": An optional
75127// request ID to identify requests. Specify a unique request ID so that
75128// if you must retry your request, the server will know to ignore the
75129// request if it has already been completed. For example, consider a
75130// situation where you make an initial request and the request times
75131// out. If you make the request again with the same request ID, the
75132// server can check if original operation with the same request ID was
75133// received, and if so, will ignore the second request. This prevents
75134// clients from accidentally creating duplicate commitments. The request
75135// ID must be a valid UUID with the exception that zero UUID is not
75136// supported ( 00000000-0000-0000-0000-000000000000).
75137func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
75138	c.urlParams_.Set("requestId", requestId)
75139	return c
75140}
75141
75142// Fields allows partial responses to be retrieved. See
75143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75144// for more information.
75145func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
75146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75147	return c
75148}
75149
75150// Context sets the context to be used in this call's Do method. Any
75151// pending HTTP request will be aborted if the provided context is
75152// canceled.
75153func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
75154	c.ctx_ = ctx
75155	return c
75156}
75157
75158// Header returns an http.Header that can be modified by the caller to
75159// add HTTP headers to the request.
75160func (c *HealthChecksPatchCall) Header() http.Header {
75161	if c.header_ == nil {
75162		c.header_ = make(http.Header)
75163	}
75164	return c.header_
75165}
75166
75167func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
75168	reqHeaders := make(http.Header)
75169	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
75170	for k, v := range c.header_ {
75171		reqHeaders[k] = v
75172	}
75173	reqHeaders.Set("User-Agent", c.s.userAgent())
75174	var body io.Reader = nil
75175	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75176	if err != nil {
75177		return nil, err
75178	}
75179	reqHeaders.Set("Content-Type", "application/json")
75180	c.urlParams_.Set("alt", alt)
75181	c.urlParams_.Set("prettyPrint", "false")
75182	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75183	urls += "?" + c.urlParams_.Encode()
75184	req, err := http.NewRequest("PATCH", urls, body)
75185	if err != nil {
75186		return nil, err
75187	}
75188	req.Header = reqHeaders
75189	googleapi.Expand(req.URL, map[string]string{
75190		"project":     c.project,
75191		"healthCheck": c.healthCheck,
75192	})
75193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75194}
75195
75196// Do executes the "compute.healthChecks.patch" call.
75197// Exactly one of *Operation or error will be non-nil. Any non-2xx
75198// status code is an error. Response headers are in either
75199// *Operation.ServerResponse.Header or (if a response was returned at
75200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75201// to check whether the returned error was because
75202// http.StatusNotModified was returned.
75203func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75204	gensupport.SetOptions(c.urlParams_, opts...)
75205	res, err := c.doRequest("json")
75206	if res != nil && res.StatusCode == http.StatusNotModified {
75207		if res.Body != nil {
75208			res.Body.Close()
75209		}
75210		return nil, &googleapi.Error{
75211			Code:   res.StatusCode,
75212			Header: res.Header,
75213		}
75214	}
75215	if err != nil {
75216		return nil, err
75217	}
75218	defer googleapi.CloseBody(res)
75219	if err := googleapi.CheckResponse(res); err != nil {
75220		return nil, err
75221	}
75222	ret := &Operation{
75223		ServerResponse: googleapi.ServerResponse{
75224			Header:         res.Header,
75225			HTTPStatusCode: res.StatusCode,
75226		},
75227	}
75228	target := &ret
75229	if err := gensupport.DecodeResponse(target, res); err != nil {
75230		return nil, err
75231	}
75232	return ret, nil
75233	// {
75234	//   "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.",
75235	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
75236	//   "httpMethod": "PATCH",
75237	//   "id": "compute.healthChecks.patch",
75238	//   "parameterOrder": [
75239	//     "project",
75240	//     "healthCheck"
75241	//   ],
75242	//   "parameters": {
75243	//     "healthCheck": {
75244	//       "description": "Name of the HealthCheck resource to patch.",
75245	//       "location": "path",
75246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75247	//       "required": true,
75248	//       "type": "string"
75249	//     },
75250	//     "project": {
75251	//       "description": "Project ID for this request.",
75252	//       "location": "path",
75253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75254	//       "required": true,
75255	//       "type": "string"
75256	//     },
75257	//     "requestId": {
75258	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75259	//       "location": "query",
75260	//       "type": "string"
75261	//     }
75262	//   },
75263	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75264	//   "request": {
75265	//     "$ref": "HealthCheck"
75266	//   },
75267	//   "response": {
75268	//     "$ref": "Operation"
75269	//   },
75270	//   "scopes": [
75271	//     "https://www.googleapis.com/auth/cloud-platform",
75272	//     "https://www.googleapis.com/auth/compute"
75273	//   ]
75274	// }
75275
75276}
75277
75278// method id "compute.healthChecks.update":
75279
75280type HealthChecksUpdateCall struct {
75281	s           *Service
75282	project     string
75283	healthCheck string
75284	healthcheck *HealthCheck
75285	urlParams_  gensupport.URLParams
75286	ctx_        context.Context
75287	header_     http.Header
75288}
75289
75290// Update: Updates a HealthCheck resource in the specified project using
75291// the data included in the request.
75292//
75293// - healthCheck: Name of the HealthCheck resource to update.
75294// - project: Project ID for this request.
75295func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
75296	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75297	c.project = project
75298	c.healthCheck = healthCheck
75299	c.healthcheck = healthcheck
75300	return c
75301}
75302
75303// RequestId sets the optional parameter "requestId": An optional
75304// request ID to identify requests. Specify a unique request ID so that
75305// if you must retry your request, the server will know to ignore the
75306// request if it has already been completed. For example, consider a
75307// situation where you make an initial request and the request times
75308// out. If you make the request again with the same request ID, the
75309// server can check if original operation with the same request ID was
75310// received, and if so, will ignore the second request. This prevents
75311// clients from accidentally creating duplicate commitments. The request
75312// ID must be a valid UUID with the exception that zero UUID is not
75313// supported ( 00000000-0000-0000-0000-000000000000).
75314func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
75315	c.urlParams_.Set("requestId", requestId)
75316	return c
75317}
75318
75319// Fields allows partial responses to be retrieved. See
75320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75321// for more information.
75322func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
75323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75324	return c
75325}
75326
75327// Context sets the context to be used in this call's Do method. Any
75328// pending HTTP request will be aborted if the provided context is
75329// canceled.
75330func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
75331	c.ctx_ = ctx
75332	return c
75333}
75334
75335// Header returns an http.Header that can be modified by the caller to
75336// add HTTP headers to the request.
75337func (c *HealthChecksUpdateCall) Header() http.Header {
75338	if c.header_ == nil {
75339		c.header_ = make(http.Header)
75340	}
75341	return c.header_
75342}
75343
75344func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
75345	reqHeaders := make(http.Header)
75346	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
75347	for k, v := range c.header_ {
75348		reqHeaders[k] = v
75349	}
75350	reqHeaders.Set("User-Agent", c.s.userAgent())
75351	var body io.Reader = nil
75352	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75353	if err != nil {
75354		return nil, err
75355	}
75356	reqHeaders.Set("Content-Type", "application/json")
75357	c.urlParams_.Set("alt", alt)
75358	c.urlParams_.Set("prettyPrint", "false")
75359	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75360	urls += "?" + c.urlParams_.Encode()
75361	req, err := http.NewRequest("PUT", urls, body)
75362	if err != nil {
75363		return nil, err
75364	}
75365	req.Header = reqHeaders
75366	googleapi.Expand(req.URL, map[string]string{
75367		"project":     c.project,
75368		"healthCheck": c.healthCheck,
75369	})
75370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75371}
75372
75373// Do executes the "compute.healthChecks.update" call.
75374// Exactly one of *Operation or error will be non-nil. Any non-2xx
75375// status code is an error. Response headers are in either
75376// *Operation.ServerResponse.Header or (if a response was returned at
75377// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75378// to check whether the returned error was because
75379// http.StatusNotModified was returned.
75380func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75381	gensupport.SetOptions(c.urlParams_, opts...)
75382	res, err := c.doRequest("json")
75383	if res != nil && res.StatusCode == http.StatusNotModified {
75384		if res.Body != nil {
75385			res.Body.Close()
75386		}
75387		return nil, &googleapi.Error{
75388			Code:   res.StatusCode,
75389			Header: res.Header,
75390		}
75391	}
75392	if err != nil {
75393		return nil, err
75394	}
75395	defer googleapi.CloseBody(res)
75396	if err := googleapi.CheckResponse(res); err != nil {
75397		return nil, err
75398	}
75399	ret := &Operation{
75400		ServerResponse: googleapi.ServerResponse{
75401			Header:         res.Header,
75402			HTTPStatusCode: res.StatusCode,
75403		},
75404	}
75405	target := &ret
75406	if err := gensupport.DecodeResponse(target, res); err != nil {
75407		return nil, err
75408	}
75409	return ret, nil
75410	// {
75411	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
75412	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
75413	//   "httpMethod": "PUT",
75414	//   "id": "compute.healthChecks.update",
75415	//   "parameterOrder": [
75416	//     "project",
75417	//     "healthCheck"
75418	//   ],
75419	//   "parameters": {
75420	//     "healthCheck": {
75421	//       "description": "Name of the HealthCheck resource to update.",
75422	//       "location": "path",
75423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75424	//       "required": true,
75425	//       "type": "string"
75426	//     },
75427	//     "project": {
75428	//       "description": "Project ID for this request.",
75429	//       "location": "path",
75430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75431	//       "required": true,
75432	//       "type": "string"
75433	//     },
75434	//     "requestId": {
75435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75436	//       "location": "query",
75437	//       "type": "string"
75438	//     }
75439	//   },
75440	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75441	//   "request": {
75442	//     "$ref": "HealthCheck"
75443	//   },
75444	//   "response": {
75445	//     "$ref": "Operation"
75446	//   },
75447	//   "scopes": [
75448	//     "https://www.googleapis.com/auth/cloud-platform",
75449	//     "https://www.googleapis.com/auth/compute"
75450	//   ]
75451	// }
75452
75453}
75454
75455// method id "compute.httpHealthChecks.delete":
75456
75457type HttpHealthChecksDeleteCall struct {
75458	s               *Service
75459	project         string
75460	httpHealthCheck string
75461	urlParams_      gensupport.URLParams
75462	ctx_            context.Context
75463	header_         http.Header
75464}
75465
75466// Delete: Deletes the specified HttpHealthCheck resource.
75467//
75468// - httpHealthCheck: Name of the HttpHealthCheck resource to delete.
75469// - project: Project ID for this request.
75470func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
75471	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75472	c.project = project
75473	c.httpHealthCheck = httpHealthCheck
75474	return c
75475}
75476
75477// RequestId sets the optional parameter "requestId": An optional
75478// request ID to identify requests. Specify a unique request ID so that
75479// if you must retry your request, the server will know to ignore the
75480// request if it has already been completed. For example, consider a
75481// situation where you make an initial request and the request times
75482// out. If you make the request again with the same request ID, the
75483// server can check if original operation with the same request ID was
75484// received, and if so, will ignore the second request. This prevents
75485// clients from accidentally creating duplicate commitments. The request
75486// ID must be a valid UUID with the exception that zero UUID is not
75487// supported ( 00000000-0000-0000-0000-000000000000).
75488func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
75489	c.urlParams_.Set("requestId", requestId)
75490	return c
75491}
75492
75493// Fields allows partial responses to be retrieved. See
75494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75495// for more information.
75496func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
75497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75498	return c
75499}
75500
75501// Context sets the context to be used in this call's Do method. Any
75502// pending HTTP request will be aborted if the provided context is
75503// canceled.
75504func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
75505	c.ctx_ = ctx
75506	return c
75507}
75508
75509// Header returns an http.Header that can be modified by the caller to
75510// add HTTP headers to the request.
75511func (c *HttpHealthChecksDeleteCall) Header() http.Header {
75512	if c.header_ == nil {
75513		c.header_ = make(http.Header)
75514	}
75515	return c.header_
75516}
75517
75518func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
75519	reqHeaders := make(http.Header)
75520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
75521	for k, v := range c.header_ {
75522		reqHeaders[k] = v
75523	}
75524	reqHeaders.Set("User-Agent", c.s.userAgent())
75525	var body io.Reader = nil
75526	c.urlParams_.Set("alt", alt)
75527	c.urlParams_.Set("prettyPrint", "false")
75528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
75529	urls += "?" + c.urlParams_.Encode()
75530	req, err := http.NewRequest("DELETE", urls, body)
75531	if err != nil {
75532		return nil, err
75533	}
75534	req.Header = reqHeaders
75535	googleapi.Expand(req.URL, map[string]string{
75536		"project":         c.project,
75537		"httpHealthCheck": c.httpHealthCheck,
75538	})
75539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75540}
75541
75542// Do executes the "compute.httpHealthChecks.delete" call.
75543// Exactly one of *Operation or error will be non-nil. Any non-2xx
75544// status code is an error. Response headers are in either
75545// *Operation.ServerResponse.Header or (if a response was returned at
75546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75547// to check whether the returned error was because
75548// http.StatusNotModified was returned.
75549func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75550	gensupport.SetOptions(c.urlParams_, opts...)
75551	res, err := c.doRequest("json")
75552	if res != nil && res.StatusCode == http.StatusNotModified {
75553		if res.Body != nil {
75554			res.Body.Close()
75555		}
75556		return nil, &googleapi.Error{
75557			Code:   res.StatusCode,
75558			Header: res.Header,
75559		}
75560	}
75561	if err != nil {
75562		return nil, err
75563	}
75564	defer googleapi.CloseBody(res)
75565	if err := googleapi.CheckResponse(res); err != nil {
75566		return nil, err
75567	}
75568	ret := &Operation{
75569		ServerResponse: googleapi.ServerResponse{
75570			Header:         res.Header,
75571			HTTPStatusCode: res.StatusCode,
75572		},
75573	}
75574	target := &ret
75575	if err := gensupport.DecodeResponse(target, res); err != nil {
75576		return nil, err
75577	}
75578	return ret, nil
75579	// {
75580	//   "description": "Deletes the specified HttpHealthCheck resource.",
75581	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75582	//   "httpMethod": "DELETE",
75583	//   "id": "compute.httpHealthChecks.delete",
75584	//   "parameterOrder": [
75585	//     "project",
75586	//     "httpHealthCheck"
75587	//   ],
75588	//   "parameters": {
75589	//     "httpHealthCheck": {
75590	//       "description": "Name of the HttpHealthCheck resource to delete.",
75591	//       "location": "path",
75592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75593	//       "required": true,
75594	//       "type": "string"
75595	//     },
75596	//     "project": {
75597	//       "description": "Project ID for this request.",
75598	//       "location": "path",
75599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75600	//       "required": true,
75601	//       "type": "string"
75602	//     },
75603	//     "requestId": {
75604	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75605	//       "location": "query",
75606	//       "type": "string"
75607	//     }
75608	//   },
75609	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75610	//   "response": {
75611	//     "$ref": "Operation"
75612	//   },
75613	//   "scopes": [
75614	//     "https://www.googleapis.com/auth/cloud-platform",
75615	//     "https://www.googleapis.com/auth/compute"
75616	//   ]
75617	// }
75618
75619}
75620
75621// method id "compute.httpHealthChecks.get":
75622
75623type HttpHealthChecksGetCall struct {
75624	s               *Service
75625	project         string
75626	httpHealthCheck string
75627	urlParams_      gensupport.URLParams
75628	ifNoneMatch_    string
75629	ctx_            context.Context
75630	header_         http.Header
75631}
75632
75633// Get: Returns the specified HttpHealthCheck resource. Gets a list of
75634// available HTTP health checks by making a list() request.
75635//
75636// - httpHealthCheck: Name of the HttpHealthCheck resource to return.
75637// - project: Project ID for this request.
75638func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
75639	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75640	c.project = project
75641	c.httpHealthCheck = httpHealthCheck
75642	return c
75643}
75644
75645// Fields allows partial responses to be retrieved. See
75646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75647// for more information.
75648func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
75649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75650	return c
75651}
75652
75653// IfNoneMatch sets the optional parameter which makes the operation
75654// fail if the object's ETag matches the given value. This is useful for
75655// getting updates only after the object has changed since the last
75656// request. Use googleapi.IsNotModified to check whether the response
75657// error from Do is the result of In-None-Match.
75658func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
75659	c.ifNoneMatch_ = entityTag
75660	return c
75661}
75662
75663// Context sets the context to be used in this call's Do method. Any
75664// pending HTTP request will be aborted if the provided context is
75665// canceled.
75666func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
75667	c.ctx_ = ctx
75668	return c
75669}
75670
75671// Header returns an http.Header that can be modified by the caller to
75672// add HTTP headers to the request.
75673func (c *HttpHealthChecksGetCall) Header() http.Header {
75674	if c.header_ == nil {
75675		c.header_ = make(http.Header)
75676	}
75677	return c.header_
75678}
75679
75680func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
75681	reqHeaders := make(http.Header)
75682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
75683	for k, v := range c.header_ {
75684		reqHeaders[k] = v
75685	}
75686	reqHeaders.Set("User-Agent", c.s.userAgent())
75687	if c.ifNoneMatch_ != "" {
75688		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75689	}
75690	var body io.Reader = nil
75691	c.urlParams_.Set("alt", alt)
75692	c.urlParams_.Set("prettyPrint", "false")
75693	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
75694	urls += "?" + c.urlParams_.Encode()
75695	req, err := http.NewRequest("GET", urls, body)
75696	if err != nil {
75697		return nil, err
75698	}
75699	req.Header = reqHeaders
75700	googleapi.Expand(req.URL, map[string]string{
75701		"project":         c.project,
75702		"httpHealthCheck": c.httpHealthCheck,
75703	})
75704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75705}
75706
75707// Do executes the "compute.httpHealthChecks.get" call.
75708// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
75709// status code is an error. Response headers are in either
75710// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
75711// at all) in error.(*googleapi.Error).Header. Use
75712// googleapi.IsNotModified to check whether the returned error was
75713// because http.StatusNotModified was returned.
75714func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
75715	gensupport.SetOptions(c.urlParams_, opts...)
75716	res, err := c.doRequest("json")
75717	if res != nil && res.StatusCode == http.StatusNotModified {
75718		if res.Body != nil {
75719			res.Body.Close()
75720		}
75721		return nil, &googleapi.Error{
75722			Code:   res.StatusCode,
75723			Header: res.Header,
75724		}
75725	}
75726	if err != nil {
75727		return nil, err
75728	}
75729	defer googleapi.CloseBody(res)
75730	if err := googleapi.CheckResponse(res); err != nil {
75731		return nil, err
75732	}
75733	ret := &HttpHealthCheck{
75734		ServerResponse: googleapi.ServerResponse{
75735			Header:         res.Header,
75736			HTTPStatusCode: res.StatusCode,
75737		},
75738	}
75739	target := &ret
75740	if err := gensupport.DecodeResponse(target, res); err != nil {
75741		return nil, err
75742	}
75743	return ret, nil
75744	// {
75745	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
75746	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75747	//   "httpMethod": "GET",
75748	//   "id": "compute.httpHealthChecks.get",
75749	//   "parameterOrder": [
75750	//     "project",
75751	//     "httpHealthCheck"
75752	//   ],
75753	//   "parameters": {
75754	//     "httpHealthCheck": {
75755	//       "description": "Name of the HttpHealthCheck resource to return.",
75756	//       "location": "path",
75757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75758	//       "required": true,
75759	//       "type": "string"
75760	//     },
75761	//     "project": {
75762	//       "description": "Project ID for this request.",
75763	//       "location": "path",
75764	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75765	//       "required": true,
75766	//       "type": "string"
75767	//     }
75768	//   },
75769	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75770	//   "response": {
75771	//     "$ref": "HttpHealthCheck"
75772	//   },
75773	//   "scopes": [
75774	//     "https://www.googleapis.com/auth/cloud-platform",
75775	//     "https://www.googleapis.com/auth/compute",
75776	//     "https://www.googleapis.com/auth/compute.readonly"
75777	//   ]
75778	// }
75779
75780}
75781
75782// method id "compute.httpHealthChecks.insert":
75783
75784type HttpHealthChecksInsertCall struct {
75785	s               *Service
75786	project         string
75787	httphealthcheck *HttpHealthCheck
75788	urlParams_      gensupport.URLParams
75789	ctx_            context.Context
75790	header_         http.Header
75791}
75792
75793// Insert: Creates a HttpHealthCheck resource in the specified project
75794// using the data included in the request.
75795//
75796// - project: Project ID for this request.
75797func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
75798	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75799	c.project = project
75800	c.httphealthcheck = httphealthcheck
75801	return c
75802}
75803
75804// RequestId sets the optional parameter "requestId": An optional
75805// request ID to identify requests. Specify a unique request ID so that
75806// if you must retry your request, the server will know to ignore the
75807// request if it has already been completed. For example, consider a
75808// situation where you make an initial request and the request times
75809// out. If you make the request again with the same request ID, the
75810// server can check if original operation with the same request ID was
75811// received, and if so, will ignore the second request. This prevents
75812// clients from accidentally creating duplicate commitments. The request
75813// ID must be a valid UUID with the exception that zero UUID is not
75814// supported ( 00000000-0000-0000-0000-000000000000).
75815func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
75816	c.urlParams_.Set("requestId", requestId)
75817	return c
75818}
75819
75820// Fields allows partial responses to be retrieved. See
75821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75822// for more information.
75823func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
75824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75825	return c
75826}
75827
75828// Context sets the context to be used in this call's Do method. Any
75829// pending HTTP request will be aborted if the provided context is
75830// canceled.
75831func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
75832	c.ctx_ = ctx
75833	return c
75834}
75835
75836// Header returns an http.Header that can be modified by the caller to
75837// add HTTP headers to the request.
75838func (c *HttpHealthChecksInsertCall) Header() http.Header {
75839	if c.header_ == nil {
75840		c.header_ = make(http.Header)
75841	}
75842	return c.header_
75843}
75844
75845func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
75846	reqHeaders := make(http.Header)
75847	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
75848	for k, v := range c.header_ {
75849		reqHeaders[k] = v
75850	}
75851	reqHeaders.Set("User-Agent", c.s.userAgent())
75852	var body io.Reader = nil
75853	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
75854	if err != nil {
75855		return nil, err
75856	}
75857	reqHeaders.Set("Content-Type", "application/json")
75858	c.urlParams_.Set("alt", alt)
75859	c.urlParams_.Set("prettyPrint", "false")
75860	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
75861	urls += "?" + c.urlParams_.Encode()
75862	req, err := http.NewRequest("POST", urls, body)
75863	if err != nil {
75864		return nil, err
75865	}
75866	req.Header = reqHeaders
75867	googleapi.Expand(req.URL, map[string]string{
75868		"project": c.project,
75869	})
75870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75871}
75872
75873// Do executes the "compute.httpHealthChecks.insert" call.
75874// Exactly one of *Operation or error will be non-nil. Any non-2xx
75875// status code is an error. Response headers are in either
75876// *Operation.ServerResponse.Header or (if a response was returned at
75877// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75878// to check whether the returned error was because
75879// http.StatusNotModified was returned.
75880func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75881	gensupport.SetOptions(c.urlParams_, opts...)
75882	res, err := c.doRequest("json")
75883	if res != nil && res.StatusCode == http.StatusNotModified {
75884		if res.Body != nil {
75885			res.Body.Close()
75886		}
75887		return nil, &googleapi.Error{
75888			Code:   res.StatusCode,
75889			Header: res.Header,
75890		}
75891	}
75892	if err != nil {
75893		return nil, err
75894	}
75895	defer googleapi.CloseBody(res)
75896	if err := googleapi.CheckResponse(res); err != nil {
75897		return nil, err
75898	}
75899	ret := &Operation{
75900		ServerResponse: googleapi.ServerResponse{
75901			Header:         res.Header,
75902			HTTPStatusCode: res.StatusCode,
75903		},
75904	}
75905	target := &ret
75906	if err := gensupport.DecodeResponse(target, res); err != nil {
75907		return nil, err
75908	}
75909	return ret, nil
75910	// {
75911	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
75912	//   "flatPath": "projects/{project}/global/httpHealthChecks",
75913	//   "httpMethod": "POST",
75914	//   "id": "compute.httpHealthChecks.insert",
75915	//   "parameterOrder": [
75916	//     "project"
75917	//   ],
75918	//   "parameters": {
75919	//     "project": {
75920	//       "description": "Project ID for this request.",
75921	//       "location": "path",
75922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75923	//       "required": true,
75924	//       "type": "string"
75925	//     },
75926	//     "requestId": {
75927	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75928	//       "location": "query",
75929	//       "type": "string"
75930	//     }
75931	//   },
75932	//   "path": "projects/{project}/global/httpHealthChecks",
75933	//   "request": {
75934	//     "$ref": "HttpHealthCheck"
75935	//   },
75936	//   "response": {
75937	//     "$ref": "Operation"
75938	//   },
75939	//   "scopes": [
75940	//     "https://www.googleapis.com/auth/cloud-platform",
75941	//     "https://www.googleapis.com/auth/compute"
75942	//   ]
75943	// }
75944
75945}
75946
75947// method id "compute.httpHealthChecks.list":
75948
75949type HttpHealthChecksListCall struct {
75950	s            *Service
75951	project      string
75952	urlParams_   gensupport.URLParams
75953	ifNoneMatch_ string
75954	ctx_         context.Context
75955	header_      http.Header
75956}
75957
75958// List: Retrieves the list of HttpHealthCheck resources available to
75959// the specified project.
75960//
75961// - project: Project ID for this request.
75962func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
75963	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75964	c.project = project
75965	return c
75966}
75967
75968// Filter sets the optional parameter "filter": A filter expression that
75969// filters resources listed in the response. The expression must specify
75970// the field name, a comparison operator, and the value that you want to
75971// use for filtering. The value must be a string, a number, or a
75972// boolean. The comparison operator must be either `=`, `!=`, `>`, or
75973// `<`. For example, if you are filtering Compute Engine instances, you
75974// can exclude instances named `example-instance` by specifying `name !=
75975// example-instance`. You can also filter nested fields. For example,
75976// you could specify `scheduling.automaticRestart = false` to include
75977// instances only if they are not scheduled for automatic restarts. You
75978// can use filtering on nested fields to filter based on resource
75979// labels. To filter on multiple expressions, provide each separate
75980// expression within parentheses. For example: ```
75981// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
75982// ``` By default, each expression is an `AND` expression. However, you
75983// can include `AND` and `OR` expressions explicitly. For example: ```
75984// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
75985// AND (scheduling.automaticRestart = true) ```
75986func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
75987	c.urlParams_.Set("filter", filter)
75988	return c
75989}
75990
75991// MaxResults sets the optional parameter "maxResults": The maximum
75992// number of results per page that should be returned. If the number of
75993// available results is larger than `maxResults`, Compute Engine returns
75994// a `nextPageToken` that can be used to get the next page of results in
75995// subsequent list requests. Acceptable values are `0` to `500`,
75996// inclusive. (Default: `500`)
75997func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
75998	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75999	return c
76000}
76001
76002// OrderBy sets the optional parameter "orderBy": Sorts list results by
76003// a certain order. By default, results are returned in alphanumerical
76004// order based on the resource name. You can also sort results in
76005// descending order based on the creation timestamp using
76006// `orderBy="creationTimestamp desc". This sorts results based on the
76007// `creationTimestamp` field in reverse chronological order (newest
76008// result first). Use this to sort resources like operations so that the
76009// newest operation is returned first. Currently, only sorting by `name`
76010// or `creationTimestamp desc` is supported.
76011func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
76012	c.urlParams_.Set("orderBy", orderBy)
76013	return c
76014}
76015
76016// PageToken sets the optional parameter "pageToken": Specifies a page
76017// token to use. Set `pageToken` to the `nextPageToken` returned by a
76018// previous list request to get the next page of results.
76019func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
76020	c.urlParams_.Set("pageToken", pageToken)
76021	return c
76022}
76023
76024// ReturnPartialSuccess sets the optional parameter
76025// "returnPartialSuccess": Opt-in for partial success behavior which
76026// provides partial results in case of failure. The default value is
76027// false.
76028func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
76029	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76030	return c
76031}
76032
76033// Fields allows partial responses to be retrieved. See
76034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76035// for more information.
76036func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
76037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76038	return c
76039}
76040
76041// IfNoneMatch sets the optional parameter which makes the operation
76042// fail if the object's ETag matches the given value. This is useful for
76043// getting updates only after the object has changed since the last
76044// request. Use googleapi.IsNotModified to check whether the response
76045// error from Do is the result of In-None-Match.
76046func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
76047	c.ifNoneMatch_ = entityTag
76048	return c
76049}
76050
76051// Context sets the context to be used in this call's Do method. Any
76052// pending HTTP request will be aborted if the provided context is
76053// canceled.
76054func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
76055	c.ctx_ = ctx
76056	return c
76057}
76058
76059// Header returns an http.Header that can be modified by the caller to
76060// add HTTP headers to the request.
76061func (c *HttpHealthChecksListCall) Header() http.Header {
76062	if c.header_ == nil {
76063		c.header_ = make(http.Header)
76064	}
76065	return c.header_
76066}
76067
76068func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
76069	reqHeaders := make(http.Header)
76070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76071	for k, v := range c.header_ {
76072		reqHeaders[k] = v
76073	}
76074	reqHeaders.Set("User-Agent", c.s.userAgent())
76075	if c.ifNoneMatch_ != "" {
76076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76077	}
76078	var body io.Reader = nil
76079	c.urlParams_.Set("alt", alt)
76080	c.urlParams_.Set("prettyPrint", "false")
76081	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
76082	urls += "?" + c.urlParams_.Encode()
76083	req, err := http.NewRequest("GET", urls, body)
76084	if err != nil {
76085		return nil, err
76086	}
76087	req.Header = reqHeaders
76088	googleapi.Expand(req.URL, map[string]string{
76089		"project": c.project,
76090	})
76091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76092}
76093
76094// Do executes the "compute.httpHealthChecks.list" call.
76095// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
76096// non-2xx status code is an error. Response headers are in either
76097// *HttpHealthCheckList.ServerResponse.Header or (if a response was
76098// returned at all) in error.(*googleapi.Error).Header. Use
76099// googleapi.IsNotModified to check whether the returned error was
76100// because http.StatusNotModified was returned.
76101func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
76102	gensupport.SetOptions(c.urlParams_, opts...)
76103	res, err := c.doRequest("json")
76104	if res != nil && res.StatusCode == http.StatusNotModified {
76105		if res.Body != nil {
76106			res.Body.Close()
76107		}
76108		return nil, &googleapi.Error{
76109			Code:   res.StatusCode,
76110			Header: res.Header,
76111		}
76112	}
76113	if err != nil {
76114		return nil, err
76115	}
76116	defer googleapi.CloseBody(res)
76117	if err := googleapi.CheckResponse(res); err != nil {
76118		return nil, err
76119	}
76120	ret := &HttpHealthCheckList{
76121		ServerResponse: googleapi.ServerResponse{
76122			Header:         res.Header,
76123			HTTPStatusCode: res.StatusCode,
76124		},
76125	}
76126	target := &ret
76127	if err := gensupport.DecodeResponse(target, res); err != nil {
76128		return nil, err
76129	}
76130	return ret, nil
76131	// {
76132	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
76133	//   "flatPath": "projects/{project}/global/httpHealthChecks",
76134	//   "httpMethod": "GET",
76135	//   "id": "compute.httpHealthChecks.list",
76136	//   "parameterOrder": [
76137	//     "project"
76138	//   ],
76139	//   "parameters": {
76140	//     "filter": {
76141	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76142	//       "location": "query",
76143	//       "type": "string"
76144	//     },
76145	//     "maxResults": {
76146	//       "default": "500",
76147	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76148	//       "format": "uint32",
76149	//       "location": "query",
76150	//       "minimum": "0",
76151	//       "type": "integer"
76152	//     },
76153	//     "orderBy": {
76154	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
76155	//       "location": "query",
76156	//       "type": "string"
76157	//     },
76158	//     "pageToken": {
76159	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76160	//       "location": "query",
76161	//       "type": "string"
76162	//     },
76163	//     "project": {
76164	//       "description": "Project ID for this request.",
76165	//       "location": "path",
76166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76167	//       "required": true,
76168	//       "type": "string"
76169	//     },
76170	//     "returnPartialSuccess": {
76171	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
76172	//       "location": "query",
76173	//       "type": "boolean"
76174	//     }
76175	//   },
76176	//   "path": "projects/{project}/global/httpHealthChecks",
76177	//   "response": {
76178	//     "$ref": "HttpHealthCheckList"
76179	//   },
76180	//   "scopes": [
76181	//     "https://www.googleapis.com/auth/cloud-platform",
76182	//     "https://www.googleapis.com/auth/compute",
76183	//     "https://www.googleapis.com/auth/compute.readonly"
76184	//   ]
76185	// }
76186
76187}
76188
76189// Pages invokes f for each page of results.
76190// A non-nil error returned from f will halt the iteration.
76191// The provided context supersedes any context provided to the Context method.
76192func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
76193	c.ctx_ = ctx
76194	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76195	for {
76196		x, err := c.Do()
76197		if err != nil {
76198			return err
76199		}
76200		if err := f(x); err != nil {
76201			return err
76202		}
76203		if x.NextPageToken == "" {
76204			return nil
76205		}
76206		c.PageToken(x.NextPageToken)
76207	}
76208}
76209
76210// method id "compute.httpHealthChecks.patch":
76211
76212type HttpHealthChecksPatchCall struct {
76213	s               *Service
76214	project         string
76215	httpHealthCheck string
76216	httphealthcheck *HttpHealthCheck
76217	urlParams_      gensupport.URLParams
76218	ctx_            context.Context
76219	header_         http.Header
76220}
76221
76222// Patch: Updates a HttpHealthCheck resource in the specified project
76223// using the data included in the request. This method supports PATCH
76224// semantics and uses the JSON merge patch format and processing rules.
76225//
76226// - httpHealthCheck: Name of the HttpHealthCheck resource to patch.
76227// - project: Project ID for this request.
76228func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
76229	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76230	c.project = project
76231	c.httpHealthCheck = httpHealthCheck
76232	c.httphealthcheck = httphealthcheck
76233	return c
76234}
76235
76236// RequestId sets the optional parameter "requestId": An optional
76237// request ID to identify requests. Specify a unique request ID so that
76238// if you must retry your request, the server will know to ignore the
76239// request if it has already been completed. For example, consider a
76240// situation where you make an initial request and the request times
76241// out. If you make the request again with the same request ID, the
76242// server can check if original operation with the same request ID was
76243// received, and if so, will ignore the second request. This prevents
76244// clients from accidentally creating duplicate commitments. The request
76245// ID must be a valid UUID with the exception that zero UUID is not
76246// supported ( 00000000-0000-0000-0000-000000000000).
76247func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
76248	c.urlParams_.Set("requestId", requestId)
76249	return c
76250}
76251
76252// Fields allows partial responses to be retrieved. See
76253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76254// for more information.
76255func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
76256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76257	return c
76258}
76259
76260// Context sets the context to be used in this call's Do method. Any
76261// pending HTTP request will be aborted if the provided context is
76262// canceled.
76263func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
76264	c.ctx_ = ctx
76265	return c
76266}
76267
76268// Header returns an http.Header that can be modified by the caller to
76269// add HTTP headers to the request.
76270func (c *HttpHealthChecksPatchCall) Header() http.Header {
76271	if c.header_ == nil {
76272		c.header_ = make(http.Header)
76273	}
76274	return c.header_
76275}
76276
76277func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
76278	reqHeaders := make(http.Header)
76279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76280	for k, v := range c.header_ {
76281		reqHeaders[k] = v
76282	}
76283	reqHeaders.Set("User-Agent", c.s.userAgent())
76284	var body io.Reader = nil
76285	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76286	if err != nil {
76287		return nil, err
76288	}
76289	reqHeaders.Set("Content-Type", "application/json")
76290	c.urlParams_.Set("alt", alt)
76291	c.urlParams_.Set("prettyPrint", "false")
76292	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76293	urls += "?" + c.urlParams_.Encode()
76294	req, err := http.NewRequest("PATCH", urls, body)
76295	if err != nil {
76296		return nil, err
76297	}
76298	req.Header = reqHeaders
76299	googleapi.Expand(req.URL, map[string]string{
76300		"project":         c.project,
76301		"httpHealthCheck": c.httpHealthCheck,
76302	})
76303	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76304}
76305
76306// Do executes the "compute.httpHealthChecks.patch" call.
76307// Exactly one of *Operation or error will be non-nil. Any non-2xx
76308// status code is an error. Response headers are in either
76309// *Operation.ServerResponse.Header or (if a response was returned at
76310// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76311// to check whether the returned error was because
76312// http.StatusNotModified was returned.
76313func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76314	gensupport.SetOptions(c.urlParams_, opts...)
76315	res, err := c.doRequest("json")
76316	if res != nil && res.StatusCode == http.StatusNotModified {
76317		if res.Body != nil {
76318			res.Body.Close()
76319		}
76320		return nil, &googleapi.Error{
76321			Code:   res.StatusCode,
76322			Header: res.Header,
76323		}
76324	}
76325	if err != nil {
76326		return nil, err
76327	}
76328	defer googleapi.CloseBody(res)
76329	if err := googleapi.CheckResponse(res); err != nil {
76330		return nil, err
76331	}
76332	ret := &Operation{
76333		ServerResponse: googleapi.ServerResponse{
76334			Header:         res.Header,
76335			HTTPStatusCode: res.StatusCode,
76336		},
76337	}
76338	target := &ret
76339	if err := gensupport.DecodeResponse(target, res); err != nil {
76340		return nil, err
76341	}
76342	return ret, nil
76343	// {
76344	//   "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.",
76345	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76346	//   "httpMethod": "PATCH",
76347	//   "id": "compute.httpHealthChecks.patch",
76348	//   "parameterOrder": [
76349	//     "project",
76350	//     "httpHealthCheck"
76351	//   ],
76352	//   "parameters": {
76353	//     "httpHealthCheck": {
76354	//       "description": "Name of the HttpHealthCheck resource to patch.",
76355	//       "location": "path",
76356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76357	//       "required": true,
76358	//       "type": "string"
76359	//     },
76360	//     "project": {
76361	//       "description": "Project ID for this request.",
76362	//       "location": "path",
76363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76364	//       "required": true,
76365	//       "type": "string"
76366	//     },
76367	//     "requestId": {
76368	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76369	//       "location": "query",
76370	//       "type": "string"
76371	//     }
76372	//   },
76373	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76374	//   "request": {
76375	//     "$ref": "HttpHealthCheck"
76376	//   },
76377	//   "response": {
76378	//     "$ref": "Operation"
76379	//   },
76380	//   "scopes": [
76381	//     "https://www.googleapis.com/auth/cloud-platform",
76382	//     "https://www.googleapis.com/auth/compute"
76383	//   ]
76384	// }
76385
76386}
76387
76388// method id "compute.httpHealthChecks.update":
76389
76390type HttpHealthChecksUpdateCall struct {
76391	s               *Service
76392	project         string
76393	httpHealthCheck string
76394	httphealthcheck *HttpHealthCheck
76395	urlParams_      gensupport.URLParams
76396	ctx_            context.Context
76397	header_         http.Header
76398}
76399
76400// Update: Updates a HttpHealthCheck resource in the specified project
76401// using the data included in the request.
76402//
76403// - httpHealthCheck: Name of the HttpHealthCheck resource to update.
76404// - project: Project ID for this request.
76405func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
76406	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76407	c.project = project
76408	c.httpHealthCheck = httpHealthCheck
76409	c.httphealthcheck = httphealthcheck
76410	return c
76411}
76412
76413// RequestId sets the optional parameter "requestId": An optional
76414// request ID to identify requests. Specify a unique request ID so that
76415// if you must retry your request, the server will know to ignore the
76416// request if it has already been completed. For example, consider a
76417// situation where you make an initial request and the request times
76418// out. If you make the request again with the same request ID, the
76419// server can check if original operation with the same request ID was
76420// received, and if so, will ignore the second request. This prevents
76421// clients from accidentally creating duplicate commitments. The request
76422// ID must be a valid UUID with the exception that zero UUID is not
76423// supported ( 00000000-0000-0000-0000-000000000000).
76424func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
76425	c.urlParams_.Set("requestId", requestId)
76426	return c
76427}
76428
76429// Fields allows partial responses to be retrieved. See
76430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76431// for more information.
76432func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
76433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76434	return c
76435}
76436
76437// Context sets the context to be used in this call's Do method. Any
76438// pending HTTP request will be aborted if the provided context is
76439// canceled.
76440func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
76441	c.ctx_ = ctx
76442	return c
76443}
76444
76445// Header returns an http.Header that can be modified by the caller to
76446// add HTTP headers to the request.
76447func (c *HttpHealthChecksUpdateCall) Header() http.Header {
76448	if c.header_ == nil {
76449		c.header_ = make(http.Header)
76450	}
76451	return c.header_
76452}
76453
76454func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
76455	reqHeaders := make(http.Header)
76456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76457	for k, v := range c.header_ {
76458		reqHeaders[k] = v
76459	}
76460	reqHeaders.Set("User-Agent", c.s.userAgent())
76461	var body io.Reader = nil
76462	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76463	if err != nil {
76464		return nil, err
76465	}
76466	reqHeaders.Set("Content-Type", "application/json")
76467	c.urlParams_.Set("alt", alt)
76468	c.urlParams_.Set("prettyPrint", "false")
76469	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76470	urls += "?" + c.urlParams_.Encode()
76471	req, err := http.NewRequest("PUT", urls, body)
76472	if err != nil {
76473		return nil, err
76474	}
76475	req.Header = reqHeaders
76476	googleapi.Expand(req.URL, map[string]string{
76477		"project":         c.project,
76478		"httpHealthCheck": c.httpHealthCheck,
76479	})
76480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76481}
76482
76483// Do executes the "compute.httpHealthChecks.update" call.
76484// Exactly one of *Operation or error will be non-nil. Any non-2xx
76485// status code is an error. Response headers are in either
76486// *Operation.ServerResponse.Header or (if a response was returned at
76487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76488// to check whether the returned error was because
76489// http.StatusNotModified was returned.
76490func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76491	gensupport.SetOptions(c.urlParams_, opts...)
76492	res, err := c.doRequest("json")
76493	if res != nil && res.StatusCode == http.StatusNotModified {
76494		if res.Body != nil {
76495			res.Body.Close()
76496		}
76497		return nil, &googleapi.Error{
76498			Code:   res.StatusCode,
76499			Header: res.Header,
76500		}
76501	}
76502	if err != nil {
76503		return nil, err
76504	}
76505	defer googleapi.CloseBody(res)
76506	if err := googleapi.CheckResponse(res); err != nil {
76507		return nil, err
76508	}
76509	ret := &Operation{
76510		ServerResponse: googleapi.ServerResponse{
76511			Header:         res.Header,
76512			HTTPStatusCode: res.StatusCode,
76513		},
76514	}
76515	target := &ret
76516	if err := gensupport.DecodeResponse(target, res); err != nil {
76517		return nil, err
76518	}
76519	return ret, nil
76520	// {
76521	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
76522	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76523	//   "httpMethod": "PUT",
76524	//   "id": "compute.httpHealthChecks.update",
76525	//   "parameterOrder": [
76526	//     "project",
76527	//     "httpHealthCheck"
76528	//   ],
76529	//   "parameters": {
76530	//     "httpHealthCheck": {
76531	//       "description": "Name of the HttpHealthCheck resource to update.",
76532	//       "location": "path",
76533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76534	//       "required": true,
76535	//       "type": "string"
76536	//     },
76537	//     "project": {
76538	//       "description": "Project ID for this request.",
76539	//       "location": "path",
76540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76541	//       "required": true,
76542	//       "type": "string"
76543	//     },
76544	//     "requestId": {
76545	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76546	//       "location": "query",
76547	//       "type": "string"
76548	//     }
76549	//   },
76550	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76551	//   "request": {
76552	//     "$ref": "HttpHealthCheck"
76553	//   },
76554	//   "response": {
76555	//     "$ref": "Operation"
76556	//   },
76557	//   "scopes": [
76558	//     "https://www.googleapis.com/auth/cloud-platform",
76559	//     "https://www.googleapis.com/auth/compute"
76560	//   ]
76561	// }
76562
76563}
76564
76565// method id "compute.httpsHealthChecks.delete":
76566
76567type HttpsHealthChecksDeleteCall struct {
76568	s                *Service
76569	project          string
76570	httpsHealthCheck string
76571	urlParams_       gensupport.URLParams
76572	ctx_             context.Context
76573	header_          http.Header
76574}
76575
76576// Delete: Deletes the specified HttpsHealthCheck resource.
76577//
76578// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete.
76579// - project: Project ID for this request.
76580func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
76581	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76582	c.project = project
76583	c.httpsHealthCheck = httpsHealthCheck
76584	return c
76585}
76586
76587// RequestId sets the optional parameter "requestId": An optional
76588// request ID to identify requests. Specify a unique request ID so that
76589// if you must retry your request, the server will know to ignore the
76590// request if it has already been completed. For example, consider a
76591// situation where you make an initial request and the request times
76592// out. If you make the request again with the same request ID, the
76593// server can check if original operation with the same request ID was
76594// received, and if so, will ignore the second request. This prevents
76595// clients from accidentally creating duplicate commitments. The request
76596// ID must be a valid UUID with the exception that zero UUID is not
76597// supported ( 00000000-0000-0000-0000-000000000000).
76598func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
76599	c.urlParams_.Set("requestId", requestId)
76600	return c
76601}
76602
76603// Fields allows partial responses to be retrieved. See
76604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76605// for more information.
76606func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
76607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76608	return c
76609}
76610
76611// Context sets the context to be used in this call's Do method. Any
76612// pending HTTP request will be aborted if the provided context is
76613// canceled.
76614func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
76615	c.ctx_ = ctx
76616	return c
76617}
76618
76619// Header returns an http.Header that can be modified by the caller to
76620// add HTTP headers to the request.
76621func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
76622	if c.header_ == nil {
76623		c.header_ = make(http.Header)
76624	}
76625	return c.header_
76626}
76627
76628func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
76629	reqHeaders := make(http.Header)
76630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76631	for k, v := range c.header_ {
76632		reqHeaders[k] = v
76633	}
76634	reqHeaders.Set("User-Agent", c.s.userAgent())
76635	var body io.Reader = nil
76636	c.urlParams_.Set("alt", alt)
76637	c.urlParams_.Set("prettyPrint", "false")
76638	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
76639	urls += "?" + c.urlParams_.Encode()
76640	req, err := http.NewRequest("DELETE", urls, body)
76641	if err != nil {
76642		return nil, err
76643	}
76644	req.Header = reqHeaders
76645	googleapi.Expand(req.URL, map[string]string{
76646		"project":          c.project,
76647		"httpsHealthCheck": c.httpsHealthCheck,
76648	})
76649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76650}
76651
76652// Do executes the "compute.httpsHealthChecks.delete" call.
76653// Exactly one of *Operation or error will be non-nil. Any non-2xx
76654// status code is an error. Response headers are in either
76655// *Operation.ServerResponse.Header or (if a response was returned at
76656// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76657// to check whether the returned error was because
76658// http.StatusNotModified was returned.
76659func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76660	gensupport.SetOptions(c.urlParams_, opts...)
76661	res, err := c.doRequest("json")
76662	if res != nil && res.StatusCode == http.StatusNotModified {
76663		if res.Body != nil {
76664			res.Body.Close()
76665		}
76666		return nil, &googleapi.Error{
76667			Code:   res.StatusCode,
76668			Header: res.Header,
76669		}
76670	}
76671	if err != nil {
76672		return nil, err
76673	}
76674	defer googleapi.CloseBody(res)
76675	if err := googleapi.CheckResponse(res); err != nil {
76676		return nil, err
76677	}
76678	ret := &Operation{
76679		ServerResponse: googleapi.ServerResponse{
76680			Header:         res.Header,
76681			HTTPStatusCode: res.StatusCode,
76682		},
76683	}
76684	target := &ret
76685	if err := gensupport.DecodeResponse(target, res); err != nil {
76686		return nil, err
76687	}
76688	return ret, nil
76689	// {
76690	//   "description": "Deletes the specified HttpsHealthCheck resource.",
76691	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
76692	//   "httpMethod": "DELETE",
76693	//   "id": "compute.httpsHealthChecks.delete",
76694	//   "parameterOrder": [
76695	//     "project",
76696	//     "httpsHealthCheck"
76697	//   ],
76698	//   "parameters": {
76699	//     "httpsHealthCheck": {
76700	//       "description": "Name of the HttpsHealthCheck resource to delete.",
76701	//       "location": "path",
76702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76703	//       "required": true,
76704	//       "type": "string"
76705	//     },
76706	//     "project": {
76707	//       "description": "Project ID for this request.",
76708	//       "location": "path",
76709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76710	//       "required": true,
76711	//       "type": "string"
76712	//     },
76713	//     "requestId": {
76714	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76715	//       "location": "query",
76716	//       "type": "string"
76717	//     }
76718	//   },
76719	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
76720	//   "response": {
76721	//     "$ref": "Operation"
76722	//   },
76723	//   "scopes": [
76724	//     "https://www.googleapis.com/auth/cloud-platform",
76725	//     "https://www.googleapis.com/auth/compute"
76726	//   ]
76727	// }
76728
76729}
76730
76731// method id "compute.httpsHealthChecks.get":
76732
76733type HttpsHealthChecksGetCall struct {
76734	s                *Service
76735	project          string
76736	httpsHealthCheck string
76737	urlParams_       gensupport.URLParams
76738	ifNoneMatch_     string
76739	ctx_             context.Context
76740	header_          http.Header
76741}
76742
76743// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
76744// available HTTPS health checks by making a list() request.
76745//
76746// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return.
76747// - project: Project ID for this request.
76748func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
76749	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76750	c.project = project
76751	c.httpsHealthCheck = httpsHealthCheck
76752	return c
76753}
76754
76755// Fields allows partial responses to be retrieved. See
76756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76757// for more information.
76758func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
76759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76760	return c
76761}
76762
76763// IfNoneMatch sets the optional parameter which makes the operation
76764// fail if the object's ETag matches the given value. This is useful for
76765// getting updates only after the object has changed since the last
76766// request. Use googleapi.IsNotModified to check whether the response
76767// error from Do is the result of In-None-Match.
76768func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
76769	c.ifNoneMatch_ = entityTag
76770	return c
76771}
76772
76773// Context sets the context to be used in this call's Do method. Any
76774// pending HTTP request will be aborted if the provided context is
76775// canceled.
76776func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
76777	c.ctx_ = ctx
76778	return c
76779}
76780
76781// Header returns an http.Header that can be modified by the caller to
76782// add HTTP headers to the request.
76783func (c *HttpsHealthChecksGetCall) Header() http.Header {
76784	if c.header_ == nil {
76785		c.header_ = make(http.Header)
76786	}
76787	return c.header_
76788}
76789
76790func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
76791	reqHeaders := make(http.Header)
76792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76793	for k, v := range c.header_ {
76794		reqHeaders[k] = v
76795	}
76796	reqHeaders.Set("User-Agent", c.s.userAgent())
76797	if c.ifNoneMatch_ != "" {
76798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76799	}
76800	var body io.Reader = nil
76801	c.urlParams_.Set("alt", alt)
76802	c.urlParams_.Set("prettyPrint", "false")
76803	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
76804	urls += "?" + c.urlParams_.Encode()
76805	req, err := http.NewRequest("GET", urls, body)
76806	if err != nil {
76807		return nil, err
76808	}
76809	req.Header = reqHeaders
76810	googleapi.Expand(req.URL, map[string]string{
76811		"project":          c.project,
76812		"httpsHealthCheck": c.httpsHealthCheck,
76813	})
76814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76815}
76816
76817// Do executes the "compute.httpsHealthChecks.get" call.
76818// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
76819// non-2xx status code is an error. Response headers are in either
76820// *HttpsHealthCheck.ServerResponse.Header or (if a response was
76821// returned at all) in error.(*googleapi.Error).Header. Use
76822// googleapi.IsNotModified to check whether the returned error was
76823// because http.StatusNotModified was returned.
76824func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
76825	gensupport.SetOptions(c.urlParams_, opts...)
76826	res, err := c.doRequest("json")
76827	if res != nil && res.StatusCode == http.StatusNotModified {
76828		if res.Body != nil {
76829			res.Body.Close()
76830		}
76831		return nil, &googleapi.Error{
76832			Code:   res.StatusCode,
76833			Header: res.Header,
76834		}
76835	}
76836	if err != nil {
76837		return nil, err
76838	}
76839	defer googleapi.CloseBody(res)
76840	if err := googleapi.CheckResponse(res); err != nil {
76841		return nil, err
76842	}
76843	ret := &HttpsHealthCheck{
76844		ServerResponse: googleapi.ServerResponse{
76845			Header:         res.Header,
76846			HTTPStatusCode: res.StatusCode,
76847		},
76848	}
76849	target := &ret
76850	if err := gensupport.DecodeResponse(target, res); err != nil {
76851		return nil, err
76852	}
76853	return ret, nil
76854	// {
76855	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
76856	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
76857	//   "httpMethod": "GET",
76858	//   "id": "compute.httpsHealthChecks.get",
76859	//   "parameterOrder": [
76860	//     "project",
76861	//     "httpsHealthCheck"
76862	//   ],
76863	//   "parameters": {
76864	//     "httpsHealthCheck": {
76865	//       "description": "Name of the HttpsHealthCheck resource to return.",
76866	//       "location": "path",
76867	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76868	//       "required": true,
76869	//       "type": "string"
76870	//     },
76871	//     "project": {
76872	//       "description": "Project ID for this request.",
76873	//       "location": "path",
76874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76875	//       "required": true,
76876	//       "type": "string"
76877	//     }
76878	//   },
76879	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
76880	//   "response": {
76881	//     "$ref": "HttpsHealthCheck"
76882	//   },
76883	//   "scopes": [
76884	//     "https://www.googleapis.com/auth/cloud-platform",
76885	//     "https://www.googleapis.com/auth/compute",
76886	//     "https://www.googleapis.com/auth/compute.readonly"
76887	//   ]
76888	// }
76889
76890}
76891
76892// method id "compute.httpsHealthChecks.insert":
76893
76894type HttpsHealthChecksInsertCall struct {
76895	s                *Service
76896	project          string
76897	httpshealthcheck *HttpsHealthCheck
76898	urlParams_       gensupport.URLParams
76899	ctx_             context.Context
76900	header_          http.Header
76901}
76902
76903// Insert: Creates a HttpsHealthCheck resource in the specified project
76904// using the data included in the request.
76905//
76906// - project: Project ID for this request.
76907func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
76908	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76909	c.project = project
76910	c.httpshealthcheck = httpshealthcheck
76911	return c
76912}
76913
76914// RequestId sets the optional parameter "requestId": An optional
76915// request ID to identify requests. Specify a unique request ID so that
76916// if you must retry your request, the server will know to ignore the
76917// request if it has already been completed. For example, consider a
76918// situation where you make an initial request and the request times
76919// out. If you make the request again with the same request ID, the
76920// server can check if original operation with the same request ID was
76921// received, and if so, will ignore the second request. This prevents
76922// clients from accidentally creating duplicate commitments. The request
76923// ID must be a valid UUID with the exception that zero UUID is not
76924// supported ( 00000000-0000-0000-0000-000000000000).
76925func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
76926	c.urlParams_.Set("requestId", requestId)
76927	return c
76928}
76929
76930// Fields allows partial responses to be retrieved. See
76931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76932// for more information.
76933func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
76934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76935	return c
76936}
76937
76938// Context sets the context to be used in this call's Do method. Any
76939// pending HTTP request will be aborted if the provided context is
76940// canceled.
76941func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
76942	c.ctx_ = ctx
76943	return c
76944}
76945
76946// Header returns an http.Header that can be modified by the caller to
76947// add HTTP headers to the request.
76948func (c *HttpsHealthChecksInsertCall) Header() http.Header {
76949	if c.header_ == nil {
76950		c.header_ = make(http.Header)
76951	}
76952	return c.header_
76953}
76954
76955func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
76956	reqHeaders := make(http.Header)
76957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
76958	for k, v := range c.header_ {
76959		reqHeaders[k] = v
76960	}
76961	reqHeaders.Set("User-Agent", c.s.userAgent())
76962	var body io.Reader = nil
76963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
76964	if err != nil {
76965		return nil, err
76966	}
76967	reqHeaders.Set("Content-Type", "application/json")
76968	c.urlParams_.Set("alt", alt)
76969	c.urlParams_.Set("prettyPrint", "false")
76970	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
76971	urls += "?" + c.urlParams_.Encode()
76972	req, err := http.NewRequest("POST", urls, body)
76973	if err != nil {
76974		return nil, err
76975	}
76976	req.Header = reqHeaders
76977	googleapi.Expand(req.URL, map[string]string{
76978		"project": c.project,
76979	})
76980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76981}
76982
76983// Do executes the "compute.httpsHealthChecks.insert" call.
76984// Exactly one of *Operation or error will be non-nil. Any non-2xx
76985// status code is an error. Response headers are in either
76986// *Operation.ServerResponse.Header or (if a response was returned at
76987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76988// to check whether the returned error was because
76989// http.StatusNotModified was returned.
76990func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76991	gensupport.SetOptions(c.urlParams_, opts...)
76992	res, err := c.doRequest("json")
76993	if res != nil && res.StatusCode == http.StatusNotModified {
76994		if res.Body != nil {
76995			res.Body.Close()
76996		}
76997		return nil, &googleapi.Error{
76998			Code:   res.StatusCode,
76999			Header: res.Header,
77000		}
77001	}
77002	if err != nil {
77003		return nil, err
77004	}
77005	defer googleapi.CloseBody(res)
77006	if err := googleapi.CheckResponse(res); err != nil {
77007		return nil, err
77008	}
77009	ret := &Operation{
77010		ServerResponse: googleapi.ServerResponse{
77011			Header:         res.Header,
77012			HTTPStatusCode: res.StatusCode,
77013		},
77014	}
77015	target := &ret
77016	if err := gensupport.DecodeResponse(target, res); err != nil {
77017		return nil, err
77018	}
77019	return ret, nil
77020	// {
77021	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
77022	//   "flatPath": "projects/{project}/global/httpsHealthChecks",
77023	//   "httpMethod": "POST",
77024	//   "id": "compute.httpsHealthChecks.insert",
77025	//   "parameterOrder": [
77026	//     "project"
77027	//   ],
77028	//   "parameters": {
77029	//     "project": {
77030	//       "description": "Project ID for this request.",
77031	//       "location": "path",
77032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77033	//       "required": true,
77034	//       "type": "string"
77035	//     },
77036	//     "requestId": {
77037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77038	//       "location": "query",
77039	//       "type": "string"
77040	//     }
77041	//   },
77042	//   "path": "projects/{project}/global/httpsHealthChecks",
77043	//   "request": {
77044	//     "$ref": "HttpsHealthCheck"
77045	//   },
77046	//   "response": {
77047	//     "$ref": "Operation"
77048	//   },
77049	//   "scopes": [
77050	//     "https://www.googleapis.com/auth/cloud-platform",
77051	//     "https://www.googleapis.com/auth/compute"
77052	//   ]
77053	// }
77054
77055}
77056
77057// method id "compute.httpsHealthChecks.list":
77058
77059type HttpsHealthChecksListCall struct {
77060	s            *Service
77061	project      string
77062	urlParams_   gensupport.URLParams
77063	ifNoneMatch_ string
77064	ctx_         context.Context
77065	header_      http.Header
77066}
77067
77068// List: Retrieves the list of HttpsHealthCheck resources available to
77069// the specified project.
77070//
77071// - project: Project ID for this request.
77072func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
77073	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77074	c.project = project
77075	return c
77076}
77077
77078// Filter sets the optional parameter "filter": A filter expression that
77079// filters resources listed in the response. The expression must specify
77080// the field name, a comparison operator, and the value that you want to
77081// use for filtering. The value must be a string, a number, or a
77082// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77083// `<`. For example, if you are filtering Compute Engine instances, you
77084// can exclude instances named `example-instance` by specifying `name !=
77085// example-instance`. You can also filter nested fields. For example,
77086// you could specify `scheduling.automaticRestart = false` to include
77087// instances only if they are not scheduled for automatic restarts. You
77088// can use filtering on nested fields to filter based on resource
77089// labels. To filter on multiple expressions, provide each separate
77090// expression within parentheses. For example: ```
77091// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
77092// ``` By default, each expression is an `AND` expression. However, you
77093// can include `AND` and `OR` expressions explicitly. For example: ```
77094// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
77095// AND (scheduling.automaticRestart = true) ```
77096func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
77097	c.urlParams_.Set("filter", filter)
77098	return c
77099}
77100
77101// MaxResults sets the optional parameter "maxResults": The maximum
77102// number of results per page that should be returned. If the number of
77103// available results is larger than `maxResults`, Compute Engine returns
77104// a `nextPageToken` that can be used to get the next page of results in
77105// subsequent list requests. Acceptable values are `0` to `500`,
77106// inclusive. (Default: `500`)
77107func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
77108	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77109	return c
77110}
77111
77112// OrderBy sets the optional parameter "orderBy": Sorts list results by
77113// a certain order. By default, results are returned in alphanumerical
77114// order based on the resource name. You can also sort results in
77115// descending order based on the creation timestamp using
77116// `orderBy="creationTimestamp desc". This sorts results based on the
77117// `creationTimestamp` field in reverse chronological order (newest
77118// result first). Use this to sort resources like operations so that the
77119// newest operation is returned first. Currently, only sorting by `name`
77120// or `creationTimestamp desc` is supported.
77121func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
77122	c.urlParams_.Set("orderBy", orderBy)
77123	return c
77124}
77125
77126// PageToken sets the optional parameter "pageToken": Specifies a page
77127// token to use. Set `pageToken` to the `nextPageToken` returned by a
77128// previous list request to get the next page of results.
77129func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
77130	c.urlParams_.Set("pageToken", pageToken)
77131	return c
77132}
77133
77134// ReturnPartialSuccess sets the optional parameter
77135// "returnPartialSuccess": Opt-in for partial success behavior which
77136// provides partial results in case of failure. The default value is
77137// false.
77138func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
77139	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77140	return c
77141}
77142
77143// Fields allows partial responses to be retrieved. See
77144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77145// for more information.
77146func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
77147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77148	return c
77149}
77150
77151// IfNoneMatch sets the optional parameter which makes the operation
77152// fail if the object's ETag matches the given value. This is useful for
77153// getting updates only after the object has changed since the last
77154// request. Use googleapi.IsNotModified to check whether the response
77155// error from Do is the result of In-None-Match.
77156func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
77157	c.ifNoneMatch_ = entityTag
77158	return c
77159}
77160
77161// Context sets the context to be used in this call's Do method. Any
77162// pending HTTP request will be aborted if the provided context is
77163// canceled.
77164func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
77165	c.ctx_ = ctx
77166	return c
77167}
77168
77169// Header returns an http.Header that can be modified by the caller to
77170// add HTTP headers to the request.
77171func (c *HttpsHealthChecksListCall) Header() http.Header {
77172	if c.header_ == nil {
77173		c.header_ = make(http.Header)
77174	}
77175	return c.header_
77176}
77177
77178func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
77179	reqHeaders := make(http.Header)
77180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
77181	for k, v := range c.header_ {
77182		reqHeaders[k] = v
77183	}
77184	reqHeaders.Set("User-Agent", c.s.userAgent())
77185	if c.ifNoneMatch_ != "" {
77186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77187	}
77188	var body io.Reader = nil
77189	c.urlParams_.Set("alt", alt)
77190	c.urlParams_.Set("prettyPrint", "false")
77191	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
77192	urls += "?" + c.urlParams_.Encode()
77193	req, err := http.NewRequest("GET", urls, body)
77194	if err != nil {
77195		return nil, err
77196	}
77197	req.Header = reqHeaders
77198	googleapi.Expand(req.URL, map[string]string{
77199		"project": c.project,
77200	})
77201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77202}
77203
77204// Do executes the "compute.httpsHealthChecks.list" call.
77205// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
77206// non-2xx status code is an error. Response headers are in either
77207// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
77208// returned at all) in error.(*googleapi.Error).Header. Use
77209// googleapi.IsNotModified to check whether the returned error was
77210// because http.StatusNotModified was returned.
77211func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
77212	gensupport.SetOptions(c.urlParams_, opts...)
77213	res, err := c.doRequest("json")
77214	if res != nil && res.StatusCode == http.StatusNotModified {
77215		if res.Body != nil {
77216			res.Body.Close()
77217		}
77218		return nil, &googleapi.Error{
77219			Code:   res.StatusCode,
77220			Header: res.Header,
77221		}
77222	}
77223	if err != nil {
77224		return nil, err
77225	}
77226	defer googleapi.CloseBody(res)
77227	if err := googleapi.CheckResponse(res); err != nil {
77228		return nil, err
77229	}
77230	ret := &HttpsHealthCheckList{
77231		ServerResponse: googleapi.ServerResponse{
77232			Header:         res.Header,
77233			HTTPStatusCode: res.StatusCode,
77234		},
77235	}
77236	target := &ret
77237	if err := gensupport.DecodeResponse(target, res); err != nil {
77238		return nil, err
77239	}
77240	return ret, nil
77241	// {
77242	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
77243	//   "flatPath": "projects/{project}/global/httpsHealthChecks",
77244	//   "httpMethod": "GET",
77245	//   "id": "compute.httpsHealthChecks.list",
77246	//   "parameterOrder": [
77247	//     "project"
77248	//   ],
77249	//   "parameters": {
77250	//     "filter": {
77251	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
77252	//       "location": "query",
77253	//       "type": "string"
77254	//     },
77255	//     "maxResults": {
77256	//       "default": "500",
77257	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
77258	//       "format": "uint32",
77259	//       "location": "query",
77260	//       "minimum": "0",
77261	//       "type": "integer"
77262	//     },
77263	//     "orderBy": {
77264	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
77265	//       "location": "query",
77266	//       "type": "string"
77267	//     },
77268	//     "pageToken": {
77269	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
77270	//       "location": "query",
77271	//       "type": "string"
77272	//     },
77273	//     "project": {
77274	//       "description": "Project ID for this request.",
77275	//       "location": "path",
77276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77277	//       "required": true,
77278	//       "type": "string"
77279	//     },
77280	//     "returnPartialSuccess": {
77281	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
77282	//       "location": "query",
77283	//       "type": "boolean"
77284	//     }
77285	//   },
77286	//   "path": "projects/{project}/global/httpsHealthChecks",
77287	//   "response": {
77288	//     "$ref": "HttpsHealthCheckList"
77289	//   },
77290	//   "scopes": [
77291	//     "https://www.googleapis.com/auth/cloud-platform",
77292	//     "https://www.googleapis.com/auth/compute",
77293	//     "https://www.googleapis.com/auth/compute.readonly"
77294	//   ]
77295	// }
77296
77297}
77298
77299// Pages invokes f for each page of results.
77300// A non-nil error returned from f will halt the iteration.
77301// The provided context supersedes any context provided to the Context method.
77302func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
77303	c.ctx_ = ctx
77304	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77305	for {
77306		x, err := c.Do()
77307		if err != nil {
77308			return err
77309		}
77310		if err := f(x); err != nil {
77311			return err
77312		}
77313		if x.NextPageToken == "" {
77314			return nil
77315		}
77316		c.PageToken(x.NextPageToken)
77317	}
77318}
77319
77320// method id "compute.httpsHealthChecks.patch":
77321
77322type HttpsHealthChecksPatchCall struct {
77323	s                *Service
77324	project          string
77325	httpsHealthCheck string
77326	httpshealthcheck *HttpsHealthCheck
77327	urlParams_       gensupport.URLParams
77328	ctx_             context.Context
77329	header_          http.Header
77330}
77331
77332// Patch: Updates a HttpsHealthCheck resource in the specified project
77333// using the data included in the request. This method supports PATCH
77334// semantics and uses the JSON merge patch format and processing rules.
77335//
77336// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch.
77337// - project: Project ID for this request.
77338func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
77339	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77340	c.project = project
77341	c.httpsHealthCheck = httpsHealthCheck
77342	c.httpshealthcheck = httpshealthcheck
77343	return c
77344}
77345
77346// RequestId sets the optional parameter "requestId": An optional
77347// request ID to identify requests. Specify a unique request ID so that
77348// if you must retry your request, the server will know to ignore the
77349// request if it has already been completed. For example, consider a
77350// situation where you make an initial request and the request times
77351// out. If you make the request again with the same request ID, the
77352// server can check if original operation with the same request ID was
77353// received, and if so, will ignore the second request. This prevents
77354// clients from accidentally creating duplicate commitments. The request
77355// ID must be a valid UUID with the exception that zero UUID is not
77356// supported ( 00000000-0000-0000-0000-000000000000).
77357func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
77358	c.urlParams_.Set("requestId", requestId)
77359	return c
77360}
77361
77362// Fields allows partial responses to be retrieved. See
77363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77364// for more information.
77365func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
77366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77367	return c
77368}
77369
77370// Context sets the context to be used in this call's Do method. Any
77371// pending HTTP request will be aborted if the provided context is
77372// canceled.
77373func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
77374	c.ctx_ = ctx
77375	return c
77376}
77377
77378// Header returns an http.Header that can be modified by the caller to
77379// add HTTP headers to the request.
77380func (c *HttpsHealthChecksPatchCall) Header() http.Header {
77381	if c.header_ == nil {
77382		c.header_ = make(http.Header)
77383	}
77384	return c.header_
77385}
77386
77387func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
77388	reqHeaders := make(http.Header)
77389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
77390	for k, v := range c.header_ {
77391		reqHeaders[k] = v
77392	}
77393	reqHeaders.Set("User-Agent", c.s.userAgent())
77394	var body io.Reader = nil
77395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77396	if err != nil {
77397		return nil, err
77398	}
77399	reqHeaders.Set("Content-Type", "application/json")
77400	c.urlParams_.Set("alt", alt)
77401	c.urlParams_.Set("prettyPrint", "false")
77402	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77403	urls += "?" + c.urlParams_.Encode()
77404	req, err := http.NewRequest("PATCH", urls, body)
77405	if err != nil {
77406		return nil, err
77407	}
77408	req.Header = reqHeaders
77409	googleapi.Expand(req.URL, map[string]string{
77410		"project":          c.project,
77411		"httpsHealthCheck": c.httpsHealthCheck,
77412	})
77413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77414}
77415
77416// Do executes the "compute.httpsHealthChecks.patch" call.
77417// Exactly one of *Operation or error will be non-nil. Any non-2xx
77418// status code is an error. Response headers are in either
77419// *Operation.ServerResponse.Header or (if a response was returned at
77420// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77421// to check whether the returned error was because
77422// http.StatusNotModified was returned.
77423func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77424	gensupport.SetOptions(c.urlParams_, opts...)
77425	res, err := c.doRequest("json")
77426	if res != nil && res.StatusCode == http.StatusNotModified {
77427		if res.Body != nil {
77428			res.Body.Close()
77429		}
77430		return nil, &googleapi.Error{
77431			Code:   res.StatusCode,
77432			Header: res.Header,
77433		}
77434	}
77435	if err != nil {
77436		return nil, err
77437	}
77438	defer googleapi.CloseBody(res)
77439	if err := googleapi.CheckResponse(res); err != nil {
77440		return nil, err
77441	}
77442	ret := &Operation{
77443		ServerResponse: googleapi.ServerResponse{
77444			Header:         res.Header,
77445			HTTPStatusCode: res.StatusCode,
77446		},
77447	}
77448	target := &ret
77449	if err := gensupport.DecodeResponse(target, res); err != nil {
77450		return nil, err
77451	}
77452	return ret, nil
77453	// {
77454	//   "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.",
77455	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77456	//   "httpMethod": "PATCH",
77457	//   "id": "compute.httpsHealthChecks.patch",
77458	//   "parameterOrder": [
77459	//     "project",
77460	//     "httpsHealthCheck"
77461	//   ],
77462	//   "parameters": {
77463	//     "httpsHealthCheck": {
77464	//       "description": "Name of the HttpsHealthCheck resource to patch.",
77465	//       "location": "path",
77466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77467	//       "required": true,
77468	//       "type": "string"
77469	//     },
77470	//     "project": {
77471	//       "description": "Project ID for this request.",
77472	//       "location": "path",
77473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77474	//       "required": true,
77475	//       "type": "string"
77476	//     },
77477	//     "requestId": {
77478	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77479	//       "location": "query",
77480	//       "type": "string"
77481	//     }
77482	//   },
77483	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77484	//   "request": {
77485	//     "$ref": "HttpsHealthCheck"
77486	//   },
77487	//   "response": {
77488	//     "$ref": "Operation"
77489	//   },
77490	//   "scopes": [
77491	//     "https://www.googleapis.com/auth/cloud-platform",
77492	//     "https://www.googleapis.com/auth/compute"
77493	//   ]
77494	// }
77495
77496}
77497
77498// method id "compute.httpsHealthChecks.update":
77499
77500type HttpsHealthChecksUpdateCall struct {
77501	s                *Service
77502	project          string
77503	httpsHealthCheck string
77504	httpshealthcheck *HttpsHealthCheck
77505	urlParams_       gensupport.URLParams
77506	ctx_             context.Context
77507	header_          http.Header
77508}
77509
77510// Update: Updates a HttpsHealthCheck resource in the specified project
77511// using the data included in the request.
77512//
77513// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update.
77514// - project: Project ID for this request.
77515func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
77516	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77517	c.project = project
77518	c.httpsHealthCheck = httpsHealthCheck
77519	c.httpshealthcheck = httpshealthcheck
77520	return c
77521}
77522
77523// RequestId sets the optional parameter "requestId": An optional
77524// request ID to identify requests. Specify a unique request ID so that
77525// if you must retry your request, the server will know to ignore the
77526// request if it has already been completed. For example, consider a
77527// situation where you make an initial request and the request times
77528// out. If you make the request again with the same request ID, the
77529// server can check if original operation with the same request ID was
77530// received, and if so, will ignore the second request. This prevents
77531// clients from accidentally creating duplicate commitments. The request
77532// ID must be a valid UUID with the exception that zero UUID is not
77533// supported ( 00000000-0000-0000-0000-000000000000).
77534func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
77535	c.urlParams_.Set("requestId", requestId)
77536	return c
77537}
77538
77539// Fields allows partial responses to be retrieved. See
77540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77541// for more information.
77542func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
77543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77544	return c
77545}
77546
77547// Context sets the context to be used in this call's Do method. Any
77548// pending HTTP request will be aborted if the provided context is
77549// canceled.
77550func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
77551	c.ctx_ = ctx
77552	return c
77553}
77554
77555// Header returns an http.Header that can be modified by the caller to
77556// add HTTP headers to the request.
77557func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
77558	if c.header_ == nil {
77559		c.header_ = make(http.Header)
77560	}
77561	return c.header_
77562}
77563
77564func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
77565	reqHeaders := make(http.Header)
77566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
77567	for k, v := range c.header_ {
77568		reqHeaders[k] = v
77569	}
77570	reqHeaders.Set("User-Agent", c.s.userAgent())
77571	var body io.Reader = nil
77572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77573	if err != nil {
77574		return nil, err
77575	}
77576	reqHeaders.Set("Content-Type", "application/json")
77577	c.urlParams_.Set("alt", alt)
77578	c.urlParams_.Set("prettyPrint", "false")
77579	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77580	urls += "?" + c.urlParams_.Encode()
77581	req, err := http.NewRequest("PUT", urls, body)
77582	if err != nil {
77583		return nil, err
77584	}
77585	req.Header = reqHeaders
77586	googleapi.Expand(req.URL, map[string]string{
77587		"project":          c.project,
77588		"httpsHealthCheck": c.httpsHealthCheck,
77589	})
77590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77591}
77592
77593// Do executes the "compute.httpsHealthChecks.update" call.
77594// Exactly one of *Operation or error will be non-nil. Any non-2xx
77595// status code is an error. Response headers are in either
77596// *Operation.ServerResponse.Header or (if a response was returned at
77597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77598// to check whether the returned error was because
77599// http.StatusNotModified was returned.
77600func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77601	gensupport.SetOptions(c.urlParams_, opts...)
77602	res, err := c.doRequest("json")
77603	if res != nil && res.StatusCode == http.StatusNotModified {
77604		if res.Body != nil {
77605			res.Body.Close()
77606		}
77607		return nil, &googleapi.Error{
77608			Code:   res.StatusCode,
77609			Header: res.Header,
77610		}
77611	}
77612	if err != nil {
77613		return nil, err
77614	}
77615	defer googleapi.CloseBody(res)
77616	if err := googleapi.CheckResponse(res); err != nil {
77617		return nil, err
77618	}
77619	ret := &Operation{
77620		ServerResponse: googleapi.ServerResponse{
77621			Header:         res.Header,
77622			HTTPStatusCode: res.StatusCode,
77623		},
77624	}
77625	target := &ret
77626	if err := gensupport.DecodeResponse(target, res); err != nil {
77627		return nil, err
77628	}
77629	return ret, nil
77630	// {
77631	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
77632	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77633	//   "httpMethod": "PUT",
77634	//   "id": "compute.httpsHealthChecks.update",
77635	//   "parameterOrder": [
77636	//     "project",
77637	//     "httpsHealthCheck"
77638	//   ],
77639	//   "parameters": {
77640	//     "httpsHealthCheck": {
77641	//       "description": "Name of the HttpsHealthCheck resource to update.",
77642	//       "location": "path",
77643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77644	//       "required": true,
77645	//       "type": "string"
77646	//     },
77647	//     "project": {
77648	//       "description": "Project ID for this request.",
77649	//       "location": "path",
77650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77651	//       "required": true,
77652	//       "type": "string"
77653	//     },
77654	//     "requestId": {
77655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77656	//       "location": "query",
77657	//       "type": "string"
77658	//     }
77659	//   },
77660	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77661	//   "request": {
77662	//     "$ref": "HttpsHealthCheck"
77663	//   },
77664	//   "response": {
77665	//     "$ref": "Operation"
77666	//   },
77667	//   "scopes": [
77668	//     "https://www.googleapis.com/auth/cloud-platform",
77669	//     "https://www.googleapis.com/auth/compute"
77670	//   ]
77671	// }
77672
77673}
77674
77675// method id "compute.imageFamilyViews.get":
77676
77677type ImageFamilyViewsGetCall struct {
77678	s            *Service
77679	project      string
77680	zone         string
77681	family       string
77682	urlParams_   gensupport.URLParams
77683	ifNoneMatch_ string
77684	ctx_         context.Context
77685	header_      http.Header
77686}
77687
77688// Get: Returns the latest image that is part of an image family, is not
77689// deprecated and is rolled out in the specified zone.
77690//
77691// - family: Name of the image family to search for.
77692// - project: Project ID for this request.
77693// - zone: The name of the zone for this request.
77694func (r *ImageFamilyViewsService) Get(project string, zone string, family string) *ImageFamilyViewsGetCall {
77695	c := &ImageFamilyViewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77696	c.project = project
77697	c.zone = zone
77698	c.family = family
77699	return c
77700}
77701
77702// Fields allows partial responses to be retrieved. See
77703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77704// for more information.
77705func (c *ImageFamilyViewsGetCall) Fields(s ...googleapi.Field) *ImageFamilyViewsGetCall {
77706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77707	return c
77708}
77709
77710// IfNoneMatch sets the optional parameter which makes the operation
77711// fail if the object's ETag matches the given value. This is useful for
77712// getting updates only after the object has changed since the last
77713// request. Use googleapi.IsNotModified to check whether the response
77714// error from Do is the result of In-None-Match.
77715func (c *ImageFamilyViewsGetCall) IfNoneMatch(entityTag string) *ImageFamilyViewsGetCall {
77716	c.ifNoneMatch_ = entityTag
77717	return c
77718}
77719
77720// Context sets the context to be used in this call's Do method. Any
77721// pending HTTP request will be aborted if the provided context is
77722// canceled.
77723func (c *ImageFamilyViewsGetCall) Context(ctx context.Context) *ImageFamilyViewsGetCall {
77724	c.ctx_ = ctx
77725	return c
77726}
77727
77728// Header returns an http.Header that can be modified by the caller to
77729// add HTTP headers to the request.
77730func (c *ImageFamilyViewsGetCall) Header() http.Header {
77731	if c.header_ == nil {
77732		c.header_ = make(http.Header)
77733	}
77734	return c.header_
77735}
77736
77737func (c *ImageFamilyViewsGetCall) doRequest(alt string) (*http.Response, error) {
77738	reqHeaders := make(http.Header)
77739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
77740	for k, v := range c.header_ {
77741		reqHeaders[k] = v
77742	}
77743	reqHeaders.Set("User-Agent", c.s.userAgent())
77744	if c.ifNoneMatch_ != "" {
77745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77746	}
77747	var body io.Reader = nil
77748	c.urlParams_.Set("alt", alt)
77749	c.urlParams_.Set("prettyPrint", "false")
77750	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/imageFamilyViews/{family}")
77751	urls += "?" + c.urlParams_.Encode()
77752	req, err := http.NewRequest("GET", urls, body)
77753	if err != nil {
77754		return nil, err
77755	}
77756	req.Header = reqHeaders
77757	googleapi.Expand(req.URL, map[string]string{
77758		"project": c.project,
77759		"zone":    c.zone,
77760		"family":  c.family,
77761	})
77762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77763}
77764
77765// Do executes the "compute.imageFamilyViews.get" call.
77766// Exactly one of *ImageFamilyView or error will be non-nil. Any non-2xx
77767// status code is an error. Response headers are in either
77768// *ImageFamilyView.ServerResponse.Header or (if a response was returned
77769// at all) in error.(*googleapi.Error).Header. Use
77770// googleapi.IsNotModified to check whether the returned error was
77771// because http.StatusNotModified was returned.
77772func (c *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamilyView, error) {
77773	gensupport.SetOptions(c.urlParams_, opts...)
77774	res, err := c.doRequest("json")
77775	if res != nil && res.StatusCode == http.StatusNotModified {
77776		if res.Body != nil {
77777			res.Body.Close()
77778		}
77779		return nil, &googleapi.Error{
77780			Code:   res.StatusCode,
77781			Header: res.Header,
77782		}
77783	}
77784	if err != nil {
77785		return nil, err
77786	}
77787	defer googleapi.CloseBody(res)
77788	if err := googleapi.CheckResponse(res); err != nil {
77789		return nil, err
77790	}
77791	ret := &ImageFamilyView{
77792		ServerResponse: googleapi.ServerResponse{
77793			Header:         res.Header,
77794			HTTPStatusCode: res.StatusCode,
77795		},
77796	}
77797	target := &ret
77798	if err := gensupport.DecodeResponse(target, res); err != nil {
77799		return nil, err
77800	}
77801	return ret, nil
77802	// {
77803	//   "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.",
77804	//   "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
77805	//   "httpMethod": "GET",
77806	//   "id": "compute.imageFamilyViews.get",
77807	//   "parameterOrder": [
77808	//     "project",
77809	//     "zone",
77810	//     "family"
77811	//   ],
77812	//   "parameters": {
77813	//     "family": {
77814	//       "description": "Name of the image family to search for.",
77815	//       "location": "path",
77816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77817	//       "required": true,
77818	//       "type": "string"
77819	//     },
77820	//     "project": {
77821	//       "description": "Project ID for this request.",
77822	//       "location": "path",
77823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77824	//       "required": true,
77825	//       "type": "string"
77826	//     },
77827	//     "zone": {
77828	//       "description": "The name of the zone for this request.",
77829	//       "location": "path",
77830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77831	//       "required": true,
77832	//       "type": "string"
77833	//     }
77834	//   },
77835	//   "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
77836	//   "response": {
77837	//     "$ref": "ImageFamilyView"
77838	//   },
77839	//   "scopes": [
77840	//     "https://www.googleapis.com/auth/cloud-platform",
77841	//     "https://www.googleapis.com/auth/compute",
77842	//     "https://www.googleapis.com/auth/compute.readonly"
77843	//   ]
77844	// }
77845
77846}
77847
77848// method id "compute.images.delete":
77849
77850type ImagesDeleteCall struct {
77851	s          *Service
77852	project    string
77853	image      string
77854	urlParams_ gensupport.URLParams
77855	ctx_       context.Context
77856	header_    http.Header
77857}
77858
77859// Delete: Deletes the specified image.
77860//
77861// - image: Name of the image resource to delete.
77862// - project: Project ID for this request.
77863func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
77864	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77865	c.project = project
77866	c.image = image
77867	return c
77868}
77869
77870// RequestId sets the optional parameter "requestId": An optional
77871// request ID to identify requests. Specify a unique request ID so that
77872// if you must retry your request, the server will know to ignore the
77873// request if it has already been completed. For example, consider a
77874// situation where you make an initial request and the request times
77875// out. If you make the request again with the same request ID, the
77876// server can check if original operation with the same request ID was
77877// received, and if so, will ignore the second request. This prevents
77878// clients from accidentally creating duplicate commitments. The request
77879// ID must be a valid UUID with the exception that zero UUID is not
77880// supported ( 00000000-0000-0000-0000-000000000000).
77881func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
77882	c.urlParams_.Set("requestId", requestId)
77883	return c
77884}
77885
77886// Fields allows partial responses to be retrieved. See
77887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77888// for more information.
77889func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
77890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77891	return c
77892}
77893
77894// Context sets the context to be used in this call's Do method. Any
77895// pending HTTP request will be aborted if the provided context is
77896// canceled.
77897func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
77898	c.ctx_ = ctx
77899	return c
77900}
77901
77902// Header returns an http.Header that can be modified by the caller to
77903// add HTTP headers to the request.
77904func (c *ImagesDeleteCall) Header() http.Header {
77905	if c.header_ == nil {
77906		c.header_ = make(http.Header)
77907	}
77908	return c.header_
77909}
77910
77911func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
77912	reqHeaders := make(http.Header)
77913	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
77914	for k, v := range c.header_ {
77915		reqHeaders[k] = v
77916	}
77917	reqHeaders.Set("User-Agent", c.s.userAgent())
77918	var body io.Reader = nil
77919	c.urlParams_.Set("alt", alt)
77920	c.urlParams_.Set("prettyPrint", "false")
77921	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
77922	urls += "?" + c.urlParams_.Encode()
77923	req, err := http.NewRequest("DELETE", urls, body)
77924	if err != nil {
77925		return nil, err
77926	}
77927	req.Header = reqHeaders
77928	googleapi.Expand(req.URL, map[string]string{
77929		"project": c.project,
77930		"image":   c.image,
77931	})
77932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77933}
77934
77935// Do executes the "compute.images.delete" call.
77936// Exactly one of *Operation or error will be non-nil. Any non-2xx
77937// status code is an error. Response headers are in either
77938// *Operation.ServerResponse.Header or (if a response was returned at
77939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77940// to check whether the returned error was because
77941// http.StatusNotModified was returned.
77942func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77943	gensupport.SetOptions(c.urlParams_, opts...)
77944	res, err := c.doRequest("json")
77945	if res != nil && res.StatusCode == http.StatusNotModified {
77946		if res.Body != nil {
77947			res.Body.Close()
77948		}
77949		return nil, &googleapi.Error{
77950			Code:   res.StatusCode,
77951			Header: res.Header,
77952		}
77953	}
77954	if err != nil {
77955		return nil, err
77956	}
77957	defer googleapi.CloseBody(res)
77958	if err := googleapi.CheckResponse(res); err != nil {
77959		return nil, err
77960	}
77961	ret := &Operation{
77962		ServerResponse: googleapi.ServerResponse{
77963			Header:         res.Header,
77964			HTTPStatusCode: res.StatusCode,
77965		},
77966	}
77967	target := &ret
77968	if err := gensupport.DecodeResponse(target, res); err != nil {
77969		return nil, err
77970	}
77971	return ret, nil
77972	// {
77973	//   "description": "Deletes the specified image.",
77974	//   "flatPath": "projects/{project}/global/images/{image}",
77975	//   "httpMethod": "DELETE",
77976	//   "id": "compute.images.delete",
77977	//   "parameterOrder": [
77978	//     "project",
77979	//     "image"
77980	//   ],
77981	//   "parameters": {
77982	//     "image": {
77983	//       "description": "Name of the image resource to delete.",
77984	//       "location": "path",
77985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77986	//       "required": true,
77987	//       "type": "string"
77988	//     },
77989	//     "project": {
77990	//       "description": "Project ID for this request.",
77991	//       "location": "path",
77992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77993	//       "required": true,
77994	//       "type": "string"
77995	//     },
77996	//     "requestId": {
77997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77998	//       "location": "query",
77999	//       "type": "string"
78000	//     }
78001	//   },
78002	//   "path": "projects/{project}/global/images/{image}",
78003	//   "response": {
78004	//     "$ref": "Operation"
78005	//   },
78006	//   "scopes": [
78007	//     "https://www.googleapis.com/auth/cloud-platform",
78008	//     "https://www.googleapis.com/auth/compute"
78009	//   ]
78010	// }
78011
78012}
78013
78014// method id "compute.images.deprecate":
78015
78016type ImagesDeprecateCall struct {
78017	s                 *Service
78018	project           string
78019	image             string
78020	deprecationstatus *DeprecationStatus
78021	urlParams_        gensupport.URLParams
78022	ctx_              context.Context
78023	header_           http.Header
78024}
78025
78026// Deprecate: Sets the deprecation status of an image. If an empty
78027// request body is given, clears the deprecation status instead.
78028//
78029// - image: Image name.
78030// - project: Project ID for this request.
78031func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
78032	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78033	c.project = project
78034	c.image = image
78035	c.deprecationstatus = deprecationstatus
78036	return c
78037}
78038
78039// RequestId sets the optional parameter "requestId": An optional
78040// request ID to identify requests. Specify a unique request ID so that
78041// if you must retry your request, the server will know to ignore the
78042// request if it has already been completed. For example, consider a
78043// situation where you make an initial request and the request times
78044// out. If you make the request again with the same request ID, the
78045// server can check if original operation with the same request ID was
78046// received, and if so, will ignore the second request. This prevents
78047// clients from accidentally creating duplicate commitments. The request
78048// ID must be a valid UUID with the exception that zero UUID is not
78049// supported ( 00000000-0000-0000-0000-000000000000).
78050func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
78051	c.urlParams_.Set("requestId", requestId)
78052	return c
78053}
78054
78055// Fields allows partial responses to be retrieved. See
78056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78057// for more information.
78058func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
78059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78060	return c
78061}
78062
78063// Context sets the context to be used in this call's Do method. Any
78064// pending HTTP request will be aborted if the provided context is
78065// canceled.
78066func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
78067	c.ctx_ = ctx
78068	return c
78069}
78070
78071// Header returns an http.Header that can be modified by the caller to
78072// add HTTP headers to the request.
78073func (c *ImagesDeprecateCall) Header() http.Header {
78074	if c.header_ == nil {
78075		c.header_ = make(http.Header)
78076	}
78077	return c.header_
78078}
78079
78080func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
78081	reqHeaders := make(http.Header)
78082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78083	for k, v := range c.header_ {
78084		reqHeaders[k] = v
78085	}
78086	reqHeaders.Set("User-Agent", c.s.userAgent())
78087	var body io.Reader = nil
78088	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
78089	if err != nil {
78090		return nil, err
78091	}
78092	reqHeaders.Set("Content-Type", "application/json")
78093	c.urlParams_.Set("alt", alt)
78094	c.urlParams_.Set("prettyPrint", "false")
78095	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate")
78096	urls += "?" + c.urlParams_.Encode()
78097	req, err := http.NewRequest("POST", urls, body)
78098	if err != nil {
78099		return nil, err
78100	}
78101	req.Header = reqHeaders
78102	googleapi.Expand(req.URL, map[string]string{
78103		"project": c.project,
78104		"image":   c.image,
78105	})
78106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78107}
78108
78109// Do executes the "compute.images.deprecate" call.
78110// Exactly one of *Operation or error will be non-nil. Any non-2xx
78111// status code is an error. Response headers are in either
78112// *Operation.ServerResponse.Header or (if a response was returned at
78113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78114// to check whether the returned error was because
78115// http.StatusNotModified was returned.
78116func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78117	gensupport.SetOptions(c.urlParams_, opts...)
78118	res, err := c.doRequest("json")
78119	if res != nil && res.StatusCode == http.StatusNotModified {
78120		if res.Body != nil {
78121			res.Body.Close()
78122		}
78123		return nil, &googleapi.Error{
78124			Code:   res.StatusCode,
78125			Header: res.Header,
78126		}
78127	}
78128	if err != nil {
78129		return nil, err
78130	}
78131	defer googleapi.CloseBody(res)
78132	if err := googleapi.CheckResponse(res); err != nil {
78133		return nil, err
78134	}
78135	ret := &Operation{
78136		ServerResponse: googleapi.ServerResponse{
78137			Header:         res.Header,
78138			HTTPStatusCode: res.StatusCode,
78139		},
78140	}
78141	target := &ret
78142	if err := gensupport.DecodeResponse(target, res); err != nil {
78143		return nil, err
78144	}
78145	return ret, nil
78146	// {
78147	//   "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.",
78148	//   "flatPath": "projects/{project}/global/images/{image}/deprecate",
78149	//   "httpMethod": "POST",
78150	//   "id": "compute.images.deprecate",
78151	//   "parameterOrder": [
78152	//     "project",
78153	//     "image"
78154	//   ],
78155	//   "parameters": {
78156	//     "image": {
78157	//       "description": "Image name.",
78158	//       "location": "path",
78159	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78160	//       "required": true,
78161	//       "type": "string"
78162	//     },
78163	//     "project": {
78164	//       "description": "Project ID for this request.",
78165	//       "location": "path",
78166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78167	//       "required": true,
78168	//       "type": "string"
78169	//     },
78170	//     "requestId": {
78171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
78172	//       "location": "query",
78173	//       "type": "string"
78174	//     }
78175	//   },
78176	//   "path": "projects/{project}/global/images/{image}/deprecate",
78177	//   "request": {
78178	//     "$ref": "DeprecationStatus"
78179	//   },
78180	//   "response": {
78181	//     "$ref": "Operation"
78182	//   },
78183	//   "scopes": [
78184	//     "https://www.googleapis.com/auth/cloud-platform",
78185	//     "https://www.googleapis.com/auth/compute"
78186	//   ]
78187	// }
78188
78189}
78190
78191// method id "compute.images.get":
78192
78193type ImagesGetCall struct {
78194	s            *Service
78195	project      string
78196	image        string
78197	urlParams_   gensupport.URLParams
78198	ifNoneMatch_ string
78199	ctx_         context.Context
78200	header_      http.Header
78201}
78202
78203// Get: Returns the specified image. Gets a list of available images by
78204// making a list() request.
78205//
78206// - image: Name of the image resource to return.
78207// - project: Project ID for this request.
78208func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
78209	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78210	c.project = project
78211	c.image = image
78212	return c
78213}
78214
78215// Fields allows partial responses to be retrieved. See
78216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78217// for more information.
78218func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
78219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78220	return c
78221}
78222
78223// IfNoneMatch sets the optional parameter which makes the operation
78224// fail if the object's ETag matches the given value. This is useful for
78225// getting updates only after the object has changed since the last
78226// request. Use googleapi.IsNotModified to check whether the response
78227// error from Do is the result of In-None-Match.
78228func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
78229	c.ifNoneMatch_ = entityTag
78230	return c
78231}
78232
78233// Context sets the context to be used in this call's Do method. Any
78234// pending HTTP request will be aborted if the provided context is
78235// canceled.
78236func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
78237	c.ctx_ = ctx
78238	return c
78239}
78240
78241// Header returns an http.Header that can be modified by the caller to
78242// add HTTP headers to the request.
78243func (c *ImagesGetCall) Header() http.Header {
78244	if c.header_ == nil {
78245		c.header_ = make(http.Header)
78246	}
78247	return c.header_
78248}
78249
78250func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
78251	reqHeaders := make(http.Header)
78252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78253	for k, v := range c.header_ {
78254		reqHeaders[k] = v
78255	}
78256	reqHeaders.Set("User-Agent", c.s.userAgent())
78257	if c.ifNoneMatch_ != "" {
78258		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78259	}
78260	var body io.Reader = nil
78261	c.urlParams_.Set("alt", alt)
78262	c.urlParams_.Set("prettyPrint", "false")
78263	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
78264	urls += "?" + c.urlParams_.Encode()
78265	req, err := http.NewRequest("GET", urls, body)
78266	if err != nil {
78267		return nil, err
78268	}
78269	req.Header = reqHeaders
78270	googleapi.Expand(req.URL, map[string]string{
78271		"project": c.project,
78272		"image":   c.image,
78273	})
78274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78275}
78276
78277// Do executes the "compute.images.get" call.
78278// Exactly one of *Image or error will be non-nil. Any non-2xx status
78279// code is an error. Response headers are in either
78280// *Image.ServerResponse.Header or (if a response was returned at all)
78281// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78282// check whether the returned error was because http.StatusNotModified
78283// was returned.
78284func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
78285	gensupport.SetOptions(c.urlParams_, opts...)
78286	res, err := c.doRequest("json")
78287	if res != nil && res.StatusCode == http.StatusNotModified {
78288		if res.Body != nil {
78289			res.Body.Close()
78290		}
78291		return nil, &googleapi.Error{
78292			Code:   res.StatusCode,
78293			Header: res.Header,
78294		}
78295	}
78296	if err != nil {
78297		return nil, err
78298	}
78299	defer googleapi.CloseBody(res)
78300	if err := googleapi.CheckResponse(res); err != nil {
78301		return nil, err
78302	}
78303	ret := &Image{
78304		ServerResponse: googleapi.ServerResponse{
78305			Header:         res.Header,
78306			HTTPStatusCode: res.StatusCode,
78307		},
78308	}
78309	target := &ret
78310	if err := gensupport.DecodeResponse(target, res); err != nil {
78311		return nil, err
78312	}
78313	return ret, nil
78314	// {
78315	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
78316	//   "flatPath": "projects/{project}/global/images/{image}",
78317	//   "httpMethod": "GET",
78318	//   "id": "compute.images.get",
78319	//   "parameterOrder": [
78320	//     "project",
78321	//     "image"
78322	//   ],
78323	//   "parameters": {
78324	//     "image": {
78325	//       "description": "Name of the image resource to return.",
78326	//       "location": "path",
78327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78328	//       "required": true,
78329	//       "type": "string"
78330	//     },
78331	//     "project": {
78332	//       "description": "Project ID for this request.",
78333	//       "location": "path",
78334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78335	//       "required": true,
78336	//       "type": "string"
78337	//     }
78338	//   },
78339	//   "path": "projects/{project}/global/images/{image}",
78340	//   "response": {
78341	//     "$ref": "Image"
78342	//   },
78343	//   "scopes": [
78344	//     "https://www.googleapis.com/auth/cloud-platform",
78345	//     "https://www.googleapis.com/auth/compute",
78346	//     "https://www.googleapis.com/auth/compute.readonly"
78347	//   ]
78348	// }
78349
78350}
78351
78352// method id "compute.images.getFromFamily":
78353
78354type ImagesGetFromFamilyCall struct {
78355	s            *Service
78356	project      string
78357	family       string
78358	urlParams_   gensupport.URLParams
78359	ifNoneMatch_ string
78360	ctx_         context.Context
78361	header_      http.Header
78362}
78363
78364// GetFromFamily: Returns the latest image that is part of an image
78365// family and is not deprecated.
78366//
78367// - family: Name of the image family to search for.
78368// - project: Project ID for this request.
78369func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
78370	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78371	c.project = project
78372	c.family = family
78373	return c
78374}
78375
78376// Fields allows partial responses to be retrieved. See
78377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78378// for more information.
78379func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
78380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78381	return c
78382}
78383
78384// IfNoneMatch sets the optional parameter which makes the operation
78385// fail if the object's ETag matches the given value. This is useful for
78386// getting updates only after the object has changed since the last
78387// request. Use googleapi.IsNotModified to check whether the response
78388// error from Do is the result of In-None-Match.
78389func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
78390	c.ifNoneMatch_ = entityTag
78391	return c
78392}
78393
78394// Context sets the context to be used in this call's Do method. Any
78395// pending HTTP request will be aborted if the provided context is
78396// canceled.
78397func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
78398	c.ctx_ = ctx
78399	return c
78400}
78401
78402// Header returns an http.Header that can be modified by the caller to
78403// add HTTP headers to the request.
78404func (c *ImagesGetFromFamilyCall) Header() http.Header {
78405	if c.header_ == nil {
78406		c.header_ = make(http.Header)
78407	}
78408	return c.header_
78409}
78410
78411func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
78412	reqHeaders := make(http.Header)
78413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78414	for k, v := range c.header_ {
78415		reqHeaders[k] = v
78416	}
78417	reqHeaders.Set("User-Agent", c.s.userAgent())
78418	if c.ifNoneMatch_ != "" {
78419		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78420	}
78421	var body io.Reader = nil
78422	c.urlParams_.Set("alt", alt)
78423	c.urlParams_.Set("prettyPrint", "false")
78424	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}")
78425	urls += "?" + c.urlParams_.Encode()
78426	req, err := http.NewRequest("GET", urls, body)
78427	if err != nil {
78428		return nil, err
78429	}
78430	req.Header = reqHeaders
78431	googleapi.Expand(req.URL, map[string]string{
78432		"project": c.project,
78433		"family":  c.family,
78434	})
78435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78436}
78437
78438// Do executes the "compute.images.getFromFamily" call.
78439// Exactly one of *Image or error will be non-nil. Any non-2xx status
78440// code is an error. Response headers are in either
78441// *Image.ServerResponse.Header or (if a response was returned at all)
78442// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78443// check whether the returned error was because http.StatusNotModified
78444// was returned.
78445func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
78446	gensupport.SetOptions(c.urlParams_, opts...)
78447	res, err := c.doRequest("json")
78448	if res != nil && res.StatusCode == http.StatusNotModified {
78449		if res.Body != nil {
78450			res.Body.Close()
78451		}
78452		return nil, &googleapi.Error{
78453			Code:   res.StatusCode,
78454			Header: res.Header,
78455		}
78456	}
78457	if err != nil {
78458		return nil, err
78459	}
78460	defer googleapi.CloseBody(res)
78461	if err := googleapi.CheckResponse(res); err != nil {
78462		return nil, err
78463	}
78464	ret := &Image{
78465		ServerResponse: googleapi.ServerResponse{
78466			Header:         res.Header,
78467			HTTPStatusCode: res.StatusCode,
78468		},
78469	}
78470	target := &ret
78471	if err := gensupport.DecodeResponse(target, res); err != nil {
78472		return nil, err
78473	}
78474	return ret, nil
78475	// {
78476	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
78477	//   "flatPath": "projects/{project}/global/images/family/{family}",
78478	//   "httpMethod": "GET",
78479	//   "id": "compute.images.getFromFamily",
78480	//   "parameterOrder": [
78481	//     "project",
78482	//     "family"
78483	//   ],
78484	//   "parameters": {
78485	//     "family": {
78486	//       "description": "Name of the image family to search for.",
78487	//       "location": "path",
78488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78489	//       "required": true,
78490	//       "type": "string"
78491	//     },
78492	//     "project": {
78493	//       "description": "Project ID for this request.",
78494	//       "location": "path",
78495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78496	//       "required": true,
78497	//       "type": "string"
78498	//     }
78499	//   },
78500	//   "path": "projects/{project}/global/images/family/{family}",
78501	//   "response": {
78502	//     "$ref": "Image"
78503	//   },
78504	//   "scopes": [
78505	//     "https://www.googleapis.com/auth/cloud-platform",
78506	//     "https://www.googleapis.com/auth/compute",
78507	//     "https://www.googleapis.com/auth/compute.readonly"
78508	//   ]
78509	// }
78510
78511}
78512
78513// method id "compute.images.getIamPolicy":
78514
78515type ImagesGetIamPolicyCall struct {
78516	s            *Service
78517	project      string
78518	resource     string
78519	urlParams_   gensupport.URLParams
78520	ifNoneMatch_ string
78521	ctx_         context.Context
78522	header_      http.Header
78523}
78524
78525// GetIamPolicy: Gets the access control policy for a resource. May be
78526// empty if no such policy or resource exists.
78527//
78528// - project: Project ID for this request.
78529// - resource: Name or id of the resource for this request.
78530func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
78531	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78532	c.project = project
78533	c.resource = resource
78534	return c
78535}
78536
78537// OptionsRequestedPolicyVersion sets the optional parameter
78538// "optionsRequestedPolicyVersion": Requested IAM Policy version.
78539func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
78540	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
78541	return c
78542}
78543
78544// Fields allows partial responses to be retrieved. See
78545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78546// for more information.
78547func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
78548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78549	return c
78550}
78551
78552// IfNoneMatch sets the optional parameter which makes the operation
78553// fail if the object's ETag matches the given value. This is useful for
78554// getting updates only after the object has changed since the last
78555// request. Use googleapi.IsNotModified to check whether the response
78556// error from Do is the result of In-None-Match.
78557func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
78558	c.ifNoneMatch_ = entityTag
78559	return c
78560}
78561
78562// Context sets the context to be used in this call's Do method. Any
78563// pending HTTP request will be aborted if the provided context is
78564// canceled.
78565func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
78566	c.ctx_ = ctx
78567	return c
78568}
78569
78570// Header returns an http.Header that can be modified by the caller to
78571// add HTTP headers to the request.
78572func (c *ImagesGetIamPolicyCall) Header() http.Header {
78573	if c.header_ == nil {
78574		c.header_ = make(http.Header)
78575	}
78576	return c.header_
78577}
78578
78579func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
78580	reqHeaders := make(http.Header)
78581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78582	for k, v := range c.header_ {
78583		reqHeaders[k] = v
78584	}
78585	reqHeaders.Set("User-Agent", c.s.userAgent())
78586	if c.ifNoneMatch_ != "" {
78587		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78588	}
78589	var body io.Reader = nil
78590	c.urlParams_.Set("alt", alt)
78591	c.urlParams_.Set("prettyPrint", "false")
78592	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy")
78593	urls += "?" + c.urlParams_.Encode()
78594	req, err := http.NewRequest("GET", urls, body)
78595	if err != nil {
78596		return nil, err
78597	}
78598	req.Header = reqHeaders
78599	googleapi.Expand(req.URL, map[string]string{
78600		"project":  c.project,
78601		"resource": c.resource,
78602	})
78603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78604}
78605
78606// Do executes the "compute.images.getIamPolicy" call.
78607// Exactly one of *Policy or error will be non-nil. Any non-2xx status
78608// code is an error. Response headers are in either
78609// *Policy.ServerResponse.Header or (if a response was returned at all)
78610// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78611// check whether the returned error was because http.StatusNotModified
78612// was returned.
78613func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
78614	gensupport.SetOptions(c.urlParams_, opts...)
78615	res, err := c.doRequest("json")
78616	if res != nil && res.StatusCode == http.StatusNotModified {
78617		if res.Body != nil {
78618			res.Body.Close()
78619		}
78620		return nil, &googleapi.Error{
78621			Code:   res.StatusCode,
78622			Header: res.Header,
78623		}
78624	}
78625	if err != nil {
78626		return nil, err
78627	}
78628	defer googleapi.CloseBody(res)
78629	if err := googleapi.CheckResponse(res); err != nil {
78630		return nil, err
78631	}
78632	ret := &Policy{
78633		ServerResponse: googleapi.ServerResponse{
78634			Header:         res.Header,
78635			HTTPStatusCode: res.StatusCode,
78636		},
78637	}
78638	target := &ret
78639	if err := gensupport.DecodeResponse(target, res); err != nil {
78640		return nil, err
78641	}
78642	return ret, nil
78643	// {
78644	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
78645	//   "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy",
78646	//   "httpMethod": "GET",
78647	//   "id": "compute.images.getIamPolicy",
78648	//   "parameterOrder": [
78649	//     "project",
78650	//     "resource"
78651	//   ],
78652	//   "parameters": {
78653	//     "optionsRequestedPolicyVersion": {
78654	//       "description": "Requested IAM Policy version.",
78655	//       "format": "int32",
78656	//       "location": "query",
78657	//       "type": "integer"
78658	//     },
78659	//     "project": {
78660	//       "description": "Project ID for this request.",
78661	//       "location": "path",
78662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78663	//       "required": true,
78664	//       "type": "string"
78665	//     },
78666	//     "resource": {
78667	//       "description": "Name or id of the resource for this request.",
78668	//       "location": "path",
78669	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78670	//       "required": true,
78671	//       "type": "string"
78672	//     }
78673	//   },
78674	//   "path": "projects/{project}/global/images/{resource}/getIamPolicy",
78675	//   "response": {
78676	//     "$ref": "Policy"
78677	//   },
78678	//   "scopes": [
78679	//     "https://www.googleapis.com/auth/cloud-platform",
78680	//     "https://www.googleapis.com/auth/compute",
78681	//     "https://www.googleapis.com/auth/compute.readonly"
78682	//   ]
78683	// }
78684
78685}
78686
78687// method id "compute.images.insert":
78688
78689type ImagesInsertCall struct {
78690	s          *Service
78691	project    string
78692	image      *Image
78693	urlParams_ gensupport.URLParams
78694	ctx_       context.Context
78695	header_    http.Header
78696}
78697
78698// Insert: Creates an image in the specified project using the data
78699// included in the request.
78700//
78701// - project: Project ID for this request.
78702func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
78703	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78704	c.project = project
78705	c.image = image
78706	return c
78707}
78708
78709// ForceCreate sets the optional parameter "forceCreate": Force image
78710// creation if true.
78711func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
78712	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
78713	return c
78714}
78715
78716// RequestId sets the optional parameter "requestId": An optional
78717// request ID to identify requests. Specify a unique request ID so that
78718// if you must retry your request, the server will know to ignore the
78719// request if it has already been completed. For example, consider a
78720// situation where you make an initial request and the request times
78721// out. If you make the request again with the same request ID, the
78722// server can check if original operation with the same request ID was
78723// received, and if so, will ignore the second request. This prevents
78724// clients from accidentally creating duplicate commitments. The request
78725// ID must be a valid UUID with the exception that zero UUID is not
78726// supported ( 00000000-0000-0000-0000-000000000000).
78727func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
78728	c.urlParams_.Set("requestId", requestId)
78729	return c
78730}
78731
78732// Fields allows partial responses to be retrieved. See
78733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78734// for more information.
78735func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
78736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78737	return c
78738}
78739
78740// Context sets the context to be used in this call's Do method. Any
78741// pending HTTP request will be aborted if the provided context is
78742// canceled.
78743func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
78744	c.ctx_ = ctx
78745	return c
78746}
78747
78748// Header returns an http.Header that can be modified by the caller to
78749// add HTTP headers to the request.
78750func (c *ImagesInsertCall) Header() http.Header {
78751	if c.header_ == nil {
78752		c.header_ = make(http.Header)
78753	}
78754	return c.header_
78755}
78756
78757func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
78758	reqHeaders := make(http.Header)
78759	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78760	for k, v := range c.header_ {
78761		reqHeaders[k] = v
78762	}
78763	reqHeaders.Set("User-Agent", c.s.userAgent())
78764	var body io.Reader = nil
78765	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
78766	if err != nil {
78767		return nil, err
78768	}
78769	reqHeaders.Set("Content-Type", "application/json")
78770	c.urlParams_.Set("alt", alt)
78771	c.urlParams_.Set("prettyPrint", "false")
78772	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
78773	urls += "?" + c.urlParams_.Encode()
78774	req, err := http.NewRequest("POST", urls, body)
78775	if err != nil {
78776		return nil, err
78777	}
78778	req.Header = reqHeaders
78779	googleapi.Expand(req.URL, map[string]string{
78780		"project": c.project,
78781	})
78782	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78783}
78784
78785// Do executes the "compute.images.insert" call.
78786// Exactly one of *Operation or error will be non-nil. Any non-2xx
78787// status code is an error. Response headers are in either
78788// *Operation.ServerResponse.Header or (if a response was returned at
78789// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78790// to check whether the returned error was because
78791// http.StatusNotModified was returned.
78792func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78793	gensupport.SetOptions(c.urlParams_, opts...)
78794	res, err := c.doRequest("json")
78795	if res != nil && res.StatusCode == http.StatusNotModified {
78796		if res.Body != nil {
78797			res.Body.Close()
78798		}
78799		return nil, &googleapi.Error{
78800			Code:   res.StatusCode,
78801			Header: res.Header,
78802		}
78803	}
78804	if err != nil {
78805		return nil, err
78806	}
78807	defer googleapi.CloseBody(res)
78808	if err := googleapi.CheckResponse(res); err != nil {
78809		return nil, err
78810	}
78811	ret := &Operation{
78812		ServerResponse: googleapi.ServerResponse{
78813			Header:         res.Header,
78814			HTTPStatusCode: res.StatusCode,
78815		},
78816	}
78817	target := &ret
78818	if err := gensupport.DecodeResponse(target, res); err != nil {
78819		return nil, err
78820	}
78821	return ret, nil
78822	// {
78823	//   "description": "Creates an image in the specified project using the data included in the request.",
78824	//   "flatPath": "projects/{project}/global/images",
78825	//   "httpMethod": "POST",
78826	//   "id": "compute.images.insert",
78827	//   "parameterOrder": [
78828	//     "project"
78829	//   ],
78830	//   "parameters": {
78831	//     "forceCreate": {
78832	//       "description": "Force image creation if true.",
78833	//       "location": "query",
78834	//       "type": "boolean"
78835	//     },
78836	//     "project": {
78837	//       "description": "Project ID for this request.",
78838	//       "location": "path",
78839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78840	//       "required": true,
78841	//       "type": "string"
78842	//     },
78843	//     "requestId": {
78844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
78845	//       "location": "query",
78846	//       "type": "string"
78847	//     }
78848	//   },
78849	//   "path": "projects/{project}/global/images",
78850	//   "request": {
78851	//     "$ref": "Image"
78852	//   },
78853	//   "response": {
78854	//     "$ref": "Operation"
78855	//   },
78856	//   "scopes": [
78857	//     "https://www.googleapis.com/auth/cloud-platform",
78858	//     "https://www.googleapis.com/auth/compute",
78859	//     "https://www.googleapis.com/auth/devstorage.full_control",
78860	//     "https://www.googleapis.com/auth/devstorage.read_only",
78861	//     "https://www.googleapis.com/auth/devstorage.read_write"
78862	//   ]
78863	// }
78864
78865}
78866
78867// method id "compute.images.list":
78868
78869type ImagesListCall struct {
78870	s            *Service
78871	project      string
78872	urlParams_   gensupport.URLParams
78873	ifNoneMatch_ string
78874	ctx_         context.Context
78875	header_      http.Header
78876}
78877
78878// List: Retrieves the list of custom images available to the specified
78879// project. Custom images are images you create that belong to your
78880// project. This method does not get any images that belong to other
78881// projects, including publicly-available images, like Debian 8. If you
78882// want to get a list of publicly-available images, use this method to
78883// make a request to the respective image project, such as debian-cloud
78884// or windows-cloud.
78885//
78886// - project: Project ID for this request.
78887func (r *ImagesService) List(project string) *ImagesListCall {
78888	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78889	c.project = project
78890	return c
78891}
78892
78893// Filter sets the optional parameter "filter": A filter expression that
78894// filters resources listed in the response. The expression must specify
78895// the field name, a comparison operator, and the value that you want to
78896// use for filtering. The value must be a string, a number, or a
78897// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78898// `<`. For example, if you are filtering Compute Engine instances, you
78899// can exclude instances named `example-instance` by specifying `name !=
78900// example-instance`. You can also filter nested fields. For example,
78901// you could specify `scheduling.automaticRestart = false` to include
78902// instances only if they are not scheduled for automatic restarts. You
78903// can use filtering on nested fields to filter based on resource
78904// labels. To filter on multiple expressions, provide each separate
78905// expression within parentheses. For example: ```
78906// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
78907// ``` By default, each expression is an `AND` expression. However, you
78908// can include `AND` and `OR` expressions explicitly. For example: ```
78909// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
78910// AND (scheduling.automaticRestart = true) ```
78911func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
78912	c.urlParams_.Set("filter", filter)
78913	return c
78914}
78915
78916// MaxResults sets the optional parameter "maxResults": The maximum
78917// number of results per page that should be returned. If the number of
78918// available results is larger than `maxResults`, Compute Engine returns
78919// a `nextPageToken` that can be used to get the next page of results in
78920// subsequent list requests. Acceptable values are `0` to `500`,
78921// inclusive. (Default: `500`)
78922func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
78923	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78924	return c
78925}
78926
78927// OrderBy sets the optional parameter "orderBy": Sorts list results by
78928// a certain order. By default, results are returned in alphanumerical
78929// order based on the resource name. You can also sort results in
78930// descending order based on the creation timestamp using
78931// `orderBy="creationTimestamp desc". This sorts results based on the
78932// `creationTimestamp` field in reverse chronological order (newest
78933// result first). Use this to sort resources like operations so that the
78934// newest operation is returned first. Currently, only sorting by `name`
78935// or `creationTimestamp desc` is supported.
78936func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
78937	c.urlParams_.Set("orderBy", orderBy)
78938	return c
78939}
78940
78941// PageToken sets the optional parameter "pageToken": Specifies a page
78942// token to use. Set `pageToken` to the `nextPageToken` returned by a
78943// previous list request to get the next page of results.
78944func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
78945	c.urlParams_.Set("pageToken", pageToken)
78946	return c
78947}
78948
78949// ReturnPartialSuccess sets the optional parameter
78950// "returnPartialSuccess": Opt-in for partial success behavior which
78951// provides partial results in case of failure. The default value is
78952// false.
78953func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
78954	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
78955	return c
78956}
78957
78958// Fields allows partial responses to be retrieved. See
78959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78960// for more information.
78961func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
78962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78963	return c
78964}
78965
78966// IfNoneMatch sets the optional parameter which makes the operation
78967// fail if the object's ETag matches the given value. This is useful for
78968// getting updates only after the object has changed since the last
78969// request. Use googleapi.IsNotModified to check whether the response
78970// error from Do is the result of In-None-Match.
78971func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
78972	c.ifNoneMatch_ = entityTag
78973	return c
78974}
78975
78976// Context sets the context to be used in this call's Do method. Any
78977// pending HTTP request will be aborted if the provided context is
78978// canceled.
78979func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
78980	c.ctx_ = ctx
78981	return c
78982}
78983
78984// Header returns an http.Header that can be modified by the caller to
78985// add HTTP headers to the request.
78986func (c *ImagesListCall) Header() http.Header {
78987	if c.header_ == nil {
78988		c.header_ = make(http.Header)
78989	}
78990	return c.header_
78991}
78992
78993func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
78994	reqHeaders := make(http.Header)
78995	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
78996	for k, v := range c.header_ {
78997		reqHeaders[k] = v
78998	}
78999	reqHeaders.Set("User-Agent", c.s.userAgent())
79000	if c.ifNoneMatch_ != "" {
79001		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79002	}
79003	var body io.Reader = nil
79004	c.urlParams_.Set("alt", alt)
79005	c.urlParams_.Set("prettyPrint", "false")
79006	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
79007	urls += "?" + c.urlParams_.Encode()
79008	req, err := http.NewRequest("GET", urls, body)
79009	if err != nil {
79010		return nil, err
79011	}
79012	req.Header = reqHeaders
79013	googleapi.Expand(req.URL, map[string]string{
79014		"project": c.project,
79015	})
79016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79017}
79018
79019// Do executes the "compute.images.list" call.
79020// Exactly one of *ImageList or error will be non-nil. Any non-2xx
79021// status code is an error. Response headers are in either
79022// *ImageList.ServerResponse.Header or (if a response was returned at
79023// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79024// to check whether the returned error was because
79025// http.StatusNotModified was returned.
79026func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
79027	gensupport.SetOptions(c.urlParams_, opts...)
79028	res, err := c.doRequest("json")
79029	if res != nil && res.StatusCode == http.StatusNotModified {
79030		if res.Body != nil {
79031			res.Body.Close()
79032		}
79033		return nil, &googleapi.Error{
79034			Code:   res.StatusCode,
79035			Header: res.Header,
79036		}
79037	}
79038	if err != nil {
79039		return nil, err
79040	}
79041	defer googleapi.CloseBody(res)
79042	if err := googleapi.CheckResponse(res); err != nil {
79043		return nil, err
79044	}
79045	ret := &ImageList{
79046		ServerResponse: googleapi.ServerResponse{
79047			Header:         res.Header,
79048			HTTPStatusCode: res.StatusCode,
79049		},
79050	}
79051	target := &ret
79052	if err := gensupport.DecodeResponse(target, res); err != nil {
79053		return nil, err
79054	}
79055	return ret, nil
79056	// {
79057	//   "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.",
79058	//   "flatPath": "projects/{project}/global/images",
79059	//   "httpMethod": "GET",
79060	//   "id": "compute.images.list",
79061	//   "parameterOrder": [
79062	//     "project"
79063	//   ],
79064	//   "parameters": {
79065	//     "filter": {
79066	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79067	//       "location": "query",
79068	//       "type": "string"
79069	//     },
79070	//     "maxResults": {
79071	//       "default": "500",
79072	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79073	//       "format": "uint32",
79074	//       "location": "query",
79075	//       "minimum": "0",
79076	//       "type": "integer"
79077	//     },
79078	//     "orderBy": {
79079	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
79080	//       "location": "query",
79081	//       "type": "string"
79082	//     },
79083	//     "pageToken": {
79084	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79085	//       "location": "query",
79086	//       "type": "string"
79087	//     },
79088	//     "project": {
79089	//       "description": "Project ID for this request.",
79090	//       "location": "path",
79091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79092	//       "required": true,
79093	//       "type": "string"
79094	//     },
79095	//     "returnPartialSuccess": {
79096	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
79097	//       "location": "query",
79098	//       "type": "boolean"
79099	//     }
79100	//   },
79101	//   "path": "projects/{project}/global/images",
79102	//   "response": {
79103	//     "$ref": "ImageList"
79104	//   },
79105	//   "scopes": [
79106	//     "https://www.googleapis.com/auth/cloud-platform",
79107	//     "https://www.googleapis.com/auth/compute",
79108	//     "https://www.googleapis.com/auth/compute.readonly"
79109	//   ]
79110	// }
79111
79112}
79113
79114// Pages invokes f for each page of results.
79115// A non-nil error returned from f will halt the iteration.
79116// The provided context supersedes any context provided to the Context method.
79117func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
79118	c.ctx_ = ctx
79119	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79120	for {
79121		x, err := c.Do()
79122		if err != nil {
79123			return err
79124		}
79125		if err := f(x); err != nil {
79126			return err
79127		}
79128		if x.NextPageToken == "" {
79129			return nil
79130		}
79131		c.PageToken(x.NextPageToken)
79132	}
79133}
79134
79135// method id "compute.images.patch":
79136
79137type ImagesPatchCall struct {
79138	s          *Service
79139	project    string
79140	image      string
79141	image2     *Image
79142	urlParams_ gensupport.URLParams
79143	ctx_       context.Context
79144	header_    http.Header
79145}
79146
79147// Patch: Patches the specified image with the data included in the
79148// request. Only the following fields can be modified: family,
79149// description, deprecation status.
79150//
79151// - image: Name of the image resource to patch.
79152// - project: Project ID for this request.
79153func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
79154	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79155	c.project = project
79156	c.image = image
79157	c.image2 = image2
79158	return c
79159}
79160
79161// RequestId sets the optional parameter "requestId": An optional
79162// request ID to identify requests. Specify a unique request ID so that
79163// if you must retry your request, the server will know to ignore the
79164// request if it has already been completed. For example, consider a
79165// situation where you make an initial request and the request times
79166// out. If you make the request again with the same request ID, the
79167// server can check if original operation with the same request ID was
79168// received, and if so, will ignore the second request. This prevents
79169// clients from accidentally creating duplicate commitments. The request
79170// ID must be a valid UUID with the exception that zero UUID is not
79171// supported ( 00000000-0000-0000-0000-000000000000).
79172func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
79173	c.urlParams_.Set("requestId", requestId)
79174	return c
79175}
79176
79177// Fields allows partial responses to be retrieved. See
79178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79179// for more information.
79180func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
79181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79182	return c
79183}
79184
79185// Context sets the context to be used in this call's Do method. Any
79186// pending HTTP request will be aborted if the provided context is
79187// canceled.
79188func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
79189	c.ctx_ = ctx
79190	return c
79191}
79192
79193// Header returns an http.Header that can be modified by the caller to
79194// add HTTP headers to the request.
79195func (c *ImagesPatchCall) Header() http.Header {
79196	if c.header_ == nil {
79197		c.header_ = make(http.Header)
79198	}
79199	return c.header_
79200}
79201
79202func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
79203	reqHeaders := make(http.Header)
79204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
79205	for k, v := range c.header_ {
79206		reqHeaders[k] = v
79207	}
79208	reqHeaders.Set("User-Agent", c.s.userAgent())
79209	var body io.Reader = nil
79210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
79211	if err != nil {
79212		return nil, err
79213	}
79214	reqHeaders.Set("Content-Type", "application/json")
79215	c.urlParams_.Set("alt", alt)
79216	c.urlParams_.Set("prettyPrint", "false")
79217	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
79218	urls += "?" + c.urlParams_.Encode()
79219	req, err := http.NewRequest("PATCH", urls, body)
79220	if err != nil {
79221		return nil, err
79222	}
79223	req.Header = reqHeaders
79224	googleapi.Expand(req.URL, map[string]string{
79225		"project": c.project,
79226		"image":   c.image,
79227	})
79228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79229}
79230
79231// Do executes the "compute.images.patch" call.
79232// Exactly one of *Operation or error will be non-nil. Any non-2xx
79233// status code is an error. Response headers are in either
79234// *Operation.ServerResponse.Header or (if a response was returned at
79235// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79236// to check whether the returned error was because
79237// http.StatusNotModified was returned.
79238func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79239	gensupport.SetOptions(c.urlParams_, opts...)
79240	res, err := c.doRequest("json")
79241	if res != nil && res.StatusCode == http.StatusNotModified {
79242		if res.Body != nil {
79243			res.Body.Close()
79244		}
79245		return nil, &googleapi.Error{
79246			Code:   res.StatusCode,
79247			Header: res.Header,
79248		}
79249	}
79250	if err != nil {
79251		return nil, err
79252	}
79253	defer googleapi.CloseBody(res)
79254	if err := googleapi.CheckResponse(res); err != nil {
79255		return nil, err
79256	}
79257	ret := &Operation{
79258		ServerResponse: googleapi.ServerResponse{
79259			Header:         res.Header,
79260			HTTPStatusCode: res.StatusCode,
79261		},
79262	}
79263	target := &ret
79264	if err := gensupport.DecodeResponse(target, res); err != nil {
79265		return nil, err
79266	}
79267	return ret, nil
79268	// {
79269	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
79270	//   "flatPath": "projects/{project}/global/images/{image}",
79271	//   "httpMethod": "PATCH",
79272	//   "id": "compute.images.patch",
79273	//   "parameterOrder": [
79274	//     "project",
79275	//     "image"
79276	//   ],
79277	//   "parameters": {
79278	//     "image": {
79279	//       "description": "Name of the image resource to patch.",
79280	//       "location": "path",
79281	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79282	//       "required": true,
79283	//       "type": "string"
79284	//     },
79285	//     "project": {
79286	//       "description": "Project ID for this request.",
79287	//       "location": "path",
79288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79289	//       "required": true,
79290	//       "type": "string"
79291	//     },
79292	//     "requestId": {
79293	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
79294	//       "location": "query",
79295	//       "type": "string"
79296	//     }
79297	//   },
79298	//   "path": "projects/{project}/global/images/{image}",
79299	//   "request": {
79300	//     "$ref": "Image"
79301	//   },
79302	//   "response": {
79303	//     "$ref": "Operation"
79304	//   },
79305	//   "scopes": [
79306	//     "https://www.googleapis.com/auth/cloud-platform",
79307	//     "https://www.googleapis.com/auth/compute"
79308	//   ]
79309	// }
79310
79311}
79312
79313// method id "compute.images.setIamPolicy":
79314
79315type ImagesSetIamPolicyCall struct {
79316	s                      *Service
79317	project                string
79318	resource               string
79319	globalsetpolicyrequest *GlobalSetPolicyRequest
79320	urlParams_             gensupport.URLParams
79321	ctx_                   context.Context
79322	header_                http.Header
79323}
79324
79325// SetIamPolicy: Sets the access control policy on the specified
79326// resource. Replaces any existing policy.
79327//
79328// - project: Project ID for this request.
79329// - resource: Name or id of the resource for this request.
79330func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
79331	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79332	c.project = project
79333	c.resource = resource
79334	c.globalsetpolicyrequest = globalsetpolicyrequest
79335	return c
79336}
79337
79338// Fields allows partial responses to be retrieved. See
79339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79340// for more information.
79341func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
79342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79343	return c
79344}
79345
79346// Context sets the context to be used in this call's Do method. Any
79347// pending HTTP request will be aborted if the provided context is
79348// canceled.
79349func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
79350	c.ctx_ = ctx
79351	return c
79352}
79353
79354// Header returns an http.Header that can be modified by the caller to
79355// add HTTP headers to the request.
79356func (c *ImagesSetIamPolicyCall) Header() http.Header {
79357	if c.header_ == nil {
79358		c.header_ = make(http.Header)
79359	}
79360	return c.header_
79361}
79362
79363func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
79364	reqHeaders := make(http.Header)
79365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
79366	for k, v := range c.header_ {
79367		reqHeaders[k] = v
79368	}
79369	reqHeaders.Set("User-Agent", c.s.userAgent())
79370	var body io.Reader = nil
79371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
79372	if err != nil {
79373		return nil, err
79374	}
79375	reqHeaders.Set("Content-Type", "application/json")
79376	c.urlParams_.Set("alt", alt)
79377	c.urlParams_.Set("prettyPrint", "false")
79378	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy")
79379	urls += "?" + c.urlParams_.Encode()
79380	req, err := http.NewRequest("POST", urls, body)
79381	if err != nil {
79382		return nil, err
79383	}
79384	req.Header = reqHeaders
79385	googleapi.Expand(req.URL, map[string]string{
79386		"project":  c.project,
79387		"resource": c.resource,
79388	})
79389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79390}
79391
79392// Do executes the "compute.images.setIamPolicy" call.
79393// Exactly one of *Policy or error will be non-nil. Any non-2xx status
79394// code is an error. Response headers are in either
79395// *Policy.ServerResponse.Header or (if a response was returned at all)
79396// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
79397// check whether the returned error was because http.StatusNotModified
79398// was returned.
79399func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
79400	gensupport.SetOptions(c.urlParams_, opts...)
79401	res, err := c.doRequest("json")
79402	if res != nil && res.StatusCode == http.StatusNotModified {
79403		if res.Body != nil {
79404			res.Body.Close()
79405		}
79406		return nil, &googleapi.Error{
79407			Code:   res.StatusCode,
79408			Header: res.Header,
79409		}
79410	}
79411	if err != nil {
79412		return nil, err
79413	}
79414	defer googleapi.CloseBody(res)
79415	if err := googleapi.CheckResponse(res); err != nil {
79416		return nil, err
79417	}
79418	ret := &Policy{
79419		ServerResponse: googleapi.ServerResponse{
79420			Header:         res.Header,
79421			HTTPStatusCode: res.StatusCode,
79422		},
79423	}
79424	target := &ret
79425	if err := gensupport.DecodeResponse(target, res); err != nil {
79426		return nil, err
79427	}
79428	return ret, nil
79429	// {
79430	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
79431	//   "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy",
79432	//   "httpMethod": "POST",
79433	//   "id": "compute.images.setIamPolicy",
79434	//   "parameterOrder": [
79435	//     "project",
79436	//     "resource"
79437	//   ],
79438	//   "parameters": {
79439	//     "project": {
79440	//       "description": "Project ID for this request.",
79441	//       "location": "path",
79442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79443	//       "required": true,
79444	//       "type": "string"
79445	//     },
79446	//     "resource": {
79447	//       "description": "Name or id of the resource for this request.",
79448	//       "location": "path",
79449	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79450	//       "required": true,
79451	//       "type": "string"
79452	//     }
79453	//   },
79454	//   "path": "projects/{project}/global/images/{resource}/setIamPolicy",
79455	//   "request": {
79456	//     "$ref": "GlobalSetPolicyRequest"
79457	//   },
79458	//   "response": {
79459	//     "$ref": "Policy"
79460	//   },
79461	//   "scopes": [
79462	//     "https://www.googleapis.com/auth/cloud-platform",
79463	//     "https://www.googleapis.com/auth/compute"
79464	//   ]
79465	// }
79466
79467}
79468
79469// method id "compute.images.setLabels":
79470
79471type ImagesSetLabelsCall struct {
79472	s                      *Service
79473	project                string
79474	resource               string
79475	globalsetlabelsrequest *GlobalSetLabelsRequest
79476	urlParams_             gensupport.URLParams
79477	ctx_                   context.Context
79478	header_                http.Header
79479}
79480
79481// SetLabels: Sets the labels on an image. To learn more about labels,
79482// read the Labeling Resources documentation.
79483//
79484// - project: Project ID for this request.
79485// - resource: Name or id of the resource for this request.
79486func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
79487	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79488	c.project = project
79489	c.resource = resource
79490	c.globalsetlabelsrequest = globalsetlabelsrequest
79491	return c
79492}
79493
79494// Fields allows partial responses to be retrieved. See
79495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79496// for more information.
79497func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
79498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79499	return c
79500}
79501
79502// Context sets the context to be used in this call's Do method. Any
79503// pending HTTP request will be aborted if the provided context is
79504// canceled.
79505func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
79506	c.ctx_ = ctx
79507	return c
79508}
79509
79510// Header returns an http.Header that can be modified by the caller to
79511// add HTTP headers to the request.
79512func (c *ImagesSetLabelsCall) Header() http.Header {
79513	if c.header_ == nil {
79514		c.header_ = make(http.Header)
79515	}
79516	return c.header_
79517}
79518
79519func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
79520	reqHeaders := make(http.Header)
79521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
79522	for k, v := range c.header_ {
79523		reqHeaders[k] = v
79524	}
79525	reqHeaders.Set("User-Agent", c.s.userAgent())
79526	var body io.Reader = nil
79527	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
79528	if err != nil {
79529		return nil, err
79530	}
79531	reqHeaders.Set("Content-Type", "application/json")
79532	c.urlParams_.Set("alt", alt)
79533	c.urlParams_.Set("prettyPrint", "false")
79534	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels")
79535	urls += "?" + c.urlParams_.Encode()
79536	req, err := http.NewRequest("POST", urls, body)
79537	if err != nil {
79538		return nil, err
79539	}
79540	req.Header = reqHeaders
79541	googleapi.Expand(req.URL, map[string]string{
79542		"project":  c.project,
79543		"resource": c.resource,
79544	})
79545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79546}
79547
79548// Do executes the "compute.images.setLabels" call.
79549// Exactly one of *Operation or error will be non-nil. Any non-2xx
79550// status code is an error. Response headers are in either
79551// *Operation.ServerResponse.Header or (if a response was returned at
79552// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79553// to check whether the returned error was because
79554// http.StatusNotModified was returned.
79555func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79556	gensupport.SetOptions(c.urlParams_, opts...)
79557	res, err := c.doRequest("json")
79558	if res != nil && res.StatusCode == http.StatusNotModified {
79559		if res.Body != nil {
79560			res.Body.Close()
79561		}
79562		return nil, &googleapi.Error{
79563			Code:   res.StatusCode,
79564			Header: res.Header,
79565		}
79566	}
79567	if err != nil {
79568		return nil, err
79569	}
79570	defer googleapi.CloseBody(res)
79571	if err := googleapi.CheckResponse(res); err != nil {
79572		return nil, err
79573	}
79574	ret := &Operation{
79575		ServerResponse: googleapi.ServerResponse{
79576			Header:         res.Header,
79577			HTTPStatusCode: res.StatusCode,
79578		},
79579	}
79580	target := &ret
79581	if err := gensupport.DecodeResponse(target, res); err != nil {
79582		return nil, err
79583	}
79584	return ret, nil
79585	// {
79586	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
79587	//   "flatPath": "projects/{project}/global/images/{resource}/setLabels",
79588	//   "httpMethod": "POST",
79589	//   "id": "compute.images.setLabels",
79590	//   "parameterOrder": [
79591	//     "project",
79592	//     "resource"
79593	//   ],
79594	//   "parameters": {
79595	//     "project": {
79596	//       "description": "Project ID for this request.",
79597	//       "location": "path",
79598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79599	//       "required": true,
79600	//       "type": "string"
79601	//     },
79602	//     "resource": {
79603	//       "description": "Name or id of the resource for this request.",
79604	//       "location": "path",
79605	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79606	//       "required": true,
79607	//       "type": "string"
79608	//     }
79609	//   },
79610	//   "path": "projects/{project}/global/images/{resource}/setLabels",
79611	//   "request": {
79612	//     "$ref": "GlobalSetLabelsRequest"
79613	//   },
79614	//   "response": {
79615	//     "$ref": "Operation"
79616	//   },
79617	//   "scopes": [
79618	//     "https://www.googleapis.com/auth/cloud-platform",
79619	//     "https://www.googleapis.com/auth/compute"
79620	//   ]
79621	// }
79622
79623}
79624
79625// method id "compute.images.testIamPermissions":
79626
79627type ImagesTestIamPermissionsCall struct {
79628	s                      *Service
79629	project                string
79630	resource               string
79631	testpermissionsrequest *TestPermissionsRequest
79632	urlParams_             gensupport.URLParams
79633	ctx_                   context.Context
79634	header_                http.Header
79635}
79636
79637// TestIamPermissions: Returns permissions that a caller has on the
79638// specified resource.
79639//
79640// - project: Project ID for this request.
79641// - resource: Name or id of the resource for this request.
79642func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
79643	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79644	c.project = project
79645	c.resource = resource
79646	c.testpermissionsrequest = testpermissionsrequest
79647	return c
79648}
79649
79650// Fields allows partial responses to be retrieved. See
79651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79652// for more information.
79653func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
79654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79655	return c
79656}
79657
79658// Context sets the context to be used in this call's Do method. Any
79659// pending HTTP request will be aborted if the provided context is
79660// canceled.
79661func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
79662	c.ctx_ = ctx
79663	return c
79664}
79665
79666// Header returns an http.Header that can be modified by the caller to
79667// add HTTP headers to the request.
79668func (c *ImagesTestIamPermissionsCall) Header() http.Header {
79669	if c.header_ == nil {
79670		c.header_ = make(http.Header)
79671	}
79672	return c.header_
79673}
79674
79675func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
79676	reqHeaders := make(http.Header)
79677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
79678	for k, v := range c.header_ {
79679		reqHeaders[k] = v
79680	}
79681	reqHeaders.Set("User-Agent", c.s.userAgent())
79682	var body io.Reader = nil
79683	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
79684	if err != nil {
79685		return nil, err
79686	}
79687	reqHeaders.Set("Content-Type", "application/json")
79688	c.urlParams_.Set("alt", alt)
79689	c.urlParams_.Set("prettyPrint", "false")
79690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions")
79691	urls += "?" + c.urlParams_.Encode()
79692	req, err := http.NewRequest("POST", urls, body)
79693	if err != nil {
79694		return nil, err
79695	}
79696	req.Header = reqHeaders
79697	googleapi.Expand(req.URL, map[string]string{
79698		"project":  c.project,
79699		"resource": c.resource,
79700	})
79701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79702}
79703
79704// Do executes the "compute.images.testIamPermissions" call.
79705// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
79706// non-2xx status code is an error. Response headers are in either
79707// *TestPermissionsResponse.ServerResponse.Header or (if a response was
79708// returned at all) in error.(*googleapi.Error).Header. Use
79709// googleapi.IsNotModified to check whether the returned error was
79710// because http.StatusNotModified was returned.
79711func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
79712	gensupport.SetOptions(c.urlParams_, opts...)
79713	res, err := c.doRequest("json")
79714	if res != nil && res.StatusCode == http.StatusNotModified {
79715		if res.Body != nil {
79716			res.Body.Close()
79717		}
79718		return nil, &googleapi.Error{
79719			Code:   res.StatusCode,
79720			Header: res.Header,
79721		}
79722	}
79723	if err != nil {
79724		return nil, err
79725	}
79726	defer googleapi.CloseBody(res)
79727	if err := googleapi.CheckResponse(res); err != nil {
79728		return nil, err
79729	}
79730	ret := &TestPermissionsResponse{
79731		ServerResponse: googleapi.ServerResponse{
79732			Header:         res.Header,
79733			HTTPStatusCode: res.StatusCode,
79734		},
79735	}
79736	target := &ret
79737	if err := gensupport.DecodeResponse(target, res); err != nil {
79738		return nil, err
79739	}
79740	return ret, nil
79741	// {
79742	//   "description": "Returns permissions that a caller has on the specified resource.",
79743	//   "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions",
79744	//   "httpMethod": "POST",
79745	//   "id": "compute.images.testIamPermissions",
79746	//   "parameterOrder": [
79747	//     "project",
79748	//     "resource"
79749	//   ],
79750	//   "parameters": {
79751	//     "project": {
79752	//       "description": "Project ID for this request.",
79753	//       "location": "path",
79754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79755	//       "required": true,
79756	//       "type": "string"
79757	//     },
79758	//     "resource": {
79759	//       "description": "Name or id of the resource for this request.",
79760	//       "location": "path",
79761	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79762	//       "required": true,
79763	//       "type": "string"
79764	//     }
79765	//   },
79766	//   "path": "projects/{project}/global/images/{resource}/testIamPermissions",
79767	//   "request": {
79768	//     "$ref": "TestPermissionsRequest"
79769	//   },
79770	//   "response": {
79771	//     "$ref": "TestPermissionsResponse"
79772	//   },
79773	//   "scopes": [
79774	//     "https://www.googleapis.com/auth/cloud-platform",
79775	//     "https://www.googleapis.com/auth/compute",
79776	//     "https://www.googleapis.com/auth/compute.readonly"
79777	//   ]
79778	// }
79779
79780}
79781
79782// method id "compute.instanceGroupManagers.abandonInstances":
79783
79784type InstanceGroupManagersAbandonInstancesCall struct {
79785	s                                            *Service
79786	project                                      string
79787	zone                                         string
79788	instanceGroupManager                         string
79789	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
79790	urlParams_                                   gensupport.URLParams
79791	ctx_                                         context.Context
79792	header_                                      http.Header
79793}
79794
79795// AbandonInstances: Flags the specified instances to be removed from
79796// the managed instance group. Abandoning an instance does not delete
79797// the instance, but it does remove the instance from any target pools
79798// that are applied by the managed instance group. This method reduces
79799// the targetSize of the managed instance group by the number of
79800// instances that you abandon. This operation is marked as DONE when the
79801// action is scheduled even if the instances have not yet been removed
79802// from the group. You must separately verify the status of the
79803// abandoning action with the listmanagedinstances method. If the group
79804// is part of a backend service that has enabled connection draining, it
79805// can take up to 60 seconds after the connection draining duration has
79806// elapsed before the VM instance is removed or deleted. You can specify
79807// a maximum of 1000 instances with this method per request.
79808//
79809// - instanceGroupManager: The name of the managed instance group.
79810// - project: Project ID for this request.
79811// - zone: The name of the zone where the managed instance group is
79812//   located.
79813func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
79814	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79815	c.project = project
79816	c.zone = zone
79817	c.instanceGroupManager = instanceGroupManager
79818	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
79819	return c
79820}
79821
79822// RequestId sets the optional parameter "requestId": An optional
79823// request ID to identify requests. Specify a unique request ID so that
79824// if you must retry your request, the server will know to ignore the
79825// request if it has already been completed. For example, consider a
79826// situation where you make an initial request and the request times
79827// out. If you make the request again with the same request ID, the
79828// server can check if original operation with the same request ID was
79829// received, and if so, will ignore the second request. This prevents
79830// clients from accidentally creating duplicate commitments. The request
79831// ID must be a valid UUID with the exception that zero UUID is not
79832// supported ( 00000000-0000-0000-0000-000000000000).
79833func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
79834	c.urlParams_.Set("requestId", requestId)
79835	return c
79836}
79837
79838// Fields allows partial responses to be retrieved. See
79839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79840// for more information.
79841func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
79842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79843	return c
79844}
79845
79846// Context sets the context to be used in this call's Do method. Any
79847// pending HTTP request will be aborted if the provided context is
79848// canceled.
79849func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
79850	c.ctx_ = ctx
79851	return c
79852}
79853
79854// Header returns an http.Header that can be modified by the caller to
79855// add HTTP headers to the request.
79856func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
79857	if c.header_ == nil {
79858		c.header_ = make(http.Header)
79859	}
79860	return c.header_
79861}
79862
79863func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
79864	reqHeaders := make(http.Header)
79865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
79866	for k, v := range c.header_ {
79867		reqHeaders[k] = v
79868	}
79869	reqHeaders.Set("User-Agent", c.s.userAgent())
79870	var body io.Reader = nil
79871	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
79872	if err != nil {
79873		return nil, err
79874	}
79875	reqHeaders.Set("Content-Type", "application/json")
79876	c.urlParams_.Set("alt", alt)
79877	c.urlParams_.Set("prettyPrint", "false")
79878	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
79879	urls += "?" + c.urlParams_.Encode()
79880	req, err := http.NewRequest("POST", urls, body)
79881	if err != nil {
79882		return nil, err
79883	}
79884	req.Header = reqHeaders
79885	googleapi.Expand(req.URL, map[string]string{
79886		"project":              c.project,
79887		"zone":                 c.zone,
79888		"instanceGroupManager": c.instanceGroupManager,
79889	})
79890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79891}
79892
79893// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
79894// Exactly one of *Operation or error will be non-nil. Any non-2xx
79895// status code is an error. Response headers are in either
79896// *Operation.ServerResponse.Header or (if a response was returned at
79897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79898// to check whether the returned error was because
79899// http.StatusNotModified was returned.
79900func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79901	gensupport.SetOptions(c.urlParams_, opts...)
79902	res, err := c.doRequest("json")
79903	if res != nil && res.StatusCode == http.StatusNotModified {
79904		if res.Body != nil {
79905			res.Body.Close()
79906		}
79907		return nil, &googleapi.Error{
79908			Code:   res.StatusCode,
79909			Header: res.Header,
79910		}
79911	}
79912	if err != nil {
79913		return nil, err
79914	}
79915	defer googleapi.CloseBody(res)
79916	if err := googleapi.CheckResponse(res); err != nil {
79917		return nil, err
79918	}
79919	ret := &Operation{
79920		ServerResponse: googleapi.ServerResponse{
79921			Header:         res.Header,
79922			HTTPStatusCode: res.StatusCode,
79923		},
79924	}
79925	target := &ret
79926	if err := gensupport.DecodeResponse(target, res); err != nil {
79927		return nil, err
79928	}
79929	return ret, nil
79930	// {
79931	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
79932	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
79933	//   "httpMethod": "POST",
79934	//   "id": "compute.instanceGroupManagers.abandonInstances",
79935	//   "parameterOrder": [
79936	//     "project",
79937	//     "zone",
79938	//     "instanceGroupManager"
79939	//   ],
79940	//   "parameters": {
79941	//     "instanceGroupManager": {
79942	//       "description": "The name of the managed instance group.",
79943	//       "location": "path",
79944	//       "required": true,
79945	//       "type": "string"
79946	//     },
79947	//     "project": {
79948	//       "description": "Project ID for this request.",
79949	//       "location": "path",
79950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79951	//       "required": true,
79952	//       "type": "string"
79953	//     },
79954	//     "requestId": {
79955	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
79956	//       "location": "query",
79957	//       "type": "string"
79958	//     },
79959	//     "zone": {
79960	//       "description": "The name of the zone where the managed instance group is located.",
79961	//       "location": "path",
79962	//       "required": true,
79963	//       "type": "string"
79964	//     }
79965	//   },
79966	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
79967	//   "request": {
79968	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
79969	//   },
79970	//   "response": {
79971	//     "$ref": "Operation"
79972	//   },
79973	//   "scopes": [
79974	//     "https://www.googleapis.com/auth/cloud-platform",
79975	//     "https://www.googleapis.com/auth/compute"
79976	//   ]
79977	// }
79978
79979}
79980
79981// method id "compute.instanceGroupManagers.aggregatedList":
79982
79983type InstanceGroupManagersAggregatedListCall struct {
79984	s            *Service
79985	project      string
79986	urlParams_   gensupport.URLParams
79987	ifNoneMatch_ string
79988	ctx_         context.Context
79989	header_      http.Header
79990}
79991
79992// AggregatedList: Retrieves the list of managed instance groups and
79993// groups them by zone.
79994//
79995// - project: Project ID for this request.
79996func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
79997	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79998	c.project = project
79999	return c
80000}
80001
80002// Filter sets the optional parameter "filter": A filter expression that
80003// filters resources listed in the response. The expression must specify
80004// the field name, a comparison operator, and the value that you want to
80005// use for filtering. The value must be a string, a number, or a
80006// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80007// `<`. For example, if you are filtering Compute Engine instances, you
80008// can exclude instances named `example-instance` by specifying `name !=
80009// example-instance`. You can also filter nested fields. For example,
80010// you could specify `scheduling.automaticRestart = false` to include
80011// instances only if they are not scheduled for automatic restarts. You
80012// can use filtering on nested fields to filter based on resource
80013// labels. To filter on multiple expressions, provide each separate
80014// expression within parentheses. For example: ```
80015// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
80016// ``` By default, each expression is an `AND` expression. However, you
80017// can include `AND` and `OR` expressions explicitly. For example: ```
80018// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
80019// AND (scheduling.automaticRestart = true) ```
80020func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
80021	c.urlParams_.Set("filter", filter)
80022	return c
80023}
80024
80025// IncludeAllScopes sets the optional parameter "includeAllScopes":
80026// Indicates whether every visible scope for each scope type (zone,
80027// region, global) should be included in the response. For new resource
80028// types added after this field, the flag has no effect as new resource
80029// types will always include every visible scope for each scope type in
80030// response. For resource types which predate this field, if this flag
80031// is omitted or false, only scopes of the scope types where the
80032// resource type is expected to be found will be included.
80033func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
80034	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
80035	return c
80036}
80037
80038// MaxResults sets the optional parameter "maxResults": The maximum
80039// number of results per page that should be returned. If the number of
80040// available results is larger than `maxResults`, Compute Engine returns
80041// a `nextPageToken` that can be used to get the next page of results in
80042// subsequent list requests. Acceptable values are `0` to `500`,
80043// inclusive. (Default: `500`)
80044func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
80045	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80046	return c
80047}
80048
80049// OrderBy sets the optional parameter "orderBy": Sorts list results by
80050// a certain order. By default, results are returned in alphanumerical
80051// order based on the resource name. You can also sort results in
80052// descending order based on the creation timestamp using
80053// `orderBy="creationTimestamp desc". This sorts results based on the
80054// `creationTimestamp` field in reverse chronological order (newest
80055// result first). Use this to sort resources like operations so that the
80056// newest operation is returned first. Currently, only sorting by `name`
80057// or `creationTimestamp desc` is supported.
80058func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
80059	c.urlParams_.Set("orderBy", orderBy)
80060	return c
80061}
80062
80063// PageToken sets the optional parameter "pageToken": Specifies a page
80064// token to use. Set `pageToken` to the `nextPageToken` returned by a
80065// previous list request to get the next page of results.
80066func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
80067	c.urlParams_.Set("pageToken", pageToken)
80068	return c
80069}
80070
80071// ReturnPartialSuccess sets the optional parameter
80072// "returnPartialSuccess": Opt-in for partial success behavior which
80073// provides partial results in case of failure. The default value is
80074// false.
80075func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
80076	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
80077	return c
80078}
80079
80080// Fields allows partial responses to be retrieved. See
80081// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80082// for more information.
80083func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
80084	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80085	return c
80086}
80087
80088// IfNoneMatch sets the optional parameter which makes the operation
80089// fail if the object's ETag matches the given value. This is useful for
80090// getting updates only after the object has changed since the last
80091// request. Use googleapi.IsNotModified to check whether the response
80092// error from Do is the result of In-None-Match.
80093func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
80094	c.ifNoneMatch_ = entityTag
80095	return c
80096}
80097
80098// Context sets the context to be used in this call's Do method. Any
80099// pending HTTP request will be aborted if the provided context is
80100// canceled.
80101func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
80102	c.ctx_ = ctx
80103	return c
80104}
80105
80106// Header returns an http.Header that can be modified by the caller to
80107// add HTTP headers to the request.
80108func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
80109	if c.header_ == nil {
80110		c.header_ = make(http.Header)
80111	}
80112	return c.header_
80113}
80114
80115func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80116	reqHeaders := make(http.Header)
80117	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
80118	for k, v := range c.header_ {
80119		reqHeaders[k] = v
80120	}
80121	reqHeaders.Set("User-Agent", c.s.userAgent())
80122	if c.ifNoneMatch_ != "" {
80123		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80124	}
80125	var body io.Reader = nil
80126	c.urlParams_.Set("alt", alt)
80127	c.urlParams_.Set("prettyPrint", "false")
80128	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers")
80129	urls += "?" + c.urlParams_.Encode()
80130	req, err := http.NewRequest("GET", urls, body)
80131	if err != nil {
80132		return nil, err
80133	}
80134	req.Header = reqHeaders
80135	googleapi.Expand(req.URL, map[string]string{
80136		"project": c.project,
80137	})
80138	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80139}
80140
80141// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
80142// Exactly one of *InstanceGroupManagerAggregatedList or error will be
80143// non-nil. Any non-2xx status code is an error. Response headers are in
80144// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
80145// (if a response was returned at all) in
80146// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80147// whether the returned error was because http.StatusNotModified was
80148// returned.
80149func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
80150	gensupport.SetOptions(c.urlParams_, opts...)
80151	res, err := c.doRequest("json")
80152	if res != nil && res.StatusCode == http.StatusNotModified {
80153		if res.Body != nil {
80154			res.Body.Close()
80155		}
80156		return nil, &googleapi.Error{
80157			Code:   res.StatusCode,
80158			Header: res.Header,
80159		}
80160	}
80161	if err != nil {
80162		return nil, err
80163	}
80164	defer googleapi.CloseBody(res)
80165	if err := googleapi.CheckResponse(res); err != nil {
80166		return nil, err
80167	}
80168	ret := &InstanceGroupManagerAggregatedList{
80169		ServerResponse: googleapi.ServerResponse{
80170			Header:         res.Header,
80171			HTTPStatusCode: res.StatusCode,
80172		},
80173	}
80174	target := &ret
80175	if err := gensupport.DecodeResponse(target, res); err != nil {
80176		return nil, err
80177	}
80178	return ret, nil
80179	// {
80180	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
80181	//   "flatPath": "projects/{project}/aggregated/instanceGroupManagers",
80182	//   "httpMethod": "GET",
80183	//   "id": "compute.instanceGroupManagers.aggregatedList",
80184	//   "parameterOrder": [
80185	//     "project"
80186	//   ],
80187	//   "parameters": {
80188	//     "filter": {
80189	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
80190	//       "location": "query",
80191	//       "type": "string"
80192	//     },
80193	//     "includeAllScopes": {
80194	//       "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.",
80195	//       "location": "query",
80196	//       "type": "boolean"
80197	//     },
80198	//     "maxResults": {
80199	//       "default": "500",
80200	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80201	//       "format": "uint32",
80202	//       "location": "query",
80203	//       "minimum": "0",
80204	//       "type": "integer"
80205	//     },
80206	//     "orderBy": {
80207	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
80208	//       "location": "query",
80209	//       "type": "string"
80210	//     },
80211	//     "pageToken": {
80212	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80213	//       "location": "query",
80214	//       "type": "string"
80215	//     },
80216	//     "project": {
80217	//       "description": "Project ID for this request.",
80218	//       "location": "path",
80219	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80220	//       "required": true,
80221	//       "type": "string"
80222	//     },
80223	//     "returnPartialSuccess": {
80224	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
80225	//       "location": "query",
80226	//       "type": "boolean"
80227	//     }
80228	//   },
80229	//   "path": "projects/{project}/aggregated/instanceGroupManagers",
80230	//   "response": {
80231	//     "$ref": "InstanceGroupManagerAggregatedList"
80232	//   },
80233	//   "scopes": [
80234	//     "https://www.googleapis.com/auth/cloud-platform",
80235	//     "https://www.googleapis.com/auth/compute",
80236	//     "https://www.googleapis.com/auth/compute.readonly"
80237	//   ]
80238	// }
80239
80240}
80241
80242// Pages invokes f for each page of results.
80243// A non-nil error returned from f will halt the iteration.
80244// The provided context supersedes any context provided to the Context method.
80245func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
80246	c.ctx_ = ctx
80247	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80248	for {
80249		x, err := c.Do()
80250		if err != nil {
80251			return err
80252		}
80253		if err := f(x); err != nil {
80254			return err
80255		}
80256		if x.NextPageToken == "" {
80257			return nil
80258		}
80259		c.PageToken(x.NextPageToken)
80260	}
80261}
80262
80263// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
80264
80265type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
80266	s                                        *Service
80267	project                                  string
80268	zone                                     string
80269	instanceGroupManager                     string
80270	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
80271	urlParams_                               gensupport.URLParams
80272	ctx_                                     context.Context
80273	header_                                  http.Header
80274}
80275
80276// ApplyUpdatesToInstances: Applies changes to selected instances on the
80277// managed instance group. This method can be used to apply new
80278// overrides and/or new versions.
80279//
80280// - instanceGroupManager: The name of the managed instance group,
80281//   should conform to RFC1035.
80282// - project: Project ID for this request.
80283// - zone: The name of the zone where the managed instance group is
80284//   located. Should conform to RFC1035.
80285func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80286	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80287	c.project = project
80288	c.zone = zone
80289	c.instanceGroupManager = instanceGroupManager
80290	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
80291	return c
80292}
80293
80294// Fields allows partial responses to be retrieved. See
80295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80296// for more information.
80297func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80299	return c
80300}
80301
80302// Context sets the context to be used in this call's Do method. Any
80303// pending HTTP request will be aborted if the provided context is
80304// canceled.
80305func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80306	c.ctx_ = ctx
80307	return c
80308}
80309
80310// Header returns an http.Header that can be modified by the caller to
80311// add HTTP headers to the request.
80312func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
80313	if c.header_ == nil {
80314		c.header_ = make(http.Header)
80315	}
80316	return c.header_
80317}
80318
80319func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
80320	reqHeaders := make(http.Header)
80321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
80322	for k, v := range c.header_ {
80323		reqHeaders[k] = v
80324	}
80325	reqHeaders.Set("User-Agent", c.s.userAgent())
80326	var body io.Reader = nil
80327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
80328	if err != nil {
80329		return nil, err
80330	}
80331	reqHeaders.Set("Content-Type", "application/json")
80332	c.urlParams_.Set("alt", alt)
80333	c.urlParams_.Set("prettyPrint", "false")
80334	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
80335	urls += "?" + c.urlParams_.Encode()
80336	req, err := http.NewRequest("POST", urls, body)
80337	if err != nil {
80338		return nil, err
80339	}
80340	req.Header = reqHeaders
80341	googleapi.Expand(req.URL, map[string]string{
80342		"project":              c.project,
80343		"zone":                 c.zone,
80344		"instanceGroupManager": c.instanceGroupManager,
80345	})
80346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80347}
80348
80349// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
80350// Exactly one of *Operation or error will be non-nil. Any non-2xx
80351// status code is an error. Response headers are in either
80352// *Operation.ServerResponse.Header or (if a response was returned at
80353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80354// to check whether the returned error was because
80355// http.StatusNotModified was returned.
80356func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80357	gensupport.SetOptions(c.urlParams_, opts...)
80358	res, err := c.doRequest("json")
80359	if res != nil && res.StatusCode == http.StatusNotModified {
80360		if res.Body != nil {
80361			res.Body.Close()
80362		}
80363		return nil, &googleapi.Error{
80364			Code:   res.StatusCode,
80365			Header: res.Header,
80366		}
80367	}
80368	if err != nil {
80369		return nil, err
80370	}
80371	defer googleapi.CloseBody(res)
80372	if err := googleapi.CheckResponse(res); err != nil {
80373		return nil, err
80374	}
80375	ret := &Operation{
80376		ServerResponse: googleapi.ServerResponse{
80377			Header:         res.Header,
80378			HTTPStatusCode: res.StatusCode,
80379		},
80380	}
80381	target := &ret
80382	if err := gensupport.DecodeResponse(target, res); err != nil {
80383		return nil, err
80384	}
80385	return ret, nil
80386	// {
80387	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
80388	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
80389	//   "httpMethod": "POST",
80390	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
80391	//   "parameterOrder": [
80392	//     "project",
80393	//     "zone",
80394	//     "instanceGroupManager"
80395	//   ],
80396	//   "parameters": {
80397	//     "instanceGroupManager": {
80398	//       "description": "The name of the managed instance group, should conform to RFC1035.",
80399	//       "location": "path",
80400	//       "required": true,
80401	//       "type": "string"
80402	//     },
80403	//     "project": {
80404	//       "description": "Project ID for this request.",
80405	//       "location": "path",
80406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80407	//       "required": true,
80408	//       "type": "string"
80409	//     },
80410	//     "zone": {
80411	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
80412	//       "location": "path",
80413	//       "required": true,
80414	//       "type": "string"
80415	//     }
80416	//   },
80417	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
80418	//   "request": {
80419	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
80420	//   },
80421	//   "response": {
80422	//     "$ref": "Operation"
80423	//   },
80424	//   "scopes": [
80425	//     "https://www.googleapis.com/auth/cloud-platform",
80426	//     "https://www.googleapis.com/auth/compute"
80427	//   ]
80428	// }
80429
80430}
80431
80432// method id "compute.instanceGroupManagers.createInstances":
80433
80434type InstanceGroupManagersCreateInstancesCall struct {
80435	s                                           *Service
80436	project                                     string
80437	zone                                        string
80438	instanceGroupManager                        string
80439	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
80440	urlParams_                                  gensupport.URLParams
80441	ctx_                                        context.Context
80442	header_                                     http.Header
80443}
80444
80445// CreateInstances: Creates instances with per-instance configs in this
80446// managed instance group. Instances are created using the current
80447// instance template. The create instances operation is marked DONE if
80448// the createInstances request is successful. The underlying actions
80449// take additional time. You must separately verify the status of the
80450// creating or actions with the listmanagedinstances method.
80451//
80452// - instanceGroupManager: The name of the managed instance group. It
80453//   should conform to RFC1035.
80454// - project: Project ID for this request.
80455// - zone: The name of the zone where the managed instance group is
80456//   located. It should conform to RFC1035.
80457func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
80458	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80459	c.project = project
80460	c.zone = zone
80461	c.instanceGroupManager = instanceGroupManager
80462	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
80463	return c
80464}
80465
80466// RequestId sets the optional parameter "requestId": An optional
80467// request ID to identify requests. Specify a unique request ID so that
80468// if you must retry your request, the server will know to ignore the
80469// request if it has already been completed. For example, consider a
80470// situation where you make an initial request and the request times
80471// out. If you make the request again with the same request ID, the
80472// server can check if original operation with the same request ID was
80473// received, and if so, will ignore the second request. The request ID
80474// must be a valid UUID with the exception that zero UUID is not
80475// supported ( 00000000-0000-0000-0000-000000000000).
80476func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
80477	c.urlParams_.Set("requestId", requestId)
80478	return c
80479}
80480
80481// Fields allows partial responses to be retrieved. See
80482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80483// for more information.
80484func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
80485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80486	return c
80487}
80488
80489// Context sets the context to be used in this call's Do method. Any
80490// pending HTTP request will be aborted if the provided context is
80491// canceled.
80492func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
80493	c.ctx_ = ctx
80494	return c
80495}
80496
80497// Header returns an http.Header that can be modified by the caller to
80498// add HTTP headers to the request.
80499func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
80500	if c.header_ == nil {
80501		c.header_ = make(http.Header)
80502	}
80503	return c.header_
80504}
80505
80506func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
80507	reqHeaders := make(http.Header)
80508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
80509	for k, v := range c.header_ {
80510		reqHeaders[k] = v
80511	}
80512	reqHeaders.Set("User-Agent", c.s.userAgent())
80513	var body io.Reader = nil
80514	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
80515	if err != nil {
80516		return nil, err
80517	}
80518	reqHeaders.Set("Content-Type", "application/json")
80519	c.urlParams_.Set("alt", alt)
80520	c.urlParams_.Set("prettyPrint", "false")
80521	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
80522	urls += "?" + c.urlParams_.Encode()
80523	req, err := http.NewRequest("POST", urls, body)
80524	if err != nil {
80525		return nil, err
80526	}
80527	req.Header = reqHeaders
80528	googleapi.Expand(req.URL, map[string]string{
80529		"project":              c.project,
80530		"zone":                 c.zone,
80531		"instanceGroupManager": c.instanceGroupManager,
80532	})
80533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80534}
80535
80536// Do executes the "compute.instanceGroupManagers.createInstances" call.
80537// Exactly one of *Operation or error will be non-nil. Any non-2xx
80538// status code is an error. Response headers are in either
80539// *Operation.ServerResponse.Header or (if a response was returned at
80540// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80541// to check whether the returned error was because
80542// http.StatusNotModified was returned.
80543func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80544	gensupport.SetOptions(c.urlParams_, opts...)
80545	res, err := c.doRequest("json")
80546	if res != nil && res.StatusCode == http.StatusNotModified {
80547		if res.Body != nil {
80548			res.Body.Close()
80549		}
80550		return nil, &googleapi.Error{
80551			Code:   res.StatusCode,
80552			Header: res.Header,
80553		}
80554	}
80555	if err != nil {
80556		return nil, err
80557	}
80558	defer googleapi.CloseBody(res)
80559	if err := googleapi.CheckResponse(res); err != nil {
80560		return nil, err
80561	}
80562	ret := &Operation{
80563		ServerResponse: googleapi.ServerResponse{
80564			Header:         res.Header,
80565			HTTPStatusCode: res.StatusCode,
80566		},
80567	}
80568	target := &ret
80569	if err := gensupport.DecodeResponse(target, res); err != nil {
80570		return nil, err
80571	}
80572	return ret, nil
80573	// {
80574	//   "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.",
80575	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
80576	//   "httpMethod": "POST",
80577	//   "id": "compute.instanceGroupManagers.createInstances",
80578	//   "parameterOrder": [
80579	//     "project",
80580	//     "zone",
80581	//     "instanceGroupManager"
80582	//   ],
80583	//   "parameters": {
80584	//     "instanceGroupManager": {
80585	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80586	//       "location": "path",
80587	//       "required": true,
80588	//       "type": "string"
80589	//     },
80590	//     "project": {
80591	//       "description": "Project ID for this request.",
80592	//       "location": "path",
80593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80594	//       "required": true,
80595	//       "type": "string"
80596	//     },
80597	//     "requestId": {
80598	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
80599	//       "location": "query",
80600	//       "type": "string"
80601	//     },
80602	//     "zone": {
80603	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80604	//       "location": "path",
80605	//       "required": true,
80606	//       "type": "string"
80607	//     }
80608	//   },
80609	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
80610	//   "request": {
80611	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
80612	//   },
80613	//   "response": {
80614	//     "$ref": "Operation"
80615	//   },
80616	//   "scopes": [
80617	//     "https://www.googleapis.com/auth/cloud-platform",
80618	//     "https://www.googleapis.com/auth/compute"
80619	//   ]
80620	// }
80621
80622}
80623
80624// method id "compute.instanceGroupManagers.delete":
80625
80626type InstanceGroupManagersDeleteCall struct {
80627	s                    *Service
80628	project              string
80629	zone                 string
80630	instanceGroupManager string
80631	urlParams_           gensupport.URLParams
80632	ctx_                 context.Context
80633	header_              http.Header
80634}
80635
80636// Delete: Deletes the specified managed instance group and all of the
80637// instances in that group. Note that the instance group must not belong
80638// to a backend service. Read Deleting an instance group for more
80639// information.
80640//
80641// - instanceGroupManager: The name of the managed instance group to
80642//   delete.
80643// - project: Project ID for this request.
80644// - zone: The name of the zone where the managed instance group is
80645//   located.
80646func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
80647	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80648	c.project = project
80649	c.zone = zone
80650	c.instanceGroupManager = instanceGroupManager
80651	return c
80652}
80653
80654// RequestId sets the optional parameter "requestId": An optional
80655// request ID to identify requests. Specify a unique request ID so that
80656// if you must retry your request, the server will know to ignore the
80657// request if it has already been completed. For example, consider a
80658// situation where you make an initial request and the request times
80659// out. If you make the request again with the same request ID, the
80660// server can check if original operation with the same request ID was
80661// received, and if so, will ignore the second request. This prevents
80662// clients from accidentally creating duplicate commitments. The request
80663// ID must be a valid UUID with the exception that zero UUID is not
80664// supported ( 00000000-0000-0000-0000-000000000000).
80665func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
80666	c.urlParams_.Set("requestId", requestId)
80667	return c
80668}
80669
80670// Fields allows partial responses to be retrieved. See
80671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80672// for more information.
80673func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
80674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80675	return c
80676}
80677
80678// Context sets the context to be used in this call's Do method. Any
80679// pending HTTP request will be aborted if the provided context is
80680// canceled.
80681func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
80682	c.ctx_ = ctx
80683	return c
80684}
80685
80686// Header returns an http.Header that can be modified by the caller to
80687// add HTTP headers to the request.
80688func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
80689	if c.header_ == nil {
80690		c.header_ = make(http.Header)
80691	}
80692	return c.header_
80693}
80694
80695func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
80696	reqHeaders := make(http.Header)
80697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
80698	for k, v := range c.header_ {
80699		reqHeaders[k] = v
80700	}
80701	reqHeaders.Set("User-Agent", c.s.userAgent())
80702	var body io.Reader = nil
80703	c.urlParams_.Set("alt", alt)
80704	c.urlParams_.Set("prettyPrint", "false")
80705	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
80706	urls += "?" + c.urlParams_.Encode()
80707	req, err := http.NewRequest("DELETE", urls, body)
80708	if err != nil {
80709		return nil, err
80710	}
80711	req.Header = reqHeaders
80712	googleapi.Expand(req.URL, map[string]string{
80713		"project":              c.project,
80714		"zone":                 c.zone,
80715		"instanceGroupManager": c.instanceGroupManager,
80716	})
80717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80718}
80719
80720// Do executes the "compute.instanceGroupManagers.delete" call.
80721// Exactly one of *Operation or error will be non-nil. Any non-2xx
80722// status code is an error. Response headers are in either
80723// *Operation.ServerResponse.Header or (if a response was returned at
80724// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80725// to check whether the returned error was because
80726// http.StatusNotModified was returned.
80727func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80728	gensupport.SetOptions(c.urlParams_, opts...)
80729	res, err := c.doRequest("json")
80730	if res != nil && res.StatusCode == http.StatusNotModified {
80731		if res.Body != nil {
80732			res.Body.Close()
80733		}
80734		return nil, &googleapi.Error{
80735			Code:   res.StatusCode,
80736			Header: res.Header,
80737		}
80738	}
80739	if err != nil {
80740		return nil, err
80741	}
80742	defer googleapi.CloseBody(res)
80743	if err := googleapi.CheckResponse(res); err != nil {
80744		return nil, err
80745	}
80746	ret := &Operation{
80747		ServerResponse: googleapi.ServerResponse{
80748			Header:         res.Header,
80749			HTTPStatusCode: res.StatusCode,
80750		},
80751	}
80752	target := &ret
80753	if err := gensupport.DecodeResponse(target, res); err != nil {
80754		return nil, err
80755	}
80756	return ret, nil
80757	// {
80758	//   "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.",
80759	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
80760	//   "httpMethod": "DELETE",
80761	//   "id": "compute.instanceGroupManagers.delete",
80762	//   "parameterOrder": [
80763	//     "project",
80764	//     "zone",
80765	//     "instanceGroupManager"
80766	//   ],
80767	//   "parameters": {
80768	//     "instanceGroupManager": {
80769	//       "description": "The name of the managed instance group to delete.",
80770	//       "location": "path",
80771	//       "required": true,
80772	//       "type": "string"
80773	//     },
80774	//     "project": {
80775	//       "description": "Project ID for this request.",
80776	//       "location": "path",
80777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80778	//       "required": true,
80779	//       "type": "string"
80780	//     },
80781	//     "requestId": {
80782	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
80783	//       "location": "query",
80784	//       "type": "string"
80785	//     },
80786	//     "zone": {
80787	//       "description": "The name of the zone where the managed instance group is located.",
80788	//       "location": "path",
80789	//       "required": true,
80790	//       "type": "string"
80791	//     }
80792	//   },
80793	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
80794	//   "response": {
80795	//     "$ref": "Operation"
80796	//   },
80797	//   "scopes": [
80798	//     "https://www.googleapis.com/auth/cloud-platform",
80799	//     "https://www.googleapis.com/auth/compute"
80800	//   ]
80801	// }
80802
80803}
80804
80805// method id "compute.instanceGroupManagers.deleteInstances":
80806
80807type InstanceGroupManagersDeleteInstancesCall struct {
80808	s                                           *Service
80809	project                                     string
80810	zone                                        string
80811	instanceGroupManager                        string
80812	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
80813	urlParams_                                  gensupport.URLParams
80814	ctx_                                        context.Context
80815	header_                                     http.Header
80816}
80817
80818// DeleteInstances: Flags the specified instances in the managed
80819// instance group for immediate deletion. The instances are also removed
80820// from any target pools of which they were a member. This method
80821// reduces the targetSize of the managed instance group by the number of
80822// instances that you delete. This operation is marked as DONE when the
80823// action is scheduled even if the instances are still being deleted.
80824// You must separately verify the status of the deleting action with the
80825// listmanagedinstances method. If the group is part of a backend
80826// service that has enabled connection draining, it can take up to 60
80827// seconds after the connection draining duration has elapsed before the
80828// VM instance is removed or deleted. You can specify a maximum of 1000
80829// instances with this method per request.
80830//
80831// - instanceGroupManager: The name of the managed instance group.
80832// - project: Project ID for this request.
80833// - zone: The name of the zone where the managed instance group is
80834//   located.
80835func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
80836	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80837	c.project = project
80838	c.zone = zone
80839	c.instanceGroupManager = instanceGroupManager
80840	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
80841	return c
80842}
80843
80844// RequestId sets the optional parameter "requestId": An optional
80845// request ID to identify requests. Specify a unique request ID so that
80846// if you must retry your request, the server will know to ignore the
80847// request if it has already been completed. For example, consider a
80848// situation where you make an initial request and the request times
80849// out. If you make the request again with the same request ID, the
80850// server can check if original operation with the same request ID was
80851// received, and if so, will ignore the second request. This prevents
80852// clients from accidentally creating duplicate commitments. The request
80853// ID must be a valid UUID with the exception that zero UUID is not
80854// supported ( 00000000-0000-0000-0000-000000000000).
80855func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
80856	c.urlParams_.Set("requestId", requestId)
80857	return c
80858}
80859
80860// Fields allows partial responses to be retrieved. See
80861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80862// for more information.
80863func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
80864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80865	return c
80866}
80867
80868// Context sets the context to be used in this call's Do method. Any
80869// pending HTTP request will be aborted if the provided context is
80870// canceled.
80871func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
80872	c.ctx_ = ctx
80873	return c
80874}
80875
80876// Header returns an http.Header that can be modified by the caller to
80877// add HTTP headers to the request.
80878func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
80879	if c.header_ == nil {
80880		c.header_ = make(http.Header)
80881	}
80882	return c.header_
80883}
80884
80885func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
80886	reqHeaders := make(http.Header)
80887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
80888	for k, v := range c.header_ {
80889		reqHeaders[k] = v
80890	}
80891	reqHeaders.Set("User-Agent", c.s.userAgent())
80892	var body io.Reader = nil
80893	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
80894	if err != nil {
80895		return nil, err
80896	}
80897	reqHeaders.Set("Content-Type", "application/json")
80898	c.urlParams_.Set("alt", alt)
80899	c.urlParams_.Set("prettyPrint", "false")
80900	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
80901	urls += "?" + c.urlParams_.Encode()
80902	req, err := http.NewRequest("POST", urls, body)
80903	if err != nil {
80904		return nil, err
80905	}
80906	req.Header = reqHeaders
80907	googleapi.Expand(req.URL, map[string]string{
80908		"project":              c.project,
80909		"zone":                 c.zone,
80910		"instanceGroupManager": c.instanceGroupManager,
80911	})
80912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80913}
80914
80915// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
80916// Exactly one of *Operation or error will be non-nil. Any non-2xx
80917// status code is an error. Response headers are in either
80918// *Operation.ServerResponse.Header or (if a response was returned at
80919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80920// to check whether the returned error was because
80921// http.StatusNotModified was returned.
80922func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80923	gensupport.SetOptions(c.urlParams_, opts...)
80924	res, err := c.doRequest("json")
80925	if res != nil && res.StatusCode == http.StatusNotModified {
80926		if res.Body != nil {
80927			res.Body.Close()
80928		}
80929		return nil, &googleapi.Error{
80930			Code:   res.StatusCode,
80931			Header: res.Header,
80932		}
80933	}
80934	if err != nil {
80935		return nil, err
80936	}
80937	defer googleapi.CloseBody(res)
80938	if err := googleapi.CheckResponse(res); err != nil {
80939		return nil, err
80940	}
80941	ret := &Operation{
80942		ServerResponse: googleapi.ServerResponse{
80943			Header:         res.Header,
80944			HTTPStatusCode: res.StatusCode,
80945		},
80946	}
80947	target := &ret
80948	if err := gensupport.DecodeResponse(target, res); err != nil {
80949		return nil, err
80950	}
80951	return ret, nil
80952	// {
80953	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
80954	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
80955	//   "httpMethod": "POST",
80956	//   "id": "compute.instanceGroupManagers.deleteInstances",
80957	//   "parameterOrder": [
80958	//     "project",
80959	//     "zone",
80960	//     "instanceGroupManager"
80961	//   ],
80962	//   "parameters": {
80963	//     "instanceGroupManager": {
80964	//       "description": "The name of the managed instance group.",
80965	//       "location": "path",
80966	//       "required": true,
80967	//       "type": "string"
80968	//     },
80969	//     "project": {
80970	//       "description": "Project ID for this request.",
80971	//       "location": "path",
80972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80973	//       "required": true,
80974	//       "type": "string"
80975	//     },
80976	//     "requestId": {
80977	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
80978	//       "location": "query",
80979	//       "type": "string"
80980	//     },
80981	//     "zone": {
80982	//       "description": "The name of the zone where the managed instance group is located.",
80983	//       "location": "path",
80984	//       "required": true,
80985	//       "type": "string"
80986	//     }
80987	//   },
80988	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
80989	//   "request": {
80990	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
80991	//   },
80992	//   "response": {
80993	//     "$ref": "Operation"
80994	//   },
80995	//   "scopes": [
80996	//     "https://www.googleapis.com/auth/cloud-platform",
80997	//     "https://www.googleapis.com/auth/compute"
80998	//   ]
80999	// }
81000
81001}
81002
81003// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
81004
81005type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
81006	s                                                *Service
81007	project                                          string
81008	zone                                             string
81009	instanceGroupManager                             string
81010	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
81011	urlParams_                                       gensupport.URLParams
81012	ctx_                                             context.Context
81013	header_                                          http.Header
81014}
81015
81016// DeletePerInstanceConfigs: Deletes selected per-instance configs for
81017// the managed instance group.
81018//
81019// - instanceGroupManager: The name of the managed instance group. It
81020//   should conform to RFC1035.
81021// - project: Project ID for this request.
81022// - zone: The name of the zone where the managed instance group is
81023//   located. It should conform to RFC1035.
81024func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81025	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81026	c.project = project
81027	c.zone = zone
81028	c.instanceGroupManager = instanceGroupManager
81029	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
81030	return c
81031}
81032
81033// Fields allows partial responses to be retrieved. See
81034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81035// for more information.
81036func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81038	return c
81039}
81040
81041// Context sets the context to be used in this call's Do method. Any
81042// pending HTTP request will be aborted if the provided context is
81043// canceled.
81044func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81045	c.ctx_ = ctx
81046	return c
81047}
81048
81049// Header returns an http.Header that can be modified by the caller to
81050// add HTTP headers to the request.
81051func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
81052	if c.header_ == nil {
81053		c.header_ = make(http.Header)
81054	}
81055	return c.header_
81056}
81057
81058func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
81059	reqHeaders := make(http.Header)
81060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
81061	for k, v := range c.header_ {
81062		reqHeaders[k] = v
81063	}
81064	reqHeaders.Set("User-Agent", c.s.userAgent())
81065	var body io.Reader = nil
81066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
81067	if err != nil {
81068		return nil, err
81069	}
81070	reqHeaders.Set("Content-Type", "application/json")
81071	c.urlParams_.Set("alt", alt)
81072	c.urlParams_.Set("prettyPrint", "false")
81073	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
81074	urls += "?" + c.urlParams_.Encode()
81075	req, err := http.NewRequest("POST", urls, body)
81076	if err != nil {
81077		return nil, err
81078	}
81079	req.Header = reqHeaders
81080	googleapi.Expand(req.URL, map[string]string{
81081		"project":              c.project,
81082		"zone":                 c.zone,
81083		"instanceGroupManager": c.instanceGroupManager,
81084	})
81085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81086}
81087
81088// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
81089// Exactly one of *Operation or error will be non-nil. Any non-2xx
81090// status code is an error. Response headers are in either
81091// *Operation.ServerResponse.Header or (if a response was returned at
81092// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81093// to check whether the returned error was because
81094// http.StatusNotModified was returned.
81095func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81096	gensupport.SetOptions(c.urlParams_, opts...)
81097	res, err := c.doRequest("json")
81098	if res != nil && res.StatusCode == http.StatusNotModified {
81099		if res.Body != nil {
81100			res.Body.Close()
81101		}
81102		return nil, &googleapi.Error{
81103			Code:   res.StatusCode,
81104			Header: res.Header,
81105		}
81106	}
81107	if err != nil {
81108		return nil, err
81109	}
81110	defer googleapi.CloseBody(res)
81111	if err := googleapi.CheckResponse(res); err != nil {
81112		return nil, err
81113	}
81114	ret := &Operation{
81115		ServerResponse: googleapi.ServerResponse{
81116			Header:         res.Header,
81117			HTTPStatusCode: res.StatusCode,
81118		},
81119	}
81120	target := &ret
81121	if err := gensupport.DecodeResponse(target, res); err != nil {
81122		return nil, err
81123	}
81124	return ret, nil
81125	// {
81126	//   "description": "Deletes selected per-instance configs for the managed instance group.",
81127	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
81128	//   "httpMethod": "POST",
81129	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
81130	//   "parameterOrder": [
81131	//     "project",
81132	//     "zone",
81133	//     "instanceGroupManager"
81134	//   ],
81135	//   "parameters": {
81136	//     "instanceGroupManager": {
81137	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
81138	//       "location": "path",
81139	//       "required": true,
81140	//       "type": "string"
81141	//     },
81142	//     "project": {
81143	//       "description": "Project ID for this request.",
81144	//       "location": "path",
81145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81146	//       "required": true,
81147	//       "type": "string"
81148	//     },
81149	//     "zone": {
81150	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
81151	//       "location": "path",
81152	//       "required": true,
81153	//       "type": "string"
81154	//     }
81155	//   },
81156	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
81157	//   "request": {
81158	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
81159	//   },
81160	//   "response": {
81161	//     "$ref": "Operation"
81162	//   },
81163	//   "scopes": [
81164	//     "https://www.googleapis.com/auth/cloud-platform",
81165	//     "https://www.googleapis.com/auth/compute"
81166	//   ]
81167	// }
81168
81169}
81170
81171// method id "compute.instanceGroupManagers.get":
81172
81173type InstanceGroupManagersGetCall struct {
81174	s                    *Service
81175	project              string
81176	zone                 string
81177	instanceGroupManager string
81178	urlParams_           gensupport.URLParams
81179	ifNoneMatch_         string
81180	ctx_                 context.Context
81181	header_              http.Header
81182}
81183
81184// Get: Returns all of the details about the specified managed instance
81185// group. Gets a list of available managed instance groups by making a
81186// list() request.
81187//
81188// - instanceGroupManager: The name of the managed instance group.
81189// - project: Project ID for this request.
81190// - zone: The name of the zone where the managed instance group is
81191//   located.
81192func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
81193	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81194	c.project = project
81195	c.zone = zone
81196	c.instanceGroupManager = instanceGroupManager
81197	return c
81198}
81199
81200// Fields allows partial responses to be retrieved. See
81201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81202// for more information.
81203func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
81204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81205	return c
81206}
81207
81208// IfNoneMatch sets the optional parameter which makes the operation
81209// fail if the object's ETag matches the given value. This is useful for
81210// getting updates only after the object has changed since the last
81211// request. Use googleapi.IsNotModified to check whether the response
81212// error from Do is the result of In-None-Match.
81213func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
81214	c.ifNoneMatch_ = entityTag
81215	return c
81216}
81217
81218// Context sets the context to be used in this call's Do method. Any
81219// pending HTTP request will be aborted if the provided context is
81220// canceled.
81221func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
81222	c.ctx_ = ctx
81223	return c
81224}
81225
81226// Header returns an http.Header that can be modified by the caller to
81227// add HTTP headers to the request.
81228func (c *InstanceGroupManagersGetCall) Header() http.Header {
81229	if c.header_ == nil {
81230		c.header_ = make(http.Header)
81231	}
81232	return c.header_
81233}
81234
81235func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
81236	reqHeaders := make(http.Header)
81237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
81238	for k, v := range c.header_ {
81239		reqHeaders[k] = v
81240	}
81241	reqHeaders.Set("User-Agent", c.s.userAgent())
81242	if c.ifNoneMatch_ != "" {
81243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81244	}
81245	var body io.Reader = nil
81246	c.urlParams_.Set("alt", alt)
81247	c.urlParams_.Set("prettyPrint", "false")
81248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
81249	urls += "?" + c.urlParams_.Encode()
81250	req, err := http.NewRequest("GET", urls, body)
81251	if err != nil {
81252		return nil, err
81253	}
81254	req.Header = reqHeaders
81255	googleapi.Expand(req.URL, map[string]string{
81256		"project":              c.project,
81257		"zone":                 c.zone,
81258		"instanceGroupManager": c.instanceGroupManager,
81259	})
81260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81261}
81262
81263// Do executes the "compute.instanceGroupManagers.get" call.
81264// Exactly one of *InstanceGroupManager or error will be non-nil. Any
81265// non-2xx status code is an error. Response headers are in either
81266// *InstanceGroupManager.ServerResponse.Header or (if a response was
81267// returned at all) in error.(*googleapi.Error).Header. Use
81268// googleapi.IsNotModified to check whether the returned error was
81269// because http.StatusNotModified was returned.
81270func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
81271	gensupport.SetOptions(c.urlParams_, opts...)
81272	res, err := c.doRequest("json")
81273	if res != nil && res.StatusCode == http.StatusNotModified {
81274		if res.Body != nil {
81275			res.Body.Close()
81276		}
81277		return nil, &googleapi.Error{
81278			Code:   res.StatusCode,
81279			Header: res.Header,
81280		}
81281	}
81282	if err != nil {
81283		return nil, err
81284	}
81285	defer googleapi.CloseBody(res)
81286	if err := googleapi.CheckResponse(res); err != nil {
81287		return nil, err
81288	}
81289	ret := &InstanceGroupManager{
81290		ServerResponse: googleapi.ServerResponse{
81291			Header:         res.Header,
81292			HTTPStatusCode: res.StatusCode,
81293		},
81294	}
81295	target := &ret
81296	if err := gensupport.DecodeResponse(target, res); err != nil {
81297		return nil, err
81298	}
81299	return ret, nil
81300	// {
81301	//   "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.",
81302	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81303	//   "httpMethod": "GET",
81304	//   "id": "compute.instanceGroupManagers.get",
81305	//   "parameterOrder": [
81306	//     "project",
81307	//     "zone",
81308	//     "instanceGroupManager"
81309	//   ],
81310	//   "parameters": {
81311	//     "instanceGroupManager": {
81312	//       "description": "The name of the managed instance group.",
81313	//       "location": "path",
81314	//       "required": true,
81315	//       "type": "string"
81316	//     },
81317	//     "project": {
81318	//       "description": "Project ID for this request.",
81319	//       "location": "path",
81320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81321	//       "required": true,
81322	//       "type": "string"
81323	//     },
81324	//     "zone": {
81325	//       "description": "The name of the zone where the managed instance group is located.",
81326	//       "location": "path",
81327	//       "required": true,
81328	//       "type": "string"
81329	//     }
81330	//   },
81331	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81332	//   "response": {
81333	//     "$ref": "InstanceGroupManager"
81334	//   },
81335	//   "scopes": [
81336	//     "https://www.googleapis.com/auth/cloud-platform",
81337	//     "https://www.googleapis.com/auth/compute",
81338	//     "https://www.googleapis.com/auth/compute.readonly"
81339	//   ]
81340	// }
81341
81342}
81343
81344// method id "compute.instanceGroupManagers.insert":
81345
81346type InstanceGroupManagersInsertCall struct {
81347	s                    *Service
81348	project              string
81349	zone                 string
81350	instancegroupmanager *InstanceGroupManager
81351	urlParams_           gensupport.URLParams
81352	ctx_                 context.Context
81353	header_              http.Header
81354}
81355
81356// Insert: Creates a managed instance group using the information that
81357// you specify in the request. After the group is created, instances in
81358// the group are created using the specified instance template. This
81359// operation is marked as DONE when the group is created even if the
81360// instances in the group have not yet been created. You must separately
81361// verify the status of the individual instances with the
81362// listmanagedinstances method. A managed instance group can have up to
81363// 1000 VM instances per group. Please contact Cloud Support if you need
81364// an increase in this limit.
81365//
81366// - project: Project ID for this request.
81367// - zone: The name of the zone where you want to create the managed
81368//   instance group.
81369func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
81370	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81371	c.project = project
81372	c.zone = zone
81373	c.instancegroupmanager = instancegroupmanager
81374	return c
81375}
81376
81377// RequestId sets the optional parameter "requestId": An optional
81378// request ID to identify requests. Specify a unique request ID so that
81379// if you must retry your request, the server will know to ignore the
81380// request if it has already been completed. For example, consider a
81381// situation where you make an initial request and the request times
81382// out. If you make the request again with the same request ID, the
81383// server can check if original operation with the same request ID was
81384// received, and if so, will ignore the second request. This prevents
81385// clients from accidentally creating duplicate commitments. The request
81386// ID must be a valid UUID with the exception that zero UUID is not
81387// supported ( 00000000-0000-0000-0000-000000000000).
81388func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
81389	c.urlParams_.Set("requestId", requestId)
81390	return c
81391}
81392
81393// Fields allows partial responses to be retrieved. See
81394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81395// for more information.
81396func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
81397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81398	return c
81399}
81400
81401// Context sets the context to be used in this call's Do method. Any
81402// pending HTTP request will be aborted if the provided context is
81403// canceled.
81404func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
81405	c.ctx_ = ctx
81406	return c
81407}
81408
81409// Header returns an http.Header that can be modified by the caller to
81410// add HTTP headers to the request.
81411func (c *InstanceGroupManagersInsertCall) Header() http.Header {
81412	if c.header_ == nil {
81413		c.header_ = make(http.Header)
81414	}
81415	return c.header_
81416}
81417
81418func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
81419	reqHeaders := make(http.Header)
81420	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
81421	for k, v := range c.header_ {
81422		reqHeaders[k] = v
81423	}
81424	reqHeaders.Set("User-Agent", c.s.userAgent())
81425	var body io.Reader = nil
81426	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
81427	if err != nil {
81428		return nil, err
81429	}
81430	reqHeaders.Set("Content-Type", "application/json")
81431	c.urlParams_.Set("alt", alt)
81432	c.urlParams_.Set("prettyPrint", "false")
81433	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
81434	urls += "?" + c.urlParams_.Encode()
81435	req, err := http.NewRequest("POST", urls, body)
81436	if err != nil {
81437		return nil, err
81438	}
81439	req.Header = reqHeaders
81440	googleapi.Expand(req.URL, map[string]string{
81441		"project": c.project,
81442		"zone":    c.zone,
81443	})
81444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81445}
81446
81447// Do executes the "compute.instanceGroupManagers.insert" call.
81448// Exactly one of *Operation or error will be non-nil. Any non-2xx
81449// status code is an error. Response headers are in either
81450// *Operation.ServerResponse.Header or (if a response was returned at
81451// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81452// to check whether the returned error was because
81453// http.StatusNotModified was returned.
81454func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81455	gensupport.SetOptions(c.urlParams_, opts...)
81456	res, err := c.doRequest("json")
81457	if res != nil && res.StatusCode == http.StatusNotModified {
81458		if res.Body != nil {
81459			res.Body.Close()
81460		}
81461		return nil, &googleapi.Error{
81462			Code:   res.StatusCode,
81463			Header: res.Header,
81464		}
81465	}
81466	if err != nil {
81467		return nil, err
81468	}
81469	defer googleapi.CloseBody(res)
81470	if err := googleapi.CheckResponse(res); err != nil {
81471		return nil, err
81472	}
81473	ret := &Operation{
81474		ServerResponse: googleapi.ServerResponse{
81475			Header:         res.Header,
81476			HTTPStatusCode: res.StatusCode,
81477		},
81478	}
81479	target := &ret
81480	if err := gensupport.DecodeResponse(target, res); err != nil {
81481		return nil, err
81482	}
81483	return ret, nil
81484	// {
81485	//   "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. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.",
81486	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
81487	//   "httpMethod": "POST",
81488	//   "id": "compute.instanceGroupManagers.insert",
81489	//   "parameterOrder": [
81490	//     "project",
81491	//     "zone"
81492	//   ],
81493	//   "parameters": {
81494	//     "project": {
81495	//       "description": "Project ID for this request.",
81496	//       "location": "path",
81497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81498	//       "required": true,
81499	//       "type": "string"
81500	//     },
81501	//     "requestId": {
81502	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
81503	//       "location": "query",
81504	//       "type": "string"
81505	//     },
81506	//     "zone": {
81507	//       "description": "The name of the zone where you want to create the managed instance group.",
81508	//       "location": "path",
81509	//       "required": true,
81510	//       "type": "string"
81511	//     }
81512	//   },
81513	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
81514	//   "request": {
81515	//     "$ref": "InstanceGroupManager"
81516	//   },
81517	//   "response": {
81518	//     "$ref": "Operation"
81519	//   },
81520	//   "scopes": [
81521	//     "https://www.googleapis.com/auth/cloud-platform",
81522	//     "https://www.googleapis.com/auth/compute"
81523	//   ]
81524	// }
81525
81526}
81527
81528// method id "compute.instanceGroupManagers.list":
81529
81530type InstanceGroupManagersListCall struct {
81531	s            *Service
81532	project      string
81533	zone         string
81534	urlParams_   gensupport.URLParams
81535	ifNoneMatch_ string
81536	ctx_         context.Context
81537	header_      http.Header
81538}
81539
81540// List: Retrieves a list of managed instance groups that are contained
81541// within the specified project and zone.
81542//
81543// - project: Project ID for this request.
81544// - zone: The name of the zone where the managed instance group is
81545//   located.
81546func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
81547	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81548	c.project = project
81549	c.zone = zone
81550	return c
81551}
81552
81553// Filter sets the optional parameter "filter": A filter expression that
81554// filters resources listed in the response. The expression must specify
81555// the field name, a comparison operator, and the value that you want to
81556// use for filtering. The value must be a string, a number, or a
81557// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81558// `<`. For example, if you are filtering Compute Engine instances, you
81559// can exclude instances named `example-instance` by specifying `name !=
81560// example-instance`. You can also filter nested fields. For example,
81561// you could specify `scheduling.automaticRestart = false` to include
81562// instances only if they are not scheduled for automatic restarts. You
81563// can use filtering on nested fields to filter based on resource
81564// labels. To filter on multiple expressions, provide each separate
81565// expression within parentheses. For example: ```
81566// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
81567// ``` By default, each expression is an `AND` expression. However, you
81568// can include `AND` and `OR` expressions explicitly. For example: ```
81569// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
81570// AND (scheduling.automaticRestart = true) ```
81571func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
81572	c.urlParams_.Set("filter", filter)
81573	return c
81574}
81575
81576// MaxResults sets the optional parameter "maxResults": The maximum
81577// number of results per page that should be returned. If the number of
81578// available results is larger than `maxResults`, Compute Engine returns
81579// a `nextPageToken` that can be used to get the next page of results in
81580// subsequent list requests. Acceptable values are `0` to `500`,
81581// inclusive. (Default: `500`)
81582func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
81583	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81584	return c
81585}
81586
81587// OrderBy sets the optional parameter "orderBy": Sorts list results by
81588// a certain order. By default, results are returned in alphanumerical
81589// order based on the resource name. You can also sort results in
81590// descending order based on the creation timestamp using
81591// `orderBy="creationTimestamp desc". This sorts results based on the
81592// `creationTimestamp` field in reverse chronological order (newest
81593// result first). Use this to sort resources like operations so that the
81594// newest operation is returned first. Currently, only sorting by `name`
81595// or `creationTimestamp desc` is supported.
81596func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
81597	c.urlParams_.Set("orderBy", orderBy)
81598	return c
81599}
81600
81601// PageToken sets the optional parameter "pageToken": Specifies a page
81602// token to use. Set `pageToken` to the `nextPageToken` returned by a
81603// previous list request to get the next page of results.
81604func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
81605	c.urlParams_.Set("pageToken", pageToken)
81606	return c
81607}
81608
81609// ReturnPartialSuccess sets the optional parameter
81610// "returnPartialSuccess": Opt-in for partial success behavior which
81611// provides partial results in case of failure. The default value is
81612// false.
81613func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
81614	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
81615	return c
81616}
81617
81618// Fields allows partial responses to be retrieved. See
81619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81620// for more information.
81621func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
81622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81623	return c
81624}
81625
81626// IfNoneMatch sets the optional parameter which makes the operation
81627// fail if the object's ETag matches the given value. This is useful for
81628// getting updates only after the object has changed since the last
81629// request. Use googleapi.IsNotModified to check whether the response
81630// error from Do is the result of In-None-Match.
81631func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
81632	c.ifNoneMatch_ = entityTag
81633	return c
81634}
81635
81636// Context sets the context to be used in this call's Do method. Any
81637// pending HTTP request will be aborted if the provided context is
81638// canceled.
81639func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
81640	c.ctx_ = ctx
81641	return c
81642}
81643
81644// Header returns an http.Header that can be modified by the caller to
81645// add HTTP headers to the request.
81646func (c *InstanceGroupManagersListCall) Header() http.Header {
81647	if c.header_ == nil {
81648		c.header_ = make(http.Header)
81649	}
81650	return c.header_
81651}
81652
81653func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
81654	reqHeaders := make(http.Header)
81655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
81656	for k, v := range c.header_ {
81657		reqHeaders[k] = v
81658	}
81659	reqHeaders.Set("User-Agent", c.s.userAgent())
81660	if c.ifNoneMatch_ != "" {
81661		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81662	}
81663	var body io.Reader = nil
81664	c.urlParams_.Set("alt", alt)
81665	c.urlParams_.Set("prettyPrint", "false")
81666	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
81667	urls += "?" + c.urlParams_.Encode()
81668	req, err := http.NewRequest("GET", urls, body)
81669	if err != nil {
81670		return nil, err
81671	}
81672	req.Header = reqHeaders
81673	googleapi.Expand(req.URL, map[string]string{
81674		"project": c.project,
81675		"zone":    c.zone,
81676	})
81677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81678}
81679
81680// Do executes the "compute.instanceGroupManagers.list" call.
81681// Exactly one of *InstanceGroupManagerList or error will be non-nil.
81682// Any non-2xx status code is an error. Response headers are in either
81683// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
81684// returned at all) in error.(*googleapi.Error).Header. Use
81685// googleapi.IsNotModified to check whether the returned error was
81686// because http.StatusNotModified was returned.
81687func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
81688	gensupport.SetOptions(c.urlParams_, opts...)
81689	res, err := c.doRequest("json")
81690	if res != nil && res.StatusCode == http.StatusNotModified {
81691		if res.Body != nil {
81692			res.Body.Close()
81693		}
81694		return nil, &googleapi.Error{
81695			Code:   res.StatusCode,
81696			Header: res.Header,
81697		}
81698	}
81699	if err != nil {
81700		return nil, err
81701	}
81702	defer googleapi.CloseBody(res)
81703	if err := googleapi.CheckResponse(res); err != nil {
81704		return nil, err
81705	}
81706	ret := &InstanceGroupManagerList{
81707		ServerResponse: googleapi.ServerResponse{
81708			Header:         res.Header,
81709			HTTPStatusCode: res.StatusCode,
81710		},
81711	}
81712	target := &ret
81713	if err := gensupport.DecodeResponse(target, res); err != nil {
81714		return nil, err
81715	}
81716	return ret, nil
81717	// {
81718	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
81719	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
81720	//   "httpMethod": "GET",
81721	//   "id": "compute.instanceGroupManagers.list",
81722	//   "parameterOrder": [
81723	//     "project",
81724	//     "zone"
81725	//   ],
81726	//   "parameters": {
81727	//     "filter": {
81728	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
81729	//       "location": "query",
81730	//       "type": "string"
81731	//     },
81732	//     "maxResults": {
81733	//       "default": "500",
81734	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
81735	//       "format": "uint32",
81736	//       "location": "query",
81737	//       "minimum": "0",
81738	//       "type": "integer"
81739	//     },
81740	//     "orderBy": {
81741	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
81742	//       "location": "query",
81743	//       "type": "string"
81744	//     },
81745	//     "pageToken": {
81746	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
81747	//       "location": "query",
81748	//       "type": "string"
81749	//     },
81750	//     "project": {
81751	//       "description": "Project ID for this request.",
81752	//       "location": "path",
81753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81754	//       "required": true,
81755	//       "type": "string"
81756	//     },
81757	//     "returnPartialSuccess": {
81758	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
81759	//       "location": "query",
81760	//       "type": "boolean"
81761	//     },
81762	//     "zone": {
81763	//       "description": "The name of the zone where the managed instance group is located.",
81764	//       "location": "path",
81765	//       "required": true,
81766	//       "type": "string"
81767	//     }
81768	//   },
81769	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
81770	//   "response": {
81771	//     "$ref": "InstanceGroupManagerList"
81772	//   },
81773	//   "scopes": [
81774	//     "https://www.googleapis.com/auth/cloud-platform",
81775	//     "https://www.googleapis.com/auth/compute",
81776	//     "https://www.googleapis.com/auth/compute.readonly"
81777	//   ]
81778	// }
81779
81780}
81781
81782// Pages invokes f for each page of results.
81783// A non-nil error returned from f will halt the iteration.
81784// The provided context supersedes any context provided to the Context method.
81785func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
81786	c.ctx_ = ctx
81787	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81788	for {
81789		x, err := c.Do()
81790		if err != nil {
81791			return err
81792		}
81793		if err := f(x); err != nil {
81794			return err
81795		}
81796		if x.NextPageToken == "" {
81797			return nil
81798		}
81799		c.PageToken(x.NextPageToken)
81800	}
81801}
81802
81803// method id "compute.instanceGroupManagers.listErrors":
81804
81805type InstanceGroupManagersListErrorsCall struct {
81806	s                    *Service
81807	project              string
81808	zone                 string
81809	instanceGroupManager string
81810	urlParams_           gensupport.URLParams
81811	ifNoneMatch_         string
81812	ctx_                 context.Context
81813	header_              http.Header
81814}
81815
81816// ListErrors: Lists all errors thrown by actions on instances for a
81817// given managed instance group. The filter and orderBy query parameters
81818// are not supported.
81819//
81820// - instanceGroupManager: The name of the managed instance group. It
81821//   must be a string that meets the requirements in RFC1035, or an
81822//   unsigned long integer: must match regexp pattern: (?:a-z
81823//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.
81824// - project: Project ID for this request.
81825// - zone: The name of the zone where the managed instance group is
81826//   located. It should conform to RFC1035.
81827func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
81828	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81829	c.project = project
81830	c.zone = zone
81831	c.instanceGroupManager = instanceGroupManager
81832	return c
81833}
81834
81835// Filter sets the optional parameter "filter": A filter expression that
81836// filters resources listed in the response. The expression must specify
81837// the field name, a comparison operator, and the value that you want to
81838// use for filtering. The value must be a string, a number, or a
81839// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81840// `<`. For example, if you are filtering Compute Engine instances, you
81841// can exclude instances named `example-instance` by specifying `name !=
81842// example-instance`. You can also filter nested fields. For example,
81843// you could specify `scheduling.automaticRestart = false` to include
81844// instances only if they are not scheduled for automatic restarts. You
81845// can use filtering on nested fields to filter based on resource
81846// labels. To filter on multiple expressions, provide each separate
81847// expression within parentheses. For example: ```
81848// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
81849// ``` By default, each expression is an `AND` expression. However, you
81850// can include `AND` and `OR` expressions explicitly. For example: ```
81851// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
81852// AND (scheduling.automaticRestart = true) ```
81853func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
81854	c.urlParams_.Set("filter", filter)
81855	return c
81856}
81857
81858// MaxResults sets the optional parameter "maxResults": The maximum
81859// number of results per page that should be returned. If the number of
81860// available results is larger than `maxResults`, Compute Engine returns
81861// a `nextPageToken` that can be used to get the next page of results in
81862// subsequent list requests. Acceptable values are `0` to `500`,
81863// inclusive. (Default: `500`)
81864func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
81865	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81866	return c
81867}
81868
81869// OrderBy sets the optional parameter "orderBy": Sorts list results by
81870// a certain order. By default, results are returned in alphanumerical
81871// order based on the resource name. You can also sort results in
81872// descending order based on the creation timestamp using
81873// `orderBy="creationTimestamp desc". This sorts results based on the
81874// `creationTimestamp` field in reverse chronological order (newest
81875// result first). Use this to sort resources like operations so that the
81876// newest operation is returned first. Currently, only sorting by `name`
81877// or `creationTimestamp desc` is supported.
81878func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
81879	c.urlParams_.Set("orderBy", orderBy)
81880	return c
81881}
81882
81883// PageToken sets the optional parameter "pageToken": Specifies a page
81884// token to use. Set `pageToken` to the `nextPageToken` returned by a
81885// previous list request to get the next page of results.
81886func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
81887	c.urlParams_.Set("pageToken", pageToken)
81888	return c
81889}
81890
81891// ReturnPartialSuccess sets the optional parameter
81892// "returnPartialSuccess": Opt-in for partial success behavior which
81893// provides partial results in case of failure. The default value is
81894// false.
81895func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
81896	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
81897	return c
81898}
81899
81900// Fields allows partial responses to be retrieved. See
81901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81902// for more information.
81903func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
81904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81905	return c
81906}
81907
81908// IfNoneMatch sets the optional parameter which makes the operation
81909// fail if the object's ETag matches the given value. This is useful for
81910// getting updates only after the object has changed since the last
81911// request. Use googleapi.IsNotModified to check whether the response
81912// error from Do is the result of In-None-Match.
81913func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
81914	c.ifNoneMatch_ = entityTag
81915	return c
81916}
81917
81918// Context sets the context to be used in this call's Do method. Any
81919// pending HTTP request will be aborted if the provided context is
81920// canceled.
81921func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
81922	c.ctx_ = ctx
81923	return c
81924}
81925
81926// Header returns an http.Header that can be modified by the caller to
81927// add HTTP headers to the request.
81928func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
81929	if c.header_ == nil {
81930		c.header_ = make(http.Header)
81931	}
81932	return c.header_
81933}
81934
81935func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
81936	reqHeaders := make(http.Header)
81937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
81938	for k, v := range c.header_ {
81939		reqHeaders[k] = v
81940	}
81941	reqHeaders.Set("User-Agent", c.s.userAgent())
81942	if c.ifNoneMatch_ != "" {
81943		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81944	}
81945	var body io.Reader = nil
81946	c.urlParams_.Set("alt", alt)
81947	c.urlParams_.Set("prettyPrint", "false")
81948	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
81949	urls += "?" + c.urlParams_.Encode()
81950	req, err := http.NewRequest("GET", urls, body)
81951	if err != nil {
81952		return nil, err
81953	}
81954	req.Header = reqHeaders
81955	googleapi.Expand(req.URL, map[string]string{
81956		"project":              c.project,
81957		"zone":                 c.zone,
81958		"instanceGroupManager": c.instanceGroupManager,
81959	})
81960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81961}
81962
81963// Do executes the "compute.instanceGroupManagers.listErrors" call.
81964// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
81965// be non-nil. Any non-2xx status code is an error. Response headers are
81966// in either
81967// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
81968// a response was returned at all) in error.(*googleapi.Error).Header.
81969// Use googleapi.IsNotModified to check whether the returned error was
81970// because http.StatusNotModified was returned.
81971func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
81972	gensupport.SetOptions(c.urlParams_, opts...)
81973	res, err := c.doRequest("json")
81974	if res != nil && res.StatusCode == http.StatusNotModified {
81975		if res.Body != nil {
81976			res.Body.Close()
81977		}
81978		return nil, &googleapi.Error{
81979			Code:   res.StatusCode,
81980			Header: res.Header,
81981		}
81982	}
81983	if err != nil {
81984		return nil, err
81985	}
81986	defer googleapi.CloseBody(res)
81987	if err := googleapi.CheckResponse(res); err != nil {
81988		return nil, err
81989	}
81990	ret := &InstanceGroupManagersListErrorsResponse{
81991		ServerResponse: googleapi.ServerResponse{
81992			Header:         res.Header,
81993			HTTPStatusCode: res.StatusCode,
81994		},
81995	}
81996	target := &ret
81997	if err := gensupport.DecodeResponse(target, res); err != nil {
81998		return nil, err
81999	}
82000	return ret, nil
82001	// {
82002	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
82003	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
82004	//   "httpMethod": "GET",
82005	//   "id": "compute.instanceGroupManagers.listErrors",
82006	//   "parameterOrder": [
82007	//     "project",
82008	//     "zone",
82009	//     "instanceGroupManager"
82010	//   ],
82011	//   "parameters": {
82012	//     "filter": {
82013	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82014	//       "location": "query",
82015	//       "type": "string"
82016	//     },
82017	//     "instanceGroupManager": {
82018	//       "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,19}.",
82019	//       "location": "path",
82020	//       "required": true,
82021	//       "type": "string"
82022	//     },
82023	//     "maxResults": {
82024	//       "default": "500",
82025	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82026	//       "format": "uint32",
82027	//       "location": "query",
82028	//       "minimum": "0",
82029	//       "type": "integer"
82030	//     },
82031	//     "orderBy": {
82032	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
82033	//       "location": "query",
82034	//       "type": "string"
82035	//     },
82036	//     "pageToken": {
82037	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82038	//       "location": "query",
82039	//       "type": "string"
82040	//     },
82041	//     "project": {
82042	//       "description": "Project ID for this request.",
82043	//       "location": "path",
82044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82045	//       "required": true,
82046	//       "type": "string"
82047	//     },
82048	//     "returnPartialSuccess": {
82049	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82050	//       "location": "query",
82051	//       "type": "boolean"
82052	//     },
82053	//     "zone": {
82054	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82055	//       "location": "path",
82056	//       "required": true,
82057	//       "type": "string"
82058	//     }
82059	//   },
82060	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
82061	//   "response": {
82062	//     "$ref": "InstanceGroupManagersListErrorsResponse"
82063	//   },
82064	//   "scopes": [
82065	//     "https://www.googleapis.com/auth/cloud-platform",
82066	//     "https://www.googleapis.com/auth/compute",
82067	//     "https://www.googleapis.com/auth/compute.readonly"
82068	//   ]
82069	// }
82070
82071}
82072
82073// Pages invokes f for each page of results.
82074// A non-nil error returned from f will halt the iteration.
82075// The provided context supersedes any context provided to the Context method.
82076func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
82077	c.ctx_ = ctx
82078	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82079	for {
82080		x, err := c.Do()
82081		if err != nil {
82082			return err
82083		}
82084		if err := f(x); err != nil {
82085			return err
82086		}
82087		if x.NextPageToken == "" {
82088			return nil
82089		}
82090		c.PageToken(x.NextPageToken)
82091	}
82092}
82093
82094// method id "compute.instanceGroupManagers.listManagedInstances":
82095
82096type InstanceGroupManagersListManagedInstancesCall struct {
82097	s                    *Service
82098	project              string
82099	zone                 string
82100	instanceGroupManager string
82101	urlParams_           gensupport.URLParams
82102	ctx_                 context.Context
82103	header_              http.Header
82104}
82105
82106// ListManagedInstances: Lists all of the instances in the managed
82107// instance group. Each instance in the list has a currentAction, which
82108// indicates the action that the managed instance group is performing on
82109// the instance. For example, if the group is still creating an
82110// instance, the currentAction is CREATING. If a previous action failed,
82111// the list displays the errors for that failed action. The orderBy
82112// query parameter is not supported.
82113//
82114// - instanceGroupManager: The name of the managed instance group.
82115// - project: Project ID for this request.
82116// - zone: The name of the zone where the managed instance group is
82117//   located.
82118func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
82119	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82120	c.project = project
82121	c.zone = zone
82122	c.instanceGroupManager = instanceGroupManager
82123	return c
82124}
82125
82126// Filter sets the optional parameter "filter": A filter expression that
82127// filters resources listed in the response. The expression must specify
82128// the field name, a comparison operator, and the value that you want to
82129// use for filtering. The value must be a string, a number, or a
82130// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82131// `<`. For example, if you are filtering Compute Engine instances, you
82132// can exclude instances named `example-instance` by specifying `name !=
82133// example-instance`. You can also filter nested fields. For example,
82134// you could specify `scheduling.automaticRestart = false` to include
82135// instances only if they are not scheduled for automatic restarts. You
82136// can use filtering on nested fields to filter based on resource
82137// labels. To filter on multiple expressions, provide each separate
82138// expression within parentheses. For example: ```
82139// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
82140// ``` By default, each expression is an `AND` expression. However, you
82141// can include `AND` and `OR` expressions explicitly. For example: ```
82142// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
82143// AND (scheduling.automaticRestart = true) ```
82144func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
82145	c.urlParams_.Set("filter", filter)
82146	return c
82147}
82148
82149// MaxResults sets the optional parameter "maxResults": The maximum
82150// number of results per page that should be returned. If the number of
82151// available results is larger than `maxResults`, Compute Engine returns
82152// a `nextPageToken` that can be used to get the next page of results in
82153// subsequent list requests. Acceptable values are `0` to `500`,
82154// inclusive. (Default: `500`)
82155func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
82156	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82157	return c
82158}
82159
82160// OrderBy sets the optional parameter "orderBy": Sorts list results by
82161// a certain order. By default, results are returned in alphanumerical
82162// order based on the resource name. You can also sort results in
82163// descending order based on the creation timestamp using
82164// `orderBy="creationTimestamp desc". This sorts results based on the
82165// `creationTimestamp` field in reverse chronological order (newest
82166// result first). Use this to sort resources like operations so that the
82167// newest operation is returned first. Currently, only sorting by `name`
82168// or `creationTimestamp desc` is supported.
82169func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
82170	c.urlParams_.Set("orderBy", orderBy)
82171	return c
82172}
82173
82174// PageToken sets the optional parameter "pageToken": Specifies a page
82175// token to use. Set `pageToken` to the `nextPageToken` returned by a
82176// previous list request to get the next page of results.
82177func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
82178	c.urlParams_.Set("pageToken", pageToken)
82179	return c
82180}
82181
82182// ReturnPartialSuccess sets the optional parameter
82183// "returnPartialSuccess": Opt-in for partial success behavior which
82184// provides partial results in case of failure. The default value is
82185// false.
82186func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall {
82187	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82188	return c
82189}
82190
82191// Fields allows partial responses to be retrieved. See
82192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82193// for more information.
82194func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
82195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82196	return c
82197}
82198
82199// Context sets the context to be used in this call's Do method. Any
82200// pending HTTP request will be aborted if the provided context is
82201// canceled.
82202func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
82203	c.ctx_ = ctx
82204	return c
82205}
82206
82207// Header returns an http.Header that can be modified by the caller to
82208// add HTTP headers to the request.
82209func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
82210	if c.header_ == nil {
82211		c.header_ = make(http.Header)
82212	}
82213	return c.header_
82214}
82215
82216func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
82217	reqHeaders := make(http.Header)
82218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
82219	for k, v := range c.header_ {
82220		reqHeaders[k] = v
82221	}
82222	reqHeaders.Set("User-Agent", c.s.userAgent())
82223	var body io.Reader = nil
82224	c.urlParams_.Set("alt", alt)
82225	c.urlParams_.Set("prettyPrint", "false")
82226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
82227	urls += "?" + c.urlParams_.Encode()
82228	req, err := http.NewRequest("POST", urls, body)
82229	if err != nil {
82230		return nil, err
82231	}
82232	req.Header = reqHeaders
82233	googleapi.Expand(req.URL, map[string]string{
82234		"project":              c.project,
82235		"zone":                 c.zone,
82236		"instanceGroupManager": c.instanceGroupManager,
82237	})
82238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82239}
82240
82241// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
82242// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
82243// error will be non-nil. Any non-2xx status code is an error. Response
82244// headers are in either
82245// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
82246// er or (if a response was returned at all) in
82247// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
82248// whether the returned error was because http.StatusNotModified was
82249// returned.
82250func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
82251	gensupport.SetOptions(c.urlParams_, opts...)
82252	res, err := c.doRequest("json")
82253	if res != nil && res.StatusCode == http.StatusNotModified {
82254		if res.Body != nil {
82255			res.Body.Close()
82256		}
82257		return nil, &googleapi.Error{
82258			Code:   res.StatusCode,
82259			Header: res.Header,
82260		}
82261	}
82262	if err != nil {
82263		return nil, err
82264	}
82265	defer googleapi.CloseBody(res)
82266	if err := googleapi.CheckResponse(res); err != nil {
82267		return nil, err
82268	}
82269	ret := &InstanceGroupManagersListManagedInstancesResponse{
82270		ServerResponse: googleapi.ServerResponse{
82271			Header:         res.Header,
82272			HTTPStatusCode: res.StatusCode,
82273		},
82274	}
82275	target := &ret
82276	if err := gensupport.DecodeResponse(target, res); err != nil {
82277		return nil, err
82278	}
82279	return ret, nil
82280	// {
82281	//   "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.",
82282	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
82283	//   "httpMethod": "POST",
82284	//   "id": "compute.instanceGroupManagers.listManagedInstances",
82285	//   "parameterOrder": [
82286	//     "project",
82287	//     "zone",
82288	//     "instanceGroupManager"
82289	//   ],
82290	//   "parameters": {
82291	//     "filter": {
82292	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82293	//       "location": "query",
82294	//       "type": "string"
82295	//     },
82296	//     "instanceGroupManager": {
82297	//       "description": "The name of the managed instance group.",
82298	//       "location": "path",
82299	//       "required": true,
82300	//       "type": "string"
82301	//     },
82302	//     "maxResults": {
82303	//       "default": "500",
82304	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82305	//       "format": "uint32",
82306	//       "location": "query",
82307	//       "minimum": "0",
82308	//       "type": "integer"
82309	//     },
82310	//     "orderBy": {
82311	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
82312	//       "location": "query",
82313	//       "type": "string"
82314	//     },
82315	//     "pageToken": {
82316	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82317	//       "location": "query",
82318	//       "type": "string"
82319	//     },
82320	//     "project": {
82321	//       "description": "Project ID for this request.",
82322	//       "location": "path",
82323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82324	//       "required": true,
82325	//       "type": "string"
82326	//     },
82327	//     "returnPartialSuccess": {
82328	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82329	//       "location": "query",
82330	//       "type": "boolean"
82331	//     },
82332	//     "zone": {
82333	//       "description": "The name of the zone where the managed instance group is located.",
82334	//       "location": "path",
82335	//       "required": true,
82336	//       "type": "string"
82337	//     }
82338	//   },
82339	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
82340	//   "response": {
82341	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
82342	//   },
82343	//   "scopes": [
82344	//     "https://www.googleapis.com/auth/cloud-platform",
82345	//     "https://www.googleapis.com/auth/compute",
82346	//     "https://www.googleapis.com/auth/compute.readonly"
82347	//   ]
82348	// }
82349
82350}
82351
82352// Pages invokes f for each page of results.
82353// A non-nil error returned from f will halt the iteration.
82354// The provided context supersedes any context provided to the Context method.
82355func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
82356	c.ctx_ = ctx
82357	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82358	for {
82359		x, err := c.Do()
82360		if err != nil {
82361			return err
82362		}
82363		if err := f(x); err != nil {
82364			return err
82365		}
82366		if x.NextPageToken == "" {
82367			return nil
82368		}
82369		c.PageToken(x.NextPageToken)
82370	}
82371}
82372
82373// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
82374
82375type InstanceGroupManagersListPerInstanceConfigsCall struct {
82376	s                    *Service
82377	project              string
82378	zone                 string
82379	instanceGroupManager string
82380	urlParams_           gensupport.URLParams
82381	ctx_                 context.Context
82382	header_              http.Header
82383}
82384
82385// ListPerInstanceConfigs: Lists all of the per-instance configs defined
82386// for the managed instance group. The orderBy query parameter is not
82387// supported.
82388//
82389// - instanceGroupManager: The name of the managed instance group. It
82390//   should conform to RFC1035.
82391// - project: Project ID for this request.
82392// - zone: The name of the zone where the managed instance group is
82393//   located. It should conform to RFC1035.
82394func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
82395	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82396	c.project = project
82397	c.zone = zone
82398	c.instanceGroupManager = instanceGroupManager
82399	return c
82400}
82401
82402// Filter sets the optional parameter "filter": A filter expression that
82403// filters resources listed in the response. The expression must specify
82404// the field name, a comparison operator, and the value that you want to
82405// use for filtering. The value must be a string, a number, or a
82406// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82407// `<`. For example, if you are filtering Compute Engine instances, you
82408// can exclude instances named `example-instance` by specifying `name !=
82409// example-instance`. You can also filter nested fields. For example,
82410// you could specify `scheduling.automaticRestart = false` to include
82411// instances only if they are not scheduled for automatic restarts. You
82412// can use filtering on nested fields to filter based on resource
82413// labels. To filter on multiple expressions, provide each separate
82414// expression within parentheses. For example: ```
82415// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
82416// ``` By default, each expression is an `AND` expression. However, you
82417// can include `AND` and `OR` expressions explicitly. For example: ```
82418// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
82419// AND (scheduling.automaticRestart = true) ```
82420func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
82421	c.urlParams_.Set("filter", filter)
82422	return c
82423}
82424
82425// MaxResults sets the optional parameter "maxResults": The maximum
82426// number of results per page that should be returned. If the number of
82427// available results is larger than `maxResults`, Compute Engine returns
82428// a `nextPageToken` that can be used to get the next page of results in
82429// subsequent list requests. Acceptable values are `0` to `500`,
82430// inclusive. (Default: `500`)
82431func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
82432	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82433	return c
82434}
82435
82436// OrderBy sets the optional parameter "orderBy": Sorts list results by
82437// a certain order. By default, results are returned in alphanumerical
82438// order based on the resource name. You can also sort results in
82439// descending order based on the creation timestamp using
82440// `orderBy="creationTimestamp desc". This sorts results based on the
82441// `creationTimestamp` field in reverse chronological order (newest
82442// result first). Use this to sort resources like operations so that the
82443// newest operation is returned first. Currently, only sorting by `name`
82444// or `creationTimestamp desc` is supported.
82445func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
82446	c.urlParams_.Set("orderBy", orderBy)
82447	return c
82448}
82449
82450// PageToken sets the optional parameter "pageToken": Specifies a page
82451// token to use. Set `pageToken` to the `nextPageToken` returned by a
82452// previous list request to get the next page of results.
82453func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
82454	c.urlParams_.Set("pageToken", pageToken)
82455	return c
82456}
82457
82458// ReturnPartialSuccess sets the optional parameter
82459// "returnPartialSuccess": Opt-in for partial success behavior which
82460// provides partial results in case of failure. The default value is
82461// false.
82462func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
82463	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82464	return c
82465}
82466
82467// Fields allows partial responses to be retrieved. See
82468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82469// for more information.
82470func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
82471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82472	return c
82473}
82474
82475// Context sets the context to be used in this call's Do method. Any
82476// pending HTTP request will be aborted if the provided context is
82477// canceled.
82478func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
82479	c.ctx_ = ctx
82480	return c
82481}
82482
82483// Header returns an http.Header that can be modified by the caller to
82484// add HTTP headers to the request.
82485func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
82486	if c.header_ == nil {
82487		c.header_ = make(http.Header)
82488	}
82489	return c.header_
82490}
82491
82492func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
82493	reqHeaders := make(http.Header)
82494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
82495	for k, v := range c.header_ {
82496		reqHeaders[k] = v
82497	}
82498	reqHeaders.Set("User-Agent", c.s.userAgent())
82499	var body io.Reader = nil
82500	c.urlParams_.Set("alt", alt)
82501	c.urlParams_.Set("prettyPrint", "false")
82502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
82503	urls += "?" + c.urlParams_.Encode()
82504	req, err := http.NewRequest("POST", urls, body)
82505	if err != nil {
82506		return nil, err
82507	}
82508	req.Header = reqHeaders
82509	googleapi.Expand(req.URL, map[string]string{
82510		"project":              c.project,
82511		"zone":                 c.zone,
82512		"instanceGroupManager": c.instanceGroupManager,
82513	})
82514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82515}
82516
82517// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
82518// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
82519// error will be non-nil. Any non-2xx status code is an error. Response
82520// headers are in either
82521// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
82522//  or (if a response was returned at all) in
82523// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
82524// whether the returned error was because http.StatusNotModified was
82525// returned.
82526func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
82527	gensupport.SetOptions(c.urlParams_, opts...)
82528	res, err := c.doRequest("json")
82529	if res != nil && res.StatusCode == http.StatusNotModified {
82530		if res.Body != nil {
82531			res.Body.Close()
82532		}
82533		return nil, &googleapi.Error{
82534			Code:   res.StatusCode,
82535			Header: res.Header,
82536		}
82537	}
82538	if err != nil {
82539		return nil, err
82540	}
82541	defer googleapi.CloseBody(res)
82542	if err := googleapi.CheckResponse(res); err != nil {
82543		return nil, err
82544	}
82545	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
82546		ServerResponse: googleapi.ServerResponse{
82547			Header:         res.Header,
82548			HTTPStatusCode: res.StatusCode,
82549		},
82550	}
82551	target := &ret
82552	if err := gensupport.DecodeResponse(target, res); err != nil {
82553		return nil, err
82554	}
82555	return ret, nil
82556	// {
82557	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
82558	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
82559	//   "httpMethod": "POST",
82560	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
82561	//   "parameterOrder": [
82562	//     "project",
82563	//     "zone",
82564	//     "instanceGroupManager"
82565	//   ],
82566	//   "parameters": {
82567	//     "filter": {
82568	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82569	//       "location": "query",
82570	//       "type": "string"
82571	//     },
82572	//     "instanceGroupManager": {
82573	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
82574	//       "location": "path",
82575	//       "required": true,
82576	//       "type": "string"
82577	//     },
82578	//     "maxResults": {
82579	//       "default": "500",
82580	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82581	//       "format": "uint32",
82582	//       "location": "query",
82583	//       "minimum": "0",
82584	//       "type": "integer"
82585	//     },
82586	//     "orderBy": {
82587	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
82588	//       "location": "query",
82589	//       "type": "string"
82590	//     },
82591	//     "pageToken": {
82592	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82593	//       "location": "query",
82594	//       "type": "string"
82595	//     },
82596	//     "project": {
82597	//       "description": "Project ID for this request.",
82598	//       "location": "path",
82599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82600	//       "required": true,
82601	//       "type": "string"
82602	//     },
82603	//     "returnPartialSuccess": {
82604	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82605	//       "location": "query",
82606	//       "type": "boolean"
82607	//     },
82608	//     "zone": {
82609	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82610	//       "location": "path",
82611	//       "required": true,
82612	//       "type": "string"
82613	//     }
82614	//   },
82615	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
82616	//   "response": {
82617	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
82618	//   },
82619	//   "scopes": [
82620	//     "https://www.googleapis.com/auth/cloud-platform",
82621	//     "https://www.googleapis.com/auth/compute",
82622	//     "https://www.googleapis.com/auth/compute.readonly"
82623	//   ]
82624	// }
82625
82626}
82627
82628// Pages invokes f for each page of results.
82629// A non-nil error returned from f will halt the iteration.
82630// The provided context supersedes any context provided to the Context method.
82631func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
82632	c.ctx_ = ctx
82633	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82634	for {
82635		x, err := c.Do()
82636		if err != nil {
82637			return err
82638		}
82639		if err := f(x); err != nil {
82640			return err
82641		}
82642		if x.NextPageToken == "" {
82643			return nil
82644		}
82645		c.PageToken(x.NextPageToken)
82646	}
82647}
82648
82649// method id "compute.instanceGroupManagers.patch":
82650
82651type InstanceGroupManagersPatchCall struct {
82652	s                    *Service
82653	project              string
82654	zone                 string
82655	instanceGroupManager string
82656	instancegroupmanager *InstanceGroupManager
82657	urlParams_           gensupport.URLParams
82658	ctx_                 context.Context
82659	header_              http.Header
82660}
82661
82662// Patch: Updates a managed instance group using the information that
82663// you specify in the request. This operation is marked as DONE when the
82664// group is patched even if the instances in the group are still in the
82665// process of being patched. You must separately verify the status of
82666// the individual instances with the listManagedInstances method. This
82667// method supports PATCH semantics and uses the JSON merge patch format
82668// and processing rules.
82669//
82670// - instanceGroupManager: The name of the instance group manager.
82671// - project: Project ID for this request.
82672// - zone: The name of the zone where you want to create the managed
82673//   instance group.
82674func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
82675	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82676	c.project = project
82677	c.zone = zone
82678	c.instanceGroupManager = instanceGroupManager
82679	c.instancegroupmanager = instancegroupmanager
82680	return c
82681}
82682
82683// RequestId sets the optional parameter "requestId": An optional
82684// request ID to identify requests. Specify a unique request ID so that
82685// if you must retry your request, the server will know to ignore the
82686// request if it has already been completed. For example, consider a
82687// situation where you make an initial request and the request times
82688// out. If you make the request again with the same request ID, the
82689// server can check if original operation with the same request ID was
82690// received, and if so, will ignore the second request. This prevents
82691// clients from accidentally creating duplicate commitments. The request
82692// ID must be a valid UUID with the exception that zero UUID is not
82693// supported ( 00000000-0000-0000-0000-000000000000).
82694func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
82695	c.urlParams_.Set("requestId", requestId)
82696	return c
82697}
82698
82699// Fields allows partial responses to be retrieved. See
82700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82701// for more information.
82702func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
82703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82704	return c
82705}
82706
82707// Context sets the context to be used in this call's Do method. Any
82708// pending HTTP request will be aborted if the provided context is
82709// canceled.
82710func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
82711	c.ctx_ = ctx
82712	return c
82713}
82714
82715// Header returns an http.Header that can be modified by the caller to
82716// add HTTP headers to the request.
82717func (c *InstanceGroupManagersPatchCall) Header() http.Header {
82718	if c.header_ == nil {
82719		c.header_ = make(http.Header)
82720	}
82721	return c.header_
82722}
82723
82724func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
82725	reqHeaders := make(http.Header)
82726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
82727	for k, v := range c.header_ {
82728		reqHeaders[k] = v
82729	}
82730	reqHeaders.Set("User-Agent", c.s.userAgent())
82731	var body io.Reader = nil
82732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
82733	if err != nil {
82734		return nil, err
82735	}
82736	reqHeaders.Set("Content-Type", "application/json")
82737	c.urlParams_.Set("alt", alt)
82738	c.urlParams_.Set("prettyPrint", "false")
82739	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
82740	urls += "?" + c.urlParams_.Encode()
82741	req, err := http.NewRequest("PATCH", urls, body)
82742	if err != nil {
82743		return nil, err
82744	}
82745	req.Header = reqHeaders
82746	googleapi.Expand(req.URL, map[string]string{
82747		"project":              c.project,
82748		"zone":                 c.zone,
82749		"instanceGroupManager": c.instanceGroupManager,
82750	})
82751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82752}
82753
82754// Do executes the "compute.instanceGroupManagers.patch" call.
82755// Exactly one of *Operation or error will be non-nil. Any non-2xx
82756// status code is an error. Response headers are in either
82757// *Operation.ServerResponse.Header or (if a response was returned at
82758// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82759// to check whether the returned error was because
82760// http.StatusNotModified was returned.
82761func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82762	gensupport.SetOptions(c.urlParams_, opts...)
82763	res, err := c.doRequest("json")
82764	if res != nil && res.StatusCode == http.StatusNotModified {
82765		if res.Body != nil {
82766			res.Body.Close()
82767		}
82768		return nil, &googleapi.Error{
82769			Code:   res.StatusCode,
82770			Header: res.Header,
82771		}
82772	}
82773	if err != nil {
82774		return nil, err
82775	}
82776	defer googleapi.CloseBody(res)
82777	if err := googleapi.CheckResponse(res); err != nil {
82778		return nil, err
82779	}
82780	ret := &Operation{
82781		ServerResponse: googleapi.ServerResponse{
82782			Header:         res.Header,
82783			HTTPStatusCode: res.StatusCode,
82784		},
82785	}
82786	target := &ret
82787	if err := gensupport.DecodeResponse(target, res); err != nil {
82788		return nil, err
82789	}
82790	return ret, nil
82791	// {
82792	//   "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.",
82793	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
82794	//   "httpMethod": "PATCH",
82795	//   "id": "compute.instanceGroupManagers.patch",
82796	//   "parameterOrder": [
82797	//     "project",
82798	//     "zone",
82799	//     "instanceGroupManager"
82800	//   ],
82801	//   "parameters": {
82802	//     "instanceGroupManager": {
82803	//       "description": "The name of the instance group manager.",
82804	//       "location": "path",
82805	//       "required": true,
82806	//       "type": "string"
82807	//     },
82808	//     "project": {
82809	//       "description": "Project ID for this request.",
82810	//       "location": "path",
82811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82812	//       "required": true,
82813	//       "type": "string"
82814	//     },
82815	//     "requestId": {
82816	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
82817	//       "location": "query",
82818	//       "type": "string"
82819	//     },
82820	//     "zone": {
82821	//       "description": "The name of the zone where you want to create the managed instance group.",
82822	//       "location": "path",
82823	//       "required": true,
82824	//       "type": "string"
82825	//     }
82826	//   },
82827	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
82828	//   "request": {
82829	//     "$ref": "InstanceGroupManager"
82830	//   },
82831	//   "response": {
82832	//     "$ref": "Operation"
82833	//   },
82834	//   "scopes": [
82835	//     "https://www.googleapis.com/auth/cloud-platform",
82836	//     "https://www.googleapis.com/auth/compute"
82837	//   ]
82838	// }
82839
82840}
82841
82842// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
82843
82844type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
82845	s                                               *Service
82846	project                                         string
82847	zone                                            string
82848	instanceGroupManager                            string
82849	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
82850	urlParams_                                      gensupport.URLParams
82851	ctx_                                            context.Context
82852	header_                                         http.Header
82853}
82854
82855// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
82856// the managed instance group. perInstanceConfig.name serves as a key
82857// used to distinguish whether to perform insert or patch.
82858//
82859// - instanceGroupManager: The name of the managed instance group. It
82860//   should conform to RFC1035.
82861// - project: Project ID for this request.
82862// - zone: The name of the zone where the managed instance group is
82863//   located. It should conform to RFC1035.
82864func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
82865	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82866	c.project = project
82867	c.zone = zone
82868	c.instanceGroupManager = instanceGroupManager
82869	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
82870	return c
82871}
82872
82873// RequestId sets the optional parameter "requestId": An optional
82874// request ID to identify requests. Specify a unique request ID so that
82875// if you must retry your request, the server will know to ignore the
82876// request if it has already been completed. For example, consider a
82877// situation where you make an initial request and the request times
82878// out. If you make the request again with the same request ID, the
82879// server can check if original operation with the same request ID was
82880// received, and if so, will ignore the second request. This prevents
82881// clients from accidentally creating duplicate commitments. The request
82882// ID must be a valid UUID with the exception that zero UUID is not
82883// supported ( 00000000-0000-0000-0000-000000000000).
82884func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
82885	c.urlParams_.Set("requestId", requestId)
82886	return c
82887}
82888
82889// Fields allows partial responses to be retrieved. See
82890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82891// for more information.
82892func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
82893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82894	return c
82895}
82896
82897// Context sets the context to be used in this call's Do method. Any
82898// pending HTTP request will be aborted if the provided context is
82899// canceled.
82900func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
82901	c.ctx_ = ctx
82902	return c
82903}
82904
82905// Header returns an http.Header that can be modified by the caller to
82906// add HTTP headers to the request.
82907func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
82908	if c.header_ == nil {
82909		c.header_ = make(http.Header)
82910	}
82911	return c.header_
82912}
82913
82914func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
82915	reqHeaders := make(http.Header)
82916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
82917	for k, v := range c.header_ {
82918		reqHeaders[k] = v
82919	}
82920	reqHeaders.Set("User-Agent", c.s.userAgent())
82921	var body io.Reader = nil
82922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
82923	if err != nil {
82924		return nil, err
82925	}
82926	reqHeaders.Set("Content-Type", "application/json")
82927	c.urlParams_.Set("alt", alt)
82928	c.urlParams_.Set("prettyPrint", "false")
82929	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
82930	urls += "?" + c.urlParams_.Encode()
82931	req, err := http.NewRequest("POST", urls, body)
82932	if err != nil {
82933		return nil, err
82934	}
82935	req.Header = reqHeaders
82936	googleapi.Expand(req.URL, map[string]string{
82937		"project":              c.project,
82938		"zone":                 c.zone,
82939		"instanceGroupManager": c.instanceGroupManager,
82940	})
82941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82942}
82943
82944// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
82945// Exactly one of *Operation or error will be non-nil. Any non-2xx
82946// status code is an error. Response headers are in either
82947// *Operation.ServerResponse.Header or (if a response was returned at
82948// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82949// to check whether the returned error was because
82950// http.StatusNotModified was returned.
82951func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82952	gensupport.SetOptions(c.urlParams_, opts...)
82953	res, err := c.doRequest("json")
82954	if res != nil && res.StatusCode == http.StatusNotModified {
82955		if res.Body != nil {
82956			res.Body.Close()
82957		}
82958		return nil, &googleapi.Error{
82959			Code:   res.StatusCode,
82960			Header: res.Header,
82961		}
82962	}
82963	if err != nil {
82964		return nil, err
82965	}
82966	defer googleapi.CloseBody(res)
82967	if err := googleapi.CheckResponse(res); err != nil {
82968		return nil, err
82969	}
82970	ret := &Operation{
82971		ServerResponse: googleapi.ServerResponse{
82972			Header:         res.Header,
82973			HTTPStatusCode: res.StatusCode,
82974		},
82975	}
82976	target := &ret
82977	if err := gensupport.DecodeResponse(target, res); err != nil {
82978		return nil, err
82979	}
82980	return ret, nil
82981	// {
82982	//   "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.",
82983	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
82984	//   "httpMethod": "POST",
82985	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
82986	//   "parameterOrder": [
82987	//     "project",
82988	//     "zone",
82989	//     "instanceGroupManager"
82990	//   ],
82991	//   "parameters": {
82992	//     "instanceGroupManager": {
82993	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
82994	//       "location": "path",
82995	//       "required": true,
82996	//       "type": "string"
82997	//     },
82998	//     "project": {
82999	//       "description": "Project ID for this request.",
83000	//       "location": "path",
83001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83002	//       "required": true,
83003	//       "type": "string"
83004	//     },
83005	//     "requestId": {
83006	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83007	//       "location": "query",
83008	//       "type": "string"
83009	//     },
83010	//     "zone": {
83011	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83012	//       "location": "path",
83013	//       "required": true,
83014	//       "type": "string"
83015	//     }
83016	//   },
83017	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
83018	//   "request": {
83019	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
83020	//   },
83021	//   "response": {
83022	//     "$ref": "Operation"
83023	//   },
83024	//   "scopes": [
83025	//     "https://www.googleapis.com/auth/cloud-platform",
83026	//     "https://www.googleapis.com/auth/compute"
83027	//   ]
83028	// }
83029
83030}
83031
83032// method id "compute.instanceGroupManagers.recreateInstances":
83033
83034type InstanceGroupManagersRecreateInstancesCall struct {
83035	s                                             *Service
83036	project                                       string
83037	zone                                          string
83038	instanceGroupManager                          string
83039	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
83040	urlParams_                                    gensupport.URLParams
83041	ctx_                                          context.Context
83042	header_                                       http.Header
83043}
83044
83045// RecreateInstances: Flags the specified VM instances in the managed
83046// instance group to be immediately recreated. Each instance is
83047// recreated using the group's current configuration. This operation is
83048// marked as DONE when the flag is set even if the instances have not
83049// yet been recreated. You must separately verify the status of each
83050// instance by checking its currentAction field; for more information,
83051// see Checking the status of managed instances. If the group is part of
83052// a backend service that has enabled connection draining, it can take
83053// up to 60 seconds after the connection draining duration has elapsed
83054// before the VM instance is removed or deleted. You can specify a
83055// maximum of 1000 instances with this method per request.
83056//
83057// - instanceGroupManager: The name of the managed instance group.
83058// - project: Project ID for this request.
83059// - zone: The name of the zone where the managed instance group is
83060//   located.
83061func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
83062	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83063	c.project = project
83064	c.zone = zone
83065	c.instanceGroupManager = instanceGroupManager
83066	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
83067	return c
83068}
83069
83070// RequestId sets the optional parameter "requestId": An optional
83071// request ID to identify requests. Specify a unique request ID so that
83072// if you must retry your request, the server will know to ignore the
83073// request if it has already been completed. For example, consider a
83074// situation where you make an initial request and the request times
83075// out. If you make the request again with the same request ID, the
83076// server can check if original operation with the same request ID was
83077// received, and if so, will ignore the second request. This prevents
83078// clients from accidentally creating duplicate commitments. The request
83079// ID must be a valid UUID with the exception that zero UUID is not
83080// supported ( 00000000-0000-0000-0000-000000000000).
83081func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
83082	c.urlParams_.Set("requestId", requestId)
83083	return c
83084}
83085
83086// Fields allows partial responses to be retrieved. See
83087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83088// for more information.
83089func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
83090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83091	return c
83092}
83093
83094// Context sets the context to be used in this call's Do method. Any
83095// pending HTTP request will be aborted if the provided context is
83096// canceled.
83097func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
83098	c.ctx_ = ctx
83099	return c
83100}
83101
83102// Header returns an http.Header that can be modified by the caller to
83103// add HTTP headers to the request.
83104func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
83105	if c.header_ == nil {
83106		c.header_ = make(http.Header)
83107	}
83108	return c.header_
83109}
83110
83111func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
83112	reqHeaders := make(http.Header)
83113	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
83114	for k, v := range c.header_ {
83115		reqHeaders[k] = v
83116	}
83117	reqHeaders.Set("User-Agent", c.s.userAgent())
83118	var body io.Reader = nil
83119	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
83120	if err != nil {
83121		return nil, err
83122	}
83123	reqHeaders.Set("Content-Type", "application/json")
83124	c.urlParams_.Set("alt", alt)
83125	c.urlParams_.Set("prettyPrint", "false")
83126	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
83127	urls += "?" + c.urlParams_.Encode()
83128	req, err := http.NewRequest("POST", urls, body)
83129	if err != nil {
83130		return nil, err
83131	}
83132	req.Header = reqHeaders
83133	googleapi.Expand(req.URL, map[string]string{
83134		"project":              c.project,
83135		"zone":                 c.zone,
83136		"instanceGroupManager": c.instanceGroupManager,
83137	})
83138	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83139}
83140
83141// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
83142// Exactly one of *Operation or error will be non-nil. Any non-2xx
83143// status code is an error. Response headers are in either
83144// *Operation.ServerResponse.Header or (if a response was returned at
83145// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83146// to check whether the returned error was because
83147// http.StatusNotModified was returned.
83148func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83149	gensupport.SetOptions(c.urlParams_, opts...)
83150	res, err := c.doRequest("json")
83151	if res != nil && res.StatusCode == http.StatusNotModified {
83152		if res.Body != nil {
83153			res.Body.Close()
83154		}
83155		return nil, &googleapi.Error{
83156			Code:   res.StatusCode,
83157			Header: res.Header,
83158		}
83159	}
83160	if err != nil {
83161		return nil, err
83162	}
83163	defer googleapi.CloseBody(res)
83164	if err := googleapi.CheckResponse(res); err != nil {
83165		return nil, err
83166	}
83167	ret := &Operation{
83168		ServerResponse: googleapi.ServerResponse{
83169			Header:         res.Header,
83170			HTTPStatusCode: res.StatusCode,
83171		},
83172	}
83173	target := &ret
83174	if err := gensupport.DecodeResponse(target, res); err != nil {
83175		return nil, err
83176	}
83177	return ret, nil
83178	// {
83179	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
83180	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
83181	//   "httpMethod": "POST",
83182	//   "id": "compute.instanceGroupManagers.recreateInstances",
83183	//   "parameterOrder": [
83184	//     "project",
83185	//     "zone",
83186	//     "instanceGroupManager"
83187	//   ],
83188	//   "parameters": {
83189	//     "instanceGroupManager": {
83190	//       "description": "The name of the managed instance group.",
83191	//       "location": "path",
83192	//       "required": true,
83193	//       "type": "string"
83194	//     },
83195	//     "project": {
83196	//       "description": "Project ID for this request.",
83197	//       "location": "path",
83198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83199	//       "required": true,
83200	//       "type": "string"
83201	//     },
83202	//     "requestId": {
83203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83204	//       "location": "query",
83205	//       "type": "string"
83206	//     },
83207	//     "zone": {
83208	//       "description": "The name of the zone where the managed instance group is located.",
83209	//       "location": "path",
83210	//       "required": true,
83211	//       "type": "string"
83212	//     }
83213	//   },
83214	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
83215	//   "request": {
83216	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
83217	//   },
83218	//   "response": {
83219	//     "$ref": "Operation"
83220	//   },
83221	//   "scopes": [
83222	//     "https://www.googleapis.com/auth/cloud-platform",
83223	//     "https://www.googleapis.com/auth/compute"
83224	//   ]
83225	// }
83226
83227}
83228
83229// method id "compute.instanceGroupManagers.resize":
83230
83231type InstanceGroupManagersResizeCall struct {
83232	s                    *Service
83233	project              string
83234	zone                 string
83235	instanceGroupManager string
83236	urlParams_           gensupport.URLParams
83237	ctx_                 context.Context
83238	header_              http.Header
83239}
83240
83241// Resize: Resizes the managed instance group. If you increase the size,
83242// the group creates new instances using the current instance template.
83243// If you decrease the size, the group deletes instances. The resize
83244// operation is marked DONE when the resize actions are scheduled even
83245// if the group has not yet added or deleted any instances. You must
83246// separately verify the status of the creating or deleting actions with
83247// the listmanagedinstances method. When resizing down, the instance
83248// group arbitrarily chooses the order in which VMs are deleted. The
83249// group takes into account some VM attributes when making the selection
83250// including: + The status of the VM instance. + The health of the VM
83251// instance. + The instance template version the VM is based on. + For
83252// regional managed instance groups, the location of the VM instance.
83253// This list is subject to change. If the group is part of a backend
83254// service that has enabled connection draining, it can take up to 60
83255// seconds after the connection draining duration has elapsed before the
83256// VM instance is removed or deleted.
83257//
83258// - instanceGroupManager: The name of the managed instance group.
83259// - project: Project ID for this request.
83260// - size: The number of running instances that the managed instance
83261//   group should maintain at any given time. The group automatically
83262//   adds or removes instances to maintain the number of instances
83263//   specified by this parameter.
83264// - zone: The name of the zone where the managed instance group is
83265//   located.
83266func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
83267	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83268	c.project = project
83269	c.zone = zone
83270	c.instanceGroupManager = instanceGroupManager
83271	c.urlParams_.Set("size", fmt.Sprint(size))
83272	return c
83273}
83274
83275// RequestId sets the optional parameter "requestId": An optional
83276// request ID to identify requests. Specify a unique request ID so that
83277// if you must retry your request, the server will know to ignore the
83278// request if it has already been completed. For example, consider a
83279// situation where you make an initial request and the request times
83280// out. If you make the request again with the same request ID, the
83281// server can check if original operation with the same request ID was
83282// received, and if so, will ignore the second request. This prevents
83283// clients from accidentally creating duplicate commitments. The request
83284// ID must be a valid UUID with the exception that zero UUID is not
83285// supported ( 00000000-0000-0000-0000-000000000000).
83286func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
83287	c.urlParams_.Set("requestId", requestId)
83288	return c
83289}
83290
83291// Fields allows partial responses to be retrieved. See
83292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83293// for more information.
83294func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
83295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83296	return c
83297}
83298
83299// Context sets the context to be used in this call's Do method. Any
83300// pending HTTP request will be aborted if the provided context is
83301// canceled.
83302func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
83303	c.ctx_ = ctx
83304	return c
83305}
83306
83307// Header returns an http.Header that can be modified by the caller to
83308// add HTTP headers to the request.
83309func (c *InstanceGroupManagersResizeCall) Header() http.Header {
83310	if c.header_ == nil {
83311		c.header_ = make(http.Header)
83312	}
83313	return c.header_
83314}
83315
83316func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
83317	reqHeaders := make(http.Header)
83318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
83319	for k, v := range c.header_ {
83320		reqHeaders[k] = v
83321	}
83322	reqHeaders.Set("User-Agent", c.s.userAgent())
83323	var body io.Reader = nil
83324	c.urlParams_.Set("alt", alt)
83325	c.urlParams_.Set("prettyPrint", "false")
83326	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
83327	urls += "?" + c.urlParams_.Encode()
83328	req, err := http.NewRequest("POST", urls, body)
83329	if err != nil {
83330		return nil, err
83331	}
83332	req.Header = reqHeaders
83333	googleapi.Expand(req.URL, map[string]string{
83334		"project":              c.project,
83335		"zone":                 c.zone,
83336		"instanceGroupManager": c.instanceGroupManager,
83337	})
83338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83339}
83340
83341// Do executes the "compute.instanceGroupManagers.resize" call.
83342// Exactly one of *Operation or error will be non-nil. Any non-2xx
83343// status code is an error. Response headers are in either
83344// *Operation.ServerResponse.Header or (if a response was returned at
83345// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83346// to check whether the returned error was because
83347// http.StatusNotModified was returned.
83348func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83349	gensupport.SetOptions(c.urlParams_, opts...)
83350	res, err := c.doRequest("json")
83351	if res != nil && res.StatusCode == http.StatusNotModified {
83352		if res.Body != nil {
83353			res.Body.Close()
83354		}
83355		return nil, &googleapi.Error{
83356			Code:   res.StatusCode,
83357			Header: res.Header,
83358		}
83359	}
83360	if err != nil {
83361		return nil, err
83362	}
83363	defer googleapi.CloseBody(res)
83364	if err := googleapi.CheckResponse(res); err != nil {
83365		return nil, err
83366	}
83367	ret := &Operation{
83368		ServerResponse: googleapi.ServerResponse{
83369			Header:         res.Header,
83370			HTTPStatusCode: res.StatusCode,
83371		},
83372	}
83373	target := &ret
83374	if err := gensupport.DecodeResponse(target, res); err != nil {
83375		return nil, err
83376	}
83377	return ret, nil
83378	// {
83379	//   "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. When 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: + 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. This list is subject to change. If 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.",
83380	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
83381	//   "httpMethod": "POST",
83382	//   "id": "compute.instanceGroupManagers.resize",
83383	//   "parameterOrder": [
83384	//     "project",
83385	//     "zone",
83386	//     "instanceGroupManager",
83387	//     "size"
83388	//   ],
83389	//   "parameters": {
83390	//     "instanceGroupManager": {
83391	//       "description": "The name of the managed instance group.",
83392	//       "location": "path",
83393	//       "required": true,
83394	//       "type": "string"
83395	//     },
83396	//     "project": {
83397	//       "description": "Project ID for this request.",
83398	//       "location": "path",
83399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83400	//       "required": true,
83401	//       "type": "string"
83402	//     },
83403	//     "requestId": {
83404	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83405	//       "location": "query",
83406	//       "type": "string"
83407	//     },
83408	//     "size": {
83409	//       "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.",
83410	//       "format": "int32",
83411	//       "location": "query",
83412	//       "required": true,
83413	//       "type": "integer"
83414	//     },
83415	//     "zone": {
83416	//       "description": "The name of the zone where the managed instance group is located.",
83417	//       "location": "path",
83418	//       "required": true,
83419	//       "type": "string"
83420	//     }
83421	//   },
83422	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
83423	//   "response": {
83424	//     "$ref": "Operation"
83425	//   },
83426	//   "scopes": [
83427	//     "https://www.googleapis.com/auth/cloud-platform",
83428	//     "https://www.googleapis.com/auth/compute"
83429	//   ]
83430	// }
83431
83432}
83433
83434// method id "compute.instanceGroupManagers.setInstanceTemplate":
83435
83436type InstanceGroupManagersSetInstanceTemplateCall struct {
83437	s                                               *Service
83438	project                                         string
83439	zone                                            string
83440	instanceGroupManager                            string
83441	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
83442	urlParams_                                      gensupport.URLParams
83443	ctx_                                            context.Context
83444	header_                                         http.Header
83445}
83446
83447// SetInstanceTemplate: Specifies the instance template to use when
83448// creating new instances in this group. The templates for existing
83449// instances in the group do not change unless you run
83450// recreateInstances, run applyUpdatesToInstances, or set the group's
83451// updatePolicy.type to PROACTIVE.
83452//
83453// - instanceGroupManager: The name of the managed instance group.
83454// - project: Project ID for this request.
83455// - zone: The name of the zone where the managed instance group is
83456//   located.
83457func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
83458	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83459	c.project = project
83460	c.zone = zone
83461	c.instanceGroupManager = instanceGroupManager
83462	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
83463	return c
83464}
83465
83466// RequestId sets the optional parameter "requestId": An optional
83467// request ID to identify requests. Specify a unique request ID so that
83468// if you must retry your request, the server will know to ignore the
83469// request if it has already been completed. For example, consider a
83470// situation where you make an initial request and the request times
83471// out. If you make the request again with the same request ID, the
83472// server can check if original operation with the same request ID was
83473// received, and if so, will ignore the second request. This prevents
83474// clients from accidentally creating duplicate commitments. The request
83475// ID must be a valid UUID with the exception that zero UUID is not
83476// supported ( 00000000-0000-0000-0000-000000000000).
83477func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
83478	c.urlParams_.Set("requestId", requestId)
83479	return c
83480}
83481
83482// Fields allows partial responses to be retrieved. See
83483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83484// for more information.
83485func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
83486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83487	return c
83488}
83489
83490// Context sets the context to be used in this call's Do method. Any
83491// pending HTTP request will be aborted if the provided context is
83492// canceled.
83493func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
83494	c.ctx_ = ctx
83495	return c
83496}
83497
83498// Header returns an http.Header that can be modified by the caller to
83499// add HTTP headers to the request.
83500func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
83501	if c.header_ == nil {
83502		c.header_ = make(http.Header)
83503	}
83504	return c.header_
83505}
83506
83507func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
83508	reqHeaders := make(http.Header)
83509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
83510	for k, v := range c.header_ {
83511		reqHeaders[k] = v
83512	}
83513	reqHeaders.Set("User-Agent", c.s.userAgent())
83514	var body io.Reader = nil
83515	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
83516	if err != nil {
83517		return nil, err
83518	}
83519	reqHeaders.Set("Content-Type", "application/json")
83520	c.urlParams_.Set("alt", alt)
83521	c.urlParams_.Set("prettyPrint", "false")
83522	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
83523	urls += "?" + c.urlParams_.Encode()
83524	req, err := http.NewRequest("POST", urls, body)
83525	if err != nil {
83526		return nil, err
83527	}
83528	req.Header = reqHeaders
83529	googleapi.Expand(req.URL, map[string]string{
83530		"project":              c.project,
83531		"zone":                 c.zone,
83532		"instanceGroupManager": c.instanceGroupManager,
83533	})
83534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83535}
83536
83537// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
83538// Exactly one of *Operation or error will be non-nil. Any non-2xx
83539// status code is an error. Response headers are in either
83540// *Operation.ServerResponse.Header or (if a response was returned at
83541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83542// to check whether the returned error was because
83543// http.StatusNotModified was returned.
83544func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83545	gensupport.SetOptions(c.urlParams_, opts...)
83546	res, err := c.doRequest("json")
83547	if res != nil && res.StatusCode == http.StatusNotModified {
83548		if res.Body != nil {
83549			res.Body.Close()
83550		}
83551		return nil, &googleapi.Error{
83552			Code:   res.StatusCode,
83553			Header: res.Header,
83554		}
83555	}
83556	if err != nil {
83557		return nil, err
83558	}
83559	defer googleapi.CloseBody(res)
83560	if err := googleapi.CheckResponse(res); err != nil {
83561		return nil, err
83562	}
83563	ret := &Operation{
83564		ServerResponse: googleapi.ServerResponse{
83565			Header:         res.Header,
83566			HTTPStatusCode: res.StatusCode,
83567		},
83568	}
83569	target := &ret
83570	if err := gensupport.DecodeResponse(target, res); err != nil {
83571		return nil, err
83572	}
83573	return ret, nil
83574	// {
83575	//   "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.",
83576	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
83577	//   "httpMethod": "POST",
83578	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
83579	//   "parameterOrder": [
83580	//     "project",
83581	//     "zone",
83582	//     "instanceGroupManager"
83583	//   ],
83584	//   "parameters": {
83585	//     "instanceGroupManager": {
83586	//       "description": "The name of the managed instance group.",
83587	//       "location": "path",
83588	//       "required": true,
83589	//       "type": "string"
83590	//     },
83591	//     "project": {
83592	//       "description": "Project ID for this request.",
83593	//       "location": "path",
83594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83595	//       "required": true,
83596	//       "type": "string"
83597	//     },
83598	//     "requestId": {
83599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83600	//       "location": "query",
83601	//       "type": "string"
83602	//     },
83603	//     "zone": {
83604	//       "description": "The name of the zone where the managed instance group is located.",
83605	//       "location": "path",
83606	//       "required": true,
83607	//       "type": "string"
83608	//     }
83609	//   },
83610	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
83611	//   "request": {
83612	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
83613	//   },
83614	//   "response": {
83615	//     "$ref": "Operation"
83616	//   },
83617	//   "scopes": [
83618	//     "https://www.googleapis.com/auth/cloud-platform",
83619	//     "https://www.googleapis.com/auth/compute"
83620	//   ]
83621	// }
83622
83623}
83624
83625// method id "compute.instanceGroupManagers.setTargetPools":
83626
83627type InstanceGroupManagersSetTargetPoolsCall struct {
83628	s                                          *Service
83629	project                                    string
83630	zone                                       string
83631	instanceGroupManager                       string
83632	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
83633	urlParams_                                 gensupport.URLParams
83634	ctx_                                       context.Context
83635	header_                                    http.Header
83636}
83637
83638// SetTargetPools: Modifies the target pools to which all instances in
83639// this managed instance group are assigned. The target pools
83640// automatically apply to all of the instances in the managed instance
83641// group. This operation is marked DONE when you make the request even
83642// if the instances have not yet been added to their target pools. The
83643// change might take some time to apply to all of the instances in the
83644// group depending on the size of the group.
83645//
83646// - instanceGroupManager: The name of the managed instance group.
83647// - project: Project ID for this request.
83648// - zone: The name of the zone where the managed instance group is
83649//   located.
83650func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
83651	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83652	c.project = project
83653	c.zone = zone
83654	c.instanceGroupManager = instanceGroupManager
83655	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
83656	return c
83657}
83658
83659// RequestId sets the optional parameter "requestId": An optional
83660// request ID to identify requests. Specify a unique request ID so that
83661// if you must retry your request, the server will know to ignore the
83662// request if it has already been completed. For example, consider a
83663// situation where you make an initial request and the request times
83664// out. If you make the request again with the same request ID, the
83665// server can check if original operation with the same request ID was
83666// received, and if so, will ignore the second request. This prevents
83667// clients from accidentally creating duplicate commitments. The request
83668// ID must be a valid UUID with the exception that zero UUID is not
83669// supported ( 00000000-0000-0000-0000-000000000000).
83670func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
83671	c.urlParams_.Set("requestId", requestId)
83672	return c
83673}
83674
83675// Fields allows partial responses to be retrieved. See
83676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83677// for more information.
83678func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
83679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83680	return c
83681}
83682
83683// Context sets the context to be used in this call's Do method. Any
83684// pending HTTP request will be aborted if the provided context is
83685// canceled.
83686func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
83687	c.ctx_ = ctx
83688	return c
83689}
83690
83691// Header returns an http.Header that can be modified by the caller to
83692// add HTTP headers to the request.
83693func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
83694	if c.header_ == nil {
83695		c.header_ = make(http.Header)
83696	}
83697	return c.header_
83698}
83699
83700func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
83701	reqHeaders := make(http.Header)
83702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
83703	for k, v := range c.header_ {
83704		reqHeaders[k] = v
83705	}
83706	reqHeaders.Set("User-Agent", c.s.userAgent())
83707	var body io.Reader = nil
83708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
83709	if err != nil {
83710		return nil, err
83711	}
83712	reqHeaders.Set("Content-Type", "application/json")
83713	c.urlParams_.Set("alt", alt)
83714	c.urlParams_.Set("prettyPrint", "false")
83715	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
83716	urls += "?" + c.urlParams_.Encode()
83717	req, err := http.NewRequest("POST", urls, body)
83718	if err != nil {
83719		return nil, err
83720	}
83721	req.Header = reqHeaders
83722	googleapi.Expand(req.URL, map[string]string{
83723		"project":              c.project,
83724		"zone":                 c.zone,
83725		"instanceGroupManager": c.instanceGroupManager,
83726	})
83727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83728}
83729
83730// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
83731// Exactly one of *Operation or error will be non-nil. Any non-2xx
83732// status code is an error. Response headers are in either
83733// *Operation.ServerResponse.Header or (if a response was returned at
83734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83735// to check whether the returned error was because
83736// http.StatusNotModified was returned.
83737func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83738	gensupport.SetOptions(c.urlParams_, opts...)
83739	res, err := c.doRequest("json")
83740	if res != nil && res.StatusCode == http.StatusNotModified {
83741		if res.Body != nil {
83742			res.Body.Close()
83743		}
83744		return nil, &googleapi.Error{
83745			Code:   res.StatusCode,
83746			Header: res.Header,
83747		}
83748	}
83749	if err != nil {
83750		return nil, err
83751	}
83752	defer googleapi.CloseBody(res)
83753	if err := googleapi.CheckResponse(res); err != nil {
83754		return nil, err
83755	}
83756	ret := &Operation{
83757		ServerResponse: googleapi.ServerResponse{
83758			Header:         res.Header,
83759			HTTPStatusCode: res.StatusCode,
83760		},
83761	}
83762	target := &ret
83763	if err := gensupport.DecodeResponse(target, res); err != nil {
83764		return nil, err
83765	}
83766	return ret, nil
83767	// {
83768	//   "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.",
83769	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
83770	//   "httpMethod": "POST",
83771	//   "id": "compute.instanceGroupManagers.setTargetPools",
83772	//   "parameterOrder": [
83773	//     "project",
83774	//     "zone",
83775	//     "instanceGroupManager"
83776	//   ],
83777	//   "parameters": {
83778	//     "instanceGroupManager": {
83779	//       "description": "The name of the managed instance group.",
83780	//       "location": "path",
83781	//       "required": true,
83782	//       "type": "string"
83783	//     },
83784	//     "project": {
83785	//       "description": "Project ID for this request.",
83786	//       "location": "path",
83787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83788	//       "required": true,
83789	//       "type": "string"
83790	//     },
83791	//     "requestId": {
83792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83793	//       "location": "query",
83794	//       "type": "string"
83795	//     },
83796	//     "zone": {
83797	//       "description": "The name of the zone where the managed instance group is located.",
83798	//       "location": "path",
83799	//       "required": true,
83800	//       "type": "string"
83801	//     }
83802	//   },
83803	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
83804	//   "request": {
83805	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
83806	//   },
83807	//   "response": {
83808	//     "$ref": "Operation"
83809	//   },
83810	//   "scopes": [
83811	//     "https://www.googleapis.com/auth/cloud-platform",
83812	//     "https://www.googleapis.com/auth/compute"
83813	//   ]
83814	// }
83815
83816}
83817
83818// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
83819
83820type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
83821	s                                                *Service
83822	project                                          string
83823	zone                                             string
83824	instanceGroupManager                             string
83825	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
83826	urlParams_                                       gensupport.URLParams
83827	ctx_                                             context.Context
83828	header_                                          http.Header
83829}
83830
83831// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
83832// the managed instance group. perInstanceConfig.name serves as a key
83833// used to distinguish whether to perform insert or patch.
83834//
83835// - instanceGroupManager: The name of the managed instance group. It
83836//   should conform to RFC1035.
83837// - project: Project ID for this request.
83838// - zone: The name of the zone where the managed instance group is
83839//   located. It should conform to RFC1035.
83840func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
83841	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83842	c.project = project
83843	c.zone = zone
83844	c.instanceGroupManager = instanceGroupManager
83845	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
83846	return c
83847}
83848
83849// RequestId sets the optional parameter "requestId": An optional
83850// request ID to identify requests. Specify a unique request ID so that
83851// if you must retry your request, the server will know to ignore the
83852// request if it has already been completed. For example, consider a
83853// situation where you make an initial request and the request times
83854// out. If you make the request again with the same request ID, the
83855// server can check if original operation with the same request ID was
83856// received, and if so, will ignore the second request. This prevents
83857// clients from accidentally creating duplicate commitments. The request
83858// ID must be a valid UUID with the exception that zero UUID is not
83859// supported ( 00000000-0000-0000-0000-000000000000).
83860func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
83861	c.urlParams_.Set("requestId", requestId)
83862	return c
83863}
83864
83865// Fields allows partial responses to be retrieved. See
83866// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83867// for more information.
83868func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
83869	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83870	return c
83871}
83872
83873// Context sets the context to be used in this call's Do method. Any
83874// pending HTTP request will be aborted if the provided context is
83875// canceled.
83876func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
83877	c.ctx_ = ctx
83878	return c
83879}
83880
83881// Header returns an http.Header that can be modified by the caller to
83882// add HTTP headers to the request.
83883func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
83884	if c.header_ == nil {
83885		c.header_ = make(http.Header)
83886	}
83887	return c.header_
83888}
83889
83890func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
83891	reqHeaders := make(http.Header)
83892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
83893	for k, v := range c.header_ {
83894		reqHeaders[k] = v
83895	}
83896	reqHeaders.Set("User-Agent", c.s.userAgent())
83897	var body io.Reader = nil
83898	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
83899	if err != nil {
83900		return nil, err
83901	}
83902	reqHeaders.Set("Content-Type", "application/json")
83903	c.urlParams_.Set("alt", alt)
83904	c.urlParams_.Set("prettyPrint", "false")
83905	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
83906	urls += "?" + c.urlParams_.Encode()
83907	req, err := http.NewRequest("POST", urls, body)
83908	if err != nil {
83909		return nil, err
83910	}
83911	req.Header = reqHeaders
83912	googleapi.Expand(req.URL, map[string]string{
83913		"project":              c.project,
83914		"zone":                 c.zone,
83915		"instanceGroupManager": c.instanceGroupManager,
83916	})
83917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83918}
83919
83920// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
83921// Exactly one of *Operation or error will be non-nil. Any non-2xx
83922// status code is an error. Response headers are in either
83923// *Operation.ServerResponse.Header or (if a response was returned at
83924// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83925// to check whether the returned error was because
83926// http.StatusNotModified was returned.
83927func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83928	gensupport.SetOptions(c.urlParams_, opts...)
83929	res, err := c.doRequest("json")
83930	if res != nil && res.StatusCode == http.StatusNotModified {
83931		if res.Body != nil {
83932			res.Body.Close()
83933		}
83934		return nil, &googleapi.Error{
83935			Code:   res.StatusCode,
83936			Header: res.Header,
83937		}
83938	}
83939	if err != nil {
83940		return nil, err
83941	}
83942	defer googleapi.CloseBody(res)
83943	if err := googleapi.CheckResponse(res); err != nil {
83944		return nil, err
83945	}
83946	ret := &Operation{
83947		ServerResponse: googleapi.ServerResponse{
83948			Header:         res.Header,
83949			HTTPStatusCode: res.StatusCode,
83950		},
83951	}
83952	target := &ret
83953	if err := gensupport.DecodeResponse(target, res); err != nil {
83954		return nil, err
83955	}
83956	return ret, nil
83957	// {
83958	//   "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.",
83959	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
83960	//   "httpMethod": "POST",
83961	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
83962	//   "parameterOrder": [
83963	//     "project",
83964	//     "zone",
83965	//     "instanceGroupManager"
83966	//   ],
83967	//   "parameters": {
83968	//     "instanceGroupManager": {
83969	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83970	//       "location": "path",
83971	//       "required": true,
83972	//       "type": "string"
83973	//     },
83974	//     "project": {
83975	//       "description": "Project ID for this request.",
83976	//       "location": "path",
83977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83978	//       "required": true,
83979	//       "type": "string"
83980	//     },
83981	//     "requestId": {
83982	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83983	//       "location": "query",
83984	//       "type": "string"
83985	//     },
83986	//     "zone": {
83987	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83988	//       "location": "path",
83989	//       "required": true,
83990	//       "type": "string"
83991	//     }
83992	//   },
83993	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
83994	//   "request": {
83995	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
83996	//   },
83997	//   "response": {
83998	//     "$ref": "Operation"
83999	//   },
84000	//   "scopes": [
84001	//     "https://www.googleapis.com/auth/cloud-platform",
84002	//     "https://www.googleapis.com/auth/compute"
84003	//   ]
84004	// }
84005
84006}
84007
84008// method id "compute.instanceGroups.addInstances":
84009
84010type InstanceGroupsAddInstancesCall struct {
84011	s                                 *Service
84012	project                           string
84013	zone                              string
84014	instanceGroup                     string
84015	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
84016	urlParams_                        gensupport.URLParams
84017	ctx_                              context.Context
84018	header_                           http.Header
84019}
84020
84021// AddInstances: Adds a list of instances to the specified instance
84022// group. All of the instances in the instance group must be in the same
84023// network/subnetwork. Read Adding instances for more information.
84024//
84025// - instanceGroup: The name of the instance group where you are adding
84026//   instances.
84027// - project: Project ID for this request.
84028// - zone: The name of the zone where the instance group is located.
84029func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
84030	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84031	c.project = project
84032	c.zone = zone
84033	c.instanceGroup = instanceGroup
84034	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
84035	return c
84036}
84037
84038// RequestId sets the optional parameter "requestId": An optional
84039// request ID to identify requests. Specify a unique request ID so that
84040// if you must retry your request, the server will know to ignore the
84041// request if it has already been completed. For example, consider a
84042// situation where you make an initial request and the request times
84043// out. If you make the request again with the same request ID, the
84044// server can check if original operation with the same request ID was
84045// received, and if so, will ignore the second request. This prevents
84046// clients from accidentally creating duplicate commitments. The request
84047// ID must be a valid UUID with the exception that zero UUID is not
84048// supported ( 00000000-0000-0000-0000-000000000000).
84049func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
84050	c.urlParams_.Set("requestId", requestId)
84051	return c
84052}
84053
84054// Fields allows partial responses to be retrieved. See
84055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84056// for more information.
84057func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
84058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84059	return c
84060}
84061
84062// Context sets the context to be used in this call's Do method. Any
84063// pending HTTP request will be aborted if the provided context is
84064// canceled.
84065func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
84066	c.ctx_ = ctx
84067	return c
84068}
84069
84070// Header returns an http.Header that can be modified by the caller to
84071// add HTTP headers to the request.
84072func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
84073	if c.header_ == nil {
84074		c.header_ = make(http.Header)
84075	}
84076	return c.header_
84077}
84078
84079func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
84080	reqHeaders := make(http.Header)
84081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
84082	for k, v := range c.header_ {
84083		reqHeaders[k] = v
84084	}
84085	reqHeaders.Set("User-Agent", c.s.userAgent())
84086	var body io.Reader = nil
84087	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
84088	if err != nil {
84089		return nil, err
84090	}
84091	reqHeaders.Set("Content-Type", "application/json")
84092	c.urlParams_.Set("alt", alt)
84093	c.urlParams_.Set("prettyPrint", "false")
84094	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
84095	urls += "?" + c.urlParams_.Encode()
84096	req, err := http.NewRequest("POST", urls, body)
84097	if err != nil {
84098		return nil, err
84099	}
84100	req.Header = reqHeaders
84101	googleapi.Expand(req.URL, map[string]string{
84102		"project":       c.project,
84103		"zone":          c.zone,
84104		"instanceGroup": c.instanceGroup,
84105	})
84106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84107}
84108
84109// Do executes the "compute.instanceGroups.addInstances" call.
84110// Exactly one of *Operation or error will be non-nil. Any non-2xx
84111// status code is an error. Response headers are in either
84112// *Operation.ServerResponse.Header or (if a response was returned at
84113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84114// to check whether the returned error was because
84115// http.StatusNotModified was returned.
84116func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84117	gensupport.SetOptions(c.urlParams_, opts...)
84118	res, err := c.doRequest("json")
84119	if res != nil && res.StatusCode == http.StatusNotModified {
84120		if res.Body != nil {
84121			res.Body.Close()
84122		}
84123		return nil, &googleapi.Error{
84124			Code:   res.StatusCode,
84125			Header: res.Header,
84126		}
84127	}
84128	if err != nil {
84129		return nil, err
84130	}
84131	defer googleapi.CloseBody(res)
84132	if err := googleapi.CheckResponse(res); err != nil {
84133		return nil, err
84134	}
84135	ret := &Operation{
84136		ServerResponse: googleapi.ServerResponse{
84137			Header:         res.Header,
84138			HTTPStatusCode: res.StatusCode,
84139		},
84140	}
84141	target := &ret
84142	if err := gensupport.DecodeResponse(target, res); err != nil {
84143		return nil, err
84144	}
84145	return ret, nil
84146	// {
84147	//   "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.",
84148	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
84149	//   "httpMethod": "POST",
84150	//   "id": "compute.instanceGroups.addInstances",
84151	//   "parameterOrder": [
84152	//     "project",
84153	//     "zone",
84154	//     "instanceGroup"
84155	//   ],
84156	//   "parameters": {
84157	//     "instanceGroup": {
84158	//       "description": "The name of the instance group where you are adding instances.",
84159	//       "location": "path",
84160	//       "required": true,
84161	//       "type": "string"
84162	//     },
84163	//     "project": {
84164	//       "description": "Project ID for this request.",
84165	//       "location": "path",
84166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84167	//       "required": true,
84168	//       "type": "string"
84169	//     },
84170	//     "requestId": {
84171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84172	//       "location": "query",
84173	//       "type": "string"
84174	//     },
84175	//     "zone": {
84176	//       "description": "The name of the zone where the instance group is located.",
84177	//       "location": "path",
84178	//       "required": true,
84179	//       "type": "string"
84180	//     }
84181	//   },
84182	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
84183	//   "request": {
84184	//     "$ref": "InstanceGroupsAddInstancesRequest"
84185	//   },
84186	//   "response": {
84187	//     "$ref": "Operation"
84188	//   },
84189	//   "scopes": [
84190	//     "https://www.googleapis.com/auth/cloud-platform",
84191	//     "https://www.googleapis.com/auth/compute"
84192	//   ]
84193	// }
84194
84195}
84196
84197// method id "compute.instanceGroups.aggregatedList":
84198
84199type InstanceGroupsAggregatedListCall struct {
84200	s            *Service
84201	project      string
84202	urlParams_   gensupport.URLParams
84203	ifNoneMatch_ string
84204	ctx_         context.Context
84205	header_      http.Header
84206}
84207
84208// AggregatedList: Retrieves the list of instance groups and sorts them
84209// by zone.
84210//
84211// - project: Project ID for this request.
84212func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
84213	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84214	c.project = project
84215	return c
84216}
84217
84218// Filter sets the optional parameter "filter": A filter expression that
84219// filters resources listed in the response. The expression must specify
84220// the field name, a comparison operator, and the value that you want to
84221// use for filtering. The value must be a string, a number, or a
84222// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84223// `<`. For example, if you are filtering Compute Engine instances, you
84224// can exclude instances named `example-instance` by specifying `name !=
84225// example-instance`. You can also filter nested fields. For example,
84226// you could specify `scheduling.automaticRestart = false` to include
84227// instances only if they are not scheduled for automatic restarts. You
84228// can use filtering on nested fields to filter based on resource
84229// labels. To filter on multiple expressions, provide each separate
84230// expression within parentheses. For example: ```
84231// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
84232// ``` By default, each expression is an `AND` expression. However, you
84233// can include `AND` and `OR` expressions explicitly. For example: ```
84234// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
84235// AND (scheduling.automaticRestart = true) ```
84236func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
84237	c.urlParams_.Set("filter", filter)
84238	return c
84239}
84240
84241// IncludeAllScopes sets the optional parameter "includeAllScopes":
84242// Indicates whether every visible scope for each scope type (zone,
84243// region, global) should be included in the response. For new resource
84244// types added after this field, the flag has no effect as new resource
84245// types will always include every visible scope for each scope type in
84246// response. For resource types which predate this field, if this flag
84247// is omitted or false, only scopes of the scope types where the
84248// resource type is expected to be found will be included.
84249func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
84250	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
84251	return c
84252}
84253
84254// MaxResults sets the optional parameter "maxResults": The maximum
84255// number of results per page that should be returned. If the number of
84256// available results is larger than `maxResults`, Compute Engine returns
84257// a `nextPageToken` that can be used to get the next page of results in
84258// subsequent list requests. Acceptable values are `0` to `500`,
84259// inclusive. (Default: `500`)
84260func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
84261	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84262	return c
84263}
84264
84265// OrderBy sets the optional parameter "orderBy": Sorts list results by
84266// a certain order. By default, results are returned in alphanumerical
84267// order based on the resource name. You can also sort results in
84268// descending order based on the creation timestamp using
84269// `orderBy="creationTimestamp desc". This sorts results based on the
84270// `creationTimestamp` field in reverse chronological order (newest
84271// result first). Use this to sort resources like operations so that the
84272// newest operation is returned first. Currently, only sorting by `name`
84273// or `creationTimestamp desc` is supported.
84274func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
84275	c.urlParams_.Set("orderBy", orderBy)
84276	return c
84277}
84278
84279// PageToken sets the optional parameter "pageToken": Specifies a page
84280// token to use. Set `pageToken` to the `nextPageToken` returned by a
84281// previous list request to get the next page of results.
84282func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
84283	c.urlParams_.Set("pageToken", pageToken)
84284	return c
84285}
84286
84287// ReturnPartialSuccess sets the optional parameter
84288// "returnPartialSuccess": Opt-in for partial success behavior which
84289// provides partial results in case of failure. The default value is
84290// false.
84291func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
84292	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
84293	return c
84294}
84295
84296// Fields allows partial responses to be retrieved. See
84297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84298// for more information.
84299func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
84300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84301	return c
84302}
84303
84304// IfNoneMatch sets the optional parameter which makes the operation
84305// fail if the object's ETag matches the given value. This is useful for
84306// getting updates only after the object has changed since the last
84307// request. Use googleapi.IsNotModified to check whether the response
84308// error from Do is the result of In-None-Match.
84309func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
84310	c.ifNoneMatch_ = entityTag
84311	return c
84312}
84313
84314// Context sets the context to be used in this call's Do method. Any
84315// pending HTTP request will be aborted if the provided context is
84316// canceled.
84317func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
84318	c.ctx_ = ctx
84319	return c
84320}
84321
84322// Header returns an http.Header that can be modified by the caller to
84323// add HTTP headers to the request.
84324func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
84325	if c.header_ == nil {
84326		c.header_ = make(http.Header)
84327	}
84328	return c.header_
84329}
84330
84331func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
84332	reqHeaders := make(http.Header)
84333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
84334	for k, v := range c.header_ {
84335		reqHeaders[k] = v
84336	}
84337	reqHeaders.Set("User-Agent", c.s.userAgent())
84338	if c.ifNoneMatch_ != "" {
84339		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84340	}
84341	var body io.Reader = nil
84342	c.urlParams_.Set("alt", alt)
84343	c.urlParams_.Set("prettyPrint", "false")
84344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups")
84345	urls += "?" + c.urlParams_.Encode()
84346	req, err := http.NewRequest("GET", urls, body)
84347	if err != nil {
84348		return nil, err
84349	}
84350	req.Header = reqHeaders
84351	googleapi.Expand(req.URL, map[string]string{
84352		"project": c.project,
84353	})
84354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84355}
84356
84357// Do executes the "compute.instanceGroups.aggregatedList" call.
84358// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
84359// Any non-2xx status code is an error. Response headers are in either
84360// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
84361// was returned at all) in error.(*googleapi.Error).Header. Use
84362// googleapi.IsNotModified to check whether the returned error was
84363// because http.StatusNotModified was returned.
84364func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
84365	gensupport.SetOptions(c.urlParams_, opts...)
84366	res, err := c.doRequest("json")
84367	if res != nil && res.StatusCode == http.StatusNotModified {
84368		if res.Body != nil {
84369			res.Body.Close()
84370		}
84371		return nil, &googleapi.Error{
84372			Code:   res.StatusCode,
84373			Header: res.Header,
84374		}
84375	}
84376	if err != nil {
84377		return nil, err
84378	}
84379	defer googleapi.CloseBody(res)
84380	if err := googleapi.CheckResponse(res); err != nil {
84381		return nil, err
84382	}
84383	ret := &InstanceGroupAggregatedList{
84384		ServerResponse: googleapi.ServerResponse{
84385			Header:         res.Header,
84386			HTTPStatusCode: res.StatusCode,
84387		},
84388	}
84389	target := &ret
84390	if err := gensupport.DecodeResponse(target, res); err != nil {
84391		return nil, err
84392	}
84393	return ret, nil
84394	// {
84395	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
84396	//   "flatPath": "projects/{project}/aggregated/instanceGroups",
84397	//   "httpMethod": "GET",
84398	//   "id": "compute.instanceGroups.aggregatedList",
84399	//   "parameterOrder": [
84400	//     "project"
84401	//   ],
84402	//   "parameters": {
84403	//     "filter": {
84404	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
84405	//       "location": "query",
84406	//       "type": "string"
84407	//     },
84408	//     "includeAllScopes": {
84409	//       "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.",
84410	//       "location": "query",
84411	//       "type": "boolean"
84412	//     },
84413	//     "maxResults": {
84414	//       "default": "500",
84415	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
84416	//       "format": "uint32",
84417	//       "location": "query",
84418	//       "minimum": "0",
84419	//       "type": "integer"
84420	//     },
84421	//     "orderBy": {
84422	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
84423	//       "location": "query",
84424	//       "type": "string"
84425	//     },
84426	//     "pageToken": {
84427	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
84428	//       "location": "query",
84429	//       "type": "string"
84430	//     },
84431	//     "project": {
84432	//       "description": "Project ID for this request.",
84433	//       "location": "path",
84434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84435	//       "required": true,
84436	//       "type": "string"
84437	//     },
84438	//     "returnPartialSuccess": {
84439	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
84440	//       "location": "query",
84441	//       "type": "boolean"
84442	//     }
84443	//   },
84444	//   "path": "projects/{project}/aggregated/instanceGroups",
84445	//   "response": {
84446	//     "$ref": "InstanceGroupAggregatedList"
84447	//   },
84448	//   "scopes": [
84449	//     "https://www.googleapis.com/auth/cloud-platform",
84450	//     "https://www.googleapis.com/auth/compute",
84451	//     "https://www.googleapis.com/auth/compute.readonly"
84452	//   ]
84453	// }
84454
84455}
84456
84457// Pages invokes f for each page of results.
84458// A non-nil error returned from f will halt the iteration.
84459// The provided context supersedes any context provided to the Context method.
84460func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
84461	c.ctx_ = ctx
84462	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84463	for {
84464		x, err := c.Do()
84465		if err != nil {
84466			return err
84467		}
84468		if err := f(x); err != nil {
84469			return err
84470		}
84471		if x.NextPageToken == "" {
84472			return nil
84473		}
84474		c.PageToken(x.NextPageToken)
84475	}
84476}
84477
84478// method id "compute.instanceGroups.delete":
84479
84480type InstanceGroupsDeleteCall struct {
84481	s             *Service
84482	project       string
84483	zone          string
84484	instanceGroup string
84485	urlParams_    gensupport.URLParams
84486	ctx_          context.Context
84487	header_       http.Header
84488}
84489
84490// Delete: Deletes the specified instance group. The instances in the
84491// group are not deleted. Note that instance group must not belong to a
84492// backend service. Read Deleting an instance group for more
84493// information.
84494//
84495// - instanceGroup: The name of the instance group to delete.
84496// - project: Project ID for this request.
84497// - zone: The name of the zone where the instance group is located.
84498func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
84499	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84500	c.project = project
84501	c.zone = zone
84502	c.instanceGroup = instanceGroup
84503	return c
84504}
84505
84506// RequestId sets the optional parameter "requestId": An optional
84507// request ID to identify requests. Specify a unique request ID so that
84508// if you must retry your request, the server will know to ignore the
84509// request if it has already been completed. For example, consider a
84510// situation where you make an initial request and the request times
84511// out. If you make the request again with the same request ID, the
84512// server can check if original operation with the same request ID was
84513// received, and if so, will ignore the second request. This prevents
84514// clients from accidentally creating duplicate commitments. The request
84515// ID must be a valid UUID with the exception that zero UUID is not
84516// supported ( 00000000-0000-0000-0000-000000000000).
84517func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
84518	c.urlParams_.Set("requestId", requestId)
84519	return c
84520}
84521
84522// Fields allows partial responses to be retrieved. See
84523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84524// for more information.
84525func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
84526	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84527	return c
84528}
84529
84530// Context sets the context to be used in this call's Do method. Any
84531// pending HTTP request will be aborted if the provided context is
84532// canceled.
84533func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
84534	c.ctx_ = ctx
84535	return c
84536}
84537
84538// Header returns an http.Header that can be modified by the caller to
84539// add HTTP headers to the request.
84540func (c *InstanceGroupsDeleteCall) Header() http.Header {
84541	if c.header_ == nil {
84542		c.header_ = make(http.Header)
84543	}
84544	return c.header_
84545}
84546
84547func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
84548	reqHeaders := make(http.Header)
84549	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
84550	for k, v := range c.header_ {
84551		reqHeaders[k] = v
84552	}
84553	reqHeaders.Set("User-Agent", c.s.userAgent())
84554	var body io.Reader = nil
84555	c.urlParams_.Set("alt", alt)
84556	c.urlParams_.Set("prettyPrint", "false")
84557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
84558	urls += "?" + c.urlParams_.Encode()
84559	req, err := http.NewRequest("DELETE", urls, body)
84560	if err != nil {
84561		return nil, err
84562	}
84563	req.Header = reqHeaders
84564	googleapi.Expand(req.URL, map[string]string{
84565		"project":       c.project,
84566		"zone":          c.zone,
84567		"instanceGroup": c.instanceGroup,
84568	})
84569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84570}
84571
84572// Do executes the "compute.instanceGroups.delete" call.
84573// Exactly one of *Operation or error will be non-nil. Any non-2xx
84574// status code is an error. Response headers are in either
84575// *Operation.ServerResponse.Header or (if a response was returned at
84576// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84577// to check whether the returned error was because
84578// http.StatusNotModified was returned.
84579func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84580	gensupport.SetOptions(c.urlParams_, opts...)
84581	res, err := c.doRequest("json")
84582	if res != nil && res.StatusCode == http.StatusNotModified {
84583		if res.Body != nil {
84584			res.Body.Close()
84585		}
84586		return nil, &googleapi.Error{
84587			Code:   res.StatusCode,
84588			Header: res.Header,
84589		}
84590	}
84591	if err != nil {
84592		return nil, err
84593	}
84594	defer googleapi.CloseBody(res)
84595	if err := googleapi.CheckResponse(res); err != nil {
84596		return nil, err
84597	}
84598	ret := &Operation{
84599		ServerResponse: googleapi.ServerResponse{
84600			Header:         res.Header,
84601			HTTPStatusCode: res.StatusCode,
84602		},
84603	}
84604	target := &ret
84605	if err := gensupport.DecodeResponse(target, res); err != nil {
84606		return nil, err
84607	}
84608	return ret, nil
84609	// {
84610	//   "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.",
84611	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
84612	//   "httpMethod": "DELETE",
84613	//   "id": "compute.instanceGroups.delete",
84614	//   "parameterOrder": [
84615	//     "project",
84616	//     "zone",
84617	//     "instanceGroup"
84618	//   ],
84619	//   "parameters": {
84620	//     "instanceGroup": {
84621	//       "description": "The name of the instance group to delete.",
84622	//       "location": "path",
84623	//       "required": true,
84624	//       "type": "string"
84625	//     },
84626	//     "project": {
84627	//       "description": "Project ID for this request.",
84628	//       "location": "path",
84629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84630	//       "required": true,
84631	//       "type": "string"
84632	//     },
84633	//     "requestId": {
84634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84635	//       "location": "query",
84636	//       "type": "string"
84637	//     },
84638	//     "zone": {
84639	//       "description": "The name of the zone where the instance group is located.",
84640	//       "location": "path",
84641	//       "required": true,
84642	//       "type": "string"
84643	//     }
84644	//   },
84645	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
84646	//   "response": {
84647	//     "$ref": "Operation"
84648	//   },
84649	//   "scopes": [
84650	//     "https://www.googleapis.com/auth/cloud-platform",
84651	//     "https://www.googleapis.com/auth/compute"
84652	//   ]
84653	// }
84654
84655}
84656
84657// method id "compute.instanceGroups.get":
84658
84659type InstanceGroupsGetCall struct {
84660	s             *Service
84661	project       string
84662	zone          string
84663	instanceGroup string
84664	urlParams_    gensupport.URLParams
84665	ifNoneMatch_  string
84666	ctx_          context.Context
84667	header_       http.Header
84668}
84669
84670// Get: Returns the specified zonal instance group. Get a list of
84671// available zonal instance groups by making a list() request. For
84672// managed instance groups, use the instanceGroupManagers or
84673// regionInstanceGroupManagers methods instead.
84674//
84675// - instanceGroup: The name of the instance group.
84676// - project: Project ID for this request.
84677// - zone: The name of the zone where the instance group is located.
84678func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
84679	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84680	c.project = project
84681	c.zone = zone
84682	c.instanceGroup = instanceGroup
84683	return c
84684}
84685
84686// Fields allows partial responses to be retrieved. See
84687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84688// for more information.
84689func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
84690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84691	return c
84692}
84693
84694// IfNoneMatch sets the optional parameter which makes the operation
84695// fail if the object's ETag matches the given value. This is useful for
84696// getting updates only after the object has changed since the last
84697// request. Use googleapi.IsNotModified to check whether the response
84698// error from Do is the result of In-None-Match.
84699func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
84700	c.ifNoneMatch_ = entityTag
84701	return c
84702}
84703
84704// Context sets the context to be used in this call's Do method. Any
84705// pending HTTP request will be aborted if the provided context is
84706// canceled.
84707func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
84708	c.ctx_ = ctx
84709	return c
84710}
84711
84712// Header returns an http.Header that can be modified by the caller to
84713// add HTTP headers to the request.
84714func (c *InstanceGroupsGetCall) Header() http.Header {
84715	if c.header_ == nil {
84716		c.header_ = make(http.Header)
84717	}
84718	return c.header_
84719}
84720
84721func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
84722	reqHeaders := make(http.Header)
84723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
84724	for k, v := range c.header_ {
84725		reqHeaders[k] = v
84726	}
84727	reqHeaders.Set("User-Agent", c.s.userAgent())
84728	if c.ifNoneMatch_ != "" {
84729		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84730	}
84731	var body io.Reader = nil
84732	c.urlParams_.Set("alt", alt)
84733	c.urlParams_.Set("prettyPrint", "false")
84734	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
84735	urls += "?" + c.urlParams_.Encode()
84736	req, err := http.NewRequest("GET", urls, body)
84737	if err != nil {
84738		return nil, err
84739	}
84740	req.Header = reqHeaders
84741	googleapi.Expand(req.URL, map[string]string{
84742		"project":       c.project,
84743		"zone":          c.zone,
84744		"instanceGroup": c.instanceGroup,
84745	})
84746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84747}
84748
84749// Do executes the "compute.instanceGroups.get" call.
84750// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
84751// status code is an error. Response headers are in either
84752// *InstanceGroup.ServerResponse.Header or (if a response was returned
84753// at all) in error.(*googleapi.Error).Header. Use
84754// googleapi.IsNotModified to check whether the returned error was
84755// because http.StatusNotModified was returned.
84756func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
84757	gensupport.SetOptions(c.urlParams_, opts...)
84758	res, err := c.doRequest("json")
84759	if res != nil && res.StatusCode == http.StatusNotModified {
84760		if res.Body != nil {
84761			res.Body.Close()
84762		}
84763		return nil, &googleapi.Error{
84764			Code:   res.StatusCode,
84765			Header: res.Header,
84766		}
84767	}
84768	if err != nil {
84769		return nil, err
84770	}
84771	defer googleapi.CloseBody(res)
84772	if err := googleapi.CheckResponse(res); err != nil {
84773		return nil, err
84774	}
84775	ret := &InstanceGroup{
84776		ServerResponse: googleapi.ServerResponse{
84777			Header:         res.Header,
84778			HTTPStatusCode: res.StatusCode,
84779		},
84780	}
84781	target := &ret
84782	if err := gensupport.DecodeResponse(target, res); err != nil {
84783		return nil, err
84784	}
84785	return ret, nil
84786	// {
84787	//   "description": "Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.",
84788	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
84789	//   "httpMethod": "GET",
84790	//   "id": "compute.instanceGroups.get",
84791	//   "parameterOrder": [
84792	//     "project",
84793	//     "zone",
84794	//     "instanceGroup"
84795	//   ],
84796	//   "parameters": {
84797	//     "instanceGroup": {
84798	//       "description": "The name of the instance group.",
84799	//       "location": "path",
84800	//       "required": true,
84801	//       "type": "string"
84802	//     },
84803	//     "project": {
84804	//       "description": "Project ID for this request.",
84805	//       "location": "path",
84806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84807	//       "required": true,
84808	//       "type": "string"
84809	//     },
84810	//     "zone": {
84811	//       "description": "The name of the zone where the instance group is located.",
84812	//       "location": "path",
84813	//       "required": true,
84814	//       "type": "string"
84815	//     }
84816	//   },
84817	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
84818	//   "response": {
84819	//     "$ref": "InstanceGroup"
84820	//   },
84821	//   "scopes": [
84822	//     "https://www.googleapis.com/auth/cloud-platform",
84823	//     "https://www.googleapis.com/auth/compute",
84824	//     "https://www.googleapis.com/auth/compute.readonly"
84825	//   ]
84826	// }
84827
84828}
84829
84830// method id "compute.instanceGroups.insert":
84831
84832type InstanceGroupsInsertCall struct {
84833	s             *Service
84834	project       string
84835	zone          string
84836	instancegroup *InstanceGroup
84837	urlParams_    gensupport.URLParams
84838	ctx_          context.Context
84839	header_       http.Header
84840}
84841
84842// Insert: Creates an instance group in the specified project using the
84843// parameters that are included in the request.
84844//
84845// - project: Project ID for this request.
84846// - zone: The name of the zone where you want to create the instance
84847//   group.
84848func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
84849	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84850	c.project = project
84851	c.zone = zone
84852	c.instancegroup = instancegroup
84853	return c
84854}
84855
84856// RequestId sets the optional parameter "requestId": An optional
84857// request ID to identify requests. Specify a unique request ID so that
84858// if you must retry your request, the server will know to ignore the
84859// request if it has already been completed. For example, consider a
84860// situation where you make an initial request and the request times
84861// out. If you make the request again with the same request ID, the
84862// server can check if original operation with the same request ID was
84863// received, and if so, will ignore the second request. This prevents
84864// clients from accidentally creating duplicate commitments. The request
84865// ID must be a valid UUID with the exception that zero UUID is not
84866// supported ( 00000000-0000-0000-0000-000000000000).
84867func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
84868	c.urlParams_.Set("requestId", requestId)
84869	return c
84870}
84871
84872// Fields allows partial responses to be retrieved. See
84873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84874// for more information.
84875func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
84876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84877	return c
84878}
84879
84880// Context sets the context to be used in this call's Do method. Any
84881// pending HTTP request will be aborted if the provided context is
84882// canceled.
84883func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
84884	c.ctx_ = ctx
84885	return c
84886}
84887
84888// Header returns an http.Header that can be modified by the caller to
84889// add HTTP headers to the request.
84890func (c *InstanceGroupsInsertCall) Header() http.Header {
84891	if c.header_ == nil {
84892		c.header_ = make(http.Header)
84893	}
84894	return c.header_
84895}
84896
84897func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
84898	reqHeaders := make(http.Header)
84899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
84900	for k, v := range c.header_ {
84901		reqHeaders[k] = v
84902	}
84903	reqHeaders.Set("User-Agent", c.s.userAgent())
84904	var body io.Reader = nil
84905	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
84906	if err != nil {
84907		return nil, err
84908	}
84909	reqHeaders.Set("Content-Type", "application/json")
84910	c.urlParams_.Set("alt", alt)
84911	c.urlParams_.Set("prettyPrint", "false")
84912	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
84913	urls += "?" + c.urlParams_.Encode()
84914	req, err := http.NewRequest("POST", urls, body)
84915	if err != nil {
84916		return nil, err
84917	}
84918	req.Header = reqHeaders
84919	googleapi.Expand(req.URL, map[string]string{
84920		"project": c.project,
84921		"zone":    c.zone,
84922	})
84923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84924}
84925
84926// Do executes the "compute.instanceGroups.insert" call.
84927// Exactly one of *Operation or error will be non-nil. Any non-2xx
84928// status code is an error. Response headers are in either
84929// *Operation.ServerResponse.Header or (if a response was returned at
84930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84931// to check whether the returned error was because
84932// http.StatusNotModified was returned.
84933func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84934	gensupport.SetOptions(c.urlParams_, opts...)
84935	res, err := c.doRequest("json")
84936	if res != nil && res.StatusCode == http.StatusNotModified {
84937		if res.Body != nil {
84938			res.Body.Close()
84939		}
84940		return nil, &googleapi.Error{
84941			Code:   res.StatusCode,
84942			Header: res.Header,
84943		}
84944	}
84945	if err != nil {
84946		return nil, err
84947	}
84948	defer googleapi.CloseBody(res)
84949	if err := googleapi.CheckResponse(res); err != nil {
84950		return nil, err
84951	}
84952	ret := &Operation{
84953		ServerResponse: googleapi.ServerResponse{
84954			Header:         res.Header,
84955			HTTPStatusCode: res.StatusCode,
84956		},
84957	}
84958	target := &ret
84959	if err := gensupport.DecodeResponse(target, res); err != nil {
84960		return nil, err
84961	}
84962	return ret, nil
84963	// {
84964	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
84965	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
84966	//   "httpMethod": "POST",
84967	//   "id": "compute.instanceGroups.insert",
84968	//   "parameterOrder": [
84969	//     "project",
84970	//     "zone"
84971	//   ],
84972	//   "parameters": {
84973	//     "project": {
84974	//       "description": "Project ID for this request.",
84975	//       "location": "path",
84976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84977	//       "required": true,
84978	//       "type": "string"
84979	//     },
84980	//     "requestId": {
84981	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84982	//       "location": "query",
84983	//       "type": "string"
84984	//     },
84985	//     "zone": {
84986	//       "description": "The name of the zone where you want to create the instance group.",
84987	//       "location": "path",
84988	//       "required": true,
84989	//       "type": "string"
84990	//     }
84991	//   },
84992	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
84993	//   "request": {
84994	//     "$ref": "InstanceGroup"
84995	//   },
84996	//   "response": {
84997	//     "$ref": "Operation"
84998	//   },
84999	//   "scopes": [
85000	//     "https://www.googleapis.com/auth/cloud-platform",
85001	//     "https://www.googleapis.com/auth/compute"
85002	//   ]
85003	// }
85004
85005}
85006
85007// method id "compute.instanceGroups.list":
85008
85009type InstanceGroupsListCall struct {
85010	s            *Service
85011	project      string
85012	zone         string
85013	urlParams_   gensupport.URLParams
85014	ifNoneMatch_ string
85015	ctx_         context.Context
85016	header_      http.Header
85017}
85018
85019// List: Retrieves the list of zonal instance group resources contained
85020// within the specified zone. For managed instance groups, use the
85021// instanceGroupManagers or regionInstanceGroupManagers methods instead.
85022//
85023// - project: Project ID for this request.
85024// - zone: The name of the zone where the instance group is located.
85025func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
85026	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85027	c.project = project
85028	c.zone = zone
85029	return c
85030}
85031
85032// Filter sets the optional parameter "filter": A filter expression that
85033// filters resources listed in the response. The expression must specify
85034// the field name, a comparison operator, and the value that you want to
85035// use for filtering. The value must be a string, a number, or a
85036// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85037// `<`. For example, if you are filtering Compute Engine instances, you
85038// can exclude instances named `example-instance` by specifying `name !=
85039// example-instance`. You can also filter nested fields. For example,
85040// you could specify `scheduling.automaticRestart = false` to include
85041// instances only if they are not scheduled for automatic restarts. You
85042// can use filtering on nested fields to filter based on resource
85043// labels. To filter on multiple expressions, provide each separate
85044// expression within parentheses. For example: ```
85045// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
85046// ``` By default, each expression is an `AND` expression. However, you
85047// can include `AND` and `OR` expressions explicitly. For example: ```
85048// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
85049// AND (scheduling.automaticRestart = true) ```
85050func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
85051	c.urlParams_.Set("filter", filter)
85052	return c
85053}
85054
85055// MaxResults sets the optional parameter "maxResults": The maximum
85056// number of results per page that should be returned. If the number of
85057// available results is larger than `maxResults`, Compute Engine returns
85058// a `nextPageToken` that can be used to get the next page of results in
85059// subsequent list requests. Acceptable values are `0` to `500`,
85060// inclusive. (Default: `500`)
85061func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
85062	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85063	return c
85064}
85065
85066// OrderBy sets the optional parameter "orderBy": Sorts list results by
85067// a certain order. By default, results are returned in alphanumerical
85068// order based on the resource name. You can also sort results in
85069// descending order based on the creation timestamp using
85070// `orderBy="creationTimestamp desc". This sorts results based on the
85071// `creationTimestamp` field in reverse chronological order (newest
85072// result first). Use this to sort resources like operations so that the
85073// newest operation is returned first. Currently, only sorting by `name`
85074// or `creationTimestamp desc` is supported.
85075func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
85076	c.urlParams_.Set("orderBy", orderBy)
85077	return c
85078}
85079
85080// PageToken sets the optional parameter "pageToken": Specifies a page
85081// token to use. Set `pageToken` to the `nextPageToken` returned by a
85082// previous list request to get the next page of results.
85083func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
85084	c.urlParams_.Set("pageToken", pageToken)
85085	return c
85086}
85087
85088// ReturnPartialSuccess sets the optional parameter
85089// "returnPartialSuccess": Opt-in for partial success behavior which
85090// provides partial results in case of failure. The default value is
85091// false.
85092func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
85093	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85094	return c
85095}
85096
85097// Fields allows partial responses to be retrieved. See
85098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85099// for more information.
85100func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
85101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85102	return c
85103}
85104
85105// IfNoneMatch sets the optional parameter which makes the operation
85106// fail if the object's ETag matches the given value. This is useful for
85107// getting updates only after the object has changed since the last
85108// request. Use googleapi.IsNotModified to check whether the response
85109// error from Do is the result of In-None-Match.
85110func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
85111	c.ifNoneMatch_ = entityTag
85112	return c
85113}
85114
85115// Context sets the context to be used in this call's Do method. Any
85116// pending HTTP request will be aborted if the provided context is
85117// canceled.
85118func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
85119	c.ctx_ = ctx
85120	return c
85121}
85122
85123// Header returns an http.Header that can be modified by the caller to
85124// add HTTP headers to the request.
85125func (c *InstanceGroupsListCall) Header() http.Header {
85126	if c.header_ == nil {
85127		c.header_ = make(http.Header)
85128	}
85129	return c.header_
85130}
85131
85132func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
85133	reqHeaders := make(http.Header)
85134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
85135	for k, v := range c.header_ {
85136		reqHeaders[k] = v
85137	}
85138	reqHeaders.Set("User-Agent", c.s.userAgent())
85139	if c.ifNoneMatch_ != "" {
85140		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85141	}
85142	var body io.Reader = nil
85143	c.urlParams_.Set("alt", alt)
85144	c.urlParams_.Set("prettyPrint", "false")
85145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
85146	urls += "?" + c.urlParams_.Encode()
85147	req, err := http.NewRequest("GET", urls, body)
85148	if err != nil {
85149		return nil, err
85150	}
85151	req.Header = reqHeaders
85152	googleapi.Expand(req.URL, map[string]string{
85153		"project": c.project,
85154		"zone":    c.zone,
85155	})
85156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85157}
85158
85159// Do executes the "compute.instanceGroups.list" call.
85160// Exactly one of *InstanceGroupList or error will be non-nil. Any
85161// non-2xx status code is an error. Response headers are in either
85162// *InstanceGroupList.ServerResponse.Header or (if a response was
85163// returned at all) in error.(*googleapi.Error).Header. Use
85164// googleapi.IsNotModified to check whether the returned error was
85165// because http.StatusNotModified was returned.
85166func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
85167	gensupport.SetOptions(c.urlParams_, opts...)
85168	res, err := c.doRequest("json")
85169	if res != nil && res.StatusCode == http.StatusNotModified {
85170		if res.Body != nil {
85171			res.Body.Close()
85172		}
85173		return nil, &googleapi.Error{
85174			Code:   res.StatusCode,
85175			Header: res.Header,
85176		}
85177	}
85178	if err != nil {
85179		return nil, err
85180	}
85181	defer googleapi.CloseBody(res)
85182	if err := googleapi.CheckResponse(res); err != nil {
85183		return nil, err
85184	}
85185	ret := &InstanceGroupList{
85186		ServerResponse: googleapi.ServerResponse{
85187			Header:         res.Header,
85188			HTTPStatusCode: res.StatusCode,
85189		},
85190	}
85191	target := &ret
85192	if err := gensupport.DecodeResponse(target, res); err != nil {
85193		return nil, err
85194	}
85195	return ret, nil
85196	// {
85197	//   "description": "Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.",
85198	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
85199	//   "httpMethod": "GET",
85200	//   "id": "compute.instanceGroups.list",
85201	//   "parameterOrder": [
85202	//     "project",
85203	//     "zone"
85204	//   ],
85205	//   "parameters": {
85206	//     "filter": {
85207	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
85208	//       "location": "query",
85209	//       "type": "string"
85210	//     },
85211	//     "maxResults": {
85212	//       "default": "500",
85213	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85214	//       "format": "uint32",
85215	//       "location": "query",
85216	//       "minimum": "0",
85217	//       "type": "integer"
85218	//     },
85219	//     "orderBy": {
85220	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
85221	//       "location": "query",
85222	//       "type": "string"
85223	//     },
85224	//     "pageToken": {
85225	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85226	//       "location": "query",
85227	//       "type": "string"
85228	//     },
85229	//     "project": {
85230	//       "description": "Project ID for this request.",
85231	//       "location": "path",
85232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85233	//       "required": true,
85234	//       "type": "string"
85235	//     },
85236	//     "returnPartialSuccess": {
85237	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85238	//       "location": "query",
85239	//       "type": "boolean"
85240	//     },
85241	//     "zone": {
85242	//       "description": "The name of the zone where the instance group is located.",
85243	//       "location": "path",
85244	//       "required": true,
85245	//       "type": "string"
85246	//     }
85247	//   },
85248	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
85249	//   "response": {
85250	//     "$ref": "InstanceGroupList"
85251	//   },
85252	//   "scopes": [
85253	//     "https://www.googleapis.com/auth/cloud-platform",
85254	//     "https://www.googleapis.com/auth/compute",
85255	//     "https://www.googleapis.com/auth/compute.readonly"
85256	//   ]
85257	// }
85258
85259}
85260
85261// Pages invokes f for each page of results.
85262// A non-nil error returned from f will halt the iteration.
85263// The provided context supersedes any context provided to the Context method.
85264func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
85265	c.ctx_ = ctx
85266	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85267	for {
85268		x, err := c.Do()
85269		if err != nil {
85270			return err
85271		}
85272		if err := f(x); err != nil {
85273			return err
85274		}
85275		if x.NextPageToken == "" {
85276			return nil
85277		}
85278		c.PageToken(x.NextPageToken)
85279	}
85280}
85281
85282// method id "compute.instanceGroups.listInstances":
85283
85284type InstanceGroupsListInstancesCall struct {
85285	s                                  *Service
85286	project                            string
85287	zone                               string
85288	instanceGroup                      string
85289	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
85290	urlParams_                         gensupport.URLParams
85291	ctx_                               context.Context
85292	header_                            http.Header
85293}
85294
85295// ListInstances: Lists the instances in the specified instance group.
85296// The orderBy query parameter is not supported.
85297//
85298// - instanceGroup: The name of the instance group from which you want
85299//   to generate a list of included instances.
85300// - project: Project ID for this request.
85301// - zone: The name of the zone where the instance group is located.
85302func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
85303	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85304	c.project = project
85305	c.zone = zone
85306	c.instanceGroup = instanceGroup
85307	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
85308	return c
85309}
85310
85311// Filter sets the optional parameter "filter": A filter expression that
85312// filters resources listed in the response. The expression must specify
85313// the field name, a comparison operator, and the value that you want to
85314// use for filtering. The value must be a string, a number, or a
85315// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85316// `<`. For example, if you are filtering Compute Engine instances, you
85317// can exclude instances named `example-instance` by specifying `name !=
85318// example-instance`. You can also filter nested fields. For example,
85319// you could specify `scheduling.automaticRestart = false` to include
85320// instances only if they are not scheduled for automatic restarts. You
85321// can use filtering on nested fields to filter based on resource
85322// labels. To filter on multiple expressions, provide each separate
85323// expression within parentheses. For example: ```
85324// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
85325// ``` By default, each expression is an `AND` expression. However, you
85326// can include `AND` and `OR` expressions explicitly. For example: ```
85327// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
85328// AND (scheduling.automaticRestart = true) ```
85329func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
85330	c.urlParams_.Set("filter", filter)
85331	return c
85332}
85333
85334// MaxResults sets the optional parameter "maxResults": The maximum
85335// number of results per page that should be returned. If the number of
85336// available results is larger than `maxResults`, Compute Engine returns
85337// a `nextPageToken` that can be used to get the next page of results in
85338// subsequent list requests. Acceptable values are `0` to `500`,
85339// inclusive. (Default: `500`)
85340func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
85341	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85342	return c
85343}
85344
85345// OrderBy sets the optional parameter "orderBy": Sorts list results by
85346// a certain order. By default, results are returned in alphanumerical
85347// order based on the resource name. You can also sort results in
85348// descending order based on the creation timestamp using
85349// `orderBy="creationTimestamp desc". This sorts results based on the
85350// `creationTimestamp` field in reverse chronological order (newest
85351// result first). Use this to sort resources like operations so that the
85352// newest operation is returned first. Currently, only sorting by `name`
85353// or `creationTimestamp desc` is supported.
85354func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
85355	c.urlParams_.Set("orderBy", orderBy)
85356	return c
85357}
85358
85359// PageToken sets the optional parameter "pageToken": Specifies a page
85360// token to use. Set `pageToken` to the `nextPageToken` returned by a
85361// previous list request to get the next page of results.
85362func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
85363	c.urlParams_.Set("pageToken", pageToken)
85364	return c
85365}
85366
85367// ReturnPartialSuccess sets the optional parameter
85368// "returnPartialSuccess": Opt-in for partial success behavior which
85369// provides partial results in case of failure. The default value is
85370// false.
85371func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
85372	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85373	return c
85374}
85375
85376// Fields allows partial responses to be retrieved. See
85377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85378// for more information.
85379func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
85380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85381	return c
85382}
85383
85384// Context sets the context to be used in this call's Do method. Any
85385// pending HTTP request will be aborted if the provided context is
85386// canceled.
85387func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
85388	c.ctx_ = ctx
85389	return c
85390}
85391
85392// Header returns an http.Header that can be modified by the caller to
85393// add HTTP headers to the request.
85394func (c *InstanceGroupsListInstancesCall) Header() http.Header {
85395	if c.header_ == nil {
85396		c.header_ = make(http.Header)
85397	}
85398	return c.header_
85399}
85400
85401func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
85402	reqHeaders := make(http.Header)
85403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
85404	for k, v := range c.header_ {
85405		reqHeaders[k] = v
85406	}
85407	reqHeaders.Set("User-Agent", c.s.userAgent())
85408	var body io.Reader = nil
85409	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
85410	if err != nil {
85411		return nil, err
85412	}
85413	reqHeaders.Set("Content-Type", "application/json")
85414	c.urlParams_.Set("alt", alt)
85415	c.urlParams_.Set("prettyPrint", "false")
85416	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
85417	urls += "?" + c.urlParams_.Encode()
85418	req, err := http.NewRequest("POST", urls, body)
85419	if err != nil {
85420		return nil, err
85421	}
85422	req.Header = reqHeaders
85423	googleapi.Expand(req.URL, map[string]string{
85424		"project":       c.project,
85425		"zone":          c.zone,
85426		"instanceGroup": c.instanceGroup,
85427	})
85428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85429}
85430
85431// Do executes the "compute.instanceGroups.listInstances" call.
85432// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
85433// Any non-2xx status code is an error. Response headers are in either
85434// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
85435// was returned at all) in error.(*googleapi.Error).Header. Use
85436// googleapi.IsNotModified to check whether the returned error was
85437// because http.StatusNotModified was returned.
85438func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
85439	gensupport.SetOptions(c.urlParams_, opts...)
85440	res, err := c.doRequest("json")
85441	if res != nil && res.StatusCode == http.StatusNotModified {
85442		if res.Body != nil {
85443			res.Body.Close()
85444		}
85445		return nil, &googleapi.Error{
85446			Code:   res.StatusCode,
85447			Header: res.Header,
85448		}
85449	}
85450	if err != nil {
85451		return nil, err
85452	}
85453	defer googleapi.CloseBody(res)
85454	if err := googleapi.CheckResponse(res); err != nil {
85455		return nil, err
85456	}
85457	ret := &InstanceGroupsListInstances{
85458		ServerResponse: googleapi.ServerResponse{
85459			Header:         res.Header,
85460			HTTPStatusCode: res.StatusCode,
85461		},
85462	}
85463	target := &ret
85464	if err := gensupport.DecodeResponse(target, res); err != nil {
85465		return nil, err
85466	}
85467	return ret, nil
85468	// {
85469	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
85470	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
85471	//   "httpMethod": "POST",
85472	//   "id": "compute.instanceGroups.listInstances",
85473	//   "parameterOrder": [
85474	//     "project",
85475	//     "zone",
85476	//     "instanceGroup"
85477	//   ],
85478	//   "parameters": {
85479	//     "filter": {
85480	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
85481	//       "location": "query",
85482	//       "type": "string"
85483	//     },
85484	//     "instanceGroup": {
85485	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
85486	//       "location": "path",
85487	//       "required": true,
85488	//       "type": "string"
85489	//     },
85490	//     "maxResults": {
85491	//       "default": "500",
85492	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85493	//       "format": "uint32",
85494	//       "location": "query",
85495	//       "minimum": "0",
85496	//       "type": "integer"
85497	//     },
85498	//     "orderBy": {
85499	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
85500	//       "location": "query",
85501	//       "type": "string"
85502	//     },
85503	//     "pageToken": {
85504	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85505	//       "location": "query",
85506	//       "type": "string"
85507	//     },
85508	//     "project": {
85509	//       "description": "Project ID for this request.",
85510	//       "location": "path",
85511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85512	//       "required": true,
85513	//       "type": "string"
85514	//     },
85515	//     "returnPartialSuccess": {
85516	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85517	//       "location": "query",
85518	//       "type": "boolean"
85519	//     },
85520	//     "zone": {
85521	//       "description": "The name of the zone where the instance group is located.",
85522	//       "location": "path",
85523	//       "required": true,
85524	//       "type": "string"
85525	//     }
85526	//   },
85527	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
85528	//   "request": {
85529	//     "$ref": "InstanceGroupsListInstancesRequest"
85530	//   },
85531	//   "response": {
85532	//     "$ref": "InstanceGroupsListInstances"
85533	//   },
85534	//   "scopes": [
85535	//     "https://www.googleapis.com/auth/cloud-platform",
85536	//     "https://www.googleapis.com/auth/compute",
85537	//     "https://www.googleapis.com/auth/compute.readonly"
85538	//   ]
85539	// }
85540
85541}
85542
85543// Pages invokes f for each page of results.
85544// A non-nil error returned from f will halt the iteration.
85545// The provided context supersedes any context provided to the Context method.
85546func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
85547	c.ctx_ = ctx
85548	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85549	for {
85550		x, err := c.Do()
85551		if err != nil {
85552			return err
85553		}
85554		if err := f(x); err != nil {
85555			return err
85556		}
85557		if x.NextPageToken == "" {
85558			return nil
85559		}
85560		c.PageToken(x.NextPageToken)
85561	}
85562}
85563
85564// method id "compute.instanceGroups.removeInstances":
85565
85566type InstanceGroupsRemoveInstancesCall struct {
85567	s                                    *Service
85568	project                              string
85569	zone                                 string
85570	instanceGroup                        string
85571	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
85572	urlParams_                           gensupport.URLParams
85573	ctx_                                 context.Context
85574	header_                              http.Header
85575}
85576
85577// RemoveInstances: Removes one or more instances from the specified
85578// instance group, but does not delete those instances. If the group is
85579// part of a backend service that has enabled connection draining, it
85580// can take up to 60 seconds after the connection draining duration
85581// before the VM instance is removed or deleted.
85582//
85583// - instanceGroup: The name of the instance group where the specified
85584//   instances will be removed.
85585// - project: Project ID for this request.
85586// - zone: The name of the zone where the instance group is located.
85587func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
85588	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85589	c.project = project
85590	c.zone = zone
85591	c.instanceGroup = instanceGroup
85592	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
85593	return c
85594}
85595
85596// RequestId sets the optional parameter "requestId": An optional
85597// request ID to identify requests. Specify a unique request ID so that
85598// if you must retry your request, the server will know to ignore the
85599// request if it has already been completed. For example, consider a
85600// situation where you make an initial request and the request times
85601// out. If you make the request again with the same request ID, the
85602// server can check if original operation with the same request ID was
85603// received, and if so, will ignore the second request. This prevents
85604// clients from accidentally creating duplicate commitments. The request
85605// ID must be a valid UUID with the exception that zero UUID is not
85606// supported ( 00000000-0000-0000-0000-000000000000).
85607func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
85608	c.urlParams_.Set("requestId", requestId)
85609	return c
85610}
85611
85612// Fields allows partial responses to be retrieved. See
85613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85614// for more information.
85615func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
85616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85617	return c
85618}
85619
85620// Context sets the context to be used in this call's Do method. Any
85621// pending HTTP request will be aborted if the provided context is
85622// canceled.
85623func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
85624	c.ctx_ = ctx
85625	return c
85626}
85627
85628// Header returns an http.Header that can be modified by the caller to
85629// add HTTP headers to the request.
85630func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
85631	if c.header_ == nil {
85632		c.header_ = make(http.Header)
85633	}
85634	return c.header_
85635}
85636
85637func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
85638	reqHeaders := make(http.Header)
85639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
85640	for k, v := range c.header_ {
85641		reqHeaders[k] = v
85642	}
85643	reqHeaders.Set("User-Agent", c.s.userAgent())
85644	var body io.Reader = nil
85645	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
85646	if err != nil {
85647		return nil, err
85648	}
85649	reqHeaders.Set("Content-Type", "application/json")
85650	c.urlParams_.Set("alt", alt)
85651	c.urlParams_.Set("prettyPrint", "false")
85652	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
85653	urls += "?" + c.urlParams_.Encode()
85654	req, err := http.NewRequest("POST", urls, body)
85655	if err != nil {
85656		return nil, err
85657	}
85658	req.Header = reqHeaders
85659	googleapi.Expand(req.URL, map[string]string{
85660		"project":       c.project,
85661		"zone":          c.zone,
85662		"instanceGroup": c.instanceGroup,
85663	})
85664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85665}
85666
85667// Do executes the "compute.instanceGroups.removeInstances" call.
85668// Exactly one of *Operation or error will be non-nil. Any non-2xx
85669// status code is an error. Response headers are in either
85670// *Operation.ServerResponse.Header or (if a response was returned at
85671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85672// to check whether the returned error was because
85673// http.StatusNotModified was returned.
85674func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85675	gensupport.SetOptions(c.urlParams_, opts...)
85676	res, err := c.doRequest("json")
85677	if res != nil && res.StatusCode == http.StatusNotModified {
85678		if res.Body != nil {
85679			res.Body.Close()
85680		}
85681		return nil, &googleapi.Error{
85682			Code:   res.StatusCode,
85683			Header: res.Header,
85684		}
85685	}
85686	if err != nil {
85687		return nil, err
85688	}
85689	defer googleapi.CloseBody(res)
85690	if err := googleapi.CheckResponse(res); err != nil {
85691		return nil, err
85692	}
85693	ret := &Operation{
85694		ServerResponse: googleapi.ServerResponse{
85695			Header:         res.Header,
85696			HTTPStatusCode: res.StatusCode,
85697		},
85698	}
85699	target := &ret
85700	if err := gensupport.DecodeResponse(target, res); err != nil {
85701		return nil, err
85702	}
85703	return ret, nil
85704	// {
85705	//   "description": "Removes one or more instances from the specified instance group, but does not delete those instances. If 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.",
85706	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
85707	//   "httpMethod": "POST",
85708	//   "id": "compute.instanceGroups.removeInstances",
85709	//   "parameterOrder": [
85710	//     "project",
85711	//     "zone",
85712	//     "instanceGroup"
85713	//   ],
85714	//   "parameters": {
85715	//     "instanceGroup": {
85716	//       "description": "The name of the instance group where the specified instances will be removed.",
85717	//       "location": "path",
85718	//       "required": true,
85719	//       "type": "string"
85720	//     },
85721	//     "project": {
85722	//       "description": "Project ID for this request.",
85723	//       "location": "path",
85724	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85725	//       "required": true,
85726	//       "type": "string"
85727	//     },
85728	//     "requestId": {
85729	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
85730	//       "location": "query",
85731	//       "type": "string"
85732	//     },
85733	//     "zone": {
85734	//       "description": "The name of the zone where the instance group is located.",
85735	//       "location": "path",
85736	//       "required": true,
85737	//       "type": "string"
85738	//     }
85739	//   },
85740	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
85741	//   "request": {
85742	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
85743	//   },
85744	//   "response": {
85745	//     "$ref": "Operation"
85746	//   },
85747	//   "scopes": [
85748	//     "https://www.googleapis.com/auth/cloud-platform",
85749	//     "https://www.googleapis.com/auth/compute"
85750	//   ]
85751	// }
85752
85753}
85754
85755// method id "compute.instanceGroups.setNamedPorts":
85756
85757type InstanceGroupsSetNamedPortsCall struct {
85758	s                                  *Service
85759	project                            string
85760	zone                               string
85761	instanceGroup                      string
85762	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
85763	urlParams_                         gensupport.URLParams
85764	ctx_                               context.Context
85765	header_                            http.Header
85766}
85767
85768// SetNamedPorts: Sets the named ports for the specified instance group.
85769//
85770// - instanceGroup: The name of the instance group where the named ports
85771//   are updated.
85772// - project: Project ID for this request.
85773// - zone: The name of the zone where the instance group is located.
85774func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
85775	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85776	c.project = project
85777	c.zone = zone
85778	c.instanceGroup = instanceGroup
85779	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
85780	return c
85781}
85782
85783// RequestId sets the optional parameter "requestId": An optional
85784// request ID to identify requests. Specify a unique request ID so that
85785// if you must retry your request, the server will know to ignore the
85786// request if it has already been completed. For example, consider a
85787// situation where you make an initial request and the request times
85788// out. If you make the request again with the same request ID, the
85789// server can check if original operation with the same request ID was
85790// received, and if so, will ignore the second request. This prevents
85791// clients from accidentally creating duplicate commitments. The request
85792// ID must be a valid UUID with the exception that zero UUID is not
85793// supported ( 00000000-0000-0000-0000-000000000000).
85794func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
85795	c.urlParams_.Set("requestId", requestId)
85796	return c
85797}
85798
85799// Fields allows partial responses to be retrieved. See
85800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85801// for more information.
85802func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
85803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85804	return c
85805}
85806
85807// Context sets the context to be used in this call's Do method. Any
85808// pending HTTP request will be aborted if the provided context is
85809// canceled.
85810func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
85811	c.ctx_ = ctx
85812	return c
85813}
85814
85815// Header returns an http.Header that can be modified by the caller to
85816// add HTTP headers to the request.
85817func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
85818	if c.header_ == nil {
85819		c.header_ = make(http.Header)
85820	}
85821	return c.header_
85822}
85823
85824func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
85825	reqHeaders := make(http.Header)
85826	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
85827	for k, v := range c.header_ {
85828		reqHeaders[k] = v
85829	}
85830	reqHeaders.Set("User-Agent", c.s.userAgent())
85831	var body io.Reader = nil
85832	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
85833	if err != nil {
85834		return nil, err
85835	}
85836	reqHeaders.Set("Content-Type", "application/json")
85837	c.urlParams_.Set("alt", alt)
85838	c.urlParams_.Set("prettyPrint", "false")
85839	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
85840	urls += "?" + c.urlParams_.Encode()
85841	req, err := http.NewRequest("POST", urls, body)
85842	if err != nil {
85843		return nil, err
85844	}
85845	req.Header = reqHeaders
85846	googleapi.Expand(req.URL, map[string]string{
85847		"project":       c.project,
85848		"zone":          c.zone,
85849		"instanceGroup": c.instanceGroup,
85850	})
85851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85852}
85853
85854// Do executes the "compute.instanceGroups.setNamedPorts" call.
85855// Exactly one of *Operation or error will be non-nil. Any non-2xx
85856// status code is an error. Response headers are in either
85857// *Operation.ServerResponse.Header or (if a response was returned at
85858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85859// to check whether the returned error was because
85860// http.StatusNotModified was returned.
85861func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85862	gensupport.SetOptions(c.urlParams_, opts...)
85863	res, err := c.doRequest("json")
85864	if res != nil && res.StatusCode == http.StatusNotModified {
85865		if res.Body != nil {
85866			res.Body.Close()
85867		}
85868		return nil, &googleapi.Error{
85869			Code:   res.StatusCode,
85870			Header: res.Header,
85871		}
85872	}
85873	if err != nil {
85874		return nil, err
85875	}
85876	defer googleapi.CloseBody(res)
85877	if err := googleapi.CheckResponse(res); err != nil {
85878		return nil, err
85879	}
85880	ret := &Operation{
85881		ServerResponse: googleapi.ServerResponse{
85882			Header:         res.Header,
85883			HTTPStatusCode: res.StatusCode,
85884		},
85885	}
85886	target := &ret
85887	if err := gensupport.DecodeResponse(target, res); err != nil {
85888		return nil, err
85889	}
85890	return ret, nil
85891	// {
85892	//   "description": "Sets the named ports for the specified instance group.",
85893	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
85894	//   "httpMethod": "POST",
85895	//   "id": "compute.instanceGroups.setNamedPorts",
85896	//   "parameterOrder": [
85897	//     "project",
85898	//     "zone",
85899	//     "instanceGroup"
85900	//   ],
85901	//   "parameters": {
85902	//     "instanceGroup": {
85903	//       "description": "The name of the instance group where the named ports are updated.",
85904	//       "location": "path",
85905	//       "required": true,
85906	//       "type": "string"
85907	//     },
85908	//     "project": {
85909	//       "description": "Project ID for this request.",
85910	//       "location": "path",
85911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85912	//       "required": true,
85913	//       "type": "string"
85914	//     },
85915	//     "requestId": {
85916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
85917	//       "location": "query",
85918	//       "type": "string"
85919	//     },
85920	//     "zone": {
85921	//       "description": "The name of the zone where the instance group is located.",
85922	//       "location": "path",
85923	//       "required": true,
85924	//       "type": "string"
85925	//     }
85926	//   },
85927	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
85928	//   "request": {
85929	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
85930	//   },
85931	//   "response": {
85932	//     "$ref": "Operation"
85933	//   },
85934	//   "scopes": [
85935	//     "https://www.googleapis.com/auth/cloud-platform",
85936	//     "https://www.googleapis.com/auth/compute"
85937	//   ]
85938	// }
85939
85940}
85941
85942// method id "compute.instanceTemplates.delete":
85943
85944type InstanceTemplatesDeleteCall struct {
85945	s                *Service
85946	project          string
85947	instanceTemplate string
85948	urlParams_       gensupport.URLParams
85949	ctx_             context.Context
85950	header_          http.Header
85951}
85952
85953// Delete: Deletes the specified instance template. Deleting an instance
85954// template is permanent and cannot be undone. It is not possible to
85955// delete templates that are already in use by a managed instance group.
85956//
85957// - instanceTemplate: The name of the instance template to delete.
85958// - project: Project ID for this request.
85959func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
85960	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85961	c.project = project
85962	c.instanceTemplate = instanceTemplate
85963	return c
85964}
85965
85966// RequestId sets the optional parameter "requestId": An optional
85967// request ID to identify requests. Specify a unique request ID so that
85968// if you must retry your request, the server will know to ignore the
85969// request if it has already been completed. For example, consider a
85970// situation where you make an initial request and the request times
85971// out. If you make the request again with the same request ID, the
85972// server can check if original operation with the same request ID was
85973// received, and if so, will ignore the second request. This prevents
85974// clients from accidentally creating duplicate commitments. The request
85975// ID must be a valid UUID with the exception that zero UUID is not
85976// supported ( 00000000-0000-0000-0000-000000000000).
85977func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
85978	c.urlParams_.Set("requestId", requestId)
85979	return c
85980}
85981
85982// Fields allows partial responses to be retrieved. See
85983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85984// for more information.
85985func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
85986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85987	return c
85988}
85989
85990// Context sets the context to be used in this call's Do method. Any
85991// pending HTTP request will be aborted if the provided context is
85992// canceled.
85993func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
85994	c.ctx_ = ctx
85995	return c
85996}
85997
85998// Header returns an http.Header that can be modified by the caller to
85999// add HTTP headers to the request.
86000func (c *InstanceTemplatesDeleteCall) Header() http.Header {
86001	if c.header_ == nil {
86002		c.header_ = make(http.Header)
86003	}
86004	return c.header_
86005}
86006
86007func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
86008	reqHeaders := make(http.Header)
86009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86010	for k, v := range c.header_ {
86011		reqHeaders[k] = v
86012	}
86013	reqHeaders.Set("User-Agent", c.s.userAgent())
86014	var body io.Reader = nil
86015	c.urlParams_.Set("alt", alt)
86016	c.urlParams_.Set("prettyPrint", "false")
86017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
86018	urls += "?" + c.urlParams_.Encode()
86019	req, err := http.NewRequest("DELETE", urls, body)
86020	if err != nil {
86021		return nil, err
86022	}
86023	req.Header = reqHeaders
86024	googleapi.Expand(req.URL, map[string]string{
86025		"project":          c.project,
86026		"instanceTemplate": c.instanceTemplate,
86027	})
86028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86029}
86030
86031// Do executes the "compute.instanceTemplates.delete" call.
86032// Exactly one of *Operation or error will be non-nil. Any non-2xx
86033// status code is an error. Response headers are in either
86034// *Operation.ServerResponse.Header or (if a response was returned at
86035// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86036// to check whether the returned error was because
86037// http.StatusNotModified was returned.
86038func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86039	gensupport.SetOptions(c.urlParams_, opts...)
86040	res, err := c.doRequest("json")
86041	if res != nil && res.StatusCode == http.StatusNotModified {
86042		if res.Body != nil {
86043			res.Body.Close()
86044		}
86045		return nil, &googleapi.Error{
86046			Code:   res.StatusCode,
86047			Header: res.Header,
86048		}
86049	}
86050	if err != nil {
86051		return nil, err
86052	}
86053	defer googleapi.CloseBody(res)
86054	if err := googleapi.CheckResponse(res); err != nil {
86055		return nil, err
86056	}
86057	ret := &Operation{
86058		ServerResponse: googleapi.ServerResponse{
86059			Header:         res.Header,
86060			HTTPStatusCode: res.StatusCode,
86061		},
86062	}
86063	target := &ret
86064	if err := gensupport.DecodeResponse(target, res); err != nil {
86065		return nil, err
86066	}
86067	return ret, nil
86068	// {
86069	//   "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.",
86070	//   "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86071	//   "httpMethod": "DELETE",
86072	//   "id": "compute.instanceTemplates.delete",
86073	//   "parameterOrder": [
86074	//     "project",
86075	//     "instanceTemplate"
86076	//   ],
86077	//   "parameters": {
86078	//     "instanceTemplate": {
86079	//       "description": "The name of the instance template to delete.",
86080	//       "location": "path",
86081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86082	//       "required": true,
86083	//       "type": "string"
86084	//     },
86085	//     "project": {
86086	//       "description": "Project ID for this request.",
86087	//       "location": "path",
86088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86089	//       "required": true,
86090	//       "type": "string"
86091	//     },
86092	//     "requestId": {
86093	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86094	//       "location": "query",
86095	//       "type": "string"
86096	//     }
86097	//   },
86098	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86099	//   "response": {
86100	//     "$ref": "Operation"
86101	//   },
86102	//   "scopes": [
86103	//     "https://www.googleapis.com/auth/cloud-platform",
86104	//     "https://www.googleapis.com/auth/compute"
86105	//   ]
86106	// }
86107
86108}
86109
86110// method id "compute.instanceTemplates.get":
86111
86112type InstanceTemplatesGetCall struct {
86113	s                *Service
86114	project          string
86115	instanceTemplate string
86116	urlParams_       gensupport.URLParams
86117	ifNoneMatch_     string
86118	ctx_             context.Context
86119	header_          http.Header
86120}
86121
86122// Get: Returns the specified instance template. Gets a list of
86123// available instance templates by making a list() request.
86124//
86125// - instanceTemplate: The name of the instance template.
86126// - project: Project ID for this request.
86127func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
86128	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86129	c.project = project
86130	c.instanceTemplate = instanceTemplate
86131	return c
86132}
86133
86134// Fields allows partial responses to be retrieved. See
86135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86136// for more information.
86137func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
86138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86139	return c
86140}
86141
86142// IfNoneMatch sets the optional parameter which makes the operation
86143// fail if the object's ETag matches the given value. This is useful for
86144// getting updates only after the object has changed since the last
86145// request. Use googleapi.IsNotModified to check whether the response
86146// error from Do is the result of In-None-Match.
86147func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
86148	c.ifNoneMatch_ = entityTag
86149	return c
86150}
86151
86152// Context sets the context to be used in this call's Do method. Any
86153// pending HTTP request will be aborted if the provided context is
86154// canceled.
86155func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
86156	c.ctx_ = ctx
86157	return c
86158}
86159
86160// Header returns an http.Header that can be modified by the caller to
86161// add HTTP headers to the request.
86162func (c *InstanceTemplatesGetCall) Header() http.Header {
86163	if c.header_ == nil {
86164		c.header_ = make(http.Header)
86165	}
86166	return c.header_
86167}
86168
86169func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
86170	reqHeaders := make(http.Header)
86171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86172	for k, v := range c.header_ {
86173		reqHeaders[k] = v
86174	}
86175	reqHeaders.Set("User-Agent", c.s.userAgent())
86176	if c.ifNoneMatch_ != "" {
86177		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86178	}
86179	var body io.Reader = nil
86180	c.urlParams_.Set("alt", alt)
86181	c.urlParams_.Set("prettyPrint", "false")
86182	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
86183	urls += "?" + c.urlParams_.Encode()
86184	req, err := http.NewRequest("GET", urls, body)
86185	if err != nil {
86186		return nil, err
86187	}
86188	req.Header = reqHeaders
86189	googleapi.Expand(req.URL, map[string]string{
86190		"project":          c.project,
86191		"instanceTemplate": c.instanceTemplate,
86192	})
86193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86194}
86195
86196// Do executes the "compute.instanceTemplates.get" call.
86197// Exactly one of *InstanceTemplate or error will be non-nil. Any
86198// non-2xx status code is an error. Response headers are in either
86199// *InstanceTemplate.ServerResponse.Header or (if a response was
86200// returned at all) in error.(*googleapi.Error).Header. Use
86201// googleapi.IsNotModified to check whether the returned error was
86202// because http.StatusNotModified was returned.
86203func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
86204	gensupport.SetOptions(c.urlParams_, opts...)
86205	res, err := c.doRequest("json")
86206	if res != nil && res.StatusCode == http.StatusNotModified {
86207		if res.Body != nil {
86208			res.Body.Close()
86209		}
86210		return nil, &googleapi.Error{
86211			Code:   res.StatusCode,
86212			Header: res.Header,
86213		}
86214	}
86215	if err != nil {
86216		return nil, err
86217	}
86218	defer googleapi.CloseBody(res)
86219	if err := googleapi.CheckResponse(res); err != nil {
86220		return nil, err
86221	}
86222	ret := &InstanceTemplate{
86223		ServerResponse: googleapi.ServerResponse{
86224			Header:         res.Header,
86225			HTTPStatusCode: res.StatusCode,
86226		},
86227	}
86228	target := &ret
86229	if err := gensupport.DecodeResponse(target, res); err != nil {
86230		return nil, err
86231	}
86232	return ret, nil
86233	// {
86234	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
86235	//   "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86236	//   "httpMethod": "GET",
86237	//   "id": "compute.instanceTemplates.get",
86238	//   "parameterOrder": [
86239	//     "project",
86240	//     "instanceTemplate"
86241	//   ],
86242	//   "parameters": {
86243	//     "instanceTemplate": {
86244	//       "description": "The name of the instance template.",
86245	//       "location": "path",
86246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86247	//       "required": true,
86248	//       "type": "string"
86249	//     },
86250	//     "project": {
86251	//       "description": "Project ID for this request.",
86252	//       "location": "path",
86253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86254	//       "required": true,
86255	//       "type": "string"
86256	//     }
86257	//   },
86258	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86259	//   "response": {
86260	//     "$ref": "InstanceTemplate"
86261	//   },
86262	//   "scopes": [
86263	//     "https://www.googleapis.com/auth/cloud-platform",
86264	//     "https://www.googleapis.com/auth/compute",
86265	//     "https://www.googleapis.com/auth/compute.readonly"
86266	//   ]
86267	// }
86268
86269}
86270
86271// method id "compute.instanceTemplates.getIamPolicy":
86272
86273type InstanceTemplatesGetIamPolicyCall struct {
86274	s            *Service
86275	project      string
86276	resource     string
86277	urlParams_   gensupport.URLParams
86278	ifNoneMatch_ string
86279	ctx_         context.Context
86280	header_      http.Header
86281}
86282
86283// GetIamPolicy: Gets the access control policy for a resource. May be
86284// empty if no such policy or resource exists.
86285//
86286// - project: Project ID for this request.
86287// - resource: Name or id of the resource for this request.
86288func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
86289	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86290	c.project = project
86291	c.resource = resource
86292	return c
86293}
86294
86295// OptionsRequestedPolicyVersion sets the optional parameter
86296// "optionsRequestedPolicyVersion": Requested IAM Policy version.
86297func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
86298	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
86299	return c
86300}
86301
86302// Fields allows partial responses to be retrieved. See
86303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86304// for more information.
86305func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
86306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86307	return c
86308}
86309
86310// IfNoneMatch sets the optional parameter which makes the operation
86311// fail if the object's ETag matches the given value. This is useful for
86312// getting updates only after the object has changed since the last
86313// request. Use googleapi.IsNotModified to check whether the response
86314// error from Do is the result of In-None-Match.
86315func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
86316	c.ifNoneMatch_ = entityTag
86317	return c
86318}
86319
86320// Context sets the context to be used in this call's Do method. Any
86321// pending HTTP request will be aborted if the provided context is
86322// canceled.
86323func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
86324	c.ctx_ = ctx
86325	return c
86326}
86327
86328// Header returns an http.Header that can be modified by the caller to
86329// add HTTP headers to the request.
86330func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
86331	if c.header_ == nil {
86332		c.header_ = make(http.Header)
86333	}
86334	return c.header_
86335}
86336
86337func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
86338	reqHeaders := make(http.Header)
86339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86340	for k, v := range c.header_ {
86341		reqHeaders[k] = v
86342	}
86343	reqHeaders.Set("User-Agent", c.s.userAgent())
86344	if c.ifNoneMatch_ != "" {
86345		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86346	}
86347	var body io.Reader = nil
86348	c.urlParams_.Set("alt", alt)
86349	c.urlParams_.Set("prettyPrint", "false")
86350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy")
86351	urls += "?" + c.urlParams_.Encode()
86352	req, err := http.NewRequest("GET", urls, body)
86353	if err != nil {
86354		return nil, err
86355	}
86356	req.Header = reqHeaders
86357	googleapi.Expand(req.URL, map[string]string{
86358		"project":  c.project,
86359		"resource": c.resource,
86360	})
86361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86362}
86363
86364// Do executes the "compute.instanceTemplates.getIamPolicy" call.
86365// Exactly one of *Policy or error will be non-nil. Any non-2xx status
86366// code is an error. Response headers are in either
86367// *Policy.ServerResponse.Header or (if a response was returned at all)
86368// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
86369// check whether the returned error was because http.StatusNotModified
86370// was returned.
86371func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
86372	gensupport.SetOptions(c.urlParams_, opts...)
86373	res, err := c.doRequest("json")
86374	if res != nil && res.StatusCode == http.StatusNotModified {
86375		if res.Body != nil {
86376			res.Body.Close()
86377		}
86378		return nil, &googleapi.Error{
86379			Code:   res.StatusCode,
86380			Header: res.Header,
86381		}
86382	}
86383	if err != nil {
86384		return nil, err
86385	}
86386	defer googleapi.CloseBody(res)
86387	if err := googleapi.CheckResponse(res); err != nil {
86388		return nil, err
86389	}
86390	ret := &Policy{
86391		ServerResponse: googleapi.ServerResponse{
86392			Header:         res.Header,
86393			HTTPStatusCode: res.StatusCode,
86394		},
86395	}
86396	target := &ret
86397	if err := gensupport.DecodeResponse(target, res); err != nil {
86398		return nil, err
86399	}
86400	return ret, nil
86401	// {
86402	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
86403	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
86404	//   "httpMethod": "GET",
86405	//   "id": "compute.instanceTemplates.getIamPolicy",
86406	//   "parameterOrder": [
86407	//     "project",
86408	//     "resource"
86409	//   ],
86410	//   "parameters": {
86411	//     "optionsRequestedPolicyVersion": {
86412	//       "description": "Requested IAM Policy version.",
86413	//       "format": "int32",
86414	//       "location": "query",
86415	//       "type": "integer"
86416	//     },
86417	//     "project": {
86418	//       "description": "Project ID for this request.",
86419	//       "location": "path",
86420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86421	//       "required": true,
86422	//       "type": "string"
86423	//     },
86424	//     "resource": {
86425	//       "description": "Name or id of the resource for this request.",
86426	//       "location": "path",
86427	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86428	//       "required": true,
86429	//       "type": "string"
86430	//     }
86431	//   },
86432	//   "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
86433	//   "response": {
86434	//     "$ref": "Policy"
86435	//   },
86436	//   "scopes": [
86437	//     "https://www.googleapis.com/auth/cloud-platform",
86438	//     "https://www.googleapis.com/auth/compute",
86439	//     "https://www.googleapis.com/auth/compute.readonly"
86440	//   ]
86441	// }
86442
86443}
86444
86445// method id "compute.instanceTemplates.insert":
86446
86447type InstanceTemplatesInsertCall struct {
86448	s                *Service
86449	project          string
86450	instancetemplate *InstanceTemplate
86451	urlParams_       gensupport.URLParams
86452	ctx_             context.Context
86453	header_          http.Header
86454}
86455
86456// Insert: Creates an instance template in the specified project using
86457// the data that is included in the request. If you are creating a new
86458// template to update an existing instance group, your new instance
86459// template must use the same network or, if applicable, the same
86460// subnetwork as the original template.
86461//
86462// - project: Project ID for this request.
86463func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
86464	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86465	c.project = project
86466	c.instancetemplate = instancetemplate
86467	return c
86468}
86469
86470// RequestId sets the optional parameter "requestId": An optional
86471// request ID to identify requests. Specify a unique request ID so that
86472// if you must retry your request, the server will know to ignore the
86473// request if it has already been completed. For example, consider a
86474// situation where you make an initial request and the request times
86475// out. If you make the request again with the same request ID, the
86476// server can check if original operation with the same request ID was
86477// received, and if so, will ignore the second request. This prevents
86478// clients from accidentally creating duplicate commitments. The request
86479// ID must be a valid UUID with the exception that zero UUID is not
86480// supported ( 00000000-0000-0000-0000-000000000000).
86481func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
86482	c.urlParams_.Set("requestId", requestId)
86483	return c
86484}
86485
86486// Fields allows partial responses to be retrieved. See
86487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86488// for more information.
86489func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
86490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86491	return c
86492}
86493
86494// Context sets the context to be used in this call's Do method. Any
86495// pending HTTP request will be aborted if the provided context is
86496// canceled.
86497func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
86498	c.ctx_ = ctx
86499	return c
86500}
86501
86502// Header returns an http.Header that can be modified by the caller to
86503// add HTTP headers to the request.
86504func (c *InstanceTemplatesInsertCall) Header() http.Header {
86505	if c.header_ == nil {
86506		c.header_ = make(http.Header)
86507	}
86508	return c.header_
86509}
86510
86511func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
86512	reqHeaders := make(http.Header)
86513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86514	for k, v := range c.header_ {
86515		reqHeaders[k] = v
86516	}
86517	reqHeaders.Set("User-Agent", c.s.userAgent())
86518	var body io.Reader = nil
86519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
86520	if err != nil {
86521		return nil, err
86522	}
86523	reqHeaders.Set("Content-Type", "application/json")
86524	c.urlParams_.Set("alt", alt)
86525	c.urlParams_.Set("prettyPrint", "false")
86526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
86527	urls += "?" + c.urlParams_.Encode()
86528	req, err := http.NewRequest("POST", urls, body)
86529	if err != nil {
86530		return nil, err
86531	}
86532	req.Header = reqHeaders
86533	googleapi.Expand(req.URL, map[string]string{
86534		"project": c.project,
86535	})
86536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86537}
86538
86539// Do executes the "compute.instanceTemplates.insert" call.
86540// Exactly one of *Operation or error will be non-nil. Any non-2xx
86541// status code is an error. Response headers are in either
86542// *Operation.ServerResponse.Header or (if a response was returned at
86543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86544// to check whether the returned error was because
86545// http.StatusNotModified was returned.
86546func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86547	gensupport.SetOptions(c.urlParams_, opts...)
86548	res, err := c.doRequest("json")
86549	if res != nil && res.StatusCode == http.StatusNotModified {
86550		if res.Body != nil {
86551			res.Body.Close()
86552		}
86553		return nil, &googleapi.Error{
86554			Code:   res.StatusCode,
86555			Header: res.Header,
86556		}
86557	}
86558	if err != nil {
86559		return nil, err
86560	}
86561	defer googleapi.CloseBody(res)
86562	if err := googleapi.CheckResponse(res); err != nil {
86563		return nil, err
86564	}
86565	ret := &Operation{
86566		ServerResponse: googleapi.ServerResponse{
86567			Header:         res.Header,
86568			HTTPStatusCode: res.StatusCode,
86569		},
86570	}
86571	target := &ret
86572	if err := gensupport.DecodeResponse(target, res); err != nil {
86573		return nil, err
86574	}
86575	return ret, nil
86576	// {
86577	//   "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.",
86578	//   "flatPath": "projects/{project}/global/instanceTemplates",
86579	//   "httpMethod": "POST",
86580	//   "id": "compute.instanceTemplates.insert",
86581	//   "parameterOrder": [
86582	//     "project"
86583	//   ],
86584	//   "parameters": {
86585	//     "project": {
86586	//       "description": "Project ID for this request.",
86587	//       "location": "path",
86588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86589	//       "required": true,
86590	//       "type": "string"
86591	//     },
86592	//     "requestId": {
86593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86594	//       "location": "query",
86595	//       "type": "string"
86596	//     }
86597	//   },
86598	//   "path": "projects/{project}/global/instanceTemplates",
86599	//   "request": {
86600	//     "$ref": "InstanceTemplate"
86601	//   },
86602	//   "response": {
86603	//     "$ref": "Operation"
86604	//   },
86605	//   "scopes": [
86606	//     "https://www.googleapis.com/auth/cloud-platform",
86607	//     "https://www.googleapis.com/auth/compute"
86608	//   ]
86609	// }
86610
86611}
86612
86613// method id "compute.instanceTemplates.list":
86614
86615type InstanceTemplatesListCall struct {
86616	s            *Service
86617	project      string
86618	urlParams_   gensupport.URLParams
86619	ifNoneMatch_ string
86620	ctx_         context.Context
86621	header_      http.Header
86622}
86623
86624// List: Retrieves a list of instance templates that are contained
86625// within the specified project.
86626//
86627// - project: Project ID for this request.
86628func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
86629	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86630	c.project = project
86631	return c
86632}
86633
86634// Filter sets the optional parameter "filter": A filter expression that
86635// filters resources listed in the response. The expression must specify
86636// the field name, a comparison operator, and the value that you want to
86637// use for filtering. The value must be a string, a number, or a
86638// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86639// `<`. For example, if you are filtering Compute Engine instances, you
86640// can exclude instances named `example-instance` by specifying `name !=
86641// example-instance`. You can also filter nested fields. For example,
86642// you could specify `scheduling.automaticRestart = false` to include
86643// instances only if they are not scheduled for automatic restarts. You
86644// can use filtering on nested fields to filter based on resource
86645// labels. To filter on multiple expressions, provide each separate
86646// expression within parentheses. For example: ```
86647// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
86648// ``` By default, each expression is an `AND` expression. However, you
86649// can include `AND` and `OR` expressions explicitly. For example: ```
86650// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
86651// AND (scheduling.automaticRestart = true) ```
86652func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
86653	c.urlParams_.Set("filter", filter)
86654	return c
86655}
86656
86657// MaxResults sets the optional parameter "maxResults": The maximum
86658// number of results per page that should be returned. If the number of
86659// available results is larger than `maxResults`, Compute Engine returns
86660// a `nextPageToken` that can be used to get the next page of results in
86661// subsequent list requests. Acceptable values are `0` to `500`,
86662// inclusive. (Default: `500`)
86663func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
86664	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86665	return c
86666}
86667
86668// OrderBy sets the optional parameter "orderBy": Sorts list results by
86669// a certain order. By default, results are returned in alphanumerical
86670// order based on the resource name. You can also sort results in
86671// descending order based on the creation timestamp using
86672// `orderBy="creationTimestamp desc". This sorts results based on the
86673// `creationTimestamp` field in reverse chronological order (newest
86674// result first). Use this to sort resources like operations so that the
86675// newest operation is returned first. Currently, only sorting by `name`
86676// or `creationTimestamp desc` is supported.
86677func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
86678	c.urlParams_.Set("orderBy", orderBy)
86679	return c
86680}
86681
86682// PageToken sets the optional parameter "pageToken": Specifies a page
86683// token to use. Set `pageToken` to the `nextPageToken` returned by a
86684// previous list request to get the next page of results.
86685func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
86686	c.urlParams_.Set("pageToken", pageToken)
86687	return c
86688}
86689
86690// ReturnPartialSuccess sets the optional parameter
86691// "returnPartialSuccess": Opt-in for partial success behavior which
86692// provides partial results in case of failure. The default value is
86693// false.
86694func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
86695	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86696	return c
86697}
86698
86699// Fields allows partial responses to be retrieved. See
86700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86701// for more information.
86702func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
86703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86704	return c
86705}
86706
86707// IfNoneMatch sets the optional parameter which makes the operation
86708// fail if the object's ETag matches the given value. This is useful for
86709// getting updates only after the object has changed since the last
86710// request. Use googleapi.IsNotModified to check whether the response
86711// error from Do is the result of In-None-Match.
86712func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
86713	c.ifNoneMatch_ = entityTag
86714	return c
86715}
86716
86717// Context sets the context to be used in this call's Do method. Any
86718// pending HTTP request will be aborted if the provided context is
86719// canceled.
86720func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
86721	c.ctx_ = ctx
86722	return c
86723}
86724
86725// Header returns an http.Header that can be modified by the caller to
86726// add HTTP headers to the request.
86727func (c *InstanceTemplatesListCall) Header() http.Header {
86728	if c.header_ == nil {
86729		c.header_ = make(http.Header)
86730	}
86731	return c.header_
86732}
86733
86734func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
86735	reqHeaders := make(http.Header)
86736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86737	for k, v := range c.header_ {
86738		reqHeaders[k] = v
86739	}
86740	reqHeaders.Set("User-Agent", c.s.userAgent())
86741	if c.ifNoneMatch_ != "" {
86742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86743	}
86744	var body io.Reader = nil
86745	c.urlParams_.Set("alt", alt)
86746	c.urlParams_.Set("prettyPrint", "false")
86747	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
86748	urls += "?" + c.urlParams_.Encode()
86749	req, err := http.NewRequest("GET", urls, body)
86750	if err != nil {
86751		return nil, err
86752	}
86753	req.Header = reqHeaders
86754	googleapi.Expand(req.URL, map[string]string{
86755		"project": c.project,
86756	})
86757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86758}
86759
86760// Do executes the "compute.instanceTemplates.list" call.
86761// Exactly one of *InstanceTemplateList or error will be non-nil. Any
86762// non-2xx status code is an error. Response headers are in either
86763// *InstanceTemplateList.ServerResponse.Header or (if a response was
86764// returned at all) in error.(*googleapi.Error).Header. Use
86765// googleapi.IsNotModified to check whether the returned error was
86766// because http.StatusNotModified was returned.
86767func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
86768	gensupport.SetOptions(c.urlParams_, opts...)
86769	res, err := c.doRequest("json")
86770	if res != nil && res.StatusCode == http.StatusNotModified {
86771		if res.Body != nil {
86772			res.Body.Close()
86773		}
86774		return nil, &googleapi.Error{
86775			Code:   res.StatusCode,
86776			Header: res.Header,
86777		}
86778	}
86779	if err != nil {
86780		return nil, err
86781	}
86782	defer googleapi.CloseBody(res)
86783	if err := googleapi.CheckResponse(res); err != nil {
86784		return nil, err
86785	}
86786	ret := &InstanceTemplateList{
86787		ServerResponse: googleapi.ServerResponse{
86788			Header:         res.Header,
86789			HTTPStatusCode: res.StatusCode,
86790		},
86791	}
86792	target := &ret
86793	if err := gensupport.DecodeResponse(target, res); err != nil {
86794		return nil, err
86795	}
86796	return ret, nil
86797	// {
86798	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
86799	//   "flatPath": "projects/{project}/global/instanceTemplates",
86800	//   "httpMethod": "GET",
86801	//   "id": "compute.instanceTemplates.list",
86802	//   "parameterOrder": [
86803	//     "project"
86804	//   ],
86805	//   "parameters": {
86806	//     "filter": {
86807	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86808	//       "location": "query",
86809	//       "type": "string"
86810	//     },
86811	//     "maxResults": {
86812	//       "default": "500",
86813	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86814	//       "format": "uint32",
86815	//       "location": "query",
86816	//       "minimum": "0",
86817	//       "type": "integer"
86818	//     },
86819	//     "orderBy": {
86820	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
86821	//       "location": "query",
86822	//       "type": "string"
86823	//     },
86824	//     "pageToken": {
86825	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86826	//       "location": "query",
86827	//       "type": "string"
86828	//     },
86829	//     "project": {
86830	//       "description": "Project ID for this request.",
86831	//       "location": "path",
86832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86833	//       "required": true,
86834	//       "type": "string"
86835	//     },
86836	//     "returnPartialSuccess": {
86837	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
86838	//       "location": "query",
86839	//       "type": "boolean"
86840	//     }
86841	//   },
86842	//   "path": "projects/{project}/global/instanceTemplates",
86843	//   "response": {
86844	//     "$ref": "InstanceTemplateList"
86845	//   },
86846	//   "scopes": [
86847	//     "https://www.googleapis.com/auth/cloud-platform",
86848	//     "https://www.googleapis.com/auth/compute",
86849	//     "https://www.googleapis.com/auth/compute.readonly"
86850	//   ]
86851	// }
86852
86853}
86854
86855// Pages invokes f for each page of results.
86856// A non-nil error returned from f will halt the iteration.
86857// The provided context supersedes any context provided to the Context method.
86858func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
86859	c.ctx_ = ctx
86860	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86861	for {
86862		x, err := c.Do()
86863		if err != nil {
86864			return err
86865		}
86866		if err := f(x); err != nil {
86867			return err
86868		}
86869		if x.NextPageToken == "" {
86870			return nil
86871		}
86872		c.PageToken(x.NextPageToken)
86873	}
86874}
86875
86876// method id "compute.instanceTemplates.setIamPolicy":
86877
86878type InstanceTemplatesSetIamPolicyCall struct {
86879	s                      *Service
86880	project                string
86881	resource               string
86882	globalsetpolicyrequest *GlobalSetPolicyRequest
86883	urlParams_             gensupport.URLParams
86884	ctx_                   context.Context
86885	header_                http.Header
86886}
86887
86888// SetIamPolicy: Sets the access control policy on the specified
86889// resource. Replaces any existing policy.
86890//
86891// - project: Project ID for this request.
86892// - resource: Name or id of the resource for this request.
86893func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
86894	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86895	c.project = project
86896	c.resource = resource
86897	c.globalsetpolicyrequest = globalsetpolicyrequest
86898	return c
86899}
86900
86901// Fields allows partial responses to be retrieved. See
86902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86903// for more information.
86904func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
86905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86906	return c
86907}
86908
86909// Context sets the context to be used in this call's Do method. Any
86910// pending HTTP request will be aborted if the provided context is
86911// canceled.
86912func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
86913	c.ctx_ = ctx
86914	return c
86915}
86916
86917// Header returns an http.Header that can be modified by the caller to
86918// add HTTP headers to the request.
86919func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
86920	if c.header_ == nil {
86921		c.header_ = make(http.Header)
86922	}
86923	return c.header_
86924}
86925
86926func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
86927	reqHeaders := make(http.Header)
86928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
86929	for k, v := range c.header_ {
86930		reqHeaders[k] = v
86931	}
86932	reqHeaders.Set("User-Agent", c.s.userAgent())
86933	var body io.Reader = nil
86934	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
86935	if err != nil {
86936		return nil, err
86937	}
86938	reqHeaders.Set("Content-Type", "application/json")
86939	c.urlParams_.Set("alt", alt)
86940	c.urlParams_.Set("prettyPrint", "false")
86941	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy")
86942	urls += "?" + c.urlParams_.Encode()
86943	req, err := http.NewRequest("POST", urls, body)
86944	if err != nil {
86945		return nil, err
86946	}
86947	req.Header = reqHeaders
86948	googleapi.Expand(req.URL, map[string]string{
86949		"project":  c.project,
86950		"resource": c.resource,
86951	})
86952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86953}
86954
86955// Do executes the "compute.instanceTemplates.setIamPolicy" call.
86956// Exactly one of *Policy or error will be non-nil. Any non-2xx status
86957// code is an error. Response headers are in either
86958// *Policy.ServerResponse.Header or (if a response was returned at all)
86959// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
86960// check whether the returned error was because http.StatusNotModified
86961// was returned.
86962func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
86963	gensupport.SetOptions(c.urlParams_, opts...)
86964	res, err := c.doRequest("json")
86965	if res != nil && res.StatusCode == http.StatusNotModified {
86966		if res.Body != nil {
86967			res.Body.Close()
86968		}
86969		return nil, &googleapi.Error{
86970			Code:   res.StatusCode,
86971			Header: res.Header,
86972		}
86973	}
86974	if err != nil {
86975		return nil, err
86976	}
86977	defer googleapi.CloseBody(res)
86978	if err := googleapi.CheckResponse(res); err != nil {
86979		return nil, err
86980	}
86981	ret := &Policy{
86982		ServerResponse: googleapi.ServerResponse{
86983			Header:         res.Header,
86984			HTTPStatusCode: res.StatusCode,
86985		},
86986	}
86987	target := &ret
86988	if err := gensupport.DecodeResponse(target, res); err != nil {
86989		return nil, err
86990	}
86991	return ret, nil
86992	// {
86993	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
86994	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
86995	//   "httpMethod": "POST",
86996	//   "id": "compute.instanceTemplates.setIamPolicy",
86997	//   "parameterOrder": [
86998	//     "project",
86999	//     "resource"
87000	//   ],
87001	//   "parameters": {
87002	//     "project": {
87003	//       "description": "Project ID for this request.",
87004	//       "location": "path",
87005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87006	//       "required": true,
87007	//       "type": "string"
87008	//     },
87009	//     "resource": {
87010	//       "description": "Name or id of the resource for this request.",
87011	//       "location": "path",
87012	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87013	//       "required": true,
87014	//       "type": "string"
87015	//     }
87016	//   },
87017	//   "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
87018	//   "request": {
87019	//     "$ref": "GlobalSetPolicyRequest"
87020	//   },
87021	//   "response": {
87022	//     "$ref": "Policy"
87023	//   },
87024	//   "scopes": [
87025	//     "https://www.googleapis.com/auth/cloud-platform",
87026	//     "https://www.googleapis.com/auth/compute"
87027	//   ]
87028	// }
87029
87030}
87031
87032// method id "compute.instanceTemplates.testIamPermissions":
87033
87034type InstanceTemplatesTestIamPermissionsCall struct {
87035	s                      *Service
87036	project                string
87037	resource               string
87038	testpermissionsrequest *TestPermissionsRequest
87039	urlParams_             gensupport.URLParams
87040	ctx_                   context.Context
87041	header_                http.Header
87042}
87043
87044// TestIamPermissions: Returns permissions that a caller has on the
87045// specified resource.
87046//
87047// - project: Project ID for this request.
87048// - resource: Name or id of the resource for this request.
87049func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
87050	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87051	c.project = project
87052	c.resource = resource
87053	c.testpermissionsrequest = testpermissionsrequest
87054	return c
87055}
87056
87057// Fields allows partial responses to be retrieved. See
87058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87059// for more information.
87060func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
87061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87062	return c
87063}
87064
87065// Context sets the context to be used in this call's Do method. Any
87066// pending HTTP request will be aborted if the provided context is
87067// canceled.
87068func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
87069	c.ctx_ = ctx
87070	return c
87071}
87072
87073// Header returns an http.Header that can be modified by the caller to
87074// add HTTP headers to the request.
87075func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
87076	if c.header_ == nil {
87077		c.header_ = make(http.Header)
87078	}
87079	return c.header_
87080}
87081
87082func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
87083	reqHeaders := make(http.Header)
87084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
87085	for k, v := range c.header_ {
87086		reqHeaders[k] = v
87087	}
87088	reqHeaders.Set("User-Agent", c.s.userAgent())
87089	var body io.Reader = nil
87090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
87091	if err != nil {
87092		return nil, err
87093	}
87094	reqHeaders.Set("Content-Type", "application/json")
87095	c.urlParams_.Set("alt", alt)
87096	c.urlParams_.Set("prettyPrint", "false")
87097	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions")
87098	urls += "?" + c.urlParams_.Encode()
87099	req, err := http.NewRequest("POST", urls, body)
87100	if err != nil {
87101		return nil, err
87102	}
87103	req.Header = reqHeaders
87104	googleapi.Expand(req.URL, map[string]string{
87105		"project":  c.project,
87106		"resource": c.resource,
87107	})
87108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87109}
87110
87111// Do executes the "compute.instanceTemplates.testIamPermissions" call.
87112// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
87113// non-2xx status code is an error. Response headers are in either
87114// *TestPermissionsResponse.ServerResponse.Header or (if a response was
87115// returned at all) in error.(*googleapi.Error).Header. Use
87116// googleapi.IsNotModified to check whether the returned error was
87117// because http.StatusNotModified was returned.
87118func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
87119	gensupport.SetOptions(c.urlParams_, opts...)
87120	res, err := c.doRequest("json")
87121	if res != nil && res.StatusCode == http.StatusNotModified {
87122		if res.Body != nil {
87123			res.Body.Close()
87124		}
87125		return nil, &googleapi.Error{
87126			Code:   res.StatusCode,
87127			Header: res.Header,
87128		}
87129	}
87130	if err != nil {
87131		return nil, err
87132	}
87133	defer googleapi.CloseBody(res)
87134	if err := googleapi.CheckResponse(res); err != nil {
87135		return nil, err
87136	}
87137	ret := &TestPermissionsResponse{
87138		ServerResponse: googleapi.ServerResponse{
87139			Header:         res.Header,
87140			HTTPStatusCode: res.StatusCode,
87141		},
87142	}
87143	target := &ret
87144	if err := gensupport.DecodeResponse(target, res); err != nil {
87145		return nil, err
87146	}
87147	return ret, nil
87148	// {
87149	//   "description": "Returns permissions that a caller has on the specified resource.",
87150	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
87151	//   "httpMethod": "POST",
87152	//   "id": "compute.instanceTemplates.testIamPermissions",
87153	//   "parameterOrder": [
87154	//     "project",
87155	//     "resource"
87156	//   ],
87157	//   "parameters": {
87158	//     "project": {
87159	//       "description": "Project ID for this request.",
87160	//       "location": "path",
87161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87162	//       "required": true,
87163	//       "type": "string"
87164	//     },
87165	//     "resource": {
87166	//       "description": "Name or id of the resource for this request.",
87167	//       "location": "path",
87168	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87169	//       "required": true,
87170	//       "type": "string"
87171	//     }
87172	//   },
87173	//   "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
87174	//   "request": {
87175	//     "$ref": "TestPermissionsRequest"
87176	//   },
87177	//   "response": {
87178	//     "$ref": "TestPermissionsResponse"
87179	//   },
87180	//   "scopes": [
87181	//     "https://www.googleapis.com/auth/cloud-platform",
87182	//     "https://www.googleapis.com/auth/compute",
87183	//     "https://www.googleapis.com/auth/compute.readonly"
87184	//   ]
87185	// }
87186
87187}
87188
87189// method id "compute.instances.addAccessConfig":
87190
87191type InstancesAddAccessConfigCall struct {
87192	s            *Service
87193	project      string
87194	zone         string
87195	instance     string
87196	accessconfig *AccessConfig
87197	urlParams_   gensupport.URLParams
87198	ctx_         context.Context
87199	header_      http.Header
87200}
87201
87202// AddAccessConfig: Adds an access config to an instance's network
87203// interface.
87204//
87205// - instance: The instance name for this request.
87206// - networkInterface: The name of the network interface to add to this
87207//   instance.
87208// - project: Project ID for this request.
87209// - zone: The name of the zone for this request.
87210func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
87211	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87212	c.project = project
87213	c.zone = zone
87214	c.instance = instance
87215	c.urlParams_.Set("networkInterface", networkInterface)
87216	c.accessconfig = accessconfig
87217	return c
87218}
87219
87220// RequestId sets the optional parameter "requestId": An optional
87221// request ID to identify requests. Specify a unique request ID so that
87222// if you must retry your request, the server will know to ignore the
87223// request if it has already been completed. For example, consider a
87224// situation where you make an initial request and the request times
87225// out. If you make the request again with the same request ID, the
87226// server can check if original operation with the same request ID was
87227// received, and if so, will ignore the second request. This prevents
87228// clients from accidentally creating duplicate commitments. The request
87229// ID must be a valid UUID with the exception that zero UUID is not
87230// supported ( 00000000-0000-0000-0000-000000000000).
87231func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
87232	c.urlParams_.Set("requestId", requestId)
87233	return c
87234}
87235
87236// Fields allows partial responses to be retrieved. See
87237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87238// for more information.
87239func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
87240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87241	return c
87242}
87243
87244// Context sets the context to be used in this call's Do method. Any
87245// pending HTTP request will be aborted if the provided context is
87246// canceled.
87247func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
87248	c.ctx_ = ctx
87249	return c
87250}
87251
87252// Header returns an http.Header that can be modified by the caller to
87253// add HTTP headers to the request.
87254func (c *InstancesAddAccessConfigCall) Header() http.Header {
87255	if c.header_ == nil {
87256		c.header_ = make(http.Header)
87257	}
87258	return c.header_
87259}
87260
87261func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
87262	reqHeaders := make(http.Header)
87263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
87264	for k, v := range c.header_ {
87265		reqHeaders[k] = v
87266	}
87267	reqHeaders.Set("User-Agent", c.s.userAgent())
87268	var body io.Reader = nil
87269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
87270	if err != nil {
87271		return nil, err
87272	}
87273	reqHeaders.Set("Content-Type", "application/json")
87274	c.urlParams_.Set("alt", alt)
87275	c.urlParams_.Set("prettyPrint", "false")
87276	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig")
87277	urls += "?" + c.urlParams_.Encode()
87278	req, err := http.NewRequest("POST", urls, body)
87279	if err != nil {
87280		return nil, err
87281	}
87282	req.Header = reqHeaders
87283	googleapi.Expand(req.URL, map[string]string{
87284		"project":  c.project,
87285		"zone":     c.zone,
87286		"instance": c.instance,
87287	})
87288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87289}
87290
87291// Do executes the "compute.instances.addAccessConfig" call.
87292// Exactly one of *Operation or error will be non-nil. Any non-2xx
87293// status code is an error. Response headers are in either
87294// *Operation.ServerResponse.Header or (if a response was returned at
87295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87296// to check whether the returned error was because
87297// http.StatusNotModified was returned.
87298func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87299	gensupport.SetOptions(c.urlParams_, opts...)
87300	res, err := c.doRequest("json")
87301	if res != nil && res.StatusCode == http.StatusNotModified {
87302		if res.Body != nil {
87303			res.Body.Close()
87304		}
87305		return nil, &googleapi.Error{
87306			Code:   res.StatusCode,
87307			Header: res.Header,
87308		}
87309	}
87310	if err != nil {
87311		return nil, err
87312	}
87313	defer googleapi.CloseBody(res)
87314	if err := googleapi.CheckResponse(res); err != nil {
87315		return nil, err
87316	}
87317	ret := &Operation{
87318		ServerResponse: googleapi.ServerResponse{
87319			Header:         res.Header,
87320			HTTPStatusCode: res.StatusCode,
87321		},
87322	}
87323	target := &ret
87324	if err := gensupport.DecodeResponse(target, res); err != nil {
87325		return nil, err
87326	}
87327	return ret, nil
87328	// {
87329	//   "description": "Adds an access config to an instance's network interface.",
87330	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
87331	//   "httpMethod": "POST",
87332	//   "id": "compute.instances.addAccessConfig",
87333	//   "parameterOrder": [
87334	//     "project",
87335	//     "zone",
87336	//     "instance",
87337	//     "networkInterface"
87338	//   ],
87339	//   "parameters": {
87340	//     "instance": {
87341	//       "description": "The instance name for this request.",
87342	//       "location": "path",
87343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87344	//       "required": true,
87345	//       "type": "string"
87346	//     },
87347	//     "networkInterface": {
87348	//       "description": "The name of the network interface to add to this instance.",
87349	//       "location": "query",
87350	//       "required": true,
87351	//       "type": "string"
87352	//     },
87353	//     "project": {
87354	//       "description": "Project ID for this request.",
87355	//       "location": "path",
87356	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87357	//       "required": true,
87358	//       "type": "string"
87359	//     },
87360	//     "requestId": {
87361	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
87362	//       "location": "query",
87363	//       "type": "string"
87364	//     },
87365	//     "zone": {
87366	//       "description": "The name of the zone for this request.",
87367	//       "location": "path",
87368	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87369	//       "required": true,
87370	//       "type": "string"
87371	//     }
87372	//   },
87373	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
87374	//   "request": {
87375	//     "$ref": "AccessConfig"
87376	//   },
87377	//   "response": {
87378	//     "$ref": "Operation"
87379	//   },
87380	//   "scopes": [
87381	//     "https://www.googleapis.com/auth/cloud-platform",
87382	//     "https://www.googleapis.com/auth/compute"
87383	//   ]
87384	// }
87385
87386}
87387
87388// method id "compute.instances.addResourcePolicies":
87389
87390type InstancesAddResourcePoliciesCall struct {
87391	s                                   *Service
87392	project                             string
87393	zone                                string
87394	instance                            string
87395	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
87396	urlParams_                          gensupport.URLParams
87397	ctx_                                context.Context
87398	header_                             http.Header
87399}
87400
87401// AddResourcePolicies: Adds existing resource policies to an instance.
87402// You can only add one policy right now which will be applied to this
87403// instance for scheduling live migrations.
87404//
87405// - instance: The instance name for this request.
87406// - project: Project ID for this request.
87407// - zone: The name of the zone for this request.
87408func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
87409	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87410	c.project = project
87411	c.zone = zone
87412	c.instance = instance
87413	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
87414	return c
87415}
87416
87417// RequestId sets the optional parameter "requestId": An optional
87418// request ID to identify requests. Specify a unique request ID so that
87419// if you must retry your request, the server will know to ignore the
87420// request if it has already been completed. For example, consider a
87421// situation where you make an initial request and the request times
87422// out. If you make the request again with the same request ID, the
87423// server can check if original operation with the same request ID was
87424// received, and if so, will ignore the second request. This prevents
87425// clients from accidentally creating duplicate commitments. The request
87426// ID must be a valid UUID with the exception that zero UUID is not
87427// supported ( 00000000-0000-0000-0000-000000000000).
87428func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
87429	c.urlParams_.Set("requestId", requestId)
87430	return c
87431}
87432
87433// Fields allows partial responses to be retrieved. See
87434// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87435// for more information.
87436func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
87437	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87438	return c
87439}
87440
87441// Context sets the context to be used in this call's Do method. Any
87442// pending HTTP request will be aborted if the provided context is
87443// canceled.
87444func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
87445	c.ctx_ = ctx
87446	return c
87447}
87448
87449// Header returns an http.Header that can be modified by the caller to
87450// add HTTP headers to the request.
87451func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
87452	if c.header_ == nil {
87453		c.header_ = make(http.Header)
87454	}
87455	return c.header_
87456}
87457
87458func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
87459	reqHeaders := make(http.Header)
87460	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
87461	for k, v := range c.header_ {
87462		reqHeaders[k] = v
87463	}
87464	reqHeaders.Set("User-Agent", c.s.userAgent())
87465	var body io.Reader = nil
87466	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
87467	if err != nil {
87468		return nil, err
87469	}
87470	reqHeaders.Set("Content-Type", "application/json")
87471	c.urlParams_.Set("alt", alt)
87472	c.urlParams_.Set("prettyPrint", "false")
87473	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
87474	urls += "?" + c.urlParams_.Encode()
87475	req, err := http.NewRequest("POST", urls, body)
87476	if err != nil {
87477		return nil, err
87478	}
87479	req.Header = reqHeaders
87480	googleapi.Expand(req.URL, map[string]string{
87481		"project":  c.project,
87482		"zone":     c.zone,
87483		"instance": c.instance,
87484	})
87485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87486}
87487
87488// Do executes the "compute.instances.addResourcePolicies" call.
87489// Exactly one of *Operation or error will be non-nil. Any non-2xx
87490// status code is an error. Response headers are in either
87491// *Operation.ServerResponse.Header or (if a response was returned at
87492// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87493// to check whether the returned error was because
87494// http.StatusNotModified was returned.
87495func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87496	gensupport.SetOptions(c.urlParams_, opts...)
87497	res, err := c.doRequest("json")
87498	if res != nil && res.StatusCode == http.StatusNotModified {
87499		if res.Body != nil {
87500			res.Body.Close()
87501		}
87502		return nil, &googleapi.Error{
87503			Code:   res.StatusCode,
87504			Header: res.Header,
87505		}
87506	}
87507	if err != nil {
87508		return nil, err
87509	}
87510	defer googleapi.CloseBody(res)
87511	if err := googleapi.CheckResponse(res); err != nil {
87512		return nil, err
87513	}
87514	ret := &Operation{
87515		ServerResponse: googleapi.ServerResponse{
87516			Header:         res.Header,
87517			HTTPStatusCode: res.StatusCode,
87518		},
87519	}
87520	target := &ret
87521	if err := gensupport.DecodeResponse(target, res); err != nil {
87522		return nil, err
87523	}
87524	return ret, nil
87525	// {
87526	//   "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.",
87527	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
87528	//   "httpMethod": "POST",
87529	//   "id": "compute.instances.addResourcePolicies",
87530	//   "parameterOrder": [
87531	//     "project",
87532	//     "zone",
87533	//     "instance"
87534	//   ],
87535	//   "parameters": {
87536	//     "instance": {
87537	//       "description": "The instance name for this request.",
87538	//       "location": "path",
87539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87540	//       "required": true,
87541	//       "type": "string"
87542	//     },
87543	//     "project": {
87544	//       "description": "Project ID for this request.",
87545	//       "location": "path",
87546	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87547	//       "required": true,
87548	//       "type": "string"
87549	//     },
87550	//     "requestId": {
87551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
87552	//       "location": "query",
87553	//       "type": "string"
87554	//     },
87555	//     "zone": {
87556	//       "description": "The name of the zone for this request.",
87557	//       "location": "path",
87558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87559	//       "required": true,
87560	//       "type": "string"
87561	//     }
87562	//   },
87563	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
87564	//   "request": {
87565	//     "$ref": "InstancesAddResourcePoliciesRequest"
87566	//   },
87567	//   "response": {
87568	//     "$ref": "Operation"
87569	//   },
87570	//   "scopes": [
87571	//     "https://www.googleapis.com/auth/cloud-platform",
87572	//     "https://www.googleapis.com/auth/compute"
87573	//   ]
87574	// }
87575
87576}
87577
87578// method id "compute.instances.aggregatedList":
87579
87580type InstancesAggregatedListCall struct {
87581	s            *Service
87582	project      string
87583	urlParams_   gensupport.URLParams
87584	ifNoneMatch_ string
87585	ctx_         context.Context
87586	header_      http.Header
87587}
87588
87589// AggregatedList: Retrieves aggregated list of all of the instances in
87590// your project across all regions and zones.
87591//
87592// - project: Project ID for this request.
87593func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
87594	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87595	c.project = project
87596	return c
87597}
87598
87599// Filter sets the optional parameter "filter": A filter expression that
87600// filters resources listed in the response. The expression must specify
87601// the field name, a comparison operator, and the value that you want to
87602// use for filtering. The value must be a string, a number, or a
87603// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87604// `<`. For example, if you are filtering Compute Engine instances, you
87605// can exclude instances named `example-instance` by specifying `name !=
87606// example-instance`. You can also filter nested fields. For example,
87607// you could specify `scheduling.automaticRestart = false` to include
87608// instances only if they are not scheduled for automatic restarts. You
87609// can use filtering on nested fields to filter based on resource
87610// labels. To filter on multiple expressions, provide each separate
87611// expression within parentheses. For example: ```
87612// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
87613// ``` By default, each expression is an `AND` expression. However, you
87614// can include `AND` and `OR` expressions explicitly. For example: ```
87615// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
87616// AND (scheduling.automaticRestart = true) ```
87617func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
87618	c.urlParams_.Set("filter", filter)
87619	return c
87620}
87621
87622// IncludeAllScopes sets the optional parameter "includeAllScopes":
87623// Indicates whether every visible scope for each scope type (zone,
87624// region, global) should be included in the response. For new resource
87625// types added after this field, the flag has no effect as new resource
87626// types will always include every visible scope for each scope type in
87627// response. For resource types which predate this field, if this flag
87628// is omitted or false, only scopes of the scope types where the
87629// resource type is expected to be found will be included.
87630func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
87631	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
87632	return c
87633}
87634
87635// MaxResults sets the optional parameter "maxResults": The maximum
87636// number of results per page that should be returned. If the number of
87637// available results is larger than `maxResults`, Compute Engine returns
87638// a `nextPageToken` that can be used to get the next page of results in
87639// subsequent list requests. Acceptable values are `0` to `500`,
87640// inclusive. (Default: `500`)
87641func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
87642	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87643	return c
87644}
87645
87646// OrderBy sets the optional parameter "orderBy": Sorts list results by
87647// a certain order. By default, results are returned in alphanumerical
87648// order based on the resource name. You can also sort results in
87649// descending order based on the creation timestamp using
87650// `orderBy="creationTimestamp desc". This sorts results based on the
87651// `creationTimestamp` field in reverse chronological order (newest
87652// result first). Use this to sort resources like operations so that the
87653// newest operation is returned first. Currently, only sorting by `name`
87654// or `creationTimestamp desc` is supported.
87655func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
87656	c.urlParams_.Set("orderBy", orderBy)
87657	return c
87658}
87659
87660// PageToken sets the optional parameter "pageToken": Specifies a page
87661// token to use. Set `pageToken` to the `nextPageToken` returned by a
87662// previous list request to get the next page of results.
87663func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
87664	c.urlParams_.Set("pageToken", pageToken)
87665	return c
87666}
87667
87668// ReturnPartialSuccess sets the optional parameter
87669// "returnPartialSuccess": Opt-in for partial success behavior which
87670// provides partial results in case of failure. The default value is
87671// false.
87672func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
87673	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
87674	return c
87675}
87676
87677// Fields allows partial responses to be retrieved. See
87678// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87679// for more information.
87680func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
87681	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87682	return c
87683}
87684
87685// IfNoneMatch sets the optional parameter which makes the operation
87686// fail if the object's ETag matches the given value. This is useful for
87687// getting updates only after the object has changed since the last
87688// request. Use googleapi.IsNotModified to check whether the response
87689// error from Do is the result of In-None-Match.
87690func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
87691	c.ifNoneMatch_ = entityTag
87692	return c
87693}
87694
87695// Context sets the context to be used in this call's Do method. Any
87696// pending HTTP request will be aborted if the provided context is
87697// canceled.
87698func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
87699	c.ctx_ = ctx
87700	return c
87701}
87702
87703// Header returns an http.Header that can be modified by the caller to
87704// add HTTP headers to the request.
87705func (c *InstancesAggregatedListCall) Header() http.Header {
87706	if c.header_ == nil {
87707		c.header_ = make(http.Header)
87708	}
87709	return c.header_
87710}
87711
87712func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
87713	reqHeaders := make(http.Header)
87714	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
87715	for k, v := range c.header_ {
87716		reqHeaders[k] = v
87717	}
87718	reqHeaders.Set("User-Agent", c.s.userAgent())
87719	if c.ifNoneMatch_ != "" {
87720		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87721	}
87722	var body io.Reader = nil
87723	c.urlParams_.Set("alt", alt)
87724	c.urlParams_.Set("prettyPrint", "false")
87725	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances")
87726	urls += "?" + c.urlParams_.Encode()
87727	req, err := http.NewRequest("GET", urls, body)
87728	if err != nil {
87729		return nil, err
87730	}
87731	req.Header = reqHeaders
87732	googleapi.Expand(req.URL, map[string]string{
87733		"project": c.project,
87734	})
87735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87736}
87737
87738// Do executes the "compute.instances.aggregatedList" call.
87739// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
87740// non-2xx status code is an error. Response headers are in either
87741// *InstanceAggregatedList.ServerResponse.Header or (if a response was
87742// returned at all) in error.(*googleapi.Error).Header. Use
87743// googleapi.IsNotModified to check whether the returned error was
87744// because http.StatusNotModified was returned.
87745func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
87746	gensupport.SetOptions(c.urlParams_, opts...)
87747	res, err := c.doRequest("json")
87748	if res != nil && res.StatusCode == http.StatusNotModified {
87749		if res.Body != nil {
87750			res.Body.Close()
87751		}
87752		return nil, &googleapi.Error{
87753			Code:   res.StatusCode,
87754			Header: res.Header,
87755		}
87756	}
87757	if err != nil {
87758		return nil, err
87759	}
87760	defer googleapi.CloseBody(res)
87761	if err := googleapi.CheckResponse(res); err != nil {
87762		return nil, err
87763	}
87764	ret := &InstanceAggregatedList{
87765		ServerResponse: googleapi.ServerResponse{
87766			Header:         res.Header,
87767			HTTPStatusCode: res.StatusCode,
87768		},
87769	}
87770	target := &ret
87771	if err := gensupport.DecodeResponse(target, res); err != nil {
87772		return nil, err
87773	}
87774	return ret, nil
87775	// {
87776	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
87777	//   "flatPath": "projects/{project}/aggregated/instances",
87778	//   "httpMethod": "GET",
87779	//   "id": "compute.instances.aggregatedList",
87780	//   "parameterOrder": [
87781	//     "project"
87782	//   ],
87783	//   "parameters": {
87784	//     "filter": {
87785	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
87786	//       "location": "query",
87787	//       "type": "string"
87788	//     },
87789	//     "includeAllScopes": {
87790	//       "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.",
87791	//       "location": "query",
87792	//       "type": "boolean"
87793	//     },
87794	//     "maxResults": {
87795	//       "default": "500",
87796	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
87797	//       "format": "uint32",
87798	//       "location": "query",
87799	//       "minimum": "0",
87800	//       "type": "integer"
87801	//     },
87802	//     "orderBy": {
87803	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
87804	//       "location": "query",
87805	//       "type": "string"
87806	//     },
87807	//     "pageToken": {
87808	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
87809	//       "location": "query",
87810	//       "type": "string"
87811	//     },
87812	//     "project": {
87813	//       "description": "Project ID for this request.",
87814	//       "location": "path",
87815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87816	//       "required": true,
87817	//       "type": "string"
87818	//     },
87819	//     "returnPartialSuccess": {
87820	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
87821	//       "location": "query",
87822	//       "type": "boolean"
87823	//     }
87824	//   },
87825	//   "path": "projects/{project}/aggregated/instances",
87826	//   "response": {
87827	//     "$ref": "InstanceAggregatedList"
87828	//   },
87829	//   "scopes": [
87830	//     "https://www.googleapis.com/auth/cloud-platform",
87831	//     "https://www.googleapis.com/auth/compute",
87832	//     "https://www.googleapis.com/auth/compute.readonly"
87833	//   ]
87834	// }
87835
87836}
87837
87838// Pages invokes f for each page of results.
87839// A non-nil error returned from f will halt the iteration.
87840// The provided context supersedes any context provided to the Context method.
87841func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
87842	c.ctx_ = ctx
87843	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87844	for {
87845		x, err := c.Do()
87846		if err != nil {
87847			return err
87848		}
87849		if err := f(x); err != nil {
87850			return err
87851		}
87852		if x.NextPageToken == "" {
87853			return nil
87854		}
87855		c.PageToken(x.NextPageToken)
87856	}
87857}
87858
87859// method id "compute.instances.attachDisk":
87860
87861type InstancesAttachDiskCall struct {
87862	s            *Service
87863	project      string
87864	zone         string
87865	instance     string
87866	attacheddisk *AttachedDisk
87867	urlParams_   gensupport.URLParams
87868	ctx_         context.Context
87869	header_      http.Header
87870}
87871
87872// AttachDisk: Attaches an existing Disk resource to an instance. You
87873// must first create the disk before you can attach it. It is not
87874// possible to create and attach a disk at the same time. For more
87875// information, read Adding a persistent disk to your instance.
87876//
87877// - instance: The instance name for this request.
87878// - project: Project ID for this request.
87879// - zone: The name of the zone for this request.
87880func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
87881	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87882	c.project = project
87883	c.zone = zone
87884	c.instance = instance
87885	c.attacheddisk = attacheddisk
87886	return c
87887}
87888
87889// ForceAttach sets the optional parameter "forceAttach": Whether to
87890// force attach the regional disk even if it's currently attached to
87891// another instance. If you try to force attach a zonal disk to an
87892// instance, you will receive an error.
87893func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
87894	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
87895	return c
87896}
87897
87898// RequestId sets the optional parameter "requestId": An optional
87899// request ID to identify requests. Specify a unique request ID so that
87900// if you must retry your request, the server will know to ignore the
87901// request if it has already been completed. For example, consider a
87902// situation where you make an initial request and the request times
87903// out. If you make the request again with the same request ID, the
87904// server can check if original operation with the same request ID was
87905// received, and if so, will ignore the second request. This prevents
87906// clients from accidentally creating duplicate commitments. The request
87907// ID must be a valid UUID with the exception that zero UUID is not
87908// supported ( 00000000-0000-0000-0000-000000000000).
87909func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
87910	c.urlParams_.Set("requestId", requestId)
87911	return c
87912}
87913
87914// Fields allows partial responses to be retrieved. See
87915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87916// for more information.
87917func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
87918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87919	return c
87920}
87921
87922// Context sets the context to be used in this call's Do method. Any
87923// pending HTTP request will be aborted if the provided context is
87924// canceled.
87925func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
87926	c.ctx_ = ctx
87927	return c
87928}
87929
87930// Header returns an http.Header that can be modified by the caller to
87931// add HTTP headers to the request.
87932func (c *InstancesAttachDiskCall) Header() http.Header {
87933	if c.header_ == nil {
87934		c.header_ = make(http.Header)
87935	}
87936	return c.header_
87937}
87938
87939func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
87940	reqHeaders := make(http.Header)
87941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
87942	for k, v := range c.header_ {
87943		reqHeaders[k] = v
87944	}
87945	reqHeaders.Set("User-Agent", c.s.userAgent())
87946	var body io.Reader = nil
87947	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
87948	if err != nil {
87949		return nil, err
87950	}
87951	reqHeaders.Set("Content-Type", "application/json")
87952	c.urlParams_.Set("alt", alt)
87953	c.urlParams_.Set("prettyPrint", "false")
87954	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk")
87955	urls += "?" + c.urlParams_.Encode()
87956	req, err := http.NewRequest("POST", urls, body)
87957	if err != nil {
87958		return nil, err
87959	}
87960	req.Header = reqHeaders
87961	googleapi.Expand(req.URL, map[string]string{
87962		"project":  c.project,
87963		"zone":     c.zone,
87964		"instance": c.instance,
87965	})
87966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87967}
87968
87969// Do executes the "compute.instances.attachDisk" call.
87970// Exactly one of *Operation or error will be non-nil. Any non-2xx
87971// status code is an error. Response headers are in either
87972// *Operation.ServerResponse.Header or (if a response was returned at
87973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87974// to check whether the returned error was because
87975// http.StatusNotModified was returned.
87976func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87977	gensupport.SetOptions(c.urlParams_, opts...)
87978	res, err := c.doRequest("json")
87979	if res != nil && res.StatusCode == http.StatusNotModified {
87980		if res.Body != nil {
87981			res.Body.Close()
87982		}
87983		return nil, &googleapi.Error{
87984			Code:   res.StatusCode,
87985			Header: res.Header,
87986		}
87987	}
87988	if err != nil {
87989		return nil, err
87990	}
87991	defer googleapi.CloseBody(res)
87992	if err := googleapi.CheckResponse(res); err != nil {
87993		return nil, err
87994	}
87995	ret := &Operation{
87996		ServerResponse: googleapi.ServerResponse{
87997			Header:         res.Header,
87998			HTTPStatusCode: res.StatusCode,
87999		},
88000	}
88001	target := &ret
88002	if err := gensupport.DecodeResponse(target, res); err != nil {
88003		return nil, err
88004	}
88005	return ret, nil
88006	// {
88007	//   "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.",
88008	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
88009	//   "httpMethod": "POST",
88010	//   "id": "compute.instances.attachDisk",
88011	//   "parameterOrder": [
88012	//     "project",
88013	//     "zone",
88014	//     "instance"
88015	//   ],
88016	//   "parameters": {
88017	//     "forceAttach": {
88018	//       "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.",
88019	//       "location": "query",
88020	//       "type": "boolean"
88021	//     },
88022	//     "instance": {
88023	//       "description": "The instance name for this request.",
88024	//       "location": "path",
88025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88026	//       "required": true,
88027	//       "type": "string"
88028	//     },
88029	//     "project": {
88030	//       "description": "Project ID for this request.",
88031	//       "location": "path",
88032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88033	//       "required": true,
88034	//       "type": "string"
88035	//     },
88036	//     "requestId": {
88037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88038	//       "location": "query",
88039	//       "type": "string"
88040	//     },
88041	//     "zone": {
88042	//       "description": "The name of the zone for this request.",
88043	//       "location": "path",
88044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88045	//       "required": true,
88046	//       "type": "string"
88047	//     }
88048	//   },
88049	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
88050	//   "request": {
88051	//     "$ref": "AttachedDisk"
88052	//   },
88053	//   "response": {
88054	//     "$ref": "Operation"
88055	//   },
88056	//   "scopes": [
88057	//     "https://www.googleapis.com/auth/cloud-platform",
88058	//     "https://www.googleapis.com/auth/compute"
88059	//   ]
88060	// }
88061
88062}
88063
88064// method id "compute.instances.bulkInsert":
88065
88066type InstancesBulkInsertCall struct {
88067	s                          *Service
88068	project                    string
88069	zone                       string
88070	bulkinsertinstanceresource *BulkInsertInstanceResource
88071	urlParams_                 gensupport.URLParams
88072	ctx_                       context.Context
88073	header_                    http.Header
88074}
88075
88076// BulkInsert: Creates multiple instances. Count specifies the number of
88077// instances to create.
88078//
88079// - project: Project ID for this request.
88080// - zone: The name of the zone for this request.
88081func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
88082	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88083	c.project = project
88084	c.zone = zone
88085	c.bulkinsertinstanceresource = bulkinsertinstanceresource
88086	return c
88087}
88088
88089// RequestId sets the optional parameter "requestId": An optional
88090// request ID to identify requests. Specify a unique request ID so that
88091// if you must retry your request, the server will know to ignore the
88092// request if it has already been completed. For example, consider a
88093// situation where you make an initial request and the request times
88094// out. If you make the request again with the same request ID, the
88095// server can check if original operation with the same request ID was
88096// received, and if so, will ignore the second request. This prevents
88097// clients from accidentally creating duplicate commitments. The request
88098// ID must be a valid UUID with the exception that zero UUID is not
88099// supported ( 00000000-0000-0000-0000-000000000000).
88100func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
88101	c.urlParams_.Set("requestId", requestId)
88102	return c
88103}
88104
88105// Fields allows partial responses to be retrieved. See
88106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88107// for more information.
88108func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
88109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88110	return c
88111}
88112
88113// Context sets the context to be used in this call's Do method. Any
88114// pending HTTP request will be aborted if the provided context is
88115// canceled.
88116func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
88117	c.ctx_ = ctx
88118	return c
88119}
88120
88121// Header returns an http.Header that can be modified by the caller to
88122// add HTTP headers to the request.
88123func (c *InstancesBulkInsertCall) Header() http.Header {
88124	if c.header_ == nil {
88125		c.header_ = make(http.Header)
88126	}
88127	return c.header_
88128}
88129
88130func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
88131	reqHeaders := make(http.Header)
88132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
88133	for k, v := range c.header_ {
88134		reqHeaders[k] = v
88135	}
88136	reqHeaders.Set("User-Agent", c.s.userAgent())
88137	var body io.Reader = nil
88138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
88139	if err != nil {
88140		return nil, err
88141	}
88142	reqHeaders.Set("Content-Type", "application/json")
88143	c.urlParams_.Set("alt", alt)
88144	c.urlParams_.Set("prettyPrint", "false")
88145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert")
88146	urls += "?" + c.urlParams_.Encode()
88147	req, err := http.NewRequest("POST", urls, body)
88148	if err != nil {
88149		return nil, err
88150	}
88151	req.Header = reqHeaders
88152	googleapi.Expand(req.URL, map[string]string{
88153		"project": c.project,
88154		"zone":    c.zone,
88155	})
88156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88157}
88158
88159// Do executes the "compute.instances.bulkInsert" call.
88160// Exactly one of *Operation or error will be non-nil. Any non-2xx
88161// status code is an error. Response headers are in either
88162// *Operation.ServerResponse.Header or (if a response was returned at
88163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88164// to check whether the returned error was because
88165// http.StatusNotModified was returned.
88166func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88167	gensupport.SetOptions(c.urlParams_, opts...)
88168	res, err := c.doRequest("json")
88169	if res != nil && res.StatusCode == http.StatusNotModified {
88170		if res.Body != nil {
88171			res.Body.Close()
88172		}
88173		return nil, &googleapi.Error{
88174			Code:   res.StatusCode,
88175			Header: res.Header,
88176		}
88177	}
88178	if err != nil {
88179		return nil, err
88180	}
88181	defer googleapi.CloseBody(res)
88182	if err := googleapi.CheckResponse(res); err != nil {
88183		return nil, err
88184	}
88185	ret := &Operation{
88186		ServerResponse: googleapi.ServerResponse{
88187			Header:         res.Header,
88188			HTTPStatusCode: res.StatusCode,
88189		},
88190	}
88191	target := &ret
88192	if err := gensupport.DecodeResponse(target, res); err != nil {
88193		return nil, err
88194	}
88195	return ret, nil
88196	// {
88197	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
88198	//   "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert",
88199	//   "httpMethod": "POST",
88200	//   "id": "compute.instances.bulkInsert",
88201	//   "parameterOrder": [
88202	//     "project",
88203	//     "zone"
88204	//   ],
88205	//   "parameters": {
88206	//     "project": {
88207	//       "description": "Project ID for this request.",
88208	//       "location": "path",
88209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88210	//       "required": true,
88211	//       "type": "string"
88212	//     },
88213	//     "requestId": {
88214	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88215	//       "location": "query",
88216	//       "type": "string"
88217	//     },
88218	//     "zone": {
88219	//       "description": "The name of the zone for this request.",
88220	//       "location": "path",
88221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88222	//       "required": true,
88223	//       "type": "string"
88224	//     }
88225	//   },
88226	//   "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
88227	//   "request": {
88228	//     "$ref": "BulkInsertInstanceResource"
88229	//   },
88230	//   "response": {
88231	//     "$ref": "Operation"
88232	//   },
88233	//   "scopes": [
88234	//     "https://www.googleapis.com/auth/cloud-platform",
88235	//     "https://www.googleapis.com/auth/compute"
88236	//   ]
88237	// }
88238
88239}
88240
88241// method id "compute.instances.delete":
88242
88243type InstancesDeleteCall struct {
88244	s          *Service
88245	project    string
88246	zone       string
88247	instance   string
88248	urlParams_ gensupport.URLParams
88249	ctx_       context.Context
88250	header_    http.Header
88251}
88252
88253// Delete: Deletes the specified Instance resource. For more
88254// information, see Deleting an instance.
88255//
88256// - instance: Name of the instance resource to delete.
88257// - project: Project ID for this request.
88258// - zone: The name of the zone for this request.
88259func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
88260	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88261	c.project = project
88262	c.zone = zone
88263	c.instance = instance
88264	return c
88265}
88266
88267// RequestId sets the optional parameter "requestId": An optional
88268// request ID to identify requests. Specify a unique request ID so that
88269// if you must retry your request, the server will know to ignore the
88270// request if it has already been completed. For example, consider a
88271// situation where you make an initial request and the request times
88272// out. If you make the request again with the same request ID, the
88273// server can check if original operation with the same request ID was
88274// received, and if so, will ignore the second request. This prevents
88275// clients from accidentally creating duplicate commitments. The request
88276// ID must be a valid UUID with the exception that zero UUID is not
88277// supported ( 00000000-0000-0000-0000-000000000000).
88278func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
88279	c.urlParams_.Set("requestId", requestId)
88280	return c
88281}
88282
88283// Fields allows partial responses to be retrieved. See
88284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88285// for more information.
88286func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
88287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88288	return c
88289}
88290
88291// Context sets the context to be used in this call's Do method. Any
88292// pending HTTP request will be aborted if the provided context is
88293// canceled.
88294func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
88295	c.ctx_ = ctx
88296	return c
88297}
88298
88299// Header returns an http.Header that can be modified by the caller to
88300// add HTTP headers to the request.
88301func (c *InstancesDeleteCall) Header() http.Header {
88302	if c.header_ == nil {
88303		c.header_ = make(http.Header)
88304	}
88305	return c.header_
88306}
88307
88308func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
88309	reqHeaders := make(http.Header)
88310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
88311	for k, v := range c.header_ {
88312		reqHeaders[k] = v
88313	}
88314	reqHeaders.Set("User-Agent", c.s.userAgent())
88315	var body io.Reader = nil
88316	c.urlParams_.Set("alt", alt)
88317	c.urlParams_.Set("prettyPrint", "false")
88318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
88319	urls += "?" + c.urlParams_.Encode()
88320	req, err := http.NewRequest("DELETE", urls, body)
88321	if err != nil {
88322		return nil, err
88323	}
88324	req.Header = reqHeaders
88325	googleapi.Expand(req.URL, map[string]string{
88326		"project":  c.project,
88327		"zone":     c.zone,
88328		"instance": c.instance,
88329	})
88330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88331}
88332
88333// Do executes the "compute.instances.delete" call.
88334// Exactly one of *Operation or error will be non-nil. Any non-2xx
88335// status code is an error. Response headers are in either
88336// *Operation.ServerResponse.Header or (if a response was returned at
88337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88338// to check whether the returned error was because
88339// http.StatusNotModified was returned.
88340func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88341	gensupport.SetOptions(c.urlParams_, opts...)
88342	res, err := c.doRequest("json")
88343	if res != nil && res.StatusCode == http.StatusNotModified {
88344		if res.Body != nil {
88345			res.Body.Close()
88346		}
88347		return nil, &googleapi.Error{
88348			Code:   res.StatusCode,
88349			Header: res.Header,
88350		}
88351	}
88352	if err != nil {
88353		return nil, err
88354	}
88355	defer googleapi.CloseBody(res)
88356	if err := googleapi.CheckResponse(res); err != nil {
88357		return nil, err
88358	}
88359	ret := &Operation{
88360		ServerResponse: googleapi.ServerResponse{
88361			Header:         res.Header,
88362			HTTPStatusCode: res.StatusCode,
88363		},
88364	}
88365	target := &ret
88366	if err := gensupport.DecodeResponse(target, res); err != nil {
88367		return nil, err
88368	}
88369	return ret, nil
88370	// {
88371	//   "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.",
88372	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
88373	//   "httpMethod": "DELETE",
88374	//   "id": "compute.instances.delete",
88375	//   "parameterOrder": [
88376	//     "project",
88377	//     "zone",
88378	//     "instance"
88379	//   ],
88380	//   "parameters": {
88381	//     "instance": {
88382	//       "description": "Name of the instance resource to delete.",
88383	//       "location": "path",
88384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88385	//       "required": true,
88386	//       "type": "string"
88387	//     },
88388	//     "project": {
88389	//       "description": "Project ID for this request.",
88390	//       "location": "path",
88391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88392	//       "required": true,
88393	//       "type": "string"
88394	//     },
88395	//     "requestId": {
88396	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88397	//       "location": "query",
88398	//       "type": "string"
88399	//     },
88400	//     "zone": {
88401	//       "description": "The name of the zone for this request.",
88402	//       "location": "path",
88403	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88404	//       "required": true,
88405	//       "type": "string"
88406	//     }
88407	//   },
88408	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
88409	//   "response": {
88410	//     "$ref": "Operation"
88411	//   },
88412	//   "scopes": [
88413	//     "https://www.googleapis.com/auth/cloud-platform",
88414	//     "https://www.googleapis.com/auth/compute"
88415	//   ]
88416	// }
88417
88418}
88419
88420// method id "compute.instances.deleteAccessConfig":
88421
88422type InstancesDeleteAccessConfigCall struct {
88423	s          *Service
88424	project    string
88425	zone       string
88426	instance   string
88427	urlParams_ gensupport.URLParams
88428	ctx_       context.Context
88429	header_    http.Header
88430}
88431
88432// DeleteAccessConfig: Deletes an access config from an instance's
88433// network interface.
88434//
88435// - accessConfig: The name of the access config to delete.
88436// - instance: The instance name for this request.
88437// - networkInterface: The name of the network interface.
88438// - project: Project ID for this request.
88439// - zone: The name of the zone for this request.
88440func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
88441	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88442	c.project = project
88443	c.zone = zone
88444	c.instance = instance
88445	c.urlParams_.Set("accessConfig", accessConfig)
88446	c.urlParams_.Set("networkInterface", networkInterface)
88447	return c
88448}
88449
88450// RequestId sets the optional parameter "requestId": An optional
88451// request ID to identify requests. Specify a unique request ID so that
88452// if you must retry your request, the server will know to ignore the
88453// request if it has already been completed. For example, consider a
88454// situation where you make an initial request and the request times
88455// out. If you make the request again with the same request ID, the
88456// server can check if original operation with the same request ID was
88457// received, and if so, will ignore the second request. This prevents
88458// clients from accidentally creating duplicate commitments. The request
88459// ID must be a valid UUID with the exception that zero UUID is not
88460// supported ( 00000000-0000-0000-0000-000000000000).
88461func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
88462	c.urlParams_.Set("requestId", requestId)
88463	return c
88464}
88465
88466// Fields allows partial responses to be retrieved. See
88467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88468// for more information.
88469func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
88470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88471	return c
88472}
88473
88474// Context sets the context to be used in this call's Do method. Any
88475// pending HTTP request will be aborted if the provided context is
88476// canceled.
88477func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
88478	c.ctx_ = ctx
88479	return c
88480}
88481
88482// Header returns an http.Header that can be modified by the caller to
88483// add HTTP headers to the request.
88484func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
88485	if c.header_ == nil {
88486		c.header_ = make(http.Header)
88487	}
88488	return c.header_
88489}
88490
88491func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
88492	reqHeaders := make(http.Header)
88493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
88494	for k, v := range c.header_ {
88495		reqHeaders[k] = v
88496	}
88497	reqHeaders.Set("User-Agent", c.s.userAgent())
88498	var body io.Reader = nil
88499	c.urlParams_.Set("alt", alt)
88500	c.urlParams_.Set("prettyPrint", "false")
88501	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
88502	urls += "?" + c.urlParams_.Encode()
88503	req, err := http.NewRequest("POST", urls, body)
88504	if err != nil {
88505		return nil, err
88506	}
88507	req.Header = reqHeaders
88508	googleapi.Expand(req.URL, map[string]string{
88509		"project":  c.project,
88510		"zone":     c.zone,
88511		"instance": c.instance,
88512	})
88513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88514}
88515
88516// Do executes the "compute.instances.deleteAccessConfig" call.
88517// Exactly one of *Operation or error will be non-nil. Any non-2xx
88518// status code is an error. Response headers are in either
88519// *Operation.ServerResponse.Header or (if a response was returned at
88520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88521// to check whether the returned error was because
88522// http.StatusNotModified was returned.
88523func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88524	gensupport.SetOptions(c.urlParams_, opts...)
88525	res, err := c.doRequest("json")
88526	if res != nil && res.StatusCode == http.StatusNotModified {
88527		if res.Body != nil {
88528			res.Body.Close()
88529		}
88530		return nil, &googleapi.Error{
88531			Code:   res.StatusCode,
88532			Header: res.Header,
88533		}
88534	}
88535	if err != nil {
88536		return nil, err
88537	}
88538	defer googleapi.CloseBody(res)
88539	if err := googleapi.CheckResponse(res); err != nil {
88540		return nil, err
88541	}
88542	ret := &Operation{
88543		ServerResponse: googleapi.ServerResponse{
88544			Header:         res.Header,
88545			HTTPStatusCode: res.StatusCode,
88546		},
88547	}
88548	target := &ret
88549	if err := gensupport.DecodeResponse(target, res); err != nil {
88550		return nil, err
88551	}
88552	return ret, nil
88553	// {
88554	//   "description": "Deletes an access config from an instance's network interface.",
88555	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
88556	//   "httpMethod": "POST",
88557	//   "id": "compute.instances.deleteAccessConfig",
88558	//   "parameterOrder": [
88559	//     "project",
88560	//     "zone",
88561	//     "instance",
88562	//     "accessConfig",
88563	//     "networkInterface"
88564	//   ],
88565	//   "parameters": {
88566	//     "accessConfig": {
88567	//       "description": "The name of the access config to delete.",
88568	//       "location": "query",
88569	//       "required": true,
88570	//       "type": "string"
88571	//     },
88572	//     "instance": {
88573	//       "description": "The instance name for this request.",
88574	//       "location": "path",
88575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88576	//       "required": true,
88577	//       "type": "string"
88578	//     },
88579	//     "networkInterface": {
88580	//       "description": "The name of the network interface.",
88581	//       "location": "query",
88582	//       "required": true,
88583	//       "type": "string"
88584	//     },
88585	//     "project": {
88586	//       "description": "Project ID for this request.",
88587	//       "location": "path",
88588	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88589	//       "required": true,
88590	//       "type": "string"
88591	//     },
88592	//     "requestId": {
88593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88594	//       "location": "query",
88595	//       "type": "string"
88596	//     },
88597	//     "zone": {
88598	//       "description": "The name of the zone for this request.",
88599	//       "location": "path",
88600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88601	//       "required": true,
88602	//       "type": "string"
88603	//     }
88604	//   },
88605	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
88606	//   "response": {
88607	//     "$ref": "Operation"
88608	//   },
88609	//   "scopes": [
88610	//     "https://www.googleapis.com/auth/cloud-platform",
88611	//     "https://www.googleapis.com/auth/compute"
88612	//   ]
88613	// }
88614
88615}
88616
88617// method id "compute.instances.detachDisk":
88618
88619type InstancesDetachDiskCall struct {
88620	s          *Service
88621	project    string
88622	zone       string
88623	instance   string
88624	urlParams_ gensupport.URLParams
88625	ctx_       context.Context
88626	header_    http.Header
88627}
88628
88629// DetachDisk: Detaches a disk from an instance.
88630//
88631// - deviceName: The device name of the disk to detach. Make a get()
88632//   request on the instance to view currently attached disks and device
88633//   names.
88634// - instance: Instance name for this request.
88635// - project: Project ID for this request.
88636// - zone: The name of the zone for this request.
88637func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
88638	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88639	c.project = project
88640	c.zone = zone
88641	c.instance = instance
88642	c.urlParams_.Set("deviceName", deviceName)
88643	return c
88644}
88645
88646// RequestId sets the optional parameter "requestId": An optional
88647// request ID to identify requests. Specify a unique request ID so that
88648// if you must retry your request, the server will know to ignore the
88649// request if it has already been completed. For example, consider a
88650// situation where you make an initial request and the request times
88651// out. If you make the request again with the same request ID, the
88652// server can check if original operation with the same request ID was
88653// received, and if so, will ignore the second request. This prevents
88654// clients from accidentally creating duplicate commitments. The request
88655// ID must be a valid UUID with the exception that zero UUID is not
88656// supported ( 00000000-0000-0000-0000-000000000000).
88657func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
88658	c.urlParams_.Set("requestId", requestId)
88659	return c
88660}
88661
88662// Fields allows partial responses to be retrieved. See
88663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88664// for more information.
88665func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
88666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88667	return c
88668}
88669
88670// Context sets the context to be used in this call's Do method. Any
88671// pending HTTP request will be aborted if the provided context is
88672// canceled.
88673func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
88674	c.ctx_ = ctx
88675	return c
88676}
88677
88678// Header returns an http.Header that can be modified by the caller to
88679// add HTTP headers to the request.
88680func (c *InstancesDetachDiskCall) Header() http.Header {
88681	if c.header_ == nil {
88682		c.header_ = make(http.Header)
88683	}
88684	return c.header_
88685}
88686
88687func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
88688	reqHeaders := make(http.Header)
88689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
88690	for k, v := range c.header_ {
88691		reqHeaders[k] = v
88692	}
88693	reqHeaders.Set("User-Agent", c.s.userAgent())
88694	var body io.Reader = nil
88695	c.urlParams_.Set("alt", alt)
88696	c.urlParams_.Set("prettyPrint", "false")
88697	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk")
88698	urls += "?" + c.urlParams_.Encode()
88699	req, err := http.NewRequest("POST", urls, body)
88700	if err != nil {
88701		return nil, err
88702	}
88703	req.Header = reqHeaders
88704	googleapi.Expand(req.URL, map[string]string{
88705		"project":  c.project,
88706		"zone":     c.zone,
88707		"instance": c.instance,
88708	})
88709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88710}
88711
88712// Do executes the "compute.instances.detachDisk" call.
88713// Exactly one of *Operation or error will be non-nil. Any non-2xx
88714// status code is an error. Response headers are in either
88715// *Operation.ServerResponse.Header or (if a response was returned at
88716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88717// to check whether the returned error was because
88718// http.StatusNotModified was returned.
88719func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88720	gensupport.SetOptions(c.urlParams_, opts...)
88721	res, err := c.doRequest("json")
88722	if res != nil && res.StatusCode == http.StatusNotModified {
88723		if res.Body != nil {
88724			res.Body.Close()
88725		}
88726		return nil, &googleapi.Error{
88727			Code:   res.StatusCode,
88728			Header: res.Header,
88729		}
88730	}
88731	if err != nil {
88732		return nil, err
88733	}
88734	defer googleapi.CloseBody(res)
88735	if err := googleapi.CheckResponse(res); err != nil {
88736		return nil, err
88737	}
88738	ret := &Operation{
88739		ServerResponse: googleapi.ServerResponse{
88740			Header:         res.Header,
88741			HTTPStatusCode: res.StatusCode,
88742		},
88743	}
88744	target := &ret
88745	if err := gensupport.DecodeResponse(target, res); err != nil {
88746		return nil, err
88747	}
88748	return ret, nil
88749	// {
88750	//   "description": "Detaches a disk from an instance.",
88751	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
88752	//   "httpMethod": "POST",
88753	//   "id": "compute.instances.detachDisk",
88754	//   "parameterOrder": [
88755	//     "project",
88756	//     "zone",
88757	//     "instance",
88758	//     "deviceName"
88759	//   ],
88760	//   "parameters": {
88761	//     "deviceName": {
88762	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
88763	//       "location": "query",
88764	//       "required": true,
88765	//       "type": "string"
88766	//     },
88767	//     "instance": {
88768	//       "description": "Instance name for this request.",
88769	//       "location": "path",
88770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88771	//       "required": true,
88772	//       "type": "string"
88773	//     },
88774	//     "project": {
88775	//       "description": "Project ID for this request.",
88776	//       "location": "path",
88777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88778	//       "required": true,
88779	//       "type": "string"
88780	//     },
88781	//     "requestId": {
88782	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88783	//       "location": "query",
88784	//       "type": "string"
88785	//     },
88786	//     "zone": {
88787	//       "description": "The name of the zone for this request.",
88788	//       "location": "path",
88789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88790	//       "required": true,
88791	//       "type": "string"
88792	//     }
88793	//   },
88794	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
88795	//   "response": {
88796	//     "$ref": "Operation"
88797	//   },
88798	//   "scopes": [
88799	//     "https://www.googleapis.com/auth/cloud-platform",
88800	//     "https://www.googleapis.com/auth/compute"
88801	//   ]
88802	// }
88803
88804}
88805
88806// method id "compute.instances.get":
88807
88808type InstancesGetCall struct {
88809	s            *Service
88810	project      string
88811	zone         string
88812	instance     string
88813	urlParams_   gensupport.URLParams
88814	ifNoneMatch_ string
88815	ctx_         context.Context
88816	header_      http.Header
88817}
88818
88819// Get: Returns the specified Instance resource. Gets a list of
88820// available instances by making a list() request.
88821//
88822// - instance: Name of the instance resource to return.
88823// - project: Project ID for this request.
88824// - zone: The name of the zone for this request.
88825func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
88826	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88827	c.project = project
88828	c.zone = zone
88829	c.instance = instance
88830	return c
88831}
88832
88833// Fields allows partial responses to be retrieved. See
88834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88835// for more information.
88836func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
88837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88838	return c
88839}
88840
88841// IfNoneMatch sets the optional parameter which makes the operation
88842// fail if the object's ETag matches the given value. This is useful for
88843// getting updates only after the object has changed since the last
88844// request. Use googleapi.IsNotModified to check whether the response
88845// error from Do is the result of In-None-Match.
88846func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
88847	c.ifNoneMatch_ = entityTag
88848	return c
88849}
88850
88851// Context sets the context to be used in this call's Do method. Any
88852// pending HTTP request will be aborted if the provided context is
88853// canceled.
88854func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
88855	c.ctx_ = ctx
88856	return c
88857}
88858
88859// Header returns an http.Header that can be modified by the caller to
88860// add HTTP headers to the request.
88861func (c *InstancesGetCall) Header() http.Header {
88862	if c.header_ == nil {
88863		c.header_ = make(http.Header)
88864	}
88865	return c.header_
88866}
88867
88868func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
88869	reqHeaders := make(http.Header)
88870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
88871	for k, v := range c.header_ {
88872		reqHeaders[k] = v
88873	}
88874	reqHeaders.Set("User-Agent", c.s.userAgent())
88875	if c.ifNoneMatch_ != "" {
88876		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88877	}
88878	var body io.Reader = nil
88879	c.urlParams_.Set("alt", alt)
88880	c.urlParams_.Set("prettyPrint", "false")
88881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
88882	urls += "?" + c.urlParams_.Encode()
88883	req, err := http.NewRequest("GET", urls, body)
88884	if err != nil {
88885		return nil, err
88886	}
88887	req.Header = reqHeaders
88888	googleapi.Expand(req.URL, map[string]string{
88889		"project":  c.project,
88890		"zone":     c.zone,
88891		"instance": c.instance,
88892	})
88893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88894}
88895
88896// Do executes the "compute.instances.get" call.
88897// Exactly one of *Instance or error will be non-nil. Any non-2xx status
88898// code is an error. Response headers are in either
88899// *Instance.ServerResponse.Header or (if a response was returned at
88900// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88901// to check whether the returned error was because
88902// http.StatusNotModified was returned.
88903func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
88904	gensupport.SetOptions(c.urlParams_, opts...)
88905	res, err := c.doRequest("json")
88906	if res != nil && res.StatusCode == http.StatusNotModified {
88907		if res.Body != nil {
88908			res.Body.Close()
88909		}
88910		return nil, &googleapi.Error{
88911			Code:   res.StatusCode,
88912			Header: res.Header,
88913		}
88914	}
88915	if err != nil {
88916		return nil, err
88917	}
88918	defer googleapi.CloseBody(res)
88919	if err := googleapi.CheckResponse(res); err != nil {
88920		return nil, err
88921	}
88922	ret := &Instance{
88923		ServerResponse: googleapi.ServerResponse{
88924			Header:         res.Header,
88925			HTTPStatusCode: res.StatusCode,
88926		},
88927	}
88928	target := &ret
88929	if err := gensupport.DecodeResponse(target, res); err != nil {
88930		return nil, err
88931	}
88932	return ret, nil
88933	// {
88934	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
88935	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
88936	//   "httpMethod": "GET",
88937	//   "id": "compute.instances.get",
88938	//   "parameterOrder": [
88939	//     "project",
88940	//     "zone",
88941	//     "instance"
88942	//   ],
88943	//   "parameters": {
88944	//     "instance": {
88945	//       "description": "Name of the instance resource to return.",
88946	//       "location": "path",
88947	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88948	//       "required": true,
88949	//       "type": "string"
88950	//     },
88951	//     "project": {
88952	//       "description": "Project ID for this request.",
88953	//       "location": "path",
88954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88955	//       "required": true,
88956	//       "type": "string"
88957	//     },
88958	//     "zone": {
88959	//       "description": "The name of the zone for this request.",
88960	//       "location": "path",
88961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88962	//       "required": true,
88963	//       "type": "string"
88964	//     }
88965	//   },
88966	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
88967	//   "response": {
88968	//     "$ref": "Instance"
88969	//   },
88970	//   "scopes": [
88971	//     "https://www.googleapis.com/auth/cloud-platform",
88972	//     "https://www.googleapis.com/auth/compute",
88973	//     "https://www.googleapis.com/auth/compute.readonly"
88974	//   ]
88975	// }
88976
88977}
88978
88979// method id "compute.instances.getEffectiveFirewalls":
88980
88981type InstancesGetEffectiveFirewallsCall struct {
88982	s            *Service
88983	project      string
88984	zone         string
88985	instance     string
88986	urlParams_   gensupport.URLParams
88987	ifNoneMatch_ string
88988	ctx_         context.Context
88989	header_      http.Header
88990}
88991
88992// GetEffectiveFirewalls: Returns effective firewalls applied to an
88993// interface of the instance.
88994//
88995// - instance: Name of the instance scoping this request.
88996// - networkInterface: The name of the network interface to get the
88997//   effective firewalls.
88998// - project: Project ID for this request.
88999// - zone: The name of the zone for this request.
89000func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
89001	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89002	c.project = project
89003	c.zone = zone
89004	c.instance = instance
89005	c.urlParams_.Set("networkInterface", networkInterface)
89006	return c
89007}
89008
89009// Fields allows partial responses to be retrieved. See
89010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89011// for more information.
89012func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
89013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89014	return c
89015}
89016
89017// IfNoneMatch sets the optional parameter which makes the operation
89018// fail if the object's ETag matches the given value. This is useful for
89019// getting updates only after the object has changed since the last
89020// request. Use googleapi.IsNotModified to check whether the response
89021// error from Do is the result of In-None-Match.
89022func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
89023	c.ifNoneMatch_ = entityTag
89024	return c
89025}
89026
89027// Context sets the context to be used in this call's Do method. Any
89028// pending HTTP request will be aborted if the provided context is
89029// canceled.
89030func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
89031	c.ctx_ = ctx
89032	return c
89033}
89034
89035// Header returns an http.Header that can be modified by the caller to
89036// add HTTP headers to the request.
89037func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
89038	if c.header_ == nil {
89039		c.header_ = make(http.Header)
89040	}
89041	return c.header_
89042}
89043
89044func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
89045	reqHeaders := make(http.Header)
89046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89047	for k, v := range c.header_ {
89048		reqHeaders[k] = v
89049	}
89050	reqHeaders.Set("User-Agent", c.s.userAgent())
89051	if c.ifNoneMatch_ != "" {
89052		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89053	}
89054	var body io.Reader = nil
89055	c.urlParams_.Set("alt", alt)
89056	c.urlParams_.Set("prettyPrint", "false")
89057	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
89058	urls += "?" + c.urlParams_.Encode()
89059	req, err := http.NewRequest("GET", urls, body)
89060	if err != nil {
89061		return nil, err
89062	}
89063	req.Header = reqHeaders
89064	googleapi.Expand(req.URL, map[string]string{
89065		"project":  c.project,
89066		"zone":     c.zone,
89067		"instance": c.instance,
89068	})
89069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89070}
89071
89072// Do executes the "compute.instances.getEffectiveFirewalls" call.
89073// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
89074// be non-nil. Any non-2xx status code is an error. Response headers are
89075// in either
89076// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
89077// a response was returned at all) in error.(*googleapi.Error).Header.
89078// Use googleapi.IsNotModified to check whether the returned error was
89079// because http.StatusNotModified was returned.
89080func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
89081	gensupport.SetOptions(c.urlParams_, opts...)
89082	res, err := c.doRequest("json")
89083	if res != nil && res.StatusCode == http.StatusNotModified {
89084		if res.Body != nil {
89085			res.Body.Close()
89086		}
89087		return nil, &googleapi.Error{
89088			Code:   res.StatusCode,
89089			Header: res.Header,
89090		}
89091	}
89092	if err != nil {
89093		return nil, err
89094	}
89095	defer googleapi.CloseBody(res)
89096	if err := googleapi.CheckResponse(res); err != nil {
89097		return nil, err
89098	}
89099	ret := &InstancesGetEffectiveFirewallsResponse{
89100		ServerResponse: googleapi.ServerResponse{
89101			Header:         res.Header,
89102			HTTPStatusCode: res.StatusCode,
89103		},
89104	}
89105	target := &ret
89106	if err := gensupport.DecodeResponse(target, res); err != nil {
89107		return nil, err
89108	}
89109	return ret, nil
89110	// {
89111	//   "description": "Returns effective firewalls applied to an interface of the instance.",
89112	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
89113	//   "httpMethod": "GET",
89114	//   "id": "compute.instances.getEffectiveFirewalls",
89115	//   "parameterOrder": [
89116	//     "project",
89117	//     "zone",
89118	//     "instance",
89119	//     "networkInterface"
89120	//   ],
89121	//   "parameters": {
89122	//     "instance": {
89123	//       "description": "Name of the instance scoping this request.",
89124	//       "location": "path",
89125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89126	//       "required": true,
89127	//       "type": "string"
89128	//     },
89129	//     "networkInterface": {
89130	//       "description": "The name of the network interface to get the effective firewalls.",
89131	//       "location": "query",
89132	//       "required": true,
89133	//       "type": "string"
89134	//     },
89135	//     "project": {
89136	//       "description": "Project ID for this request.",
89137	//       "location": "path",
89138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89139	//       "required": true,
89140	//       "type": "string"
89141	//     },
89142	//     "zone": {
89143	//       "description": "The name of the zone for this request.",
89144	//       "location": "path",
89145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89146	//       "required": true,
89147	//       "type": "string"
89148	//     }
89149	//   },
89150	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
89151	//   "response": {
89152	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
89153	//   },
89154	//   "scopes": [
89155	//     "https://www.googleapis.com/auth/cloud-platform",
89156	//     "https://www.googleapis.com/auth/compute",
89157	//     "https://www.googleapis.com/auth/compute.readonly"
89158	//   ]
89159	// }
89160
89161}
89162
89163// method id "compute.instances.getGuestAttributes":
89164
89165type InstancesGetGuestAttributesCall struct {
89166	s            *Service
89167	project      string
89168	zone         string
89169	instance     string
89170	urlParams_   gensupport.URLParams
89171	ifNoneMatch_ string
89172	ctx_         context.Context
89173	header_      http.Header
89174}
89175
89176// GetGuestAttributes: Returns the specified guest attributes entry.
89177//
89178// - instance: Name of the instance scoping this request.
89179// - project: Project ID for this request.
89180// - zone: The name of the zone for this request.
89181func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
89182	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89183	c.project = project
89184	c.zone = zone
89185	c.instance = instance
89186	return c
89187}
89188
89189// QueryPath sets the optional parameter "queryPath": Specifies the
89190// guest attributes path to be queried.
89191func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
89192	c.urlParams_.Set("queryPath", queryPath)
89193	return c
89194}
89195
89196// VariableKey sets the optional parameter "variableKey": Specifies the
89197// key for the guest attributes entry.
89198func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
89199	c.urlParams_.Set("variableKey", variableKey)
89200	return c
89201}
89202
89203// Fields allows partial responses to be retrieved. See
89204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89205// for more information.
89206func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
89207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89208	return c
89209}
89210
89211// IfNoneMatch sets the optional parameter which makes the operation
89212// fail if the object's ETag matches the given value. This is useful for
89213// getting updates only after the object has changed since the last
89214// request. Use googleapi.IsNotModified to check whether the response
89215// error from Do is the result of In-None-Match.
89216func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
89217	c.ifNoneMatch_ = entityTag
89218	return c
89219}
89220
89221// Context sets the context to be used in this call's Do method. Any
89222// pending HTTP request will be aborted if the provided context is
89223// canceled.
89224func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
89225	c.ctx_ = ctx
89226	return c
89227}
89228
89229// Header returns an http.Header that can be modified by the caller to
89230// add HTTP headers to the request.
89231func (c *InstancesGetGuestAttributesCall) Header() http.Header {
89232	if c.header_ == nil {
89233		c.header_ = make(http.Header)
89234	}
89235	return c.header_
89236}
89237
89238func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
89239	reqHeaders := make(http.Header)
89240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89241	for k, v := range c.header_ {
89242		reqHeaders[k] = v
89243	}
89244	reqHeaders.Set("User-Agent", c.s.userAgent())
89245	if c.ifNoneMatch_ != "" {
89246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89247	}
89248	var body io.Reader = nil
89249	c.urlParams_.Set("alt", alt)
89250	c.urlParams_.Set("prettyPrint", "false")
89251	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
89252	urls += "?" + c.urlParams_.Encode()
89253	req, err := http.NewRequest("GET", urls, body)
89254	if err != nil {
89255		return nil, err
89256	}
89257	req.Header = reqHeaders
89258	googleapi.Expand(req.URL, map[string]string{
89259		"project":  c.project,
89260		"zone":     c.zone,
89261		"instance": c.instance,
89262	})
89263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89264}
89265
89266// Do executes the "compute.instances.getGuestAttributes" call.
89267// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
89268// status code is an error. Response headers are in either
89269// *GuestAttributes.ServerResponse.Header or (if a response was returned
89270// at all) in error.(*googleapi.Error).Header. Use
89271// googleapi.IsNotModified to check whether the returned error was
89272// because http.StatusNotModified was returned.
89273func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
89274	gensupport.SetOptions(c.urlParams_, opts...)
89275	res, err := c.doRequest("json")
89276	if res != nil && res.StatusCode == http.StatusNotModified {
89277		if res.Body != nil {
89278			res.Body.Close()
89279		}
89280		return nil, &googleapi.Error{
89281			Code:   res.StatusCode,
89282			Header: res.Header,
89283		}
89284	}
89285	if err != nil {
89286		return nil, err
89287	}
89288	defer googleapi.CloseBody(res)
89289	if err := googleapi.CheckResponse(res); err != nil {
89290		return nil, err
89291	}
89292	ret := &GuestAttributes{
89293		ServerResponse: googleapi.ServerResponse{
89294			Header:         res.Header,
89295			HTTPStatusCode: res.StatusCode,
89296		},
89297	}
89298	target := &ret
89299	if err := gensupport.DecodeResponse(target, res); err != nil {
89300		return nil, err
89301	}
89302	return ret, nil
89303	// {
89304	//   "description": "Returns the specified guest attributes entry.",
89305	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
89306	//   "httpMethod": "GET",
89307	//   "id": "compute.instances.getGuestAttributes",
89308	//   "parameterOrder": [
89309	//     "project",
89310	//     "zone",
89311	//     "instance"
89312	//   ],
89313	//   "parameters": {
89314	//     "instance": {
89315	//       "description": "Name of the instance scoping this request.",
89316	//       "location": "path",
89317	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89318	//       "required": true,
89319	//       "type": "string"
89320	//     },
89321	//     "project": {
89322	//       "description": "Project ID for this request.",
89323	//       "location": "path",
89324	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89325	//       "required": true,
89326	//       "type": "string"
89327	//     },
89328	//     "queryPath": {
89329	//       "description": "Specifies the guest attributes path to be queried.",
89330	//       "location": "query",
89331	//       "type": "string"
89332	//     },
89333	//     "variableKey": {
89334	//       "description": "Specifies the key for the guest attributes entry.",
89335	//       "location": "query",
89336	//       "type": "string"
89337	//     },
89338	//     "zone": {
89339	//       "description": "The name of the zone for this request.",
89340	//       "location": "path",
89341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89342	//       "required": true,
89343	//       "type": "string"
89344	//     }
89345	//   },
89346	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
89347	//   "response": {
89348	//     "$ref": "GuestAttributes"
89349	//   },
89350	//   "scopes": [
89351	//     "https://www.googleapis.com/auth/cloud-platform",
89352	//     "https://www.googleapis.com/auth/compute",
89353	//     "https://www.googleapis.com/auth/compute.readonly"
89354	//   ]
89355	// }
89356
89357}
89358
89359// method id "compute.instances.getIamPolicy":
89360
89361type InstancesGetIamPolicyCall struct {
89362	s            *Service
89363	project      string
89364	zone         string
89365	resource     string
89366	urlParams_   gensupport.URLParams
89367	ifNoneMatch_ string
89368	ctx_         context.Context
89369	header_      http.Header
89370}
89371
89372// GetIamPolicy: Gets the access control policy for a resource. May be
89373// empty if no such policy or resource exists.
89374//
89375// - project: Project ID for this request.
89376// - resource: Name or id of the resource for this request.
89377// - zone: The name of the zone for this request.
89378func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
89379	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89380	c.project = project
89381	c.zone = zone
89382	c.resource = resource
89383	return c
89384}
89385
89386// OptionsRequestedPolicyVersion sets the optional parameter
89387// "optionsRequestedPolicyVersion": Requested IAM Policy version.
89388func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
89389	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
89390	return c
89391}
89392
89393// Fields allows partial responses to be retrieved. See
89394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89395// for more information.
89396func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
89397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89398	return c
89399}
89400
89401// IfNoneMatch sets the optional parameter which makes the operation
89402// fail if the object's ETag matches the given value. This is useful for
89403// getting updates only after the object has changed since the last
89404// request. Use googleapi.IsNotModified to check whether the response
89405// error from Do is the result of In-None-Match.
89406func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
89407	c.ifNoneMatch_ = entityTag
89408	return c
89409}
89410
89411// Context sets the context to be used in this call's Do method. Any
89412// pending HTTP request will be aborted if the provided context is
89413// canceled.
89414func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
89415	c.ctx_ = ctx
89416	return c
89417}
89418
89419// Header returns an http.Header that can be modified by the caller to
89420// add HTTP headers to the request.
89421func (c *InstancesGetIamPolicyCall) Header() http.Header {
89422	if c.header_ == nil {
89423		c.header_ = make(http.Header)
89424	}
89425	return c.header_
89426}
89427
89428func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
89429	reqHeaders := make(http.Header)
89430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89431	for k, v := range c.header_ {
89432		reqHeaders[k] = v
89433	}
89434	reqHeaders.Set("User-Agent", c.s.userAgent())
89435	if c.ifNoneMatch_ != "" {
89436		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89437	}
89438	var body io.Reader = nil
89439	c.urlParams_.Set("alt", alt)
89440	c.urlParams_.Set("prettyPrint", "false")
89441	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy")
89442	urls += "?" + c.urlParams_.Encode()
89443	req, err := http.NewRequest("GET", urls, body)
89444	if err != nil {
89445		return nil, err
89446	}
89447	req.Header = reqHeaders
89448	googleapi.Expand(req.URL, map[string]string{
89449		"project":  c.project,
89450		"zone":     c.zone,
89451		"resource": c.resource,
89452	})
89453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89454}
89455
89456// Do executes the "compute.instances.getIamPolicy" call.
89457// Exactly one of *Policy or error will be non-nil. Any non-2xx status
89458// code is an error. Response headers are in either
89459// *Policy.ServerResponse.Header or (if a response was returned at all)
89460// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89461// check whether the returned error was because http.StatusNotModified
89462// was returned.
89463func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
89464	gensupport.SetOptions(c.urlParams_, opts...)
89465	res, err := c.doRequest("json")
89466	if res != nil && res.StatusCode == http.StatusNotModified {
89467		if res.Body != nil {
89468			res.Body.Close()
89469		}
89470		return nil, &googleapi.Error{
89471			Code:   res.StatusCode,
89472			Header: res.Header,
89473		}
89474	}
89475	if err != nil {
89476		return nil, err
89477	}
89478	defer googleapi.CloseBody(res)
89479	if err := googleapi.CheckResponse(res); err != nil {
89480		return nil, err
89481	}
89482	ret := &Policy{
89483		ServerResponse: googleapi.ServerResponse{
89484			Header:         res.Header,
89485			HTTPStatusCode: res.StatusCode,
89486		},
89487	}
89488	target := &ret
89489	if err := gensupport.DecodeResponse(target, res); err != nil {
89490		return nil, err
89491	}
89492	return ret, nil
89493	// {
89494	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
89495	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
89496	//   "httpMethod": "GET",
89497	//   "id": "compute.instances.getIamPolicy",
89498	//   "parameterOrder": [
89499	//     "project",
89500	//     "zone",
89501	//     "resource"
89502	//   ],
89503	//   "parameters": {
89504	//     "optionsRequestedPolicyVersion": {
89505	//       "description": "Requested IAM Policy version.",
89506	//       "format": "int32",
89507	//       "location": "query",
89508	//       "type": "integer"
89509	//     },
89510	//     "project": {
89511	//       "description": "Project ID for this request.",
89512	//       "location": "path",
89513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89514	//       "required": true,
89515	//       "type": "string"
89516	//     },
89517	//     "resource": {
89518	//       "description": "Name or id of the resource for this request.",
89519	//       "location": "path",
89520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89521	//       "required": true,
89522	//       "type": "string"
89523	//     },
89524	//     "zone": {
89525	//       "description": "The name of the zone for this request.",
89526	//       "location": "path",
89527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89528	//       "required": true,
89529	//       "type": "string"
89530	//     }
89531	//   },
89532	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
89533	//   "response": {
89534	//     "$ref": "Policy"
89535	//   },
89536	//   "scopes": [
89537	//     "https://www.googleapis.com/auth/cloud-platform",
89538	//     "https://www.googleapis.com/auth/compute",
89539	//     "https://www.googleapis.com/auth/compute.readonly"
89540	//   ]
89541	// }
89542
89543}
89544
89545// method id "compute.instances.getScreenshot":
89546
89547type InstancesGetScreenshotCall struct {
89548	s            *Service
89549	project      string
89550	zone         string
89551	instance     string
89552	urlParams_   gensupport.URLParams
89553	ifNoneMatch_ string
89554	ctx_         context.Context
89555	header_      http.Header
89556}
89557
89558// GetScreenshot: Returns the screenshot from the specified instance.
89559//
89560// - instance: Name of the instance scoping this request.
89561// - project: Project ID for this request.
89562// - zone: The name of the zone for this request.
89563func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
89564	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89565	c.project = project
89566	c.zone = zone
89567	c.instance = instance
89568	return c
89569}
89570
89571// Fields allows partial responses to be retrieved. See
89572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89573// for more information.
89574func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
89575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89576	return c
89577}
89578
89579// IfNoneMatch sets the optional parameter which makes the operation
89580// fail if the object's ETag matches the given value. This is useful for
89581// getting updates only after the object has changed since the last
89582// request. Use googleapi.IsNotModified to check whether the response
89583// error from Do is the result of In-None-Match.
89584func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
89585	c.ifNoneMatch_ = entityTag
89586	return c
89587}
89588
89589// Context sets the context to be used in this call's Do method. Any
89590// pending HTTP request will be aborted if the provided context is
89591// canceled.
89592func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
89593	c.ctx_ = ctx
89594	return c
89595}
89596
89597// Header returns an http.Header that can be modified by the caller to
89598// add HTTP headers to the request.
89599func (c *InstancesGetScreenshotCall) Header() http.Header {
89600	if c.header_ == nil {
89601		c.header_ = make(http.Header)
89602	}
89603	return c.header_
89604}
89605
89606func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
89607	reqHeaders := make(http.Header)
89608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89609	for k, v := range c.header_ {
89610		reqHeaders[k] = v
89611	}
89612	reqHeaders.Set("User-Agent", c.s.userAgent())
89613	if c.ifNoneMatch_ != "" {
89614		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89615	}
89616	var body io.Reader = nil
89617	c.urlParams_.Set("alt", alt)
89618	c.urlParams_.Set("prettyPrint", "false")
89619	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot")
89620	urls += "?" + c.urlParams_.Encode()
89621	req, err := http.NewRequest("GET", urls, body)
89622	if err != nil {
89623		return nil, err
89624	}
89625	req.Header = reqHeaders
89626	googleapi.Expand(req.URL, map[string]string{
89627		"project":  c.project,
89628		"zone":     c.zone,
89629		"instance": c.instance,
89630	})
89631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89632}
89633
89634// Do executes the "compute.instances.getScreenshot" call.
89635// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
89636// status code is an error. Response headers are in either
89637// *Screenshot.ServerResponse.Header or (if a response was returned at
89638// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89639// to check whether the returned error was because
89640// http.StatusNotModified was returned.
89641func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
89642	gensupport.SetOptions(c.urlParams_, opts...)
89643	res, err := c.doRequest("json")
89644	if res != nil && res.StatusCode == http.StatusNotModified {
89645		if res.Body != nil {
89646			res.Body.Close()
89647		}
89648		return nil, &googleapi.Error{
89649			Code:   res.StatusCode,
89650			Header: res.Header,
89651		}
89652	}
89653	if err != nil {
89654		return nil, err
89655	}
89656	defer googleapi.CloseBody(res)
89657	if err := googleapi.CheckResponse(res); err != nil {
89658		return nil, err
89659	}
89660	ret := &Screenshot{
89661		ServerResponse: googleapi.ServerResponse{
89662			Header:         res.Header,
89663			HTTPStatusCode: res.StatusCode,
89664		},
89665	}
89666	target := &ret
89667	if err := gensupport.DecodeResponse(target, res); err != nil {
89668		return nil, err
89669	}
89670	return ret, nil
89671	// {
89672	//   "description": "Returns the screenshot from the specified instance.",
89673	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
89674	//   "httpMethod": "GET",
89675	//   "id": "compute.instances.getScreenshot",
89676	//   "parameterOrder": [
89677	//     "project",
89678	//     "zone",
89679	//     "instance"
89680	//   ],
89681	//   "parameters": {
89682	//     "instance": {
89683	//       "description": "Name of the instance scoping this request.",
89684	//       "location": "path",
89685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89686	//       "required": true,
89687	//       "type": "string"
89688	//     },
89689	//     "project": {
89690	//       "description": "Project ID for this request.",
89691	//       "location": "path",
89692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89693	//       "required": true,
89694	//       "type": "string"
89695	//     },
89696	//     "zone": {
89697	//       "description": "The name of the zone for this request.",
89698	//       "location": "path",
89699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89700	//       "required": true,
89701	//       "type": "string"
89702	//     }
89703	//   },
89704	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
89705	//   "response": {
89706	//     "$ref": "Screenshot"
89707	//   },
89708	//   "scopes": [
89709	//     "https://www.googleapis.com/auth/cloud-platform",
89710	//     "https://www.googleapis.com/auth/compute",
89711	//     "https://www.googleapis.com/auth/compute.readonly"
89712	//   ]
89713	// }
89714
89715}
89716
89717// method id "compute.instances.getSerialPortOutput":
89718
89719type InstancesGetSerialPortOutputCall struct {
89720	s            *Service
89721	project      string
89722	zone         string
89723	instance     string
89724	urlParams_   gensupport.URLParams
89725	ifNoneMatch_ string
89726	ctx_         context.Context
89727	header_      http.Header
89728}
89729
89730// GetSerialPortOutput: Returns the last 1 MB of serial port output from
89731// the specified instance.
89732//
89733// - instance: Name of the instance for this request.
89734// - project: Project ID for this request.
89735// - zone: The name of the zone for this request.
89736func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
89737	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89738	c.project = project
89739	c.zone = zone
89740	c.instance = instance
89741	return c
89742}
89743
89744// Port sets the optional parameter "port": Specifies which COM or
89745// serial port to retrieve data from.
89746func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
89747	c.urlParams_.Set("port", fmt.Sprint(port))
89748	return c
89749}
89750
89751// Start sets the optional parameter "start": Specifies the starting
89752// byte position of the output to return. To start with the first byte
89753// of output to the specified port, omit this field or set it to `0`. If
89754// the output for that byte position is available, this field matches
89755// the `start` parameter sent with the request. If the amount of serial
89756// console output exceeds the size of the buffer (1 MB), the oldest
89757// output is discarded and is no longer available. If the requested
89758// start position refers to discarded output, the start position is
89759// adjusted to the oldest output still available, and the adjusted start
89760// position is returned as the `start` property value. You can also
89761// provide a negative start position, which translates to the most
89762// recent number of bytes written to the serial port. For example, -3 is
89763// interpreted as the most recent 3 bytes written to the serial console.
89764func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
89765	c.urlParams_.Set("start", fmt.Sprint(start))
89766	return c
89767}
89768
89769// Fields allows partial responses to be retrieved. See
89770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89771// for more information.
89772func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
89773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89774	return c
89775}
89776
89777// IfNoneMatch sets the optional parameter which makes the operation
89778// fail if the object's ETag matches the given value. This is useful for
89779// getting updates only after the object has changed since the last
89780// request. Use googleapi.IsNotModified to check whether the response
89781// error from Do is the result of In-None-Match.
89782func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
89783	c.ifNoneMatch_ = entityTag
89784	return c
89785}
89786
89787// Context sets the context to be used in this call's Do method. Any
89788// pending HTTP request will be aborted if the provided context is
89789// canceled.
89790func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
89791	c.ctx_ = ctx
89792	return c
89793}
89794
89795// Header returns an http.Header that can be modified by the caller to
89796// add HTTP headers to the request.
89797func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
89798	if c.header_ == nil {
89799		c.header_ = make(http.Header)
89800	}
89801	return c.header_
89802}
89803
89804func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
89805	reqHeaders := make(http.Header)
89806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89807	for k, v := range c.header_ {
89808		reqHeaders[k] = v
89809	}
89810	reqHeaders.Set("User-Agent", c.s.userAgent())
89811	if c.ifNoneMatch_ != "" {
89812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89813	}
89814	var body io.Reader = nil
89815	c.urlParams_.Set("alt", alt)
89816	c.urlParams_.Set("prettyPrint", "false")
89817	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort")
89818	urls += "?" + c.urlParams_.Encode()
89819	req, err := http.NewRequest("GET", urls, body)
89820	if err != nil {
89821		return nil, err
89822	}
89823	req.Header = reqHeaders
89824	googleapi.Expand(req.URL, map[string]string{
89825		"project":  c.project,
89826		"zone":     c.zone,
89827		"instance": c.instance,
89828	})
89829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89830}
89831
89832// Do executes the "compute.instances.getSerialPortOutput" call.
89833// Exactly one of *SerialPortOutput or error will be non-nil. Any
89834// non-2xx status code is an error. Response headers are in either
89835// *SerialPortOutput.ServerResponse.Header or (if a response was
89836// returned at all) in error.(*googleapi.Error).Header. Use
89837// googleapi.IsNotModified to check whether the returned error was
89838// because http.StatusNotModified was returned.
89839func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
89840	gensupport.SetOptions(c.urlParams_, opts...)
89841	res, err := c.doRequest("json")
89842	if res != nil && res.StatusCode == http.StatusNotModified {
89843		if res.Body != nil {
89844			res.Body.Close()
89845		}
89846		return nil, &googleapi.Error{
89847			Code:   res.StatusCode,
89848			Header: res.Header,
89849		}
89850	}
89851	if err != nil {
89852		return nil, err
89853	}
89854	defer googleapi.CloseBody(res)
89855	if err := googleapi.CheckResponse(res); err != nil {
89856		return nil, err
89857	}
89858	ret := &SerialPortOutput{
89859		ServerResponse: googleapi.ServerResponse{
89860			Header:         res.Header,
89861			HTTPStatusCode: res.StatusCode,
89862		},
89863	}
89864	target := &ret
89865	if err := gensupport.DecodeResponse(target, res); err != nil {
89866		return nil, err
89867	}
89868	return ret, nil
89869	// {
89870	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
89871	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
89872	//   "httpMethod": "GET",
89873	//   "id": "compute.instances.getSerialPortOutput",
89874	//   "parameterOrder": [
89875	//     "project",
89876	//     "zone",
89877	//     "instance"
89878	//   ],
89879	//   "parameters": {
89880	//     "instance": {
89881	//       "description": "Name of the instance for this request.",
89882	//       "location": "path",
89883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89884	//       "required": true,
89885	//       "type": "string"
89886	//     },
89887	//     "port": {
89888	//       "default": "1",
89889	//       "description": "Specifies which COM or serial port to retrieve data from.",
89890	//       "format": "int32",
89891	//       "location": "query",
89892	//       "maximum": "4",
89893	//       "minimum": "1",
89894	//       "type": "integer"
89895	//     },
89896	//     "project": {
89897	//       "description": "Project ID for this request.",
89898	//       "location": "path",
89899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89900	//       "required": true,
89901	//       "type": "string"
89902	//     },
89903	//     "start": {
89904	//       "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`. If 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. You 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.",
89905	//       "format": "int64",
89906	//       "location": "query",
89907	//       "type": "string"
89908	//     },
89909	//     "zone": {
89910	//       "description": "The name of the zone for this request.",
89911	//       "location": "path",
89912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89913	//       "required": true,
89914	//       "type": "string"
89915	//     }
89916	//   },
89917	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
89918	//   "response": {
89919	//     "$ref": "SerialPortOutput"
89920	//   },
89921	//   "scopes": [
89922	//     "https://www.googleapis.com/auth/cloud-platform",
89923	//     "https://www.googleapis.com/auth/compute",
89924	//     "https://www.googleapis.com/auth/compute.readonly"
89925	//   ]
89926	// }
89927
89928}
89929
89930// method id "compute.instances.getShieldedInstanceIdentity":
89931
89932type InstancesGetShieldedInstanceIdentityCall struct {
89933	s            *Service
89934	project      string
89935	zone         string
89936	instance     string
89937	urlParams_   gensupport.URLParams
89938	ifNoneMatch_ string
89939	ctx_         context.Context
89940	header_      http.Header
89941}
89942
89943// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
89944// of an instance
89945//
89946// - instance: Name or id of the instance scoping this request.
89947// - project: Project ID for this request.
89948// - zone: The name of the zone for this request.
89949func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
89950	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89951	c.project = project
89952	c.zone = zone
89953	c.instance = instance
89954	return c
89955}
89956
89957// Fields allows partial responses to be retrieved. See
89958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89959// for more information.
89960func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
89961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89962	return c
89963}
89964
89965// IfNoneMatch sets the optional parameter which makes the operation
89966// fail if the object's ETag matches the given value. This is useful for
89967// getting updates only after the object has changed since the last
89968// request. Use googleapi.IsNotModified to check whether the response
89969// error from Do is the result of In-None-Match.
89970func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
89971	c.ifNoneMatch_ = entityTag
89972	return c
89973}
89974
89975// Context sets the context to be used in this call's Do method. Any
89976// pending HTTP request will be aborted if the provided context is
89977// canceled.
89978func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
89979	c.ctx_ = ctx
89980	return c
89981}
89982
89983// Header returns an http.Header that can be modified by the caller to
89984// add HTTP headers to the request.
89985func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
89986	if c.header_ == nil {
89987		c.header_ = make(http.Header)
89988	}
89989	return c.header_
89990}
89991
89992func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
89993	reqHeaders := make(http.Header)
89994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
89995	for k, v := range c.header_ {
89996		reqHeaders[k] = v
89997	}
89998	reqHeaders.Set("User-Agent", c.s.userAgent())
89999	if c.ifNoneMatch_ != "" {
90000		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90001	}
90002	var body io.Reader = nil
90003	c.urlParams_.Set("alt", alt)
90004	c.urlParams_.Set("prettyPrint", "false")
90005	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
90006	urls += "?" + c.urlParams_.Encode()
90007	req, err := http.NewRequest("GET", urls, body)
90008	if err != nil {
90009		return nil, err
90010	}
90011	req.Header = reqHeaders
90012	googleapi.Expand(req.URL, map[string]string{
90013		"project":  c.project,
90014		"zone":     c.zone,
90015		"instance": c.instance,
90016	})
90017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90018}
90019
90020// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
90021// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
90022// Any non-2xx status code is an error. Response headers are in either
90023// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
90024// returned at all) in error.(*googleapi.Error).Header. Use
90025// googleapi.IsNotModified to check whether the returned error was
90026// because http.StatusNotModified was returned.
90027func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
90028	gensupport.SetOptions(c.urlParams_, opts...)
90029	res, err := c.doRequest("json")
90030	if res != nil && res.StatusCode == http.StatusNotModified {
90031		if res.Body != nil {
90032			res.Body.Close()
90033		}
90034		return nil, &googleapi.Error{
90035			Code:   res.StatusCode,
90036			Header: res.Header,
90037		}
90038	}
90039	if err != nil {
90040		return nil, err
90041	}
90042	defer googleapi.CloseBody(res)
90043	if err := googleapi.CheckResponse(res); err != nil {
90044		return nil, err
90045	}
90046	ret := &ShieldedInstanceIdentity{
90047		ServerResponse: googleapi.ServerResponse{
90048			Header:         res.Header,
90049			HTTPStatusCode: res.StatusCode,
90050		},
90051	}
90052	target := &ret
90053	if err := gensupport.DecodeResponse(target, res); err != nil {
90054		return nil, err
90055	}
90056	return ret, nil
90057	// {
90058	//   "description": "Returns the Shielded Instance Identity of an instance",
90059	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
90060	//   "httpMethod": "GET",
90061	//   "id": "compute.instances.getShieldedInstanceIdentity",
90062	//   "parameterOrder": [
90063	//     "project",
90064	//     "zone",
90065	//     "instance"
90066	//   ],
90067	//   "parameters": {
90068	//     "instance": {
90069	//       "description": "Name or id of the instance scoping this request.",
90070	//       "location": "path",
90071	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90072	//       "required": true,
90073	//       "type": "string"
90074	//     },
90075	//     "project": {
90076	//       "description": "Project ID for this request.",
90077	//       "location": "path",
90078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90079	//       "required": true,
90080	//       "type": "string"
90081	//     },
90082	//     "zone": {
90083	//       "description": "The name of the zone for this request.",
90084	//       "location": "path",
90085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90086	//       "required": true,
90087	//       "type": "string"
90088	//     }
90089	//   },
90090	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
90091	//   "response": {
90092	//     "$ref": "ShieldedInstanceIdentity"
90093	//   },
90094	//   "scopes": [
90095	//     "https://www.googleapis.com/auth/cloud-platform",
90096	//     "https://www.googleapis.com/auth/compute",
90097	//     "https://www.googleapis.com/auth/compute.readonly"
90098	//   ]
90099	// }
90100
90101}
90102
90103// method id "compute.instances.insert":
90104
90105type InstancesInsertCall struct {
90106	s          *Service
90107	project    string
90108	zone       string
90109	instance   *Instance
90110	urlParams_ gensupport.URLParams
90111	ctx_       context.Context
90112	header_    http.Header
90113}
90114
90115// Insert: Creates an instance resource in the specified project using
90116// the data included in the request.
90117//
90118// - project: Project ID for this request.
90119// - zone: The name of the zone for this request.
90120func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
90121	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90122	c.project = project
90123	c.zone = zone
90124	c.instance = instance
90125	return c
90126}
90127
90128// RequestId sets the optional parameter "requestId": An optional
90129// request ID to identify requests. Specify a unique request ID so that
90130// if you must retry your request, the server will know to ignore the
90131// request if it has already been completed. For example, consider a
90132// situation where you make an initial request and the request times
90133// out. If you make the request again with the same request ID, the
90134// server can check if original operation with the same request ID was
90135// received, and if so, will ignore the second request. This prevents
90136// clients from accidentally creating duplicate commitments. The request
90137// ID must be a valid UUID with the exception that zero UUID is not
90138// supported ( 00000000-0000-0000-0000-000000000000).
90139func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
90140	c.urlParams_.Set("requestId", requestId)
90141	return c
90142}
90143
90144// SourceInstanceTemplate sets the optional parameter
90145// "sourceInstanceTemplate": Specifies instance template to create the
90146// instance. This field is optional. It can be a full or partial URL.
90147// For example, the following are all valid URLs to an instance
90148// template: - https://www.googleapis.com/compute/v1/projects/project
90149// /global/instanceTemplates/instanceTemplate -
90150// projects/project/global/instanceTemplates/instanceTemplate -
90151// global/instanceTemplates/instanceTemplate
90152func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
90153	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
90154	return c
90155}
90156
90157// Fields allows partial responses to be retrieved. See
90158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90159// for more information.
90160func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
90161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90162	return c
90163}
90164
90165// Context sets the context to be used in this call's Do method. Any
90166// pending HTTP request will be aborted if the provided context is
90167// canceled.
90168func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
90169	c.ctx_ = ctx
90170	return c
90171}
90172
90173// Header returns an http.Header that can be modified by the caller to
90174// add HTTP headers to the request.
90175func (c *InstancesInsertCall) Header() http.Header {
90176	if c.header_ == nil {
90177		c.header_ = make(http.Header)
90178	}
90179	return c.header_
90180}
90181
90182func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
90183	reqHeaders := make(http.Header)
90184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
90185	for k, v := range c.header_ {
90186		reqHeaders[k] = v
90187	}
90188	reqHeaders.Set("User-Agent", c.s.userAgent())
90189	var body io.Reader = nil
90190	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
90191	if err != nil {
90192		return nil, err
90193	}
90194	reqHeaders.Set("Content-Type", "application/json")
90195	c.urlParams_.Set("alt", alt)
90196	c.urlParams_.Set("prettyPrint", "false")
90197	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
90198	urls += "?" + c.urlParams_.Encode()
90199	req, err := http.NewRequest("POST", urls, body)
90200	if err != nil {
90201		return nil, err
90202	}
90203	req.Header = reqHeaders
90204	googleapi.Expand(req.URL, map[string]string{
90205		"project": c.project,
90206		"zone":    c.zone,
90207	})
90208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90209}
90210
90211// Do executes the "compute.instances.insert" call.
90212// Exactly one of *Operation or error will be non-nil. Any non-2xx
90213// status code is an error. Response headers are in either
90214// *Operation.ServerResponse.Header or (if a response was returned at
90215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90216// to check whether the returned error was because
90217// http.StatusNotModified was returned.
90218func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90219	gensupport.SetOptions(c.urlParams_, opts...)
90220	res, err := c.doRequest("json")
90221	if res != nil && res.StatusCode == http.StatusNotModified {
90222		if res.Body != nil {
90223			res.Body.Close()
90224		}
90225		return nil, &googleapi.Error{
90226			Code:   res.StatusCode,
90227			Header: res.Header,
90228		}
90229	}
90230	if err != nil {
90231		return nil, err
90232	}
90233	defer googleapi.CloseBody(res)
90234	if err := googleapi.CheckResponse(res); err != nil {
90235		return nil, err
90236	}
90237	ret := &Operation{
90238		ServerResponse: googleapi.ServerResponse{
90239			Header:         res.Header,
90240			HTTPStatusCode: res.StatusCode,
90241		},
90242	}
90243	target := &ret
90244	if err := gensupport.DecodeResponse(target, res); err != nil {
90245		return nil, err
90246	}
90247	return ret, nil
90248	// {
90249	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
90250	//   "flatPath": "projects/{project}/zones/{zone}/instances",
90251	//   "httpMethod": "POST",
90252	//   "id": "compute.instances.insert",
90253	//   "parameterOrder": [
90254	//     "project",
90255	//     "zone"
90256	//   ],
90257	//   "parameters": {
90258	//     "project": {
90259	//       "description": "Project ID for this request.",
90260	//       "location": "path",
90261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90262	//       "required": true,
90263	//       "type": "string"
90264	//     },
90265	//     "requestId": {
90266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
90267	//       "location": "query",
90268	//       "type": "string"
90269	//     },
90270	//     "sourceInstanceTemplate": {
90271	//       "description": "Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ",
90272	//       "location": "query",
90273	//       "type": "string"
90274	//     },
90275	//     "zone": {
90276	//       "description": "The name of the zone for this request.",
90277	//       "location": "path",
90278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90279	//       "required": true,
90280	//       "type": "string"
90281	//     }
90282	//   },
90283	//   "path": "projects/{project}/zones/{zone}/instances",
90284	//   "request": {
90285	//     "$ref": "Instance"
90286	//   },
90287	//   "response": {
90288	//     "$ref": "Operation"
90289	//   },
90290	//   "scopes": [
90291	//     "https://www.googleapis.com/auth/cloud-platform",
90292	//     "https://www.googleapis.com/auth/compute"
90293	//   ]
90294	// }
90295
90296}
90297
90298// method id "compute.instances.list":
90299
90300type InstancesListCall struct {
90301	s            *Service
90302	project      string
90303	zone         string
90304	urlParams_   gensupport.URLParams
90305	ifNoneMatch_ string
90306	ctx_         context.Context
90307	header_      http.Header
90308}
90309
90310// List: Retrieves the list of instances contained within the specified
90311// zone.
90312//
90313// - project: Project ID for this request.
90314// - zone: The name of the zone for this request.
90315func (r *InstancesService) List(project string, zone string) *InstancesListCall {
90316	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90317	c.project = project
90318	c.zone = zone
90319	return c
90320}
90321
90322// Filter sets the optional parameter "filter": A filter expression that
90323// filters resources listed in the response. The expression must specify
90324// the field name, a comparison operator, and the value that you want to
90325// use for filtering. The value must be a string, a number, or a
90326// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90327// `<`. For example, if you are filtering Compute Engine instances, you
90328// can exclude instances named `example-instance` by specifying `name !=
90329// example-instance`. You can also filter nested fields. For example,
90330// you could specify `scheduling.automaticRestart = false` to include
90331// instances only if they are not scheduled for automatic restarts. You
90332// can use filtering on nested fields to filter based on resource
90333// labels. To filter on multiple expressions, provide each separate
90334// expression within parentheses. For example: ```
90335// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
90336// ``` By default, each expression is an `AND` expression. However, you
90337// can include `AND` and `OR` expressions explicitly. For example: ```
90338// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
90339// AND (scheduling.automaticRestart = true) ```
90340func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
90341	c.urlParams_.Set("filter", filter)
90342	return c
90343}
90344
90345// MaxResults sets the optional parameter "maxResults": The maximum
90346// number of results per page that should be returned. If the number of
90347// available results is larger than `maxResults`, Compute Engine returns
90348// a `nextPageToken` that can be used to get the next page of results in
90349// subsequent list requests. Acceptable values are `0` to `500`,
90350// inclusive. (Default: `500`)
90351func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
90352	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90353	return c
90354}
90355
90356// OrderBy sets the optional parameter "orderBy": Sorts list results by
90357// a certain order. By default, results are returned in alphanumerical
90358// order based on the resource name. You can also sort results in
90359// descending order based on the creation timestamp using
90360// `orderBy="creationTimestamp desc". This sorts results based on the
90361// `creationTimestamp` field in reverse chronological order (newest
90362// result first). Use this to sort resources like operations so that the
90363// newest operation is returned first. Currently, only sorting by `name`
90364// or `creationTimestamp desc` is supported.
90365func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
90366	c.urlParams_.Set("orderBy", orderBy)
90367	return c
90368}
90369
90370// PageToken sets the optional parameter "pageToken": Specifies a page
90371// token to use. Set `pageToken` to the `nextPageToken` returned by a
90372// previous list request to get the next page of results.
90373func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
90374	c.urlParams_.Set("pageToken", pageToken)
90375	return c
90376}
90377
90378// ReturnPartialSuccess sets the optional parameter
90379// "returnPartialSuccess": Opt-in for partial success behavior which
90380// provides partial results in case of failure. The default value is
90381// false.
90382func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
90383	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
90384	return c
90385}
90386
90387// Fields allows partial responses to be retrieved. See
90388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90389// for more information.
90390func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
90391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90392	return c
90393}
90394
90395// IfNoneMatch sets the optional parameter which makes the operation
90396// fail if the object's ETag matches the given value. This is useful for
90397// getting updates only after the object has changed since the last
90398// request. Use googleapi.IsNotModified to check whether the response
90399// error from Do is the result of In-None-Match.
90400func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
90401	c.ifNoneMatch_ = entityTag
90402	return c
90403}
90404
90405// Context sets the context to be used in this call's Do method. Any
90406// pending HTTP request will be aborted if the provided context is
90407// canceled.
90408func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
90409	c.ctx_ = ctx
90410	return c
90411}
90412
90413// Header returns an http.Header that can be modified by the caller to
90414// add HTTP headers to the request.
90415func (c *InstancesListCall) Header() http.Header {
90416	if c.header_ == nil {
90417		c.header_ = make(http.Header)
90418	}
90419	return c.header_
90420}
90421
90422func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
90423	reqHeaders := make(http.Header)
90424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
90425	for k, v := range c.header_ {
90426		reqHeaders[k] = v
90427	}
90428	reqHeaders.Set("User-Agent", c.s.userAgent())
90429	if c.ifNoneMatch_ != "" {
90430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90431	}
90432	var body io.Reader = nil
90433	c.urlParams_.Set("alt", alt)
90434	c.urlParams_.Set("prettyPrint", "false")
90435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
90436	urls += "?" + c.urlParams_.Encode()
90437	req, err := http.NewRequest("GET", urls, body)
90438	if err != nil {
90439		return nil, err
90440	}
90441	req.Header = reqHeaders
90442	googleapi.Expand(req.URL, map[string]string{
90443		"project": c.project,
90444		"zone":    c.zone,
90445	})
90446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90447}
90448
90449// Do executes the "compute.instances.list" call.
90450// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
90451// status code is an error. Response headers are in either
90452// *InstanceList.ServerResponse.Header or (if a response was returned at
90453// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90454// to check whether the returned error was because
90455// http.StatusNotModified was returned.
90456func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
90457	gensupport.SetOptions(c.urlParams_, opts...)
90458	res, err := c.doRequest("json")
90459	if res != nil && res.StatusCode == http.StatusNotModified {
90460		if res.Body != nil {
90461			res.Body.Close()
90462		}
90463		return nil, &googleapi.Error{
90464			Code:   res.StatusCode,
90465			Header: res.Header,
90466		}
90467	}
90468	if err != nil {
90469		return nil, err
90470	}
90471	defer googleapi.CloseBody(res)
90472	if err := googleapi.CheckResponse(res); err != nil {
90473		return nil, err
90474	}
90475	ret := &InstanceList{
90476		ServerResponse: googleapi.ServerResponse{
90477			Header:         res.Header,
90478			HTTPStatusCode: res.StatusCode,
90479		},
90480	}
90481	target := &ret
90482	if err := gensupport.DecodeResponse(target, res); err != nil {
90483		return nil, err
90484	}
90485	return ret, nil
90486	// {
90487	//   "description": "Retrieves the list of instances contained within the specified zone.",
90488	//   "flatPath": "projects/{project}/zones/{zone}/instances",
90489	//   "httpMethod": "GET",
90490	//   "id": "compute.instances.list",
90491	//   "parameterOrder": [
90492	//     "project",
90493	//     "zone"
90494	//   ],
90495	//   "parameters": {
90496	//     "filter": {
90497	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
90498	//       "location": "query",
90499	//       "type": "string"
90500	//     },
90501	//     "maxResults": {
90502	//       "default": "500",
90503	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
90504	//       "format": "uint32",
90505	//       "location": "query",
90506	//       "minimum": "0",
90507	//       "type": "integer"
90508	//     },
90509	//     "orderBy": {
90510	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
90511	//       "location": "query",
90512	//       "type": "string"
90513	//     },
90514	//     "pageToken": {
90515	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
90516	//       "location": "query",
90517	//       "type": "string"
90518	//     },
90519	//     "project": {
90520	//       "description": "Project ID for this request.",
90521	//       "location": "path",
90522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90523	//       "required": true,
90524	//       "type": "string"
90525	//     },
90526	//     "returnPartialSuccess": {
90527	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
90528	//       "location": "query",
90529	//       "type": "boolean"
90530	//     },
90531	//     "zone": {
90532	//       "description": "The name of the zone for this request.",
90533	//       "location": "path",
90534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90535	//       "required": true,
90536	//       "type": "string"
90537	//     }
90538	//   },
90539	//   "path": "projects/{project}/zones/{zone}/instances",
90540	//   "response": {
90541	//     "$ref": "InstanceList"
90542	//   },
90543	//   "scopes": [
90544	//     "https://www.googleapis.com/auth/cloud-platform",
90545	//     "https://www.googleapis.com/auth/compute",
90546	//     "https://www.googleapis.com/auth/compute.readonly"
90547	//   ]
90548	// }
90549
90550}
90551
90552// Pages invokes f for each page of results.
90553// A non-nil error returned from f will halt the iteration.
90554// The provided context supersedes any context provided to the Context method.
90555func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
90556	c.ctx_ = ctx
90557	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90558	for {
90559		x, err := c.Do()
90560		if err != nil {
90561			return err
90562		}
90563		if err := f(x); err != nil {
90564			return err
90565		}
90566		if x.NextPageToken == "" {
90567			return nil
90568		}
90569		c.PageToken(x.NextPageToken)
90570	}
90571}
90572
90573// method id "compute.instances.listReferrers":
90574
90575type InstancesListReferrersCall struct {
90576	s            *Service
90577	project      string
90578	zone         string
90579	instance     string
90580	urlParams_   gensupport.URLParams
90581	ifNoneMatch_ string
90582	ctx_         context.Context
90583	header_      http.Header
90584}
90585
90586// ListReferrers: Retrieves a list of resources that refer to the VM
90587// instance specified in the request. For example, if the VM instance is
90588// part of a managed or unmanaged instance group, the referrers list
90589// includes the instance group. For more information, read Viewing
90590// referrers to VM instances.
90591//
90592// - instance: Name of the target instance scoping this request, or '-'
90593//   if the request should span over all instances in the container.
90594// - project: Project ID for this request.
90595// - zone: The name of the zone for this request.
90596func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
90597	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90598	c.project = project
90599	c.zone = zone
90600	c.instance = instance
90601	return c
90602}
90603
90604// Filter sets the optional parameter "filter": A filter expression that
90605// filters resources listed in the response. The expression must specify
90606// the field name, a comparison operator, and the value that you want to
90607// use for filtering. The value must be a string, a number, or a
90608// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90609// `<`. For example, if you are filtering Compute Engine instances, you
90610// can exclude instances named `example-instance` by specifying `name !=
90611// example-instance`. You can also filter nested fields. For example,
90612// you could specify `scheduling.automaticRestart = false` to include
90613// instances only if they are not scheduled for automatic restarts. You
90614// can use filtering on nested fields to filter based on resource
90615// labels. To filter on multiple expressions, provide each separate
90616// expression within parentheses. For example: ```
90617// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
90618// ``` By default, each expression is an `AND` expression. However, you
90619// can include `AND` and `OR` expressions explicitly. For example: ```
90620// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
90621// AND (scheduling.automaticRestart = true) ```
90622func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
90623	c.urlParams_.Set("filter", filter)
90624	return c
90625}
90626
90627// MaxResults sets the optional parameter "maxResults": The maximum
90628// number of results per page that should be returned. If the number of
90629// available results is larger than `maxResults`, Compute Engine returns
90630// a `nextPageToken` that can be used to get the next page of results in
90631// subsequent list requests. Acceptable values are `0` to `500`,
90632// inclusive. (Default: `500`)
90633func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
90634	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90635	return c
90636}
90637
90638// OrderBy sets the optional parameter "orderBy": Sorts list results by
90639// a certain order. By default, results are returned in alphanumerical
90640// order based on the resource name. You can also sort results in
90641// descending order based on the creation timestamp using
90642// `orderBy="creationTimestamp desc". This sorts results based on the
90643// `creationTimestamp` field in reverse chronological order (newest
90644// result first). Use this to sort resources like operations so that the
90645// newest operation is returned first. Currently, only sorting by `name`
90646// or `creationTimestamp desc` is supported.
90647func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
90648	c.urlParams_.Set("orderBy", orderBy)
90649	return c
90650}
90651
90652// PageToken sets the optional parameter "pageToken": Specifies a page
90653// token to use. Set `pageToken` to the `nextPageToken` returned by a
90654// previous list request to get the next page of results.
90655func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
90656	c.urlParams_.Set("pageToken", pageToken)
90657	return c
90658}
90659
90660// ReturnPartialSuccess sets the optional parameter
90661// "returnPartialSuccess": Opt-in for partial success behavior which
90662// provides partial results in case of failure. The default value is
90663// false.
90664func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
90665	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
90666	return c
90667}
90668
90669// Fields allows partial responses to be retrieved. See
90670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90671// for more information.
90672func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
90673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90674	return c
90675}
90676
90677// IfNoneMatch sets the optional parameter which makes the operation
90678// fail if the object's ETag matches the given value. This is useful for
90679// getting updates only after the object has changed since the last
90680// request. Use googleapi.IsNotModified to check whether the response
90681// error from Do is the result of In-None-Match.
90682func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
90683	c.ifNoneMatch_ = entityTag
90684	return c
90685}
90686
90687// Context sets the context to be used in this call's Do method. Any
90688// pending HTTP request will be aborted if the provided context is
90689// canceled.
90690func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
90691	c.ctx_ = ctx
90692	return c
90693}
90694
90695// Header returns an http.Header that can be modified by the caller to
90696// add HTTP headers to the request.
90697func (c *InstancesListReferrersCall) Header() http.Header {
90698	if c.header_ == nil {
90699		c.header_ = make(http.Header)
90700	}
90701	return c.header_
90702}
90703
90704func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
90705	reqHeaders := make(http.Header)
90706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
90707	for k, v := range c.header_ {
90708		reqHeaders[k] = v
90709	}
90710	reqHeaders.Set("User-Agent", c.s.userAgent())
90711	if c.ifNoneMatch_ != "" {
90712		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90713	}
90714	var body io.Reader = nil
90715	c.urlParams_.Set("alt", alt)
90716	c.urlParams_.Set("prettyPrint", "false")
90717	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers")
90718	urls += "?" + c.urlParams_.Encode()
90719	req, err := http.NewRequest("GET", urls, body)
90720	if err != nil {
90721		return nil, err
90722	}
90723	req.Header = reqHeaders
90724	googleapi.Expand(req.URL, map[string]string{
90725		"project":  c.project,
90726		"zone":     c.zone,
90727		"instance": c.instance,
90728	})
90729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90730}
90731
90732// Do executes the "compute.instances.listReferrers" call.
90733// Exactly one of *InstanceListReferrers or error will be non-nil. Any
90734// non-2xx status code is an error. Response headers are in either
90735// *InstanceListReferrers.ServerResponse.Header or (if a response was
90736// returned at all) in error.(*googleapi.Error).Header. Use
90737// googleapi.IsNotModified to check whether the returned error was
90738// because http.StatusNotModified was returned.
90739func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
90740	gensupport.SetOptions(c.urlParams_, opts...)
90741	res, err := c.doRequest("json")
90742	if res != nil && res.StatusCode == http.StatusNotModified {
90743		if res.Body != nil {
90744			res.Body.Close()
90745		}
90746		return nil, &googleapi.Error{
90747			Code:   res.StatusCode,
90748			Header: res.Header,
90749		}
90750	}
90751	if err != nil {
90752		return nil, err
90753	}
90754	defer googleapi.CloseBody(res)
90755	if err := googleapi.CheckResponse(res); err != nil {
90756		return nil, err
90757	}
90758	ret := &InstanceListReferrers{
90759		ServerResponse: googleapi.ServerResponse{
90760			Header:         res.Header,
90761			HTTPStatusCode: res.StatusCode,
90762		},
90763	}
90764	target := &ret
90765	if err := gensupport.DecodeResponse(target, res); err != nil {
90766		return nil, err
90767	}
90768	return ret, nil
90769	// {
90770	//   "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.",
90771	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
90772	//   "httpMethod": "GET",
90773	//   "id": "compute.instances.listReferrers",
90774	//   "parameterOrder": [
90775	//     "project",
90776	//     "zone",
90777	//     "instance"
90778	//   ],
90779	//   "parameters": {
90780	//     "filter": {
90781	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
90782	//       "location": "query",
90783	//       "type": "string"
90784	//     },
90785	//     "instance": {
90786	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
90787	//       "location": "path",
90788	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90789	//       "required": true,
90790	//       "type": "string"
90791	//     },
90792	//     "maxResults": {
90793	//       "default": "500",
90794	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
90795	//       "format": "uint32",
90796	//       "location": "query",
90797	//       "minimum": "0",
90798	//       "type": "integer"
90799	//     },
90800	//     "orderBy": {
90801	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
90802	//       "location": "query",
90803	//       "type": "string"
90804	//     },
90805	//     "pageToken": {
90806	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
90807	//       "location": "query",
90808	//       "type": "string"
90809	//     },
90810	//     "project": {
90811	//       "description": "Project ID for this request.",
90812	//       "location": "path",
90813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90814	//       "required": true,
90815	//       "type": "string"
90816	//     },
90817	//     "returnPartialSuccess": {
90818	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
90819	//       "location": "query",
90820	//       "type": "boolean"
90821	//     },
90822	//     "zone": {
90823	//       "description": "The name of the zone for this request.",
90824	//       "location": "path",
90825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90826	//       "required": true,
90827	//       "type": "string"
90828	//     }
90829	//   },
90830	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
90831	//   "response": {
90832	//     "$ref": "InstanceListReferrers"
90833	//   },
90834	//   "scopes": [
90835	//     "https://www.googleapis.com/auth/cloud-platform",
90836	//     "https://www.googleapis.com/auth/compute",
90837	//     "https://www.googleapis.com/auth/compute.readonly"
90838	//   ]
90839	// }
90840
90841}
90842
90843// Pages invokes f for each page of results.
90844// A non-nil error returned from f will halt the iteration.
90845// The provided context supersedes any context provided to the Context method.
90846func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
90847	c.ctx_ = ctx
90848	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90849	for {
90850		x, err := c.Do()
90851		if err != nil {
90852			return err
90853		}
90854		if err := f(x); err != nil {
90855			return err
90856		}
90857		if x.NextPageToken == "" {
90858			return nil
90859		}
90860		c.PageToken(x.NextPageToken)
90861	}
90862}
90863
90864// method id "compute.instances.removeResourcePolicies":
90865
90866type InstancesRemoveResourcePoliciesCall struct {
90867	s                                      *Service
90868	project                                string
90869	zone                                   string
90870	instance                               string
90871	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
90872	urlParams_                             gensupport.URLParams
90873	ctx_                                   context.Context
90874	header_                                http.Header
90875}
90876
90877// RemoveResourcePolicies: Removes resource policies from an instance.
90878//
90879// - instance: The instance name for this request.
90880// - project: Project ID for this request.
90881// - zone: The name of the zone for this request.
90882func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
90883	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90884	c.project = project
90885	c.zone = zone
90886	c.instance = instance
90887	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
90888	return c
90889}
90890
90891// RequestId sets the optional parameter "requestId": An optional
90892// request ID to identify requests. Specify a unique request ID so that
90893// if you must retry your request, the server will know to ignore the
90894// request if it has already been completed. For example, consider a
90895// situation where you make an initial request and the request times
90896// out. If you make the request again with the same request ID, the
90897// server can check if original operation with the same request ID was
90898// received, and if so, will ignore the second request. This prevents
90899// clients from accidentally creating duplicate commitments. The request
90900// ID must be a valid UUID with the exception that zero UUID is not
90901// supported ( 00000000-0000-0000-0000-000000000000).
90902func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
90903	c.urlParams_.Set("requestId", requestId)
90904	return c
90905}
90906
90907// Fields allows partial responses to be retrieved. See
90908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90909// for more information.
90910func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
90911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90912	return c
90913}
90914
90915// Context sets the context to be used in this call's Do method. Any
90916// pending HTTP request will be aborted if the provided context is
90917// canceled.
90918func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
90919	c.ctx_ = ctx
90920	return c
90921}
90922
90923// Header returns an http.Header that can be modified by the caller to
90924// add HTTP headers to the request.
90925func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
90926	if c.header_ == nil {
90927		c.header_ = make(http.Header)
90928	}
90929	return c.header_
90930}
90931
90932func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
90933	reqHeaders := make(http.Header)
90934	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
90935	for k, v := range c.header_ {
90936		reqHeaders[k] = v
90937	}
90938	reqHeaders.Set("User-Agent", c.s.userAgent())
90939	var body io.Reader = nil
90940	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
90941	if err != nil {
90942		return nil, err
90943	}
90944	reqHeaders.Set("Content-Type", "application/json")
90945	c.urlParams_.Set("alt", alt)
90946	c.urlParams_.Set("prettyPrint", "false")
90947	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
90948	urls += "?" + c.urlParams_.Encode()
90949	req, err := http.NewRequest("POST", urls, body)
90950	if err != nil {
90951		return nil, err
90952	}
90953	req.Header = reqHeaders
90954	googleapi.Expand(req.URL, map[string]string{
90955		"project":  c.project,
90956		"zone":     c.zone,
90957		"instance": c.instance,
90958	})
90959	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90960}
90961
90962// Do executes the "compute.instances.removeResourcePolicies" call.
90963// Exactly one of *Operation or error will be non-nil. Any non-2xx
90964// status code is an error. Response headers are in either
90965// *Operation.ServerResponse.Header or (if a response was returned at
90966// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90967// to check whether the returned error was because
90968// http.StatusNotModified was returned.
90969func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90970	gensupport.SetOptions(c.urlParams_, opts...)
90971	res, err := c.doRequest("json")
90972	if res != nil && res.StatusCode == http.StatusNotModified {
90973		if res.Body != nil {
90974			res.Body.Close()
90975		}
90976		return nil, &googleapi.Error{
90977			Code:   res.StatusCode,
90978			Header: res.Header,
90979		}
90980	}
90981	if err != nil {
90982		return nil, err
90983	}
90984	defer googleapi.CloseBody(res)
90985	if err := googleapi.CheckResponse(res); err != nil {
90986		return nil, err
90987	}
90988	ret := &Operation{
90989		ServerResponse: googleapi.ServerResponse{
90990			Header:         res.Header,
90991			HTTPStatusCode: res.StatusCode,
90992		},
90993	}
90994	target := &ret
90995	if err := gensupport.DecodeResponse(target, res); err != nil {
90996		return nil, err
90997	}
90998	return ret, nil
90999	// {
91000	//   "description": "Removes resource policies from an instance.",
91001	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
91002	//   "httpMethod": "POST",
91003	//   "id": "compute.instances.removeResourcePolicies",
91004	//   "parameterOrder": [
91005	//     "project",
91006	//     "zone",
91007	//     "instance"
91008	//   ],
91009	//   "parameters": {
91010	//     "instance": {
91011	//       "description": "The instance name for this request.",
91012	//       "location": "path",
91013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91014	//       "required": true,
91015	//       "type": "string"
91016	//     },
91017	//     "project": {
91018	//       "description": "Project ID for this request.",
91019	//       "location": "path",
91020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91021	//       "required": true,
91022	//       "type": "string"
91023	//     },
91024	//     "requestId": {
91025	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91026	//       "location": "query",
91027	//       "type": "string"
91028	//     },
91029	//     "zone": {
91030	//       "description": "The name of the zone for this request.",
91031	//       "location": "path",
91032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91033	//       "required": true,
91034	//       "type": "string"
91035	//     }
91036	//   },
91037	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
91038	//   "request": {
91039	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
91040	//   },
91041	//   "response": {
91042	//     "$ref": "Operation"
91043	//   },
91044	//   "scopes": [
91045	//     "https://www.googleapis.com/auth/cloud-platform",
91046	//     "https://www.googleapis.com/auth/compute"
91047	//   ]
91048	// }
91049
91050}
91051
91052// method id "compute.instances.reset":
91053
91054type InstancesResetCall struct {
91055	s          *Service
91056	project    string
91057	zone       string
91058	instance   string
91059	urlParams_ gensupport.URLParams
91060	ctx_       context.Context
91061	header_    http.Header
91062}
91063
91064// Reset: Performs a reset on the instance. This is a hard reset the VM
91065// does not do a graceful shutdown. For more information, see Resetting
91066// an instance.
91067//
91068// - instance: Name of the instance scoping this request.
91069// - project: Project ID for this request.
91070// - zone: The name of the zone for this request.
91071func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
91072	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91073	c.project = project
91074	c.zone = zone
91075	c.instance = instance
91076	return c
91077}
91078
91079// RequestId sets the optional parameter "requestId": An optional
91080// request ID to identify requests. Specify a unique request ID so that
91081// if you must retry your request, the server will know to ignore the
91082// request if it has already been completed. For example, consider a
91083// situation where you make an initial request and the request times
91084// out. If you make the request again with the same request ID, the
91085// server can check if original operation with the same request ID was
91086// received, and if so, will ignore the second request. This prevents
91087// clients from accidentally creating duplicate commitments. The request
91088// ID must be a valid UUID with the exception that zero UUID is not
91089// supported ( 00000000-0000-0000-0000-000000000000).
91090func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
91091	c.urlParams_.Set("requestId", requestId)
91092	return c
91093}
91094
91095// Fields allows partial responses to be retrieved. See
91096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91097// for more information.
91098func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
91099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91100	return c
91101}
91102
91103// Context sets the context to be used in this call's Do method. Any
91104// pending HTTP request will be aborted if the provided context is
91105// canceled.
91106func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
91107	c.ctx_ = ctx
91108	return c
91109}
91110
91111// Header returns an http.Header that can be modified by the caller to
91112// add HTTP headers to the request.
91113func (c *InstancesResetCall) Header() http.Header {
91114	if c.header_ == nil {
91115		c.header_ = make(http.Header)
91116	}
91117	return c.header_
91118}
91119
91120func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
91121	reqHeaders := make(http.Header)
91122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91123	for k, v := range c.header_ {
91124		reqHeaders[k] = v
91125	}
91126	reqHeaders.Set("User-Agent", c.s.userAgent())
91127	var body io.Reader = nil
91128	c.urlParams_.Set("alt", alt)
91129	c.urlParams_.Set("prettyPrint", "false")
91130	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset")
91131	urls += "?" + c.urlParams_.Encode()
91132	req, err := http.NewRequest("POST", urls, body)
91133	if err != nil {
91134		return nil, err
91135	}
91136	req.Header = reqHeaders
91137	googleapi.Expand(req.URL, map[string]string{
91138		"project":  c.project,
91139		"zone":     c.zone,
91140		"instance": c.instance,
91141	})
91142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91143}
91144
91145// Do executes the "compute.instances.reset" call.
91146// Exactly one of *Operation or error will be non-nil. Any non-2xx
91147// status code is an error. Response headers are in either
91148// *Operation.ServerResponse.Header or (if a response was returned at
91149// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91150// to check whether the returned error was because
91151// http.StatusNotModified was returned.
91152func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91153	gensupport.SetOptions(c.urlParams_, opts...)
91154	res, err := c.doRequest("json")
91155	if res != nil && res.StatusCode == http.StatusNotModified {
91156		if res.Body != nil {
91157			res.Body.Close()
91158		}
91159		return nil, &googleapi.Error{
91160			Code:   res.StatusCode,
91161			Header: res.Header,
91162		}
91163	}
91164	if err != nil {
91165		return nil, err
91166	}
91167	defer googleapi.CloseBody(res)
91168	if err := googleapi.CheckResponse(res); err != nil {
91169		return nil, err
91170	}
91171	ret := &Operation{
91172		ServerResponse: googleapi.ServerResponse{
91173			Header:         res.Header,
91174			HTTPStatusCode: res.StatusCode,
91175		},
91176	}
91177	target := &ret
91178	if err := gensupport.DecodeResponse(target, res); err != nil {
91179		return nil, err
91180	}
91181	return ret, nil
91182	// {
91183	//   "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.",
91184	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset",
91185	//   "httpMethod": "POST",
91186	//   "id": "compute.instances.reset",
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])?|[1-9][0-9]{0,19}",
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. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The 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}/reset",
91221	//   "response": {
91222	//     "$ref": "Operation"
91223	//   },
91224	//   "scopes": [
91225	//     "https://www.googleapis.com/auth/cloud-platform",
91226	//     "https://www.googleapis.com/auth/compute"
91227	//   ]
91228	// }
91229
91230}
91231
91232// method id "compute.instances.sendDiagnosticInterrupt":
91233
91234type InstancesSendDiagnosticInterruptCall struct {
91235	s          *Service
91236	project    string
91237	zone       string
91238	instance   string
91239	urlParams_ gensupport.URLParams
91240	ctx_       context.Context
91241	header_    http.Header
91242}
91243
91244// SendDiagnosticInterrupt: Sends diagnostic interrupt to the instance.
91245//
91246// - instance: Name of the instance scoping this request.
91247// - project: Project ID for this request.
91248// - zone: The name of the zone for this request.
91249func (r *InstancesService) SendDiagnosticInterrupt(project string, zone string, instance string) *InstancesSendDiagnosticInterruptCall {
91250	c := &InstancesSendDiagnosticInterruptCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91251	c.project = project
91252	c.zone = zone
91253	c.instance = instance
91254	return c
91255}
91256
91257// Fields allows partial responses to be retrieved. See
91258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91259// for more information.
91260func (c *InstancesSendDiagnosticInterruptCall) Fields(s ...googleapi.Field) *InstancesSendDiagnosticInterruptCall {
91261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91262	return c
91263}
91264
91265// Context sets the context to be used in this call's Do method. Any
91266// pending HTTP request will be aborted if the provided context is
91267// canceled.
91268func (c *InstancesSendDiagnosticInterruptCall) Context(ctx context.Context) *InstancesSendDiagnosticInterruptCall {
91269	c.ctx_ = ctx
91270	return c
91271}
91272
91273// Header returns an http.Header that can be modified by the caller to
91274// add HTTP headers to the request.
91275func (c *InstancesSendDiagnosticInterruptCall) Header() http.Header {
91276	if c.header_ == nil {
91277		c.header_ = make(http.Header)
91278	}
91279	return c.header_
91280}
91281
91282func (c *InstancesSendDiagnosticInterruptCall) doRequest(alt string) (*http.Response, error) {
91283	reqHeaders := make(http.Header)
91284	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91285	for k, v := range c.header_ {
91286		reqHeaders[k] = v
91287	}
91288	reqHeaders.Set("User-Agent", c.s.userAgent())
91289	var body io.Reader = nil
91290	c.urlParams_.Set("alt", alt)
91291	c.urlParams_.Set("prettyPrint", "false")
91292	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt")
91293	urls += "?" + c.urlParams_.Encode()
91294	req, err := http.NewRequest("POST", urls, body)
91295	if err != nil {
91296		return nil, err
91297	}
91298	req.Header = reqHeaders
91299	googleapi.Expand(req.URL, map[string]string{
91300		"project":  c.project,
91301		"zone":     c.zone,
91302		"instance": c.instance,
91303	})
91304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91305}
91306
91307// Do executes the "compute.instances.sendDiagnosticInterrupt" call.
91308func (c *InstancesSendDiagnosticInterruptCall) Do(opts ...googleapi.CallOption) error {
91309	gensupport.SetOptions(c.urlParams_, opts...)
91310	res, err := c.doRequest("json")
91311	if err != nil {
91312		return err
91313	}
91314	defer googleapi.CloseBody(res)
91315	if err := googleapi.CheckResponse(res); err != nil {
91316		return err
91317	}
91318	return nil
91319	// {
91320	//   "description": "Sends diagnostic interrupt to the instance.",
91321	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
91322	//   "httpMethod": "POST",
91323	//   "id": "compute.instances.sendDiagnosticInterrupt",
91324	//   "parameterOrder": [
91325	//     "project",
91326	//     "zone",
91327	//     "instance"
91328	//   ],
91329	//   "parameters": {
91330	//     "instance": {
91331	//       "description": "Name of the instance scoping this request.",
91332	//       "location": "path",
91333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91334	//       "required": true,
91335	//       "type": "string"
91336	//     },
91337	//     "project": {
91338	//       "description": "Project ID for this request.",
91339	//       "location": "path",
91340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91341	//       "required": true,
91342	//       "type": "string"
91343	//     },
91344	//     "zone": {
91345	//       "description": "The name of the zone for this request.",
91346	//       "location": "path",
91347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91348	//       "required": true,
91349	//       "type": "string"
91350	//     }
91351	//   },
91352	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
91353	//   "scopes": [
91354	//     "https://www.googleapis.com/auth/cloud-platform",
91355	//     "https://www.googleapis.com/auth/compute"
91356	//   ]
91357	// }
91358
91359}
91360
91361// method id "compute.instances.setDeletionProtection":
91362
91363type InstancesSetDeletionProtectionCall struct {
91364	s          *Service
91365	project    string
91366	zone       string
91367	resource   string
91368	urlParams_ gensupport.URLParams
91369	ctx_       context.Context
91370	header_    http.Header
91371}
91372
91373// SetDeletionProtection: Sets deletion protection on the instance.
91374//
91375// - project: Project ID for this request.
91376// - resource: Name or id of the resource for this request.
91377// - zone: The name of the zone for this request.
91378func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
91379	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91380	c.project = project
91381	c.zone = zone
91382	c.resource = resource
91383	return c
91384}
91385
91386// DeletionProtection sets the optional parameter "deletionProtection":
91387// Whether the resource should be protected against deletion.
91388func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
91389	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
91390	return c
91391}
91392
91393// RequestId sets the optional parameter "requestId": An optional
91394// request ID to identify requests. Specify a unique request ID so that
91395// if you must retry your request, the server will know to ignore the
91396// request if it has already been completed. For example, consider a
91397// situation where you make an initial request and the request times
91398// out. If you make the request again with the same request ID, the
91399// server can check if original operation with the same request ID was
91400// received, and if so, will ignore the second request. This prevents
91401// clients from accidentally creating duplicate commitments. The request
91402// ID must be a valid UUID with the exception that zero UUID is not
91403// supported ( 00000000-0000-0000-0000-000000000000).
91404func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
91405	c.urlParams_.Set("requestId", requestId)
91406	return c
91407}
91408
91409// Fields allows partial responses to be retrieved. See
91410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91411// for more information.
91412func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
91413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91414	return c
91415}
91416
91417// Context sets the context to be used in this call's Do method. Any
91418// pending HTTP request will be aborted if the provided context is
91419// canceled.
91420func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
91421	c.ctx_ = ctx
91422	return c
91423}
91424
91425// Header returns an http.Header that can be modified by the caller to
91426// add HTTP headers to the request.
91427func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
91428	if c.header_ == nil {
91429		c.header_ = make(http.Header)
91430	}
91431	return c.header_
91432}
91433
91434func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
91435	reqHeaders := make(http.Header)
91436	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91437	for k, v := range c.header_ {
91438		reqHeaders[k] = v
91439	}
91440	reqHeaders.Set("User-Agent", c.s.userAgent())
91441	var body io.Reader = nil
91442	c.urlParams_.Set("alt", alt)
91443	c.urlParams_.Set("prettyPrint", "false")
91444	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
91445	urls += "?" + c.urlParams_.Encode()
91446	req, err := http.NewRequest("POST", urls, body)
91447	if err != nil {
91448		return nil, err
91449	}
91450	req.Header = reqHeaders
91451	googleapi.Expand(req.URL, map[string]string{
91452		"project":  c.project,
91453		"zone":     c.zone,
91454		"resource": c.resource,
91455	})
91456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91457}
91458
91459// Do executes the "compute.instances.setDeletionProtection" call.
91460// Exactly one of *Operation or error will be non-nil. Any non-2xx
91461// status code is an error. Response headers are in either
91462// *Operation.ServerResponse.Header or (if a response was returned at
91463// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91464// to check whether the returned error was because
91465// http.StatusNotModified was returned.
91466func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91467	gensupport.SetOptions(c.urlParams_, opts...)
91468	res, err := c.doRequest("json")
91469	if res != nil && res.StatusCode == http.StatusNotModified {
91470		if res.Body != nil {
91471			res.Body.Close()
91472		}
91473		return nil, &googleapi.Error{
91474			Code:   res.StatusCode,
91475			Header: res.Header,
91476		}
91477	}
91478	if err != nil {
91479		return nil, err
91480	}
91481	defer googleapi.CloseBody(res)
91482	if err := googleapi.CheckResponse(res); err != nil {
91483		return nil, err
91484	}
91485	ret := &Operation{
91486		ServerResponse: googleapi.ServerResponse{
91487			Header:         res.Header,
91488			HTTPStatusCode: res.StatusCode,
91489		},
91490	}
91491	target := &ret
91492	if err := gensupport.DecodeResponse(target, res); err != nil {
91493		return nil, err
91494	}
91495	return ret, nil
91496	// {
91497	//   "description": "Sets deletion protection on the instance.",
91498	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
91499	//   "httpMethod": "POST",
91500	//   "id": "compute.instances.setDeletionProtection",
91501	//   "parameterOrder": [
91502	//     "project",
91503	//     "zone",
91504	//     "resource"
91505	//   ],
91506	//   "parameters": {
91507	//     "deletionProtection": {
91508	//       "default": "true",
91509	//       "description": "Whether the resource should be protected against deletion.",
91510	//       "location": "query",
91511	//       "type": "boolean"
91512	//     },
91513	//     "project": {
91514	//       "description": "Project ID for this request.",
91515	//       "location": "path",
91516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91517	//       "required": true,
91518	//       "type": "string"
91519	//     },
91520	//     "requestId": {
91521	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91522	//       "location": "query",
91523	//       "type": "string"
91524	//     },
91525	//     "resource": {
91526	//       "description": "Name or id of the resource for this request.",
91527	//       "location": "path",
91528	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91529	//       "required": true,
91530	//       "type": "string"
91531	//     },
91532	//     "zone": {
91533	//       "description": "The name of the zone for this request.",
91534	//       "location": "path",
91535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91536	//       "required": true,
91537	//       "type": "string"
91538	//     }
91539	//   },
91540	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
91541	//   "response": {
91542	//     "$ref": "Operation"
91543	//   },
91544	//   "scopes": [
91545	//     "https://www.googleapis.com/auth/cloud-platform",
91546	//     "https://www.googleapis.com/auth/compute"
91547	//   ]
91548	// }
91549
91550}
91551
91552// method id "compute.instances.setDiskAutoDelete":
91553
91554type InstancesSetDiskAutoDeleteCall struct {
91555	s          *Service
91556	project    string
91557	zone       string
91558	instance   string
91559	urlParams_ gensupport.URLParams
91560	ctx_       context.Context
91561	header_    http.Header
91562}
91563
91564// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
91565// an instance.
91566//
91567// - autoDelete: Whether to auto-delete the disk when the instance is
91568//   deleted.
91569// - deviceName: The device name of the disk to modify. Make a get()
91570//   request on the instance to view currently attached disks and device
91571//   names.
91572// - instance: The instance name for this request.
91573// - project: Project ID for this request.
91574// - zone: The name of the zone for this request.
91575func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
91576	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91577	c.project = project
91578	c.zone = zone
91579	c.instance = instance
91580	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
91581	c.urlParams_.Set("deviceName", deviceName)
91582	return c
91583}
91584
91585// RequestId sets the optional parameter "requestId": An optional
91586// request ID to identify requests. Specify a unique request ID so that
91587// if you must retry your request, the server will know to ignore the
91588// request if it has already been completed. For example, consider a
91589// situation where you make an initial request and the request times
91590// out. If you make the request again with the same request ID, the
91591// server can check if original operation with the same request ID was
91592// received, and if so, will ignore the second request. This prevents
91593// clients from accidentally creating duplicate commitments. The request
91594// ID must be a valid UUID with the exception that zero UUID is not
91595// supported ( 00000000-0000-0000-0000-000000000000).
91596func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
91597	c.urlParams_.Set("requestId", requestId)
91598	return c
91599}
91600
91601// Fields allows partial responses to be retrieved. See
91602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91603// for more information.
91604func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
91605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91606	return c
91607}
91608
91609// Context sets the context to be used in this call's Do method. Any
91610// pending HTTP request will be aborted if the provided context is
91611// canceled.
91612func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
91613	c.ctx_ = ctx
91614	return c
91615}
91616
91617// Header returns an http.Header that can be modified by the caller to
91618// add HTTP headers to the request.
91619func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
91620	if c.header_ == nil {
91621		c.header_ = make(http.Header)
91622	}
91623	return c.header_
91624}
91625
91626func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
91627	reqHeaders := make(http.Header)
91628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91629	for k, v := range c.header_ {
91630		reqHeaders[k] = v
91631	}
91632	reqHeaders.Set("User-Agent", c.s.userAgent())
91633	var body io.Reader = nil
91634	c.urlParams_.Set("alt", alt)
91635	c.urlParams_.Set("prettyPrint", "false")
91636	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
91637	urls += "?" + c.urlParams_.Encode()
91638	req, err := http.NewRequest("POST", urls, body)
91639	if err != nil {
91640		return nil, err
91641	}
91642	req.Header = reqHeaders
91643	googleapi.Expand(req.URL, map[string]string{
91644		"project":  c.project,
91645		"zone":     c.zone,
91646		"instance": c.instance,
91647	})
91648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91649}
91650
91651// Do executes the "compute.instances.setDiskAutoDelete" call.
91652// Exactly one of *Operation or error will be non-nil. Any non-2xx
91653// status code is an error. Response headers are in either
91654// *Operation.ServerResponse.Header or (if a response was returned at
91655// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91656// to check whether the returned error was because
91657// http.StatusNotModified was returned.
91658func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91659	gensupport.SetOptions(c.urlParams_, opts...)
91660	res, err := c.doRequest("json")
91661	if res != nil && res.StatusCode == http.StatusNotModified {
91662		if res.Body != nil {
91663			res.Body.Close()
91664		}
91665		return nil, &googleapi.Error{
91666			Code:   res.StatusCode,
91667			Header: res.Header,
91668		}
91669	}
91670	if err != nil {
91671		return nil, err
91672	}
91673	defer googleapi.CloseBody(res)
91674	if err := googleapi.CheckResponse(res); err != nil {
91675		return nil, err
91676	}
91677	ret := &Operation{
91678		ServerResponse: googleapi.ServerResponse{
91679			Header:         res.Header,
91680			HTTPStatusCode: res.StatusCode,
91681		},
91682	}
91683	target := &ret
91684	if err := gensupport.DecodeResponse(target, res); err != nil {
91685		return nil, err
91686	}
91687	return ret, nil
91688	// {
91689	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
91690	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
91691	//   "httpMethod": "POST",
91692	//   "id": "compute.instances.setDiskAutoDelete",
91693	//   "parameterOrder": [
91694	//     "project",
91695	//     "zone",
91696	//     "instance",
91697	//     "autoDelete",
91698	//     "deviceName"
91699	//   ],
91700	//   "parameters": {
91701	//     "autoDelete": {
91702	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
91703	//       "location": "query",
91704	//       "required": true,
91705	//       "type": "boolean"
91706	//     },
91707	//     "deviceName": {
91708	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
91709	//       "location": "query",
91710	//       "pattern": "\\w[\\w.-]{0,254}",
91711	//       "required": true,
91712	//       "type": "string"
91713	//     },
91714	//     "instance": {
91715	//       "description": "The instance name for this request.",
91716	//       "location": "path",
91717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91718	//       "required": true,
91719	//       "type": "string"
91720	//     },
91721	//     "project": {
91722	//       "description": "Project ID for this request.",
91723	//       "location": "path",
91724	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91725	//       "required": true,
91726	//       "type": "string"
91727	//     },
91728	//     "requestId": {
91729	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91730	//       "location": "query",
91731	//       "type": "string"
91732	//     },
91733	//     "zone": {
91734	//       "description": "The name of the zone for this request.",
91735	//       "location": "path",
91736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91737	//       "required": true,
91738	//       "type": "string"
91739	//     }
91740	//   },
91741	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
91742	//   "response": {
91743	//     "$ref": "Operation"
91744	//   },
91745	//   "scopes": [
91746	//     "https://www.googleapis.com/auth/cloud-platform",
91747	//     "https://www.googleapis.com/auth/compute"
91748	//   ]
91749	// }
91750
91751}
91752
91753// method id "compute.instances.setIamPolicy":
91754
91755type InstancesSetIamPolicyCall struct {
91756	s                    *Service
91757	project              string
91758	zone                 string
91759	resource             string
91760	zonesetpolicyrequest *ZoneSetPolicyRequest
91761	urlParams_           gensupport.URLParams
91762	ctx_                 context.Context
91763	header_              http.Header
91764}
91765
91766// SetIamPolicy: Sets the access control policy on the specified
91767// resource. Replaces any existing policy.
91768//
91769// - project: Project ID for this request.
91770// - resource: Name or id of the resource for this request.
91771// - zone: The name of the zone for this request.
91772func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
91773	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91774	c.project = project
91775	c.zone = zone
91776	c.resource = resource
91777	c.zonesetpolicyrequest = zonesetpolicyrequest
91778	return c
91779}
91780
91781// Fields allows partial responses to be retrieved. See
91782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91783// for more information.
91784func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
91785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91786	return c
91787}
91788
91789// Context sets the context to be used in this call's Do method. Any
91790// pending HTTP request will be aborted if the provided context is
91791// canceled.
91792func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
91793	c.ctx_ = ctx
91794	return c
91795}
91796
91797// Header returns an http.Header that can be modified by the caller to
91798// add HTTP headers to the request.
91799func (c *InstancesSetIamPolicyCall) Header() http.Header {
91800	if c.header_ == nil {
91801		c.header_ = make(http.Header)
91802	}
91803	return c.header_
91804}
91805
91806func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
91807	reqHeaders := make(http.Header)
91808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91809	for k, v := range c.header_ {
91810		reqHeaders[k] = v
91811	}
91812	reqHeaders.Set("User-Agent", c.s.userAgent())
91813	var body io.Reader = nil
91814	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
91815	if err != nil {
91816		return nil, err
91817	}
91818	reqHeaders.Set("Content-Type", "application/json")
91819	c.urlParams_.Set("alt", alt)
91820	c.urlParams_.Set("prettyPrint", "false")
91821	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy")
91822	urls += "?" + c.urlParams_.Encode()
91823	req, err := http.NewRequest("POST", urls, body)
91824	if err != nil {
91825		return nil, err
91826	}
91827	req.Header = reqHeaders
91828	googleapi.Expand(req.URL, map[string]string{
91829		"project":  c.project,
91830		"zone":     c.zone,
91831		"resource": c.resource,
91832	})
91833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91834}
91835
91836// Do executes the "compute.instances.setIamPolicy" call.
91837// Exactly one of *Policy or error will be non-nil. Any non-2xx status
91838// code is an error. Response headers are in either
91839// *Policy.ServerResponse.Header or (if a response was returned at all)
91840// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91841// check whether the returned error was because http.StatusNotModified
91842// was returned.
91843func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
91844	gensupport.SetOptions(c.urlParams_, opts...)
91845	res, err := c.doRequest("json")
91846	if res != nil && res.StatusCode == http.StatusNotModified {
91847		if res.Body != nil {
91848			res.Body.Close()
91849		}
91850		return nil, &googleapi.Error{
91851			Code:   res.StatusCode,
91852			Header: res.Header,
91853		}
91854	}
91855	if err != nil {
91856		return nil, err
91857	}
91858	defer googleapi.CloseBody(res)
91859	if err := googleapi.CheckResponse(res); err != nil {
91860		return nil, err
91861	}
91862	ret := &Policy{
91863		ServerResponse: googleapi.ServerResponse{
91864			Header:         res.Header,
91865			HTTPStatusCode: res.StatusCode,
91866		},
91867	}
91868	target := &ret
91869	if err := gensupport.DecodeResponse(target, res); err != nil {
91870		return nil, err
91871	}
91872	return ret, nil
91873	// {
91874	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
91875	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
91876	//   "httpMethod": "POST",
91877	//   "id": "compute.instances.setIamPolicy",
91878	//   "parameterOrder": [
91879	//     "project",
91880	//     "zone",
91881	//     "resource"
91882	//   ],
91883	//   "parameters": {
91884	//     "project": {
91885	//       "description": "Project ID for this request.",
91886	//       "location": "path",
91887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91888	//       "required": true,
91889	//       "type": "string"
91890	//     },
91891	//     "resource": {
91892	//       "description": "Name or id of the resource for this request.",
91893	//       "location": "path",
91894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91895	//       "required": true,
91896	//       "type": "string"
91897	//     },
91898	//     "zone": {
91899	//       "description": "The name of the zone for this request.",
91900	//       "location": "path",
91901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91902	//       "required": true,
91903	//       "type": "string"
91904	//     }
91905	//   },
91906	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
91907	//   "request": {
91908	//     "$ref": "ZoneSetPolicyRequest"
91909	//   },
91910	//   "response": {
91911	//     "$ref": "Policy"
91912	//   },
91913	//   "scopes": [
91914	//     "https://www.googleapis.com/auth/cloud-platform",
91915	//     "https://www.googleapis.com/auth/compute"
91916	//   ]
91917	// }
91918
91919}
91920
91921// method id "compute.instances.setLabels":
91922
91923type InstancesSetLabelsCall struct {
91924	s                         *Service
91925	project                   string
91926	zone                      string
91927	instance                  string
91928	instancessetlabelsrequest *InstancesSetLabelsRequest
91929	urlParams_                gensupport.URLParams
91930	ctx_                      context.Context
91931	header_                   http.Header
91932}
91933
91934// SetLabels: Sets labels on an instance. To learn more about labels,
91935// read the Labeling Resources documentation.
91936//
91937// - instance: Name of the instance scoping this request.
91938// - project: Project ID for this request.
91939// - zone: The name of the zone for this request.
91940func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
91941	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91942	c.project = project
91943	c.zone = zone
91944	c.instance = instance
91945	c.instancessetlabelsrequest = instancessetlabelsrequest
91946	return c
91947}
91948
91949// RequestId sets the optional parameter "requestId": An optional
91950// request ID to identify requests. Specify a unique request ID so that
91951// if you must retry your request, the server will know to ignore the
91952// request if it has already been completed. For example, consider a
91953// situation where you make an initial request and the request times
91954// out. If you make the request again with the same request ID, the
91955// server can check if original operation with the same request ID was
91956// received, and if so, will ignore the second request. This prevents
91957// clients from accidentally creating duplicate commitments. The request
91958// ID must be a valid UUID with the exception that zero UUID is not
91959// supported ( 00000000-0000-0000-0000-000000000000).
91960func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
91961	c.urlParams_.Set("requestId", requestId)
91962	return c
91963}
91964
91965// Fields allows partial responses to be retrieved. See
91966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91967// for more information.
91968func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
91969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91970	return c
91971}
91972
91973// Context sets the context to be used in this call's Do method. Any
91974// pending HTTP request will be aborted if the provided context is
91975// canceled.
91976func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
91977	c.ctx_ = ctx
91978	return c
91979}
91980
91981// Header returns an http.Header that can be modified by the caller to
91982// add HTTP headers to the request.
91983func (c *InstancesSetLabelsCall) Header() http.Header {
91984	if c.header_ == nil {
91985		c.header_ = make(http.Header)
91986	}
91987	return c.header_
91988}
91989
91990func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
91991	reqHeaders := make(http.Header)
91992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
91993	for k, v := range c.header_ {
91994		reqHeaders[k] = v
91995	}
91996	reqHeaders.Set("User-Agent", c.s.userAgent())
91997	var body io.Reader = nil
91998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
91999	if err != nil {
92000		return nil, err
92001	}
92002	reqHeaders.Set("Content-Type", "application/json")
92003	c.urlParams_.Set("alt", alt)
92004	c.urlParams_.Set("prettyPrint", "false")
92005	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels")
92006	urls += "?" + c.urlParams_.Encode()
92007	req, err := http.NewRequest("POST", urls, body)
92008	if err != nil {
92009		return nil, err
92010	}
92011	req.Header = reqHeaders
92012	googleapi.Expand(req.URL, map[string]string{
92013		"project":  c.project,
92014		"zone":     c.zone,
92015		"instance": c.instance,
92016	})
92017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92018}
92019
92020// Do executes the "compute.instances.setLabels" call.
92021// Exactly one of *Operation or error will be non-nil. Any non-2xx
92022// status code is an error. Response headers are in either
92023// *Operation.ServerResponse.Header or (if a response was returned at
92024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92025// to check whether the returned error was because
92026// http.StatusNotModified was returned.
92027func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92028	gensupport.SetOptions(c.urlParams_, opts...)
92029	res, err := c.doRequest("json")
92030	if res != nil && res.StatusCode == http.StatusNotModified {
92031		if res.Body != nil {
92032			res.Body.Close()
92033		}
92034		return nil, &googleapi.Error{
92035			Code:   res.StatusCode,
92036			Header: res.Header,
92037		}
92038	}
92039	if err != nil {
92040		return nil, err
92041	}
92042	defer googleapi.CloseBody(res)
92043	if err := googleapi.CheckResponse(res); err != nil {
92044		return nil, err
92045	}
92046	ret := &Operation{
92047		ServerResponse: googleapi.ServerResponse{
92048			Header:         res.Header,
92049			HTTPStatusCode: res.StatusCode,
92050		},
92051	}
92052	target := &ret
92053	if err := gensupport.DecodeResponse(target, res); err != nil {
92054		return nil, err
92055	}
92056	return ret, nil
92057	// {
92058	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
92059	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
92060	//   "httpMethod": "POST",
92061	//   "id": "compute.instances.setLabels",
92062	//   "parameterOrder": [
92063	//     "project",
92064	//     "zone",
92065	//     "instance"
92066	//   ],
92067	//   "parameters": {
92068	//     "instance": {
92069	//       "description": "Name of the instance scoping this request.",
92070	//       "location": "path",
92071	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92072	//       "required": true,
92073	//       "type": "string"
92074	//     },
92075	//     "project": {
92076	//       "description": "Project ID for this request.",
92077	//       "location": "path",
92078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92079	//       "required": true,
92080	//       "type": "string"
92081	//     },
92082	//     "requestId": {
92083	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92084	//       "location": "query",
92085	//       "type": "string"
92086	//     },
92087	//     "zone": {
92088	//       "description": "The name of the zone for this request.",
92089	//       "location": "path",
92090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92091	//       "required": true,
92092	//       "type": "string"
92093	//     }
92094	//   },
92095	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
92096	//   "request": {
92097	//     "$ref": "InstancesSetLabelsRequest"
92098	//   },
92099	//   "response": {
92100	//     "$ref": "Operation"
92101	//   },
92102	//   "scopes": [
92103	//     "https://www.googleapis.com/auth/cloud-platform",
92104	//     "https://www.googleapis.com/auth/compute"
92105	//   ]
92106	// }
92107
92108}
92109
92110// method id "compute.instances.setMachineResources":
92111
92112type InstancesSetMachineResourcesCall struct {
92113	s                                   *Service
92114	project                             string
92115	zone                                string
92116	instance                            string
92117	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
92118	urlParams_                          gensupport.URLParams
92119	ctx_                                context.Context
92120	header_                             http.Header
92121}
92122
92123// SetMachineResources: Changes the number and/or type of accelerator
92124// for a stopped instance to the values specified in the request.
92125//
92126// - instance: Name of the instance scoping this request.
92127// - project: Project ID for this request.
92128// - zone: The name of the zone for this request.
92129func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
92130	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92131	c.project = project
92132	c.zone = zone
92133	c.instance = instance
92134	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
92135	return c
92136}
92137
92138// RequestId sets the optional parameter "requestId": An optional
92139// request ID to identify requests. Specify a unique request ID so that
92140// if you must retry your request, the server will know to ignore the
92141// request if it has already been completed. For example, consider a
92142// situation where you make an initial request and the request times
92143// out. If you make the request again with the same request ID, the
92144// server can check if original operation with the same request ID was
92145// received, and if so, will ignore the second request. This prevents
92146// clients from accidentally creating duplicate commitments. The request
92147// ID must be a valid UUID with the exception that zero UUID is not
92148// supported ( 00000000-0000-0000-0000-000000000000).
92149func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
92150	c.urlParams_.Set("requestId", requestId)
92151	return c
92152}
92153
92154// Fields allows partial responses to be retrieved. See
92155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92156// for more information.
92157func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
92158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92159	return c
92160}
92161
92162// Context sets the context to be used in this call's Do method. Any
92163// pending HTTP request will be aborted if the provided context is
92164// canceled.
92165func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
92166	c.ctx_ = ctx
92167	return c
92168}
92169
92170// Header returns an http.Header that can be modified by the caller to
92171// add HTTP headers to the request.
92172func (c *InstancesSetMachineResourcesCall) Header() http.Header {
92173	if c.header_ == nil {
92174		c.header_ = make(http.Header)
92175	}
92176	return c.header_
92177}
92178
92179func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
92180	reqHeaders := make(http.Header)
92181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
92182	for k, v := range c.header_ {
92183		reqHeaders[k] = v
92184	}
92185	reqHeaders.Set("User-Agent", c.s.userAgent())
92186	var body io.Reader = nil
92187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
92188	if err != nil {
92189		return nil, err
92190	}
92191	reqHeaders.Set("Content-Type", "application/json")
92192	c.urlParams_.Set("alt", alt)
92193	c.urlParams_.Set("prettyPrint", "false")
92194	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources")
92195	urls += "?" + c.urlParams_.Encode()
92196	req, err := http.NewRequest("POST", urls, body)
92197	if err != nil {
92198		return nil, err
92199	}
92200	req.Header = reqHeaders
92201	googleapi.Expand(req.URL, map[string]string{
92202		"project":  c.project,
92203		"zone":     c.zone,
92204		"instance": c.instance,
92205	})
92206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92207}
92208
92209// Do executes the "compute.instances.setMachineResources" call.
92210// Exactly one of *Operation or error will be non-nil. Any non-2xx
92211// status code is an error. Response headers are in either
92212// *Operation.ServerResponse.Header or (if a response was returned at
92213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92214// to check whether the returned error was because
92215// http.StatusNotModified was returned.
92216func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92217	gensupport.SetOptions(c.urlParams_, opts...)
92218	res, err := c.doRequest("json")
92219	if res != nil && res.StatusCode == http.StatusNotModified {
92220		if res.Body != nil {
92221			res.Body.Close()
92222		}
92223		return nil, &googleapi.Error{
92224			Code:   res.StatusCode,
92225			Header: res.Header,
92226		}
92227	}
92228	if err != nil {
92229		return nil, err
92230	}
92231	defer googleapi.CloseBody(res)
92232	if err := googleapi.CheckResponse(res); err != nil {
92233		return nil, err
92234	}
92235	ret := &Operation{
92236		ServerResponse: googleapi.ServerResponse{
92237			Header:         res.Header,
92238			HTTPStatusCode: res.StatusCode,
92239		},
92240	}
92241	target := &ret
92242	if err := gensupport.DecodeResponse(target, res); err != nil {
92243		return nil, err
92244	}
92245	return ret, nil
92246	// {
92247	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
92248	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
92249	//   "httpMethod": "POST",
92250	//   "id": "compute.instances.setMachineResources",
92251	//   "parameterOrder": [
92252	//     "project",
92253	//     "zone",
92254	//     "instance"
92255	//   ],
92256	//   "parameters": {
92257	//     "instance": {
92258	//       "description": "Name of the instance scoping this request.",
92259	//       "location": "path",
92260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92261	//       "required": true,
92262	//       "type": "string"
92263	//     },
92264	//     "project": {
92265	//       "description": "Project ID for this request.",
92266	//       "location": "path",
92267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92268	//       "required": true,
92269	//       "type": "string"
92270	//     },
92271	//     "requestId": {
92272	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92273	//       "location": "query",
92274	//       "type": "string"
92275	//     },
92276	//     "zone": {
92277	//       "description": "The name of the zone for this request.",
92278	//       "location": "path",
92279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92280	//       "required": true,
92281	//       "type": "string"
92282	//     }
92283	//   },
92284	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
92285	//   "request": {
92286	//     "$ref": "InstancesSetMachineResourcesRequest"
92287	//   },
92288	//   "response": {
92289	//     "$ref": "Operation"
92290	//   },
92291	//   "scopes": [
92292	//     "https://www.googleapis.com/auth/cloud-platform",
92293	//     "https://www.googleapis.com/auth/compute"
92294	//   ]
92295	// }
92296
92297}
92298
92299// method id "compute.instances.setMachineType":
92300
92301type InstancesSetMachineTypeCall struct {
92302	s                              *Service
92303	project                        string
92304	zone                           string
92305	instance                       string
92306	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
92307	urlParams_                     gensupport.URLParams
92308	ctx_                           context.Context
92309	header_                        http.Header
92310}
92311
92312// SetMachineType: Changes the machine type for a stopped instance to
92313// the machine type specified in the request.
92314//
92315// - instance: Name of the instance scoping this request.
92316// - project: Project ID for this request.
92317// - zone: The name of the zone for this request.
92318func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
92319	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92320	c.project = project
92321	c.zone = zone
92322	c.instance = instance
92323	c.instancessetmachinetyperequest = instancessetmachinetyperequest
92324	return c
92325}
92326
92327// RequestId sets the optional parameter "requestId": An optional
92328// request ID to identify requests. Specify a unique request ID so that
92329// if you must retry your request, the server will know to ignore the
92330// request if it has already been completed. For example, consider a
92331// situation where you make an initial request and the request times
92332// out. If you make the request again with the same request ID, the
92333// server can check if original operation with the same request ID was
92334// received, and if so, will ignore the second request. This prevents
92335// clients from accidentally creating duplicate commitments. The request
92336// ID must be a valid UUID with the exception that zero UUID is not
92337// supported ( 00000000-0000-0000-0000-000000000000).
92338func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
92339	c.urlParams_.Set("requestId", requestId)
92340	return c
92341}
92342
92343// Fields allows partial responses to be retrieved. See
92344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92345// for more information.
92346func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
92347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92348	return c
92349}
92350
92351// Context sets the context to be used in this call's Do method. Any
92352// pending HTTP request will be aborted if the provided context is
92353// canceled.
92354func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
92355	c.ctx_ = ctx
92356	return c
92357}
92358
92359// Header returns an http.Header that can be modified by the caller to
92360// add HTTP headers to the request.
92361func (c *InstancesSetMachineTypeCall) Header() http.Header {
92362	if c.header_ == nil {
92363		c.header_ = make(http.Header)
92364	}
92365	return c.header_
92366}
92367
92368func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
92369	reqHeaders := make(http.Header)
92370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
92371	for k, v := range c.header_ {
92372		reqHeaders[k] = v
92373	}
92374	reqHeaders.Set("User-Agent", c.s.userAgent())
92375	var body io.Reader = nil
92376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
92377	if err != nil {
92378		return nil, err
92379	}
92380	reqHeaders.Set("Content-Type", "application/json")
92381	c.urlParams_.Set("alt", alt)
92382	c.urlParams_.Set("prettyPrint", "false")
92383	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType")
92384	urls += "?" + c.urlParams_.Encode()
92385	req, err := http.NewRequest("POST", urls, body)
92386	if err != nil {
92387		return nil, err
92388	}
92389	req.Header = reqHeaders
92390	googleapi.Expand(req.URL, map[string]string{
92391		"project":  c.project,
92392		"zone":     c.zone,
92393		"instance": c.instance,
92394	})
92395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92396}
92397
92398// Do executes the "compute.instances.setMachineType" call.
92399// Exactly one of *Operation or error will be non-nil. Any non-2xx
92400// status code is an error. Response headers are in either
92401// *Operation.ServerResponse.Header or (if a response was returned at
92402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92403// to check whether the returned error was because
92404// http.StatusNotModified was returned.
92405func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92406	gensupport.SetOptions(c.urlParams_, opts...)
92407	res, err := c.doRequest("json")
92408	if res != nil && res.StatusCode == http.StatusNotModified {
92409		if res.Body != nil {
92410			res.Body.Close()
92411		}
92412		return nil, &googleapi.Error{
92413			Code:   res.StatusCode,
92414			Header: res.Header,
92415		}
92416	}
92417	if err != nil {
92418		return nil, err
92419	}
92420	defer googleapi.CloseBody(res)
92421	if err := googleapi.CheckResponse(res); err != nil {
92422		return nil, err
92423	}
92424	ret := &Operation{
92425		ServerResponse: googleapi.ServerResponse{
92426			Header:         res.Header,
92427			HTTPStatusCode: res.StatusCode,
92428		},
92429	}
92430	target := &ret
92431	if err := gensupport.DecodeResponse(target, res); err != nil {
92432		return nil, err
92433	}
92434	return ret, nil
92435	// {
92436	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
92437	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
92438	//   "httpMethod": "POST",
92439	//   "id": "compute.instances.setMachineType",
92440	//   "parameterOrder": [
92441	//     "project",
92442	//     "zone",
92443	//     "instance"
92444	//   ],
92445	//   "parameters": {
92446	//     "instance": {
92447	//       "description": "Name of the instance scoping this request.",
92448	//       "location": "path",
92449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92450	//       "required": true,
92451	//       "type": "string"
92452	//     },
92453	//     "project": {
92454	//       "description": "Project ID for this request.",
92455	//       "location": "path",
92456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92457	//       "required": true,
92458	//       "type": "string"
92459	//     },
92460	//     "requestId": {
92461	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92462	//       "location": "query",
92463	//       "type": "string"
92464	//     },
92465	//     "zone": {
92466	//       "description": "The name of the zone for this request.",
92467	//       "location": "path",
92468	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92469	//       "required": true,
92470	//       "type": "string"
92471	//     }
92472	//   },
92473	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
92474	//   "request": {
92475	//     "$ref": "InstancesSetMachineTypeRequest"
92476	//   },
92477	//   "response": {
92478	//     "$ref": "Operation"
92479	//   },
92480	//   "scopes": [
92481	//     "https://www.googleapis.com/auth/cloud-platform",
92482	//     "https://www.googleapis.com/auth/compute"
92483	//   ]
92484	// }
92485
92486}
92487
92488// method id "compute.instances.setMetadata":
92489
92490type InstancesSetMetadataCall struct {
92491	s          *Service
92492	project    string
92493	zone       string
92494	instance   string
92495	metadata   *Metadata
92496	urlParams_ gensupport.URLParams
92497	ctx_       context.Context
92498	header_    http.Header
92499}
92500
92501// SetMetadata: Sets metadata for the specified instance to the data
92502// included in the request.
92503//
92504// - instance: Name of the instance scoping this request.
92505// - project: Project ID for this request.
92506// - zone: The name of the zone for this request.
92507func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
92508	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92509	c.project = project
92510	c.zone = zone
92511	c.instance = instance
92512	c.metadata = metadata
92513	return c
92514}
92515
92516// RequestId sets the optional parameter "requestId": An optional
92517// request ID to identify requests. Specify a unique request ID so that
92518// if you must retry your request, the server will know to ignore the
92519// request if it has already been completed. For example, consider a
92520// situation where you make an initial request and the request times
92521// out. If you make the request again with the same request ID, the
92522// server can check if original operation with the same request ID was
92523// received, and if so, will ignore the second request. This prevents
92524// clients from accidentally creating duplicate commitments. The request
92525// ID must be a valid UUID with the exception that zero UUID is not
92526// supported ( 00000000-0000-0000-0000-000000000000).
92527func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
92528	c.urlParams_.Set("requestId", requestId)
92529	return c
92530}
92531
92532// Fields allows partial responses to be retrieved. See
92533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92534// for more information.
92535func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
92536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92537	return c
92538}
92539
92540// Context sets the context to be used in this call's Do method. Any
92541// pending HTTP request will be aborted if the provided context is
92542// canceled.
92543func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
92544	c.ctx_ = ctx
92545	return c
92546}
92547
92548// Header returns an http.Header that can be modified by the caller to
92549// add HTTP headers to the request.
92550func (c *InstancesSetMetadataCall) Header() http.Header {
92551	if c.header_ == nil {
92552		c.header_ = make(http.Header)
92553	}
92554	return c.header_
92555}
92556
92557func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
92558	reqHeaders := make(http.Header)
92559	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
92560	for k, v := range c.header_ {
92561		reqHeaders[k] = v
92562	}
92563	reqHeaders.Set("User-Agent", c.s.userAgent())
92564	var body io.Reader = nil
92565	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
92566	if err != nil {
92567		return nil, err
92568	}
92569	reqHeaders.Set("Content-Type", "application/json")
92570	c.urlParams_.Set("alt", alt)
92571	c.urlParams_.Set("prettyPrint", "false")
92572	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata")
92573	urls += "?" + c.urlParams_.Encode()
92574	req, err := http.NewRequest("POST", urls, body)
92575	if err != nil {
92576		return nil, err
92577	}
92578	req.Header = reqHeaders
92579	googleapi.Expand(req.URL, map[string]string{
92580		"project":  c.project,
92581		"zone":     c.zone,
92582		"instance": c.instance,
92583	})
92584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92585}
92586
92587// Do executes the "compute.instances.setMetadata" call.
92588// Exactly one of *Operation or error will be non-nil. Any non-2xx
92589// status code is an error. Response headers are in either
92590// *Operation.ServerResponse.Header or (if a response was returned at
92591// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92592// to check whether the returned error was because
92593// http.StatusNotModified was returned.
92594func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92595	gensupport.SetOptions(c.urlParams_, opts...)
92596	res, err := c.doRequest("json")
92597	if res != nil && res.StatusCode == http.StatusNotModified {
92598		if res.Body != nil {
92599			res.Body.Close()
92600		}
92601		return nil, &googleapi.Error{
92602			Code:   res.StatusCode,
92603			Header: res.Header,
92604		}
92605	}
92606	if err != nil {
92607		return nil, err
92608	}
92609	defer googleapi.CloseBody(res)
92610	if err := googleapi.CheckResponse(res); err != nil {
92611		return nil, err
92612	}
92613	ret := &Operation{
92614		ServerResponse: googleapi.ServerResponse{
92615			Header:         res.Header,
92616			HTTPStatusCode: res.StatusCode,
92617		},
92618	}
92619	target := &ret
92620	if err := gensupport.DecodeResponse(target, res); err != nil {
92621		return nil, err
92622	}
92623	return ret, nil
92624	// {
92625	//   "description": "Sets metadata for the specified instance to the data included in the request.",
92626	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
92627	//   "httpMethod": "POST",
92628	//   "id": "compute.instances.setMetadata",
92629	//   "parameterOrder": [
92630	//     "project",
92631	//     "zone",
92632	//     "instance"
92633	//   ],
92634	//   "parameters": {
92635	//     "instance": {
92636	//       "description": "Name of the instance scoping this request.",
92637	//       "location": "path",
92638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92639	//       "required": true,
92640	//       "type": "string"
92641	//     },
92642	//     "project": {
92643	//       "description": "Project ID for this request.",
92644	//       "location": "path",
92645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92646	//       "required": true,
92647	//       "type": "string"
92648	//     },
92649	//     "requestId": {
92650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92651	//       "location": "query",
92652	//       "type": "string"
92653	//     },
92654	//     "zone": {
92655	//       "description": "The name of the zone for this request.",
92656	//       "location": "path",
92657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92658	//       "required": true,
92659	//       "type": "string"
92660	//     }
92661	//   },
92662	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
92663	//   "request": {
92664	//     "$ref": "Metadata"
92665	//   },
92666	//   "response": {
92667	//     "$ref": "Operation"
92668	//   },
92669	//   "scopes": [
92670	//     "https://www.googleapis.com/auth/cloud-platform",
92671	//     "https://www.googleapis.com/auth/compute"
92672	//   ]
92673	// }
92674
92675}
92676
92677// method id "compute.instances.setMinCpuPlatform":
92678
92679type InstancesSetMinCpuPlatformCall struct {
92680	s                                 *Service
92681	project                           string
92682	zone                              string
92683	instance                          string
92684	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
92685	urlParams_                        gensupport.URLParams
92686	ctx_                              context.Context
92687	header_                           http.Header
92688}
92689
92690// SetMinCpuPlatform: Changes the minimum CPU platform that this
92691// instance should use. This method can only be called on a stopped
92692// instance. For more information, read Specifying a Minimum CPU
92693// Platform.
92694//
92695// - instance: Name of the instance scoping this request.
92696// - project: Project ID for this request.
92697// - zone: The name of the zone for this request.
92698func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
92699	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92700	c.project = project
92701	c.zone = zone
92702	c.instance = instance
92703	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
92704	return c
92705}
92706
92707// RequestId sets the optional parameter "requestId": An optional
92708// request ID to identify requests. Specify a unique request ID so that
92709// if you must retry your request, the server will know to ignore the
92710// request if it has already been completed. For example, consider a
92711// situation where you make an initial request and the request times
92712// out. If you make the request again with the same request ID, the
92713// server can check if original operation with the same request ID was
92714// received, and if so, will ignore the second request. This prevents
92715// clients from accidentally creating duplicate commitments. The request
92716// ID must be a valid UUID with the exception that zero UUID is not
92717// supported ( 00000000-0000-0000-0000-000000000000).
92718func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
92719	c.urlParams_.Set("requestId", requestId)
92720	return c
92721}
92722
92723// Fields allows partial responses to be retrieved. See
92724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92725// for more information.
92726func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
92727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92728	return c
92729}
92730
92731// Context sets the context to be used in this call's Do method. Any
92732// pending HTTP request will be aborted if the provided context is
92733// canceled.
92734func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
92735	c.ctx_ = ctx
92736	return c
92737}
92738
92739// Header returns an http.Header that can be modified by the caller to
92740// add HTTP headers to the request.
92741func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
92742	if c.header_ == nil {
92743		c.header_ = make(http.Header)
92744	}
92745	return c.header_
92746}
92747
92748func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
92749	reqHeaders := make(http.Header)
92750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
92751	for k, v := range c.header_ {
92752		reqHeaders[k] = v
92753	}
92754	reqHeaders.Set("User-Agent", c.s.userAgent())
92755	var body io.Reader = nil
92756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
92757	if err != nil {
92758		return nil, err
92759	}
92760	reqHeaders.Set("Content-Type", "application/json")
92761	c.urlParams_.Set("alt", alt)
92762	c.urlParams_.Set("prettyPrint", "false")
92763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
92764	urls += "?" + c.urlParams_.Encode()
92765	req, err := http.NewRequest("POST", urls, body)
92766	if err != nil {
92767		return nil, err
92768	}
92769	req.Header = reqHeaders
92770	googleapi.Expand(req.URL, map[string]string{
92771		"project":  c.project,
92772		"zone":     c.zone,
92773		"instance": c.instance,
92774	})
92775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92776}
92777
92778// Do executes the "compute.instances.setMinCpuPlatform" call.
92779// Exactly one of *Operation or error will be non-nil. Any non-2xx
92780// status code is an error. Response headers are in either
92781// *Operation.ServerResponse.Header or (if a response was returned at
92782// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92783// to check whether the returned error was because
92784// http.StatusNotModified was returned.
92785func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92786	gensupport.SetOptions(c.urlParams_, opts...)
92787	res, err := c.doRequest("json")
92788	if res != nil && res.StatusCode == http.StatusNotModified {
92789		if res.Body != nil {
92790			res.Body.Close()
92791		}
92792		return nil, &googleapi.Error{
92793			Code:   res.StatusCode,
92794			Header: res.Header,
92795		}
92796	}
92797	if err != nil {
92798		return nil, err
92799	}
92800	defer googleapi.CloseBody(res)
92801	if err := googleapi.CheckResponse(res); err != nil {
92802		return nil, err
92803	}
92804	ret := &Operation{
92805		ServerResponse: googleapi.ServerResponse{
92806			Header:         res.Header,
92807			HTTPStatusCode: res.StatusCode,
92808		},
92809	}
92810	target := &ret
92811	if err := gensupport.DecodeResponse(target, res); err != nil {
92812		return nil, err
92813	}
92814	return ret, nil
92815	// {
92816	//   "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.",
92817	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
92818	//   "httpMethod": "POST",
92819	//   "id": "compute.instances.setMinCpuPlatform",
92820	//   "parameterOrder": [
92821	//     "project",
92822	//     "zone",
92823	//     "instance"
92824	//   ],
92825	//   "parameters": {
92826	//     "instance": {
92827	//       "description": "Name of the instance scoping this request.",
92828	//       "location": "path",
92829	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92830	//       "required": true,
92831	//       "type": "string"
92832	//     },
92833	//     "project": {
92834	//       "description": "Project ID for this request.",
92835	//       "location": "path",
92836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92837	//       "required": true,
92838	//       "type": "string"
92839	//     },
92840	//     "requestId": {
92841	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92842	//       "location": "query",
92843	//       "type": "string"
92844	//     },
92845	//     "zone": {
92846	//       "description": "The name of the zone for this request.",
92847	//       "location": "path",
92848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92849	//       "required": true,
92850	//       "type": "string"
92851	//     }
92852	//   },
92853	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
92854	//   "request": {
92855	//     "$ref": "InstancesSetMinCpuPlatformRequest"
92856	//   },
92857	//   "response": {
92858	//     "$ref": "Operation"
92859	//   },
92860	//   "scopes": [
92861	//     "https://www.googleapis.com/auth/cloud-platform",
92862	//     "https://www.googleapis.com/auth/compute"
92863	//   ]
92864	// }
92865
92866}
92867
92868// method id "compute.instances.setScheduling":
92869
92870type InstancesSetSchedulingCall struct {
92871	s          *Service
92872	project    string
92873	zone       string
92874	instance   string
92875	scheduling *Scheduling
92876	urlParams_ gensupport.URLParams
92877	ctx_       context.Context
92878	header_    http.Header
92879}
92880
92881// SetScheduling: Sets an instance's scheduling options. You can only
92882// call this method on a stopped instance, that is, a VM instance that
92883// is in a `TERMINATED` state. See Instance Life Cycle for more
92884// information on the possible instance states.
92885//
92886// - instance: Instance name for this request.
92887// - project: Project ID for this request.
92888// - zone: The name of the zone for this request.
92889func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
92890	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92891	c.project = project
92892	c.zone = zone
92893	c.instance = instance
92894	c.scheduling = scheduling
92895	return c
92896}
92897
92898// RequestId sets the optional parameter "requestId": An optional
92899// request ID to identify requests. Specify a unique request ID so that
92900// if you must retry your request, the server will know to ignore the
92901// request if it has already been completed. For example, consider a
92902// situation where you make an initial request and the request times
92903// out. If you make the request again with the same request ID, the
92904// server can check if original operation with the same request ID was
92905// received, and if so, will ignore the second request. This prevents
92906// clients from accidentally creating duplicate commitments. The request
92907// ID must be a valid UUID with the exception that zero UUID is not
92908// supported ( 00000000-0000-0000-0000-000000000000).
92909func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
92910	c.urlParams_.Set("requestId", requestId)
92911	return c
92912}
92913
92914// Fields allows partial responses to be retrieved. See
92915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92916// for more information.
92917func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
92918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92919	return c
92920}
92921
92922// Context sets the context to be used in this call's Do method. Any
92923// pending HTTP request will be aborted if the provided context is
92924// canceled.
92925func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
92926	c.ctx_ = ctx
92927	return c
92928}
92929
92930// Header returns an http.Header that can be modified by the caller to
92931// add HTTP headers to the request.
92932func (c *InstancesSetSchedulingCall) Header() http.Header {
92933	if c.header_ == nil {
92934		c.header_ = make(http.Header)
92935	}
92936	return c.header_
92937}
92938
92939func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
92940	reqHeaders := make(http.Header)
92941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
92942	for k, v := range c.header_ {
92943		reqHeaders[k] = v
92944	}
92945	reqHeaders.Set("User-Agent", c.s.userAgent())
92946	var body io.Reader = nil
92947	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
92948	if err != nil {
92949		return nil, err
92950	}
92951	reqHeaders.Set("Content-Type", "application/json")
92952	c.urlParams_.Set("alt", alt)
92953	c.urlParams_.Set("prettyPrint", "false")
92954	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling")
92955	urls += "?" + c.urlParams_.Encode()
92956	req, err := http.NewRequest("POST", urls, body)
92957	if err != nil {
92958		return nil, err
92959	}
92960	req.Header = reqHeaders
92961	googleapi.Expand(req.URL, map[string]string{
92962		"project":  c.project,
92963		"zone":     c.zone,
92964		"instance": c.instance,
92965	})
92966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92967}
92968
92969// Do executes the "compute.instances.setScheduling" call.
92970// Exactly one of *Operation or error will be non-nil. Any non-2xx
92971// status code is an error. Response headers are in either
92972// *Operation.ServerResponse.Header or (if a response was returned at
92973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92974// to check whether the returned error was because
92975// http.StatusNotModified was returned.
92976func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92977	gensupport.SetOptions(c.urlParams_, opts...)
92978	res, err := c.doRequest("json")
92979	if res != nil && res.StatusCode == http.StatusNotModified {
92980		if res.Body != nil {
92981			res.Body.Close()
92982		}
92983		return nil, &googleapi.Error{
92984			Code:   res.StatusCode,
92985			Header: res.Header,
92986		}
92987	}
92988	if err != nil {
92989		return nil, err
92990	}
92991	defer googleapi.CloseBody(res)
92992	if err := googleapi.CheckResponse(res); err != nil {
92993		return nil, err
92994	}
92995	ret := &Operation{
92996		ServerResponse: googleapi.ServerResponse{
92997			Header:         res.Header,
92998			HTTPStatusCode: res.StatusCode,
92999		},
93000	}
93001	target := &ret
93002	if err := gensupport.DecodeResponse(target, res); err != nil {
93003		return nil, err
93004	}
93005	return ret, nil
93006	// {
93007	//   "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.",
93008	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
93009	//   "httpMethod": "POST",
93010	//   "id": "compute.instances.setScheduling",
93011	//   "parameterOrder": [
93012	//     "project",
93013	//     "zone",
93014	//     "instance"
93015	//   ],
93016	//   "parameters": {
93017	//     "instance": {
93018	//       "description": "Instance name for this request.",
93019	//       "location": "path",
93020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93021	//       "required": true,
93022	//       "type": "string"
93023	//     },
93024	//     "project": {
93025	//       "description": "Project ID for this request.",
93026	//       "location": "path",
93027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93028	//       "required": true,
93029	//       "type": "string"
93030	//     },
93031	//     "requestId": {
93032	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93033	//       "location": "query",
93034	//       "type": "string"
93035	//     },
93036	//     "zone": {
93037	//       "description": "The name of the zone for this request.",
93038	//       "location": "path",
93039	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93040	//       "required": true,
93041	//       "type": "string"
93042	//     }
93043	//   },
93044	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
93045	//   "request": {
93046	//     "$ref": "Scheduling"
93047	//   },
93048	//   "response": {
93049	//     "$ref": "Operation"
93050	//   },
93051	//   "scopes": [
93052	//     "https://www.googleapis.com/auth/cloud-platform",
93053	//     "https://www.googleapis.com/auth/compute"
93054	//   ]
93055	// }
93056
93057}
93058
93059// method id "compute.instances.setServiceAccount":
93060
93061type InstancesSetServiceAccountCall struct {
93062	s                                 *Service
93063	project                           string
93064	zone                              string
93065	instance                          string
93066	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
93067	urlParams_                        gensupport.URLParams
93068	ctx_                              context.Context
93069	header_                           http.Header
93070}
93071
93072// SetServiceAccount: Sets the service account on the instance. For more
93073// information, read Changing the service account and access scopes for
93074// an instance.
93075//
93076// - instance: Name of the instance resource to start.
93077// - project: Project ID for this request.
93078// - zone: The name of the zone for this request.
93079func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
93080	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93081	c.project = project
93082	c.zone = zone
93083	c.instance = instance
93084	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
93085	return c
93086}
93087
93088// RequestId sets the optional parameter "requestId": An optional
93089// request ID to identify requests. Specify a unique request ID so that
93090// if you must retry your request, the server will know to ignore the
93091// request if it has already been completed. For example, consider a
93092// situation where you make an initial request and the request times
93093// out. If you make the request again with the same request ID, the
93094// server can check if original operation with the same request ID was
93095// received, and if so, will ignore the second request. This prevents
93096// clients from accidentally creating duplicate commitments. The request
93097// ID must be a valid UUID with the exception that zero UUID is not
93098// supported ( 00000000-0000-0000-0000-000000000000).
93099func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
93100	c.urlParams_.Set("requestId", requestId)
93101	return c
93102}
93103
93104// Fields allows partial responses to be retrieved. See
93105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93106// for more information.
93107func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
93108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93109	return c
93110}
93111
93112// Context sets the context to be used in this call's Do method. Any
93113// pending HTTP request will be aborted if the provided context is
93114// canceled.
93115func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
93116	c.ctx_ = ctx
93117	return c
93118}
93119
93120// Header returns an http.Header that can be modified by the caller to
93121// add HTTP headers to the request.
93122func (c *InstancesSetServiceAccountCall) Header() http.Header {
93123	if c.header_ == nil {
93124		c.header_ = make(http.Header)
93125	}
93126	return c.header_
93127}
93128
93129func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
93130	reqHeaders := make(http.Header)
93131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
93132	for k, v := range c.header_ {
93133		reqHeaders[k] = v
93134	}
93135	reqHeaders.Set("User-Agent", c.s.userAgent())
93136	var body io.Reader = nil
93137	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
93138	if err != nil {
93139		return nil, err
93140	}
93141	reqHeaders.Set("Content-Type", "application/json")
93142	c.urlParams_.Set("alt", alt)
93143	c.urlParams_.Set("prettyPrint", "false")
93144	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount")
93145	urls += "?" + c.urlParams_.Encode()
93146	req, err := http.NewRequest("POST", urls, body)
93147	if err != nil {
93148		return nil, err
93149	}
93150	req.Header = reqHeaders
93151	googleapi.Expand(req.URL, map[string]string{
93152		"project":  c.project,
93153		"zone":     c.zone,
93154		"instance": c.instance,
93155	})
93156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93157}
93158
93159// Do executes the "compute.instances.setServiceAccount" call.
93160// Exactly one of *Operation or error will be non-nil. Any non-2xx
93161// status code is an error. Response headers are in either
93162// *Operation.ServerResponse.Header or (if a response was returned at
93163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93164// to check whether the returned error was because
93165// http.StatusNotModified was returned.
93166func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93167	gensupport.SetOptions(c.urlParams_, opts...)
93168	res, err := c.doRequest("json")
93169	if res != nil && res.StatusCode == http.StatusNotModified {
93170		if res.Body != nil {
93171			res.Body.Close()
93172		}
93173		return nil, &googleapi.Error{
93174			Code:   res.StatusCode,
93175			Header: res.Header,
93176		}
93177	}
93178	if err != nil {
93179		return nil, err
93180	}
93181	defer googleapi.CloseBody(res)
93182	if err := googleapi.CheckResponse(res); err != nil {
93183		return nil, err
93184	}
93185	ret := &Operation{
93186		ServerResponse: googleapi.ServerResponse{
93187			Header:         res.Header,
93188			HTTPStatusCode: res.StatusCode,
93189		},
93190	}
93191	target := &ret
93192	if err := gensupport.DecodeResponse(target, res); err != nil {
93193		return nil, err
93194	}
93195	return ret, nil
93196	// {
93197	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
93198	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
93199	//   "httpMethod": "POST",
93200	//   "id": "compute.instances.setServiceAccount",
93201	//   "parameterOrder": [
93202	//     "project",
93203	//     "zone",
93204	//     "instance"
93205	//   ],
93206	//   "parameters": {
93207	//     "instance": {
93208	//       "description": "Name of the instance resource to start.",
93209	//       "location": "path",
93210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93211	//       "required": true,
93212	//       "type": "string"
93213	//     },
93214	//     "project": {
93215	//       "description": "Project ID for this request.",
93216	//       "location": "path",
93217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93218	//       "required": true,
93219	//       "type": "string"
93220	//     },
93221	//     "requestId": {
93222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93223	//       "location": "query",
93224	//       "type": "string"
93225	//     },
93226	//     "zone": {
93227	//       "description": "The name of the zone for this request.",
93228	//       "location": "path",
93229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93230	//       "required": true,
93231	//       "type": "string"
93232	//     }
93233	//   },
93234	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
93235	//   "request": {
93236	//     "$ref": "InstancesSetServiceAccountRequest"
93237	//   },
93238	//   "response": {
93239	//     "$ref": "Operation"
93240	//   },
93241	//   "scopes": [
93242	//     "https://www.googleapis.com/auth/cloud-platform",
93243	//     "https://www.googleapis.com/auth/compute"
93244	//   ]
93245	// }
93246
93247}
93248
93249// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
93250
93251type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
93252	s                               *Service
93253	project                         string
93254	zone                            string
93255	instance                        string
93256	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
93257	urlParams_                      gensupport.URLParams
93258	ctx_                            context.Context
93259	header_                         http.Header
93260}
93261
93262// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
93263// integrity policy for an instance. You can only use this method on a
93264// running instance. This method supports PATCH semantics and uses the
93265// JSON merge patch format and processing rules.
93266//
93267// - instance: Name or id of the instance scoping this request.
93268// - project: Project ID for this request.
93269// - zone: The name of the zone for this request.
93270func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93271	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93272	c.project = project
93273	c.zone = zone
93274	c.instance = instance
93275	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
93276	return c
93277}
93278
93279// RequestId sets the optional parameter "requestId": An optional
93280// request ID to identify requests. Specify a unique request ID so that
93281// if you must retry your request, the server will know to ignore the
93282// request if it has already been completed. For example, consider a
93283// situation where you make an initial request and the request times
93284// out. If you make the request again with the same request ID, the
93285// server can check if original operation with the same request ID was
93286// received, and if so, will ignore the second request. This prevents
93287// clients from accidentally creating duplicate commitments. The request
93288// ID must be a valid UUID with the exception that zero UUID is not
93289// supported ( 00000000-0000-0000-0000-000000000000).
93290func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93291	c.urlParams_.Set("requestId", requestId)
93292	return c
93293}
93294
93295// Fields allows partial responses to be retrieved. See
93296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93297// for more information.
93298func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93300	return c
93301}
93302
93303// Context sets the context to be used in this call's Do method. Any
93304// pending HTTP request will be aborted if the provided context is
93305// canceled.
93306func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93307	c.ctx_ = ctx
93308	return c
93309}
93310
93311// Header returns an http.Header that can be modified by the caller to
93312// add HTTP headers to the request.
93313func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
93314	if c.header_ == nil {
93315		c.header_ = make(http.Header)
93316	}
93317	return c.header_
93318}
93319
93320func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
93321	reqHeaders := make(http.Header)
93322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
93323	for k, v := range c.header_ {
93324		reqHeaders[k] = v
93325	}
93326	reqHeaders.Set("User-Agent", c.s.userAgent())
93327	var body io.Reader = nil
93328	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
93329	if err != nil {
93330		return nil, err
93331	}
93332	reqHeaders.Set("Content-Type", "application/json")
93333	c.urlParams_.Set("alt", alt)
93334	c.urlParams_.Set("prettyPrint", "false")
93335	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
93336	urls += "?" + c.urlParams_.Encode()
93337	req, err := http.NewRequest("PATCH", urls, body)
93338	if err != nil {
93339		return nil, err
93340	}
93341	req.Header = reqHeaders
93342	googleapi.Expand(req.URL, map[string]string{
93343		"project":  c.project,
93344		"zone":     c.zone,
93345		"instance": c.instance,
93346	})
93347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93348}
93349
93350// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
93351// Exactly one of *Operation or error will be non-nil. Any non-2xx
93352// status code is an error. Response headers are in either
93353// *Operation.ServerResponse.Header or (if a response was returned at
93354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93355// to check whether the returned error was because
93356// http.StatusNotModified was returned.
93357func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93358	gensupport.SetOptions(c.urlParams_, opts...)
93359	res, err := c.doRequest("json")
93360	if res != nil && res.StatusCode == http.StatusNotModified {
93361		if res.Body != nil {
93362			res.Body.Close()
93363		}
93364		return nil, &googleapi.Error{
93365			Code:   res.StatusCode,
93366			Header: res.Header,
93367		}
93368	}
93369	if err != nil {
93370		return nil, err
93371	}
93372	defer googleapi.CloseBody(res)
93373	if err := googleapi.CheckResponse(res); err != nil {
93374		return nil, err
93375	}
93376	ret := &Operation{
93377		ServerResponse: googleapi.ServerResponse{
93378			Header:         res.Header,
93379			HTTPStatusCode: res.StatusCode,
93380		},
93381	}
93382	target := &ret
93383	if err := gensupport.DecodeResponse(target, res); err != nil {
93384		return nil, err
93385	}
93386	return ret, nil
93387	// {
93388	//   "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.",
93389	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
93390	//   "httpMethod": "PATCH",
93391	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
93392	//   "parameterOrder": [
93393	//     "project",
93394	//     "zone",
93395	//     "instance"
93396	//   ],
93397	//   "parameters": {
93398	//     "instance": {
93399	//       "description": "Name or id of the instance scoping this request.",
93400	//       "location": "path",
93401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93402	//       "required": true,
93403	//       "type": "string"
93404	//     },
93405	//     "project": {
93406	//       "description": "Project ID for this request.",
93407	//       "location": "path",
93408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93409	//       "required": true,
93410	//       "type": "string"
93411	//     },
93412	//     "requestId": {
93413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93414	//       "location": "query",
93415	//       "type": "string"
93416	//     },
93417	//     "zone": {
93418	//       "description": "The name of the zone for this request.",
93419	//       "location": "path",
93420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93421	//       "required": true,
93422	//       "type": "string"
93423	//     }
93424	//   },
93425	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
93426	//   "request": {
93427	//     "$ref": "ShieldedInstanceIntegrityPolicy"
93428	//   },
93429	//   "response": {
93430	//     "$ref": "Operation"
93431	//   },
93432	//   "scopes": [
93433	//     "https://www.googleapis.com/auth/cloud-platform",
93434	//     "https://www.googleapis.com/auth/compute"
93435	//   ]
93436	// }
93437
93438}
93439
93440// method id "compute.instances.setTags":
93441
93442type InstancesSetTagsCall struct {
93443	s          *Service
93444	project    string
93445	zone       string
93446	instance   string
93447	tags       *Tags
93448	urlParams_ gensupport.URLParams
93449	ctx_       context.Context
93450	header_    http.Header
93451}
93452
93453// SetTags: Sets network tags for the specified instance to the data
93454// included in the request.
93455//
93456// - instance: Name of the instance scoping this request.
93457// - project: Project ID for this request.
93458// - zone: The name of the zone for this request.
93459func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
93460	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93461	c.project = project
93462	c.zone = zone
93463	c.instance = instance
93464	c.tags = tags
93465	return c
93466}
93467
93468// RequestId sets the optional parameter "requestId": An optional
93469// request ID to identify requests. Specify a unique request ID so that
93470// if you must retry your request, the server will know to ignore the
93471// request if it has already been completed. For example, consider a
93472// situation where you make an initial request and the request times
93473// out. If you make the request again with the same request ID, the
93474// server can check if original operation with the same request ID was
93475// received, and if so, will ignore the second request. This prevents
93476// clients from accidentally creating duplicate commitments. The request
93477// ID must be a valid UUID with the exception that zero UUID is not
93478// supported ( 00000000-0000-0000-0000-000000000000).
93479func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
93480	c.urlParams_.Set("requestId", requestId)
93481	return c
93482}
93483
93484// Fields allows partial responses to be retrieved. See
93485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93486// for more information.
93487func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
93488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93489	return c
93490}
93491
93492// Context sets the context to be used in this call's Do method. Any
93493// pending HTTP request will be aborted if the provided context is
93494// canceled.
93495func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
93496	c.ctx_ = ctx
93497	return c
93498}
93499
93500// Header returns an http.Header that can be modified by the caller to
93501// add HTTP headers to the request.
93502func (c *InstancesSetTagsCall) Header() http.Header {
93503	if c.header_ == nil {
93504		c.header_ = make(http.Header)
93505	}
93506	return c.header_
93507}
93508
93509func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
93510	reqHeaders := make(http.Header)
93511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
93512	for k, v := range c.header_ {
93513		reqHeaders[k] = v
93514	}
93515	reqHeaders.Set("User-Agent", c.s.userAgent())
93516	var body io.Reader = nil
93517	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
93518	if err != nil {
93519		return nil, err
93520	}
93521	reqHeaders.Set("Content-Type", "application/json")
93522	c.urlParams_.Set("alt", alt)
93523	c.urlParams_.Set("prettyPrint", "false")
93524	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags")
93525	urls += "?" + c.urlParams_.Encode()
93526	req, err := http.NewRequest("POST", urls, body)
93527	if err != nil {
93528		return nil, err
93529	}
93530	req.Header = reqHeaders
93531	googleapi.Expand(req.URL, map[string]string{
93532		"project":  c.project,
93533		"zone":     c.zone,
93534		"instance": c.instance,
93535	})
93536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93537}
93538
93539// Do executes the "compute.instances.setTags" call.
93540// Exactly one of *Operation or error will be non-nil. Any non-2xx
93541// status code is an error. Response headers are in either
93542// *Operation.ServerResponse.Header or (if a response was returned at
93543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93544// to check whether the returned error was because
93545// http.StatusNotModified was returned.
93546func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93547	gensupport.SetOptions(c.urlParams_, opts...)
93548	res, err := c.doRequest("json")
93549	if res != nil && res.StatusCode == http.StatusNotModified {
93550		if res.Body != nil {
93551			res.Body.Close()
93552		}
93553		return nil, &googleapi.Error{
93554			Code:   res.StatusCode,
93555			Header: res.Header,
93556		}
93557	}
93558	if err != nil {
93559		return nil, err
93560	}
93561	defer googleapi.CloseBody(res)
93562	if err := googleapi.CheckResponse(res); err != nil {
93563		return nil, err
93564	}
93565	ret := &Operation{
93566		ServerResponse: googleapi.ServerResponse{
93567			Header:         res.Header,
93568			HTTPStatusCode: res.StatusCode,
93569		},
93570	}
93571	target := &ret
93572	if err := gensupport.DecodeResponse(target, res); err != nil {
93573		return nil, err
93574	}
93575	return ret, nil
93576	// {
93577	//   "description": "Sets network tags for the specified instance to the data included in the request.",
93578	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
93579	//   "httpMethod": "POST",
93580	//   "id": "compute.instances.setTags",
93581	//   "parameterOrder": [
93582	//     "project",
93583	//     "zone",
93584	//     "instance"
93585	//   ],
93586	//   "parameters": {
93587	//     "instance": {
93588	//       "description": "Name of the instance scoping this request.",
93589	//       "location": "path",
93590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93591	//       "required": true,
93592	//       "type": "string"
93593	//     },
93594	//     "project": {
93595	//       "description": "Project ID for this request.",
93596	//       "location": "path",
93597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93598	//       "required": true,
93599	//       "type": "string"
93600	//     },
93601	//     "requestId": {
93602	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93603	//       "location": "query",
93604	//       "type": "string"
93605	//     },
93606	//     "zone": {
93607	//       "description": "The name of the zone for this request.",
93608	//       "location": "path",
93609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93610	//       "required": true,
93611	//       "type": "string"
93612	//     }
93613	//   },
93614	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
93615	//   "request": {
93616	//     "$ref": "Tags"
93617	//   },
93618	//   "response": {
93619	//     "$ref": "Operation"
93620	//   },
93621	//   "scopes": [
93622	//     "https://www.googleapis.com/auth/cloud-platform",
93623	//     "https://www.googleapis.com/auth/compute"
93624	//   ]
93625	// }
93626
93627}
93628
93629// method id "compute.instances.simulateMaintenanceEvent":
93630
93631type InstancesSimulateMaintenanceEventCall struct {
93632	s          *Service
93633	project    string
93634	zone       string
93635	instance   string
93636	urlParams_ gensupport.URLParams
93637	ctx_       context.Context
93638	header_    http.Header
93639}
93640
93641// SimulateMaintenanceEvent: Simulates a maintenance event on the
93642// instance.
93643//
93644// - instance: Name of the instance scoping this request.
93645// - project: Project ID for this request.
93646// - zone: The name of the zone for this request.
93647func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
93648	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93649	c.project = project
93650	c.zone = zone
93651	c.instance = instance
93652	return c
93653}
93654
93655// Fields allows partial responses to be retrieved. See
93656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93657// for more information.
93658func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
93659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93660	return c
93661}
93662
93663// Context sets the context to be used in this call's Do method. Any
93664// pending HTTP request will be aborted if the provided context is
93665// canceled.
93666func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
93667	c.ctx_ = ctx
93668	return c
93669}
93670
93671// Header returns an http.Header that can be modified by the caller to
93672// add HTTP headers to the request.
93673func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
93674	if c.header_ == nil {
93675		c.header_ = make(http.Header)
93676	}
93677	return c.header_
93678}
93679
93680func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
93681	reqHeaders := make(http.Header)
93682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
93683	for k, v := range c.header_ {
93684		reqHeaders[k] = v
93685	}
93686	reqHeaders.Set("User-Agent", c.s.userAgent())
93687	var body io.Reader = nil
93688	c.urlParams_.Set("alt", alt)
93689	c.urlParams_.Set("prettyPrint", "false")
93690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
93691	urls += "?" + c.urlParams_.Encode()
93692	req, err := http.NewRequest("POST", urls, body)
93693	if err != nil {
93694		return nil, err
93695	}
93696	req.Header = reqHeaders
93697	googleapi.Expand(req.URL, map[string]string{
93698		"project":  c.project,
93699		"zone":     c.zone,
93700		"instance": c.instance,
93701	})
93702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93703}
93704
93705// Do executes the "compute.instances.simulateMaintenanceEvent" call.
93706// Exactly one of *Operation or error will be non-nil. Any non-2xx
93707// status code is an error. Response headers are in either
93708// *Operation.ServerResponse.Header or (if a response was returned at
93709// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93710// to check whether the returned error was because
93711// http.StatusNotModified was returned.
93712func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93713	gensupport.SetOptions(c.urlParams_, opts...)
93714	res, err := c.doRequest("json")
93715	if res != nil && res.StatusCode == http.StatusNotModified {
93716		if res.Body != nil {
93717			res.Body.Close()
93718		}
93719		return nil, &googleapi.Error{
93720			Code:   res.StatusCode,
93721			Header: res.Header,
93722		}
93723	}
93724	if err != nil {
93725		return nil, err
93726	}
93727	defer googleapi.CloseBody(res)
93728	if err := googleapi.CheckResponse(res); err != nil {
93729		return nil, err
93730	}
93731	ret := &Operation{
93732		ServerResponse: googleapi.ServerResponse{
93733			Header:         res.Header,
93734			HTTPStatusCode: res.StatusCode,
93735		},
93736	}
93737	target := &ret
93738	if err := gensupport.DecodeResponse(target, res); err != nil {
93739		return nil, err
93740	}
93741	return ret, nil
93742	// {
93743	//   "description": "Simulates a maintenance event on the instance.",
93744	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
93745	//   "httpMethod": "POST",
93746	//   "id": "compute.instances.simulateMaintenanceEvent",
93747	//   "parameterOrder": [
93748	//     "project",
93749	//     "zone",
93750	//     "instance"
93751	//   ],
93752	//   "parameters": {
93753	//     "instance": {
93754	//       "description": "Name of the instance scoping this request.",
93755	//       "location": "path",
93756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93757	//       "required": true,
93758	//       "type": "string"
93759	//     },
93760	//     "project": {
93761	//       "description": "Project ID for this request.",
93762	//       "location": "path",
93763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93764	//       "required": true,
93765	//       "type": "string"
93766	//     },
93767	//     "zone": {
93768	//       "description": "The name of the zone for this request.",
93769	//       "location": "path",
93770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93771	//       "required": true,
93772	//       "type": "string"
93773	//     }
93774	//   },
93775	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
93776	//   "response": {
93777	//     "$ref": "Operation"
93778	//   },
93779	//   "scopes": [
93780	//     "https://www.googleapis.com/auth/cloud-platform",
93781	//     "https://www.googleapis.com/auth/compute"
93782	//   ]
93783	// }
93784
93785}
93786
93787// method id "compute.instances.start":
93788
93789type InstancesStartCall struct {
93790	s          *Service
93791	project    string
93792	zone       string
93793	instance   string
93794	urlParams_ gensupport.URLParams
93795	ctx_       context.Context
93796	header_    http.Header
93797}
93798
93799// Start: Starts an instance that was stopped using the instances().stop
93800// method. For more information, see Restart an instance.
93801//
93802// - instance: Name of the instance resource to start.
93803// - project: Project ID for this request.
93804// - zone: The name of the zone for this request.
93805func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
93806	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93807	c.project = project
93808	c.zone = zone
93809	c.instance = instance
93810	return c
93811}
93812
93813// RequestId sets the optional parameter "requestId": An optional
93814// request ID to identify requests. Specify a unique request ID so that
93815// if you must retry your request, the server will know to ignore the
93816// request if it has already been completed. For example, consider a
93817// situation where you make an initial request and the request times
93818// out. If you make the request again with the same request ID, the
93819// server can check if original operation with the same request ID was
93820// received, and if so, will ignore the second request. This prevents
93821// clients from accidentally creating duplicate commitments. The request
93822// ID must be a valid UUID with the exception that zero UUID is not
93823// supported ( 00000000-0000-0000-0000-000000000000).
93824func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
93825	c.urlParams_.Set("requestId", requestId)
93826	return c
93827}
93828
93829// Fields allows partial responses to be retrieved. See
93830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93831// for more information.
93832func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
93833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93834	return c
93835}
93836
93837// Context sets the context to be used in this call's Do method. Any
93838// pending HTTP request will be aborted if the provided context is
93839// canceled.
93840func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
93841	c.ctx_ = ctx
93842	return c
93843}
93844
93845// Header returns an http.Header that can be modified by the caller to
93846// add HTTP headers to the request.
93847func (c *InstancesStartCall) Header() http.Header {
93848	if c.header_ == nil {
93849		c.header_ = make(http.Header)
93850	}
93851	return c.header_
93852}
93853
93854func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
93855	reqHeaders := make(http.Header)
93856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
93857	for k, v := range c.header_ {
93858		reqHeaders[k] = v
93859	}
93860	reqHeaders.Set("User-Agent", c.s.userAgent())
93861	var body io.Reader = nil
93862	c.urlParams_.Set("alt", alt)
93863	c.urlParams_.Set("prettyPrint", "false")
93864	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start")
93865	urls += "?" + c.urlParams_.Encode()
93866	req, err := http.NewRequest("POST", urls, body)
93867	if err != nil {
93868		return nil, err
93869	}
93870	req.Header = reqHeaders
93871	googleapi.Expand(req.URL, map[string]string{
93872		"project":  c.project,
93873		"zone":     c.zone,
93874		"instance": c.instance,
93875	})
93876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93877}
93878
93879// Do executes the "compute.instances.start" call.
93880// Exactly one of *Operation or error will be non-nil. Any non-2xx
93881// status code is an error. Response headers are in either
93882// *Operation.ServerResponse.Header or (if a response was returned at
93883// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93884// to check whether the returned error was because
93885// http.StatusNotModified was returned.
93886func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93887	gensupport.SetOptions(c.urlParams_, opts...)
93888	res, err := c.doRequest("json")
93889	if res != nil && res.StatusCode == http.StatusNotModified {
93890		if res.Body != nil {
93891			res.Body.Close()
93892		}
93893		return nil, &googleapi.Error{
93894			Code:   res.StatusCode,
93895			Header: res.Header,
93896		}
93897	}
93898	if err != nil {
93899		return nil, err
93900	}
93901	defer googleapi.CloseBody(res)
93902	if err := googleapi.CheckResponse(res); err != nil {
93903		return nil, err
93904	}
93905	ret := &Operation{
93906		ServerResponse: googleapi.ServerResponse{
93907			Header:         res.Header,
93908			HTTPStatusCode: res.StatusCode,
93909		},
93910	}
93911	target := &ret
93912	if err := gensupport.DecodeResponse(target, res); err != nil {
93913		return nil, err
93914	}
93915	return ret, nil
93916	// {
93917	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
93918	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start",
93919	//   "httpMethod": "POST",
93920	//   "id": "compute.instances.start",
93921	//   "parameterOrder": [
93922	//     "project",
93923	//     "zone",
93924	//     "instance"
93925	//   ],
93926	//   "parameters": {
93927	//     "instance": {
93928	//       "description": "Name of the instance resource to start.",
93929	//       "location": "path",
93930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93931	//       "required": true,
93932	//       "type": "string"
93933	//     },
93934	//     "project": {
93935	//       "description": "Project ID for this request.",
93936	//       "location": "path",
93937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93938	//       "required": true,
93939	//       "type": "string"
93940	//     },
93941	//     "requestId": {
93942	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93943	//       "location": "query",
93944	//       "type": "string"
93945	//     },
93946	//     "zone": {
93947	//       "description": "The name of the zone for this request.",
93948	//       "location": "path",
93949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93950	//       "required": true,
93951	//       "type": "string"
93952	//     }
93953	//   },
93954	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
93955	//   "response": {
93956	//     "$ref": "Operation"
93957	//   },
93958	//   "scopes": [
93959	//     "https://www.googleapis.com/auth/cloud-platform",
93960	//     "https://www.googleapis.com/auth/compute"
93961	//   ]
93962	// }
93963
93964}
93965
93966// method id "compute.instances.startWithEncryptionKey":
93967
93968type InstancesStartWithEncryptionKeyCall struct {
93969	s                                      *Service
93970	project                                string
93971	zone                                   string
93972	instance                               string
93973	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
93974	urlParams_                             gensupport.URLParams
93975	ctx_                                   context.Context
93976	header_                                http.Header
93977}
93978
93979// StartWithEncryptionKey: Starts an instance that was stopped using the
93980// instances().stop method. For more information, see Restart an
93981// instance.
93982//
93983// - instance: Name of the instance resource to start.
93984// - project: Project ID for this request.
93985// - zone: The name of the zone for this request.
93986func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
93987	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93988	c.project = project
93989	c.zone = zone
93990	c.instance = instance
93991	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
93992	return c
93993}
93994
93995// RequestId sets the optional parameter "requestId": An optional
93996// request ID to identify requests. Specify a unique request ID so that
93997// if you must retry your request, the server will know to ignore the
93998// request if it has already been completed. For example, consider a
93999// situation where you make an initial request and the request times
94000// out. If you make the request again with the same request ID, the
94001// server can check if original operation with the same request ID was
94002// received, and if so, will ignore the second request. This prevents
94003// clients from accidentally creating duplicate commitments. The request
94004// ID must be a valid UUID with the exception that zero UUID is not
94005// supported ( 00000000-0000-0000-0000-000000000000).
94006func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
94007	c.urlParams_.Set("requestId", requestId)
94008	return c
94009}
94010
94011// Fields allows partial responses to be retrieved. See
94012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94013// for more information.
94014func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
94015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94016	return c
94017}
94018
94019// Context sets the context to be used in this call's Do method. Any
94020// pending HTTP request will be aborted if the provided context is
94021// canceled.
94022func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
94023	c.ctx_ = ctx
94024	return c
94025}
94026
94027// Header returns an http.Header that can be modified by the caller to
94028// add HTTP headers to the request.
94029func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
94030	if c.header_ == nil {
94031		c.header_ = make(http.Header)
94032	}
94033	return c.header_
94034}
94035
94036func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
94037	reqHeaders := make(http.Header)
94038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
94039	for k, v := range c.header_ {
94040		reqHeaders[k] = v
94041	}
94042	reqHeaders.Set("User-Agent", c.s.userAgent())
94043	var body io.Reader = nil
94044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
94045	if err != nil {
94046		return nil, err
94047	}
94048	reqHeaders.Set("Content-Type", "application/json")
94049	c.urlParams_.Set("alt", alt)
94050	c.urlParams_.Set("prettyPrint", "false")
94051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
94052	urls += "?" + c.urlParams_.Encode()
94053	req, err := http.NewRequest("POST", urls, body)
94054	if err != nil {
94055		return nil, err
94056	}
94057	req.Header = reqHeaders
94058	googleapi.Expand(req.URL, map[string]string{
94059		"project":  c.project,
94060		"zone":     c.zone,
94061		"instance": c.instance,
94062	})
94063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94064}
94065
94066// Do executes the "compute.instances.startWithEncryptionKey" call.
94067// Exactly one of *Operation or error will be non-nil. Any non-2xx
94068// status code is an error. Response headers are in either
94069// *Operation.ServerResponse.Header or (if a response was returned at
94070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94071// to check whether the returned error was because
94072// http.StatusNotModified was returned.
94073func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94074	gensupport.SetOptions(c.urlParams_, opts...)
94075	res, err := c.doRequest("json")
94076	if res != nil && res.StatusCode == http.StatusNotModified {
94077		if res.Body != nil {
94078			res.Body.Close()
94079		}
94080		return nil, &googleapi.Error{
94081			Code:   res.StatusCode,
94082			Header: res.Header,
94083		}
94084	}
94085	if err != nil {
94086		return nil, err
94087	}
94088	defer googleapi.CloseBody(res)
94089	if err := googleapi.CheckResponse(res); err != nil {
94090		return nil, err
94091	}
94092	ret := &Operation{
94093		ServerResponse: googleapi.ServerResponse{
94094			Header:         res.Header,
94095			HTTPStatusCode: res.StatusCode,
94096		},
94097	}
94098	target := &ret
94099	if err := gensupport.DecodeResponse(target, res); err != nil {
94100		return nil, err
94101	}
94102	return ret, nil
94103	// {
94104	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
94105	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
94106	//   "httpMethod": "POST",
94107	//   "id": "compute.instances.startWithEncryptionKey",
94108	//   "parameterOrder": [
94109	//     "project",
94110	//     "zone",
94111	//     "instance"
94112	//   ],
94113	//   "parameters": {
94114	//     "instance": {
94115	//       "description": "Name of the instance resource to start.",
94116	//       "location": "path",
94117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94118	//       "required": true,
94119	//       "type": "string"
94120	//     },
94121	//     "project": {
94122	//       "description": "Project ID for this request.",
94123	//       "location": "path",
94124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94125	//       "required": true,
94126	//       "type": "string"
94127	//     },
94128	//     "requestId": {
94129	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94130	//       "location": "query",
94131	//       "type": "string"
94132	//     },
94133	//     "zone": {
94134	//       "description": "The name of the zone for this request.",
94135	//       "location": "path",
94136	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94137	//       "required": true,
94138	//       "type": "string"
94139	//     }
94140	//   },
94141	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
94142	//   "request": {
94143	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
94144	//   },
94145	//   "response": {
94146	//     "$ref": "Operation"
94147	//   },
94148	//   "scopes": [
94149	//     "https://www.googleapis.com/auth/cloud-platform",
94150	//     "https://www.googleapis.com/auth/compute"
94151	//   ]
94152	// }
94153
94154}
94155
94156// method id "compute.instances.stop":
94157
94158type InstancesStopCall struct {
94159	s          *Service
94160	project    string
94161	zone       string
94162	instance   string
94163	urlParams_ gensupport.URLParams
94164	ctx_       context.Context
94165	header_    http.Header
94166}
94167
94168// Stop: Stops a running instance, shutting it down cleanly, and allows
94169// you to restart the instance at a later time. Stopped instances do not
94170// incur VM usage charges while they are stopped. However, resources
94171// that the VM is using, such as persistent disks and static IP
94172// addresses, will continue to be charged until they are deleted. For
94173// more information, see Stopping an instance.
94174//
94175// - instance: Name of the instance resource to stop.
94176// - project: Project ID for this request.
94177// - zone: The name of the zone for this request.
94178func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
94179	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94180	c.project = project
94181	c.zone = zone
94182	c.instance = instance
94183	return c
94184}
94185
94186// RequestId sets the optional parameter "requestId": An optional
94187// request ID to identify requests. Specify a unique request ID so that
94188// if you must retry your request, the server will know to ignore the
94189// request if it has already been completed. For example, consider a
94190// situation where you make an initial request and the request times
94191// out. If you make the request again with the same request ID, the
94192// server can check if original operation with the same request ID was
94193// received, and if so, will ignore the second request. This prevents
94194// clients from accidentally creating duplicate commitments. The request
94195// ID must be a valid UUID with the exception that zero UUID is not
94196// supported ( 00000000-0000-0000-0000-000000000000).
94197func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
94198	c.urlParams_.Set("requestId", requestId)
94199	return c
94200}
94201
94202// Fields allows partial responses to be retrieved. See
94203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94204// for more information.
94205func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
94206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94207	return c
94208}
94209
94210// Context sets the context to be used in this call's Do method. Any
94211// pending HTTP request will be aborted if the provided context is
94212// canceled.
94213func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
94214	c.ctx_ = ctx
94215	return c
94216}
94217
94218// Header returns an http.Header that can be modified by the caller to
94219// add HTTP headers to the request.
94220func (c *InstancesStopCall) Header() http.Header {
94221	if c.header_ == nil {
94222		c.header_ = make(http.Header)
94223	}
94224	return c.header_
94225}
94226
94227func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
94228	reqHeaders := make(http.Header)
94229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
94230	for k, v := range c.header_ {
94231		reqHeaders[k] = v
94232	}
94233	reqHeaders.Set("User-Agent", c.s.userAgent())
94234	var body io.Reader = nil
94235	c.urlParams_.Set("alt", alt)
94236	c.urlParams_.Set("prettyPrint", "false")
94237	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop")
94238	urls += "?" + c.urlParams_.Encode()
94239	req, err := http.NewRequest("POST", urls, body)
94240	if err != nil {
94241		return nil, err
94242	}
94243	req.Header = reqHeaders
94244	googleapi.Expand(req.URL, map[string]string{
94245		"project":  c.project,
94246		"zone":     c.zone,
94247		"instance": c.instance,
94248	})
94249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94250}
94251
94252// Do executes the "compute.instances.stop" call.
94253// Exactly one of *Operation or error will be non-nil. Any non-2xx
94254// status code is an error. Response headers are in either
94255// *Operation.ServerResponse.Header or (if a response was returned at
94256// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94257// to check whether the returned error was because
94258// http.StatusNotModified was returned.
94259func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94260	gensupport.SetOptions(c.urlParams_, opts...)
94261	res, err := c.doRequest("json")
94262	if res != nil && res.StatusCode == http.StatusNotModified {
94263		if res.Body != nil {
94264			res.Body.Close()
94265		}
94266		return nil, &googleapi.Error{
94267			Code:   res.StatusCode,
94268			Header: res.Header,
94269		}
94270	}
94271	if err != nil {
94272		return nil, err
94273	}
94274	defer googleapi.CloseBody(res)
94275	if err := googleapi.CheckResponse(res); err != nil {
94276		return nil, err
94277	}
94278	ret := &Operation{
94279		ServerResponse: googleapi.ServerResponse{
94280			Header:         res.Header,
94281			HTTPStatusCode: res.StatusCode,
94282		},
94283	}
94284	target := &ret
94285	if err := gensupport.DecodeResponse(target, res); err != nil {
94286		return nil, err
94287	}
94288	return ret, nil
94289	// {
94290	//   "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.",
94291	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop",
94292	//   "httpMethod": "POST",
94293	//   "id": "compute.instances.stop",
94294	//   "parameterOrder": [
94295	//     "project",
94296	//     "zone",
94297	//     "instance"
94298	//   ],
94299	//   "parameters": {
94300	//     "instance": {
94301	//       "description": "Name of the instance resource to stop.",
94302	//       "location": "path",
94303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94304	//       "required": true,
94305	//       "type": "string"
94306	//     },
94307	//     "project": {
94308	//       "description": "Project ID for this request.",
94309	//       "location": "path",
94310	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94311	//       "required": true,
94312	//       "type": "string"
94313	//     },
94314	//     "requestId": {
94315	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94316	//       "location": "query",
94317	//       "type": "string"
94318	//     },
94319	//     "zone": {
94320	//       "description": "The name of the zone for this request.",
94321	//       "location": "path",
94322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94323	//       "required": true,
94324	//       "type": "string"
94325	//     }
94326	//   },
94327	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
94328	//   "response": {
94329	//     "$ref": "Operation"
94330	//   },
94331	//   "scopes": [
94332	//     "https://www.googleapis.com/auth/cloud-platform",
94333	//     "https://www.googleapis.com/auth/compute"
94334	//   ]
94335	// }
94336
94337}
94338
94339// method id "compute.instances.testIamPermissions":
94340
94341type InstancesTestIamPermissionsCall struct {
94342	s                      *Service
94343	project                string
94344	zone                   string
94345	resource               string
94346	testpermissionsrequest *TestPermissionsRequest
94347	urlParams_             gensupport.URLParams
94348	ctx_                   context.Context
94349	header_                http.Header
94350}
94351
94352// TestIamPermissions: Returns permissions that a caller has on the
94353// specified resource.
94354//
94355// - project: Project ID for this request.
94356// - resource: Name or id of the resource for this request.
94357// - zone: The name of the zone for this request.
94358func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
94359	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94360	c.project = project
94361	c.zone = zone
94362	c.resource = resource
94363	c.testpermissionsrequest = testpermissionsrequest
94364	return c
94365}
94366
94367// Fields allows partial responses to be retrieved. See
94368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94369// for more information.
94370func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
94371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94372	return c
94373}
94374
94375// Context sets the context to be used in this call's Do method. Any
94376// pending HTTP request will be aborted if the provided context is
94377// canceled.
94378func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
94379	c.ctx_ = ctx
94380	return c
94381}
94382
94383// Header returns an http.Header that can be modified by the caller to
94384// add HTTP headers to the request.
94385func (c *InstancesTestIamPermissionsCall) Header() http.Header {
94386	if c.header_ == nil {
94387		c.header_ = make(http.Header)
94388	}
94389	return c.header_
94390}
94391
94392func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94393	reqHeaders := make(http.Header)
94394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
94395	for k, v := range c.header_ {
94396		reqHeaders[k] = v
94397	}
94398	reqHeaders.Set("User-Agent", c.s.userAgent())
94399	var body io.Reader = nil
94400	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94401	if err != nil {
94402		return nil, err
94403	}
94404	reqHeaders.Set("Content-Type", "application/json")
94405	c.urlParams_.Set("alt", alt)
94406	c.urlParams_.Set("prettyPrint", "false")
94407	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions")
94408	urls += "?" + c.urlParams_.Encode()
94409	req, err := http.NewRequest("POST", urls, body)
94410	if err != nil {
94411		return nil, err
94412	}
94413	req.Header = reqHeaders
94414	googleapi.Expand(req.URL, map[string]string{
94415		"project":  c.project,
94416		"zone":     c.zone,
94417		"resource": c.resource,
94418	})
94419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94420}
94421
94422// Do executes the "compute.instances.testIamPermissions" call.
94423// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94424// non-2xx status code is an error. Response headers are in either
94425// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94426// returned at all) in error.(*googleapi.Error).Header. Use
94427// googleapi.IsNotModified to check whether the returned error was
94428// because http.StatusNotModified was returned.
94429func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94430	gensupport.SetOptions(c.urlParams_, opts...)
94431	res, err := c.doRequest("json")
94432	if res != nil && res.StatusCode == http.StatusNotModified {
94433		if res.Body != nil {
94434			res.Body.Close()
94435		}
94436		return nil, &googleapi.Error{
94437			Code:   res.StatusCode,
94438			Header: res.Header,
94439		}
94440	}
94441	if err != nil {
94442		return nil, err
94443	}
94444	defer googleapi.CloseBody(res)
94445	if err := googleapi.CheckResponse(res); err != nil {
94446		return nil, err
94447	}
94448	ret := &TestPermissionsResponse{
94449		ServerResponse: googleapi.ServerResponse{
94450			Header:         res.Header,
94451			HTTPStatusCode: res.StatusCode,
94452		},
94453	}
94454	target := &ret
94455	if err := gensupport.DecodeResponse(target, res); err != nil {
94456		return nil, err
94457	}
94458	return ret, nil
94459	// {
94460	//   "description": "Returns permissions that a caller has on the specified resource.",
94461	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
94462	//   "httpMethod": "POST",
94463	//   "id": "compute.instances.testIamPermissions",
94464	//   "parameterOrder": [
94465	//     "project",
94466	//     "zone",
94467	//     "resource"
94468	//   ],
94469	//   "parameters": {
94470	//     "project": {
94471	//       "description": "Project ID for this request.",
94472	//       "location": "path",
94473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94474	//       "required": true,
94475	//       "type": "string"
94476	//     },
94477	//     "resource": {
94478	//       "description": "Name or id of the resource for this request.",
94479	//       "location": "path",
94480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94481	//       "required": true,
94482	//       "type": "string"
94483	//     },
94484	//     "zone": {
94485	//       "description": "The name of the zone for this request.",
94486	//       "location": "path",
94487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94488	//       "required": true,
94489	//       "type": "string"
94490	//     }
94491	//   },
94492	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
94493	//   "request": {
94494	//     "$ref": "TestPermissionsRequest"
94495	//   },
94496	//   "response": {
94497	//     "$ref": "TestPermissionsResponse"
94498	//   },
94499	//   "scopes": [
94500	//     "https://www.googleapis.com/auth/cloud-platform",
94501	//     "https://www.googleapis.com/auth/compute",
94502	//     "https://www.googleapis.com/auth/compute.readonly"
94503	//   ]
94504	// }
94505
94506}
94507
94508// method id "compute.instances.update":
94509
94510type InstancesUpdateCall struct {
94511	s          *Service
94512	project    string
94513	zone       string
94514	instance   string
94515	instance2  *Instance
94516	urlParams_ gensupport.URLParams
94517	ctx_       context.Context
94518	header_    http.Header
94519}
94520
94521// Update: Updates an instance only if the necessary resources are
94522// available. This method can update only a specific set of instance
94523// properties. See Updating a running instance for a list of updatable
94524// instance properties.
94525//
94526// - instance: Name of the instance resource to update.
94527// - project: Project ID for this request.
94528// - zone: The name of the zone for this request.
94529func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
94530	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94531	c.project = project
94532	c.zone = zone
94533	c.instance = instance
94534	c.instance2 = instance2
94535	return c
94536}
94537
94538// MinimalAction sets the optional parameter "minimalAction": Specifies
94539// the action to take when updating an instance even if the updated
94540// properties do not require it. If not specified, then Compute Engine
94541// acts based on the minimum action that the updated properties require.
94542//
94543// Possible values:
94544//   "INVALID"
94545//   "NO_EFFECT" - No changes can be made to the instance.
94546//   "REFRESH" - The instance will not restart.
94547//   "RESTART" - The instance will restart.
94548func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
94549	c.urlParams_.Set("minimalAction", minimalAction)
94550	return c
94551}
94552
94553// MostDisruptiveAllowedAction sets the optional parameter
94554// "mostDisruptiveAllowedAction": Specifies the most disruptive action
94555// that can be taken on the instance as part of the update. Compute
94556// Engine returns an error if the instance properties require a more
94557// disruptive action as part of the instance update. Valid options from
94558// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
94559//
94560// Possible values:
94561//   "INVALID"
94562//   "NO_EFFECT" - No changes can be made to the instance.
94563//   "REFRESH" - The instance will not restart.
94564//   "RESTART" - The instance will restart.
94565func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
94566	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
94567	return c
94568}
94569
94570// RequestId sets the optional parameter "requestId": An optional
94571// request ID to identify requests. Specify a unique request ID so that
94572// if you must retry your request, the server will know to ignore the
94573// request if it has already been completed. For example, consider a
94574// situation where you make an initial request and the request times
94575// out. If you make the request again with the same request ID, the
94576// server can check if original operation with the same request ID was
94577// received, and if so, will ignore the second request. This prevents
94578// clients from accidentally creating duplicate commitments. The request
94579// ID must be a valid UUID with the exception that zero UUID is not
94580// supported ( 00000000-0000-0000-0000-000000000000).
94581func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
94582	c.urlParams_.Set("requestId", requestId)
94583	return c
94584}
94585
94586// Fields allows partial responses to be retrieved. See
94587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94588// for more information.
94589func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
94590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94591	return c
94592}
94593
94594// Context sets the context to be used in this call's Do method. Any
94595// pending HTTP request will be aborted if the provided context is
94596// canceled.
94597func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
94598	c.ctx_ = ctx
94599	return c
94600}
94601
94602// Header returns an http.Header that can be modified by the caller to
94603// add HTTP headers to the request.
94604func (c *InstancesUpdateCall) Header() http.Header {
94605	if c.header_ == nil {
94606		c.header_ = make(http.Header)
94607	}
94608	return c.header_
94609}
94610
94611func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
94612	reqHeaders := make(http.Header)
94613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
94614	for k, v := range c.header_ {
94615		reqHeaders[k] = v
94616	}
94617	reqHeaders.Set("User-Agent", c.s.userAgent())
94618	var body io.Reader = nil
94619	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
94620	if err != nil {
94621		return nil, err
94622	}
94623	reqHeaders.Set("Content-Type", "application/json")
94624	c.urlParams_.Set("alt", alt)
94625	c.urlParams_.Set("prettyPrint", "false")
94626	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
94627	urls += "?" + c.urlParams_.Encode()
94628	req, err := http.NewRequest("PUT", urls, body)
94629	if err != nil {
94630		return nil, err
94631	}
94632	req.Header = reqHeaders
94633	googleapi.Expand(req.URL, map[string]string{
94634		"project":  c.project,
94635		"zone":     c.zone,
94636		"instance": c.instance,
94637	})
94638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94639}
94640
94641// Do executes the "compute.instances.update" call.
94642// Exactly one of *Operation or error will be non-nil. Any non-2xx
94643// status code is an error. Response headers are in either
94644// *Operation.ServerResponse.Header or (if a response was returned at
94645// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94646// to check whether the returned error was because
94647// http.StatusNotModified was returned.
94648func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94649	gensupport.SetOptions(c.urlParams_, opts...)
94650	res, err := c.doRequest("json")
94651	if res != nil && res.StatusCode == http.StatusNotModified {
94652		if res.Body != nil {
94653			res.Body.Close()
94654		}
94655		return nil, &googleapi.Error{
94656			Code:   res.StatusCode,
94657			Header: res.Header,
94658		}
94659	}
94660	if err != nil {
94661		return nil, err
94662	}
94663	defer googleapi.CloseBody(res)
94664	if err := googleapi.CheckResponse(res); err != nil {
94665		return nil, err
94666	}
94667	ret := &Operation{
94668		ServerResponse: googleapi.ServerResponse{
94669			Header:         res.Header,
94670			HTTPStatusCode: res.StatusCode,
94671		},
94672	}
94673	target := &ret
94674	if err := gensupport.DecodeResponse(target, res); err != nil {
94675		return nil, err
94676	}
94677	return ret, nil
94678	// {
94679	//   "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.",
94680	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
94681	//   "httpMethod": "PUT",
94682	//   "id": "compute.instances.update",
94683	//   "parameterOrder": [
94684	//     "project",
94685	//     "zone",
94686	//     "instance"
94687	//   ],
94688	//   "parameters": {
94689	//     "instance": {
94690	//       "description": "Name of the instance resource to update.",
94691	//       "location": "path",
94692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94693	//       "required": true,
94694	//       "type": "string"
94695	//     },
94696	//     "minimalAction": {
94697	//       "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.",
94698	//       "enum": [
94699	//         "INVALID",
94700	//         "NO_EFFECT",
94701	//         "REFRESH",
94702	//         "RESTART"
94703	//       ],
94704	//       "enumDescriptions": [
94705	//         "",
94706	//         "No changes can be made to the instance.",
94707	//         "The instance will not restart.",
94708	//         "The instance will restart."
94709	//       ],
94710	//       "location": "query",
94711	//       "type": "string"
94712	//     },
94713	//     "mostDisruptiveAllowedAction": {
94714	//       "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.",
94715	//       "enum": [
94716	//         "INVALID",
94717	//         "NO_EFFECT",
94718	//         "REFRESH",
94719	//         "RESTART"
94720	//       ],
94721	//       "enumDescriptions": [
94722	//         "",
94723	//         "No changes can be made to the instance.",
94724	//         "The instance will not restart.",
94725	//         "The instance will restart."
94726	//       ],
94727	//       "location": "query",
94728	//       "type": "string"
94729	//     },
94730	//     "project": {
94731	//       "description": "Project ID for this request.",
94732	//       "location": "path",
94733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94734	//       "required": true,
94735	//       "type": "string"
94736	//     },
94737	//     "requestId": {
94738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94739	//       "location": "query",
94740	//       "type": "string"
94741	//     },
94742	//     "zone": {
94743	//       "description": "The name of the zone for this request.",
94744	//       "location": "path",
94745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94746	//       "required": true,
94747	//       "type": "string"
94748	//     }
94749	//   },
94750	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
94751	//   "request": {
94752	//     "$ref": "Instance"
94753	//   },
94754	//   "response": {
94755	//     "$ref": "Operation"
94756	//   },
94757	//   "scopes": [
94758	//     "https://www.googleapis.com/auth/cloud-platform",
94759	//     "https://www.googleapis.com/auth/compute"
94760	//   ]
94761	// }
94762
94763}
94764
94765// method id "compute.instances.updateAccessConfig":
94766
94767type InstancesUpdateAccessConfigCall struct {
94768	s            *Service
94769	project      string
94770	zone         string
94771	instance     string
94772	accessconfig *AccessConfig
94773	urlParams_   gensupport.URLParams
94774	ctx_         context.Context
94775	header_      http.Header
94776}
94777
94778// UpdateAccessConfig: Updates the specified access config from an
94779// instance's network interface with the data included in the request.
94780// This method supports PATCH semantics and uses the JSON merge patch
94781// format and processing rules.
94782//
94783// - instance: The instance name for this request.
94784// - networkInterface: The name of the network interface where the
94785//   access config is attached.
94786// - project: Project ID for this request.
94787// - zone: The name of the zone for this request.
94788func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
94789	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94790	c.project = project
94791	c.zone = zone
94792	c.instance = instance
94793	c.urlParams_.Set("networkInterface", networkInterface)
94794	c.accessconfig = accessconfig
94795	return c
94796}
94797
94798// RequestId sets the optional parameter "requestId": An optional
94799// request ID to identify requests. Specify a unique request ID so that
94800// if you must retry your request, the server will know to ignore the
94801// request if it has already been completed. For example, consider a
94802// situation where you make an initial request and the request times
94803// out. If you make the request again with the same request ID, the
94804// server can check if original operation with the same request ID was
94805// received, and if so, will ignore the second request. This prevents
94806// clients from accidentally creating duplicate commitments. The request
94807// ID must be a valid UUID with the exception that zero UUID is not
94808// supported ( 00000000-0000-0000-0000-000000000000).
94809func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
94810	c.urlParams_.Set("requestId", requestId)
94811	return c
94812}
94813
94814// Fields allows partial responses to be retrieved. See
94815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94816// for more information.
94817func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
94818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94819	return c
94820}
94821
94822// Context sets the context to be used in this call's Do method. Any
94823// pending HTTP request will be aborted if the provided context is
94824// canceled.
94825func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
94826	c.ctx_ = ctx
94827	return c
94828}
94829
94830// Header returns an http.Header that can be modified by the caller to
94831// add HTTP headers to the request.
94832func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
94833	if c.header_ == nil {
94834		c.header_ = make(http.Header)
94835	}
94836	return c.header_
94837}
94838
94839func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
94840	reqHeaders := make(http.Header)
94841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
94842	for k, v := range c.header_ {
94843		reqHeaders[k] = v
94844	}
94845	reqHeaders.Set("User-Agent", c.s.userAgent())
94846	var body io.Reader = nil
94847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
94848	if err != nil {
94849		return nil, err
94850	}
94851	reqHeaders.Set("Content-Type", "application/json")
94852	c.urlParams_.Set("alt", alt)
94853	c.urlParams_.Set("prettyPrint", "false")
94854	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
94855	urls += "?" + c.urlParams_.Encode()
94856	req, err := http.NewRequest("POST", urls, body)
94857	if err != nil {
94858		return nil, err
94859	}
94860	req.Header = reqHeaders
94861	googleapi.Expand(req.URL, map[string]string{
94862		"project":  c.project,
94863		"zone":     c.zone,
94864		"instance": c.instance,
94865	})
94866	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94867}
94868
94869// Do executes the "compute.instances.updateAccessConfig" call.
94870// Exactly one of *Operation or error will be non-nil. Any non-2xx
94871// status code is an error. Response headers are in either
94872// *Operation.ServerResponse.Header or (if a response was returned at
94873// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94874// to check whether the returned error was because
94875// http.StatusNotModified was returned.
94876func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94877	gensupport.SetOptions(c.urlParams_, opts...)
94878	res, err := c.doRequest("json")
94879	if res != nil && res.StatusCode == http.StatusNotModified {
94880		if res.Body != nil {
94881			res.Body.Close()
94882		}
94883		return nil, &googleapi.Error{
94884			Code:   res.StatusCode,
94885			Header: res.Header,
94886		}
94887	}
94888	if err != nil {
94889		return nil, err
94890	}
94891	defer googleapi.CloseBody(res)
94892	if err := googleapi.CheckResponse(res); err != nil {
94893		return nil, err
94894	}
94895	ret := &Operation{
94896		ServerResponse: googleapi.ServerResponse{
94897			Header:         res.Header,
94898			HTTPStatusCode: res.StatusCode,
94899		},
94900	}
94901	target := &ret
94902	if err := gensupport.DecodeResponse(target, res); err != nil {
94903		return nil, err
94904	}
94905	return ret, nil
94906	// {
94907	//   "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.",
94908	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
94909	//   "httpMethod": "POST",
94910	//   "id": "compute.instances.updateAccessConfig",
94911	//   "parameterOrder": [
94912	//     "project",
94913	//     "zone",
94914	//     "instance",
94915	//     "networkInterface"
94916	//   ],
94917	//   "parameters": {
94918	//     "instance": {
94919	//       "description": "The instance name for this request.",
94920	//       "location": "path",
94921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94922	//       "required": true,
94923	//       "type": "string"
94924	//     },
94925	//     "networkInterface": {
94926	//       "description": "The name of the network interface where the access config is attached.",
94927	//       "location": "query",
94928	//       "required": true,
94929	//       "type": "string"
94930	//     },
94931	//     "project": {
94932	//       "description": "Project ID for this request.",
94933	//       "location": "path",
94934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94935	//       "required": true,
94936	//       "type": "string"
94937	//     },
94938	//     "requestId": {
94939	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94940	//       "location": "query",
94941	//       "type": "string"
94942	//     },
94943	//     "zone": {
94944	//       "description": "The name of the zone for this request.",
94945	//       "location": "path",
94946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94947	//       "required": true,
94948	//       "type": "string"
94949	//     }
94950	//   },
94951	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
94952	//   "request": {
94953	//     "$ref": "AccessConfig"
94954	//   },
94955	//   "response": {
94956	//     "$ref": "Operation"
94957	//   },
94958	//   "scopes": [
94959	//     "https://www.googleapis.com/auth/cloud-platform",
94960	//     "https://www.googleapis.com/auth/compute"
94961	//   ]
94962	// }
94963
94964}
94965
94966// method id "compute.instances.updateDisplayDevice":
94967
94968type InstancesUpdateDisplayDeviceCall struct {
94969	s             *Service
94970	project       string
94971	zone          string
94972	instance      string
94973	displaydevice *DisplayDevice
94974	urlParams_    gensupport.URLParams
94975	ctx_          context.Context
94976	header_       http.Header
94977}
94978
94979// UpdateDisplayDevice: Updates the Display config for a VM instance.
94980// You can only use this method on a stopped VM instance. This method
94981// supports PATCH semantics and uses the JSON merge patch format and
94982// processing rules.
94983//
94984// - instance: Name of the instance scoping this request.
94985// - project: Project ID for this request.
94986// - zone: The name of the zone for this request.
94987func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
94988	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94989	c.project = project
94990	c.zone = zone
94991	c.instance = instance
94992	c.displaydevice = displaydevice
94993	return c
94994}
94995
94996// RequestId sets the optional parameter "requestId": An optional
94997// request ID to identify requests. Specify a unique request ID so that
94998// if you must retry your request, the server will know to ignore the
94999// request if it has already been completed. For example, consider a
95000// situation where you make an initial request and the request times
95001// out. If you make the request again with the same request ID, the
95002// server can check if original operation with the same request ID was
95003// received, and if so, will ignore the second request. This prevents
95004// clients from accidentally creating duplicate commitments. The request
95005// ID must be a valid UUID with the exception that zero UUID is not
95006// supported ( 00000000-0000-0000-0000-000000000000).
95007func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
95008	c.urlParams_.Set("requestId", requestId)
95009	return c
95010}
95011
95012// Fields allows partial responses to be retrieved. See
95013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95014// for more information.
95015func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
95016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95017	return c
95018}
95019
95020// Context sets the context to be used in this call's Do method. Any
95021// pending HTTP request will be aborted if the provided context is
95022// canceled.
95023func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
95024	c.ctx_ = ctx
95025	return c
95026}
95027
95028// Header returns an http.Header that can be modified by the caller to
95029// add HTTP headers to the request.
95030func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
95031	if c.header_ == nil {
95032		c.header_ = make(http.Header)
95033	}
95034	return c.header_
95035}
95036
95037func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
95038	reqHeaders := make(http.Header)
95039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
95040	for k, v := range c.header_ {
95041		reqHeaders[k] = v
95042	}
95043	reqHeaders.Set("User-Agent", c.s.userAgent())
95044	var body io.Reader = nil
95045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
95046	if err != nil {
95047		return nil, err
95048	}
95049	reqHeaders.Set("Content-Type", "application/json")
95050	c.urlParams_.Set("alt", alt)
95051	c.urlParams_.Set("prettyPrint", "false")
95052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
95053	urls += "?" + c.urlParams_.Encode()
95054	req, err := http.NewRequest("PATCH", urls, body)
95055	if err != nil {
95056		return nil, err
95057	}
95058	req.Header = reqHeaders
95059	googleapi.Expand(req.URL, map[string]string{
95060		"project":  c.project,
95061		"zone":     c.zone,
95062		"instance": c.instance,
95063	})
95064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95065}
95066
95067// Do executes the "compute.instances.updateDisplayDevice" call.
95068// Exactly one of *Operation or error will be non-nil. Any non-2xx
95069// status code is an error. Response headers are in either
95070// *Operation.ServerResponse.Header or (if a response was returned at
95071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95072// to check whether the returned error was because
95073// http.StatusNotModified was returned.
95074func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95075	gensupport.SetOptions(c.urlParams_, opts...)
95076	res, err := c.doRequest("json")
95077	if res != nil && res.StatusCode == http.StatusNotModified {
95078		if res.Body != nil {
95079			res.Body.Close()
95080		}
95081		return nil, &googleapi.Error{
95082			Code:   res.StatusCode,
95083			Header: res.Header,
95084		}
95085	}
95086	if err != nil {
95087		return nil, err
95088	}
95089	defer googleapi.CloseBody(res)
95090	if err := googleapi.CheckResponse(res); err != nil {
95091		return nil, err
95092	}
95093	ret := &Operation{
95094		ServerResponse: googleapi.ServerResponse{
95095			Header:         res.Header,
95096			HTTPStatusCode: res.StatusCode,
95097		},
95098	}
95099	target := &ret
95100	if err := gensupport.DecodeResponse(target, res); err != nil {
95101		return nil, err
95102	}
95103	return ret, nil
95104	// {
95105	//   "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.",
95106	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
95107	//   "httpMethod": "PATCH",
95108	//   "id": "compute.instances.updateDisplayDevice",
95109	//   "parameterOrder": [
95110	//     "project",
95111	//     "zone",
95112	//     "instance"
95113	//   ],
95114	//   "parameters": {
95115	//     "instance": {
95116	//       "description": "Name of the instance scoping this request.",
95117	//       "location": "path",
95118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95119	//       "required": true,
95120	//       "type": "string"
95121	//     },
95122	//     "project": {
95123	//       "description": "Project ID for this request.",
95124	//       "location": "path",
95125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95126	//       "required": true,
95127	//       "type": "string"
95128	//     },
95129	//     "requestId": {
95130	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95131	//       "location": "query",
95132	//       "type": "string"
95133	//     },
95134	//     "zone": {
95135	//       "description": "The name of the zone for this request.",
95136	//       "location": "path",
95137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95138	//       "required": true,
95139	//       "type": "string"
95140	//     }
95141	//   },
95142	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
95143	//   "request": {
95144	//     "$ref": "DisplayDevice"
95145	//   },
95146	//   "response": {
95147	//     "$ref": "Operation"
95148	//   },
95149	//   "scopes": [
95150	//     "https://www.googleapis.com/auth/cloud-platform",
95151	//     "https://www.googleapis.com/auth/compute"
95152	//   ]
95153	// }
95154
95155}
95156
95157// method id "compute.instances.updateNetworkInterface":
95158
95159type InstancesUpdateNetworkInterfaceCall struct {
95160	s                *Service
95161	project          string
95162	zone             string
95163	instance         string
95164	networkinterface *NetworkInterface
95165	urlParams_       gensupport.URLParams
95166	ctx_             context.Context
95167	header_          http.Header
95168}
95169
95170// UpdateNetworkInterface: Updates an instance's network interface. This
95171// method can only update an interface's alias IP range and attached
95172// network. See Modifying alias IP ranges for an existing instance for
95173// instructions on changing alias IP ranges. See Migrating a VM between
95174// networks for instructions on migrating an interface. This method
95175// follows PATCH semantics.
95176//
95177// - instance: The instance name for this request.
95178// - networkInterface: The name of the network interface to update.
95179// - project: Project ID for this request.
95180// - zone: The name of the zone for this request.
95181func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
95182	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95183	c.project = project
95184	c.zone = zone
95185	c.instance = instance
95186	c.urlParams_.Set("networkInterface", networkInterface)
95187	c.networkinterface = networkinterface
95188	return c
95189}
95190
95191// RequestId sets the optional parameter "requestId": An optional
95192// request ID to identify requests. Specify a unique request ID so that
95193// if you must retry your request, the server will know to ignore the
95194// request if it has already been completed. For example, consider a
95195// situation where you make an initial request and the request times
95196// out. If you make the request again with the same request ID, the
95197// server can check if original operation with the same request ID was
95198// received, and if so, will ignore the second request. This prevents
95199// clients from accidentally creating duplicate commitments. The request
95200// ID must be a valid UUID with the exception that zero UUID is not
95201// supported ( 00000000-0000-0000-0000-000000000000).
95202func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
95203	c.urlParams_.Set("requestId", requestId)
95204	return c
95205}
95206
95207// Fields allows partial responses to be retrieved. See
95208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95209// for more information.
95210func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
95211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95212	return c
95213}
95214
95215// Context sets the context to be used in this call's Do method. Any
95216// pending HTTP request will be aborted if the provided context is
95217// canceled.
95218func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
95219	c.ctx_ = ctx
95220	return c
95221}
95222
95223// Header returns an http.Header that can be modified by the caller to
95224// add HTTP headers to the request.
95225func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
95226	if c.header_ == nil {
95227		c.header_ = make(http.Header)
95228	}
95229	return c.header_
95230}
95231
95232func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
95233	reqHeaders := make(http.Header)
95234	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
95235	for k, v := range c.header_ {
95236		reqHeaders[k] = v
95237	}
95238	reqHeaders.Set("User-Agent", c.s.userAgent())
95239	var body io.Reader = nil
95240	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
95241	if err != nil {
95242		return nil, err
95243	}
95244	reqHeaders.Set("Content-Type", "application/json")
95245	c.urlParams_.Set("alt", alt)
95246	c.urlParams_.Set("prettyPrint", "false")
95247	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
95248	urls += "?" + c.urlParams_.Encode()
95249	req, err := http.NewRequest("PATCH", urls, body)
95250	if err != nil {
95251		return nil, err
95252	}
95253	req.Header = reqHeaders
95254	googleapi.Expand(req.URL, map[string]string{
95255		"project":  c.project,
95256		"zone":     c.zone,
95257		"instance": c.instance,
95258	})
95259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95260}
95261
95262// Do executes the "compute.instances.updateNetworkInterface" call.
95263// Exactly one of *Operation or error will be non-nil. Any non-2xx
95264// status code is an error. Response headers are in either
95265// *Operation.ServerResponse.Header or (if a response was returned at
95266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95267// to check whether the returned error was because
95268// http.StatusNotModified was returned.
95269func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95270	gensupport.SetOptions(c.urlParams_, opts...)
95271	res, err := c.doRequest("json")
95272	if res != nil && res.StatusCode == http.StatusNotModified {
95273		if res.Body != nil {
95274			res.Body.Close()
95275		}
95276		return nil, &googleapi.Error{
95277			Code:   res.StatusCode,
95278			Header: res.Header,
95279		}
95280	}
95281	if err != nil {
95282		return nil, err
95283	}
95284	defer googleapi.CloseBody(res)
95285	if err := googleapi.CheckResponse(res); err != nil {
95286		return nil, err
95287	}
95288	ret := &Operation{
95289		ServerResponse: googleapi.ServerResponse{
95290			Header:         res.Header,
95291			HTTPStatusCode: res.StatusCode,
95292		},
95293	}
95294	target := &ret
95295	if err := gensupport.DecodeResponse(target, res); err != nil {
95296		return nil, err
95297	}
95298	return ret, nil
95299	// {
95300	//   "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.",
95301	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
95302	//   "httpMethod": "PATCH",
95303	//   "id": "compute.instances.updateNetworkInterface",
95304	//   "parameterOrder": [
95305	//     "project",
95306	//     "zone",
95307	//     "instance",
95308	//     "networkInterface"
95309	//   ],
95310	//   "parameters": {
95311	//     "instance": {
95312	//       "description": "The instance name for this request.",
95313	//       "location": "path",
95314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95315	//       "required": true,
95316	//       "type": "string"
95317	//     },
95318	//     "networkInterface": {
95319	//       "description": "The name of the network interface to update.",
95320	//       "location": "query",
95321	//       "required": true,
95322	//       "type": "string"
95323	//     },
95324	//     "project": {
95325	//       "description": "Project ID for this request.",
95326	//       "location": "path",
95327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95328	//       "required": true,
95329	//       "type": "string"
95330	//     },
95331	//     "requestId": {
95332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95333	//       "location": "query",
95334	//       "type": "string"
95335	//     },
95336	//     "zone": {
95337	//       "description": "The name of the zone for this request.",
95338	//       "location": "path",
95339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95340	//       "required": true,
95341	//       "type": "string"
95342	//     }
95343	//   },
95344	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
95345	//   "request": {
95346	//     "$ref": "NetworkInterface"
95347	//   },
95348	//   "response": {
95349	//     "$ref": "Operation"
95350	//   },
95351	//   "scopes": [
95352	//     "https://www.googleapis.com/auth/cloud-platform",
95353	//     "https://www.googleapis.com/auth/compute"
95354	//   ]
95355	// }
95356
95357}
95358
95359// method id "compute.instances.updateShieldedInstanceConfig":
95360
95361type InstancesUpdateShieldedInstanceConfigCall struct {
95362	s                      *Service
95363	project                string
95364	zone                   string
95365	instance               string
95366	shieldedinstanceconfig *ShieldedInstanceConfig
95367	urlParams_             gensupport.URLParams
95368	ctx_                   context.Context
95369	header_                http.Header
95370}
95371
95372// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
95373// for an instance. You can only use this method on a stopped instance.
95374// This method supports PATCH semantics and uses the JSON merge patch
95375// format and processing rules.
95376//
95377// - instance: Name or id of the instance scoping this request.
95378// - project: Project ID for this request.
95379// - zone: The name of the zone for this request.
95380func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
95381	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95382	c.project = project
95383	c.zone = zone
95384	c.instance = instance
95385	c.shieldedinstanceconfig = shieldedinstanceconfig
95386	return c
95387}
95388
95389// RequestId sets the optional parameter "requestId": An optional
95390// request ID to identify requests. Specify a unique request ID so that
95391// if you must retry your request, the server will know to ignore the
95392// request if it has already been completed. For example, consider a
95393// situation where you make an initial request and the request times
95394// out. If you make the request again with the same request ID, the
95395// server can check if original operation with the same request ID was
95396// received, and if so, will ignore the second request. This prevents
95397// clients from accidentally creating duplicate commitments. The request
95398// ID must be a valid UUID with the exception that zero UUID is not
95399// supported ( 00000000-0000-0000-0000-000000000000).
95400func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
95401	c.urlParams_.Set("requestId", requestId)
95402	return c
95403}
95404
95405// Fields allows partial responses to be retrieved. See
95406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95407// for more information.
95408func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
95409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95410	return c
95411}
95412
95413// Context sets the context to be used in this call's Do method. Any
95414// pending HTTP request will be aborted if the provided context is
95415// canceled.
95416func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
95417	c.ctx_ = ctx
95418	return c
95419}
95420
95421// Header returns an http.Header that can be modified by the caller to
95422// add HTTP headers to the request.
95423func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
95424	if c.header_ == nil {
95425		c.header_ = make(http.Header)
95426	}
95427	return c.header_
95428}
95429
95430func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
95431	reqHeaders := make(http.Header)
95432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
95433	for k, v := range c.header_ {
95434		reqHeaders[k] = v
95435	}
95436	reqHeaders.Set("User-Agent", c.s.userAgent())
95437	var body io.Reader = nil
95438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
95439	if err != nil {
95440		return nil, err
95441	}
95442	reqHeaders.Set("Content-Type", "application/json")
95443	c.urlParams_.Set("alt", alt)
95444	c.urlParams_.Set("prettyPrint", "false")
95445	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
95446	urls += "?" + c.urlParams_.Encode()
95447	req, err := http.NewRequest("PATCH", urls, body)
95448	if err != nil {
95449		return nil, err
95450	}
95451	req.Header = reqHeaders
95452	googleapi.Expand(req.URL, map[string]string{
95453		"project":  c.project,
95454		"zone":     c.zone,
95455		"instance": c.instance,
95456	})
95457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95458}
95459
95460// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
95461// Exactly one of *Operation or error will be non-nil. Any non-2xx
95462// status code is an error. Response headers are in either
95463// *Operation.ServerResponse.Header or (if a response was returned at
95464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95465// to check whether the returned error was because
95466// http.StatusNotModified was returned.
95467func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95468	gensupport.SetOptions(c.urlParams_, opts...)
95469	res, err := c.doRequest("json")
95470	if res != nil && res.StatusCode == http.StatusNotModified {
95471		if res.Body != nil {
95472			res.Body.Close()
95473		}
95474		return nil, &googleapi.Error{
95475			Code:   res.StatusCode,
95476			Header: res.Header,
95477		}
95478	}
95479	if err != nil {
95480		return nil, err
95481	}
95482	defer googleapi.CloseBody(res)
95483	if err := googleapi.CheckResponse(res); err != nil {
95484		return nil, err
95485	}
95486	ret := &Operation{
95487		ServerResponse: googleapi.ServerResponse{
95488			Header:         res.Header,
95489			HTTPStatusCode: res.StatusCode,
95490		},
95491	}
95492	target := &ret
95493	if err := gensupport.DecodeResponse(target, res); err != nil {
95494		return nil, err
95495	}
95496	return ret, nil
95497	// {
95498	//   "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.",
95499	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
95500	//   "httpMethod": "PATCH",
95501	//   "id": "compute.instances.updateShieldedInstanceConfig",
95502	//   "parameterOrder": [
95503	//     "project",
95504	//     "zone",
95505	//     "instance"
95506	//   ],
95507	//   "parameters": {
95508	//     "instance": {
95509	//       "description": "Name or id of the instance scoping this request.",
95510	//       "location": "path",
95511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95512	//       "required": true,
95513	//       "type": "string"
95514	//     },
95515	//     "project": {
95516	//       "description": "Project ID for this request.",
95517	//       "location": "path",
95518	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95519	//       "required": true,
95520	//       "type": "string"
95521	//     },
95522	//     "requestId": {
95523	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95524	//       "location": "query",
95525	//       "type": "string"
95526	//     },
95527	//     "zone": {
95528	//       "description": "The name of the zone for this request.",
95529	//       "location": "path",
95530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95531	//       "required": true,
95532	//       "type": "string"
95533	//     }
95534	//   },
95535	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
95536	//   "request": {
95537	//     "$ref": "ShieldedInstanceConfig"
95538	//   },
95539	//   "response": {
95540	//     "$ref": "Operation"
95541	//   },
95542	//   "scopes": [
95543	//     "https://www.googleapis.com/auth/cloud-platform",
95544	//     "https://www.googleapis.com/auth/compute"
95545	//   ]
95546	// }
95547
95548}
95549
95550// method id "compute.interconnectAttachments.aggregatedList":
95551
95552type InterconnectAttachmentsAggregatedListCall struct {
95553	s            *Service
95554	project      string
95555	urlParams_   gensupport.URLParams
95556	ifNoneMatch_ string
95557	ctx_         context.Context
95558	header_      http.Header
95559}
95560
95561// AggregatedList: Retrieves an aggregated list of interconnect
95562// attachments.
95563//
95564// - project: Project ID for this request.
95565func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
95566	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95567	c.project = project
95568	return c
95569}
95570
95571// Filter sets the optional parameter "filter": A filter expression that
95572// filters resources listed in the response. The expression must specify
95573// the field name, a comparison operator, and the value that you want to
95574// use for filtering. The value must be a string, a number, or a
95575// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95576// `<`. For example, if you are filtering Compute Engine instances, you
95577// can exclude instances named `example-instance` by specifying `name !=
95578// example-instance`. You can also filter nested fields. For example,
95579// you could specify `scheduling.automaticRestart = false` to include
95580// instances only if they are not scheduled for automatic restarts. You
95581// can use filtering on nested fields to filter based on resource
95582// labels. To filter on multiple expressions, provide each separate
95583// expression within parentheses. For example: ```
95584// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
95585// ``` By default, each expression is an `AND` expression. However, you
95586// can include `AND` and `OR` expressions explicitly. For example: ```
95587// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
95588// AND (scheduling.automaticRestart = true) ```
95589func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
95590	c.urlParams_.Set("filter", filter)
95591	return c
95592}
95593
95594// IncludeAllScopes sets the optional parameter "includeAllScopes":
95595// Indicates whether every visible scope for each scope type (zone,
95596// region, global) should be included in the response. For new resource
95597// types added after this field, the flag has no effect as new resource
95598// types will always include every visible scope for each scope type in
95599// response. For resource types which predate this field, if this flag
95600// is omitted or false, only scopes of the scope types where the
95601// resource type is expected to be found will be included.
95602func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
95603	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
95604	return c
95605}
95606
95607// MaxResults sets the optional parameter "maxResults": The maximum
95608// number of results per page that should be returned. If the number of
95609// available results is larger than `maxResults`, Compute Engine returns
95610// a `nextPageToken` that can be used to get the next page of results in
95611// subsequent list requests. Acceptable values are `0` to `500`,
95612// inclusive. (Default: `500`)
95613func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
95614	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95615	return c
95616}
95617
95618// OrderBy sets the optional parameter "orderBy": Sorts list results by
95619// a certain order. By default, results are returned in alphanumerical
95620// order based on the resource name. You can also sort results in
95621// descending order based on the creation timestamp using
95622// `orderBy="creationTimestamp desc". This sorts results based on the
95623// `creationTimestamp` field in reverse chronological order (newest
95624// result first). Use this to sort resources like operations so that the
95625// newest operation is returned first. Currently, only sorting by `name`
95626// or `creationTimestamp desc` is supported.
95627func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
95628	c.urlParams_.Set("orderBy", orderBy)
95629	return c
95630}
95631
95632// PageToken sets the optional parameter "pageToken": Specifies a page
95633// token to use. Set `pageToken` to the `nextPageToken` returned by a
95634// previous list request to get the next page of results.
95635func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
95636	c.urlParams_.Set("pageToken", pageToken)
95637	return c
95638}
95639
95640// ReturnPartialSuccess sets the optional parameter
95641// "returnPartialSuccess": Opt-in for partial success behavior which
95642// provides partial results in case of failure. The default value is
95643// false.
95644func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
95645	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
95646	return c
95647}
95648
95649// Fields allows partial responses to be retrieved. See
95650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95651// for more information.
95652func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
95653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95654	return c
95655}
95656
95657// IfNoneMatch sets the optional parameter which makes the operation
95658// fail if the object's ETag matches the given value. This is useful for
95659// getting updates only after the object has changed since the last
95660// request. Use googleapi.IsNotModified to check whether the response
95661// error from Do is the result of In-None-Match.
95662func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
95663	c.ifNoneMatch_ = entityTag
95664	return c
95665}
95666
95667// Context sets the context to be used in this call's Do method. Any
95668// pending HTTP request will be aborted if the provided context is
95669// canceled.
95670func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
95671	c.ctx_ = ctx
95672	return c
95673}
95674
95675// Header returns an http.Header that can be modified by the caller to
95676// add HTTP headers to the request.
95677func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
95678	if c.header_ == nil {
95679		c.header_ = make(http.Header)
95680	}
95681	return c.header_
95682}
95683
95684func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
95685	reqHeaders := make(http.Header)
95686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
95687	for k, v := range c.header_ {
95688		reqHeaders[k] = v
95689	}
95690	reqHeaders.Set("User-Agent", c.s.userAgent())
95691	if c.ifNoneMatch_ != "" {
95692		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95693	}
95694	var body io.Reader = nil
95695	c.urlParams_.Set("alt", alt)
95696	c.urlParams_.Set("prettyPrint", "false")
95697	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments")
95698	urls += "?" + c.urlParams_.Encode()
95699	req, err := http.NewRequest("GET", urls, body)
95700	if err != nil {
95701		return nil, err
95702	}
95703	req.Header = reqHeaders
95704	googleapi.Expand(req.URL, map[string]string{
95705		"project": c.project,
95706	})
95707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95708}
95709
95710// Do executes the "compute.interconnectAttachments.aggregatedList" call.
95711// Exactly one of *InterconnectAttachmentAggregatedList or error will be
95712// non-nil. Any non-2xx status code is an error. Response headers are in
95713// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
95714// (if a response was returned at all) in
95715// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
95716// whether the returned error was because http.StatusNotModified was
95717// returned.
95718func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
95719	gensupport.SetOptions(c.urlParams_, opts...)
95720	res, err := c.doRequest("json")
95721	if res != nil && res.StatusCode == http.StatusNotModified {
95722		if res.Body != nil {
95723			res.Body.Close()
95724		}
95725		return nil, &googleapi.Error{
95726			Code:   res.StatusCode,
95727			Header: res.Header,
95728		}
95729	}
95730	if err != nil {
95731		return nil, err
95732	}
95733	defer googleapi.CloseBody(res)
95734	if err := googleapi.CheckResponse(res); err != nil {
95735		return nil, err
95736	}
95737	ret := &InterconnectAttachmentAggregatedList{
95738		ServerResponse: googleapi.ServerResponse{
95739			Header:         res.Header,
95740			HTTPStatusCode: res.StatusCode,
95741		},
95742	}
95743	target := &ret
95744	if err := gensupport.DecodeResponse(target, res); err != nil {
95745		return nil, err
95746	}
95747	return ret, nil
95748	// {
95749	//   "description": "Retrieves an aggregated list of interconnect attachments.",
95750	//   "flatPath": "projects/{project}/aggregated/interconnectAttachments",
95751	//   "httpMethod": "GET",
95752	//   "id": "compute.interconnectAttachments.aggregatedList",
95753	//   "parameterOrder": [
95754	//     "project"
95755	//   ],
95756	//   "parameters": {
95757	//     "filter": {
95758	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
95759	//       "location": "query",
95760	//       "type": "string"
95761	//     },
95762	//     "includeAllScopes": {
95763	//       "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.",
95764	//       "location": "query",
95765	//       "type": "boolean"
95766	//     },
95767	//     "maxResults": {
95768	//       "default": "500",
95769	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
95770	//       "format": "uint32",
95771	//       "location": "query",
95772	//       "minimum": "0",
95773	//       "type": "integer"
95774	//     },
95775	//     "orderBy": {
95776	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
95777	//       "location": "query",
95778	//       "type": "string"
95779	//     },
95780	//     "pageToken": {
95781	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
95782	//       "location": "query",
95783	//       "type": "string"
95784	//     },
95785	//     "project": {
95786	//       "description": "Project ID for this request.",
95787	//       "location": "path",
95788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95789	//       "required": true,
95790	//       "type": "string"
95791	//     },
95792	//     "returnPartialSuccess": {
95793	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
95794	//       "location": "query",
95795	//       "type": "boolean"
95796	//     }
95797	//   },
95798	//   "path": "projects/{project}/aggregated/interconnectAttachments",
95799	//   "response": {
95800	//     "$ref": "InterconnectAttachmentAggregatedList"
95801	//   },
95802	//   "scopes": [
95803	//     "https://www.googleapis.com/auth/cloud-platform",
95804	//     "https://www.googleapis.com/auth/compute",
95805	//     "https://www.googleapis.com/auth/compute.readonly"
95806	//   ]
95807	// }
95808
95809}
95810
95811// Pages invokes f for each page of results.
95812// A non-nil error returned from f will halt the iteration.
95813// The provided context supersedes any context provided to the Context method.
95814func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
95815	c.ctx_ = ctx
95816	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95817	for {
95818		x, err := c.Do()
95819		if err != nil {
95820			return err
95821		}
95822		if err := f(x); err != nil {
95823			return err
95824		}
95825		if x.NextPageToken == "" {
95826			return nil
95827		}
95828		c.PageToken(x.NextPageToken)
95829	}
95830}
95831
95832// method id "compute.interconnectAttachments.delete":
95833
95834type InterconnectAttachmentsDeleteCall struct {
95835	s                      *Service
95836	project                string
95837	region                 string
95838	interconnectAttachment string
95839	urlParams_             gensupport.URLParams
95840	ctx_                   context.Context
95841	header_                http.Header
95842}
95843
95844// Delete: Deletes the specified interconnect attachment.
95845//
95846// - interconnectAttachment: Name of the interconnect attachment to
95847//   delete.
95848// - project: Project ID for this request.
95849// - region: Name of the region for this request.
95850func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
95851	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95852	c.project = project
95853	c.region = region
95854	c.interconnectAttachment = interconnectAttachment
95855	return c
95856}
95857
95858// RequestId sets the optional parameter "requestId": An optional
95859// request ID to identify requests. Specify a unique request ID so that
95860// if you must retry your request, the server will know to ignore the
95861// request if it has already been completed. For example, consider a
95862// situation where you make an initial request and the request times
95863// out. If you make the request again with the same request ID, the
95864// server can check if original operation with the same request ID was
95865// received, and if so, will ignore the second request. This prevents
95866// clients from accidentally creating duplicate commitments. The request
95867// ID must be a valid UUID with the exception that zero UUID is not
95868// supported ( 00000000-0000-0000-0000-000000000000).
95869func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
95870	c.urlParams_.Set("requestId", requestId)
95871	return c
95872}
95873
95874// Fields allows partial responses to be retrieved. See
95875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95876// for more information.
95877func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
95878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95879	return c
95880}
95881
95882// Context sets the context to be used in this call's Do method. Any
95883// pending HTTP request will be aborted if the provided context is
95884// canceled.
95885func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
95886	c.ctx_ = ctx
95887	return c
95888}
95889
95890// Header returns an http.Header that can be modified by the caller to
95891// add HTTP headers to the request.
95892func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
95893	if c.header_ == nil {
95894		c.header_ = make(http.Header)
95895	}
95896	return c.header_
95897}
95898
95899func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
95900	reqHeaders := make(http.Header)
95901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
95902	for k, v := range c.header_ {
95903		reqHeaders[k] = v
95904	}
95905	reqHeaders.Set("User-Agent", c.s.userAgent())
95906	var body io.Reader = nil
95907	c.urlParams_.Set("alt", alt)
95908	c.urlParams_.Set("prettyPrint", "false")
95909	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
95910	urls += "?" + c.urlParams_.Encode()
95911	req, err := http.NewRequest("DELETE", urls, body)
95912	if err != nil {
95913		return nil, err
95914	}
95915	req.Header = reqHeaders
95916	googleapi.Expand(req.URL, map[string]string{
95917		"project":                c.project,
95918		"region":                 c.region,
95919		"interconnectAttachment": c.interconnectAttachment,
95920	})
95921	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95922}
95923
95924// Do executes the "compute.interconnectAttachments.delete" call.
95925// Exactly one of *Operation or error will be non-nil. Any non-2xx
95926// status code is an error. Response headers are in either
95927// *Operation.ServerResponse.Header or (if a response was returned at
95928// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95929// to check whether the returned error was because
95930// http.StatusNotModified was returned.
95931func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95932	gensupport.SetOptions(c.urlParams_, opts...)
95933	res, err := c.doRequest("json")
95934	if res != nil && res.StatusCode == http.StatusNotModified {
95935		if res.Body != nil {
95936			res.Body.Close()
95937		}
95938		return nil, &googleapi.Error{
95939			Code:   res.StatusCode,
95940			Header: res.Header,
95941		}
95942	}
95943	if err != nil {
95944		return nil, err
95945	}
95946	defer googleapi.CloseBody(res)
95947	if err := googleapi.CheckResponse(res); err != nil {
95948		return nil, err
95949	}
95950	ret := &Operation{
95951		ServerResponse: googleapi.ServerResponse{
95952			Header:         res.Header,
95953			HTTPStatusCode: res.StatusCode,
95954		},
95955	}
95956	target := &ret
95957	if err := gensupport.DecodeResponse(target, res); err != nil {
95958		return nil, err
95959	}
95960	return ret, nil
95961	// {
95962	//   "description": "Deletes the specified interconnect attachment.",
95963	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
95964	//   "httpMethod": "DELETE",
95965	//   "id": "compute.interconnectAttachments.delete",
95966	//   "parameterOrder": [
95967	//     "project",
95968	//     "region",
95969	//     "interconnectAttachment"
95970	//   ],
95971	//   "parameters": {
95972	//     "interconnectAttachment": {
95973	//       "description": "Name of the interconnect attachment to delete.",
95974	//       "location": "path",
95975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95976	//       "required": true,
95977	//       "type": "string"
95978	//     },
95979	//     "project": {
95980	//       "description": "Project ID for this request.",
95981	//       "location": "path",
95982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95983	//       "required": true,
95984	//       "type": "string"
95985	//     },
95986	//     "region": {
95987	//       "description": "Name of the region for this request.",
95988	//       "location": "path",
95989	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95990	//       "required": true,
95991	//       "type": "string"
95992	//     },
95993	//     "requestId": {
95994	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95995	//       "location": "query",
95996	//       "type": "string"
95997	//     }
95998	//   },
95999	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96000	//   "response": {
96001	//     "$ref": "Operation"
96002	//   },
96003	//   "scopes": [
96004	//     "https://www.googleapis.com/auth/cloud-platform",
96005	//     "https://www.googleapis.com/auth/compute"
96006	//   ]
96007	// }
96008
96009}
96010
96011// method id "compute.interconnectAttachments.get":
96012
96013type InterconnectAttachmentsGetCall struct {
96014	s                      *Service
96015	project                string
96016	region                 string
96017	interconnectAttachment string
96018	urlParams_             gensupport.URLParams
96019	ifNoneMatch_           string
96020	ctx_                   context.Context
96021	header_                http.Header
96022}
96023
96024// Get: Returns the specified interconnect attachment.
96025//
96026// - interconnectAttachment: Name of the interconnect attachment to
96027//   return.
96028// - project: Project ID for this request.
96029// - region: Name of the region for this request.
96030func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
96031	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96032	c.project = project
96033	c.region = region
96034	c.interconnectAttachment = interconnectAttachment
96035	return c
96036}
96037
96038// Fields allows partial responses to be retrieved. See
96039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96040// for more information.
96041func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
96042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96043	return c
96044}
96045
96046// IfNoneMatch sets the optional parameter which makes the operation
96047// fail if the object's ETag matches the given value. This is useful for
96048// getting updates only after the object has changed since the last
96049// request. Use googleapi.IsNotModified to check whether the response
96050// error from Do is the result of In-None-Match.
96051func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
96052	c.ifNoneMatch_ = entityTag
96053	return c
96054}
96055
96056// Context sets the context to be used in this call's Do method. Any
96057// pending HTTP request will be aborted if the provided context is
96058// canceled.
96059func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
96060	c.ctx_ = ctx
96061	return c
96062}
96063
96064// Header returns an http.Header that can be modified by the caller to
96065// add HTTP headers to the request.
96066func (c *InterconnectAttachmentsGetCall) Header() http.Header {
96067	if c.header_ == nil {
96068		c.header_ = make(http.Header)
96069	}
96070	return c.header_
96071}
96072
96073func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
96074	reqHeaders := make(http.Header)
96075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
96076	for k, v := range c.header_ {
96077		reqHeaders[k] = v
96078	}
96079	reqHeaders.Set("User-Agent", c.s.userAgent())
96080	if c.ifNoneMatch_ != "" {
96081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96082	}
96083	var body io.Reader = nil
96084	c.urlParams_.Set("alt", alt)
96085	c.urlParams_.Set("prettyPrint", "false")
96086	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
96087	urls += "?" + c.urlParams_.Encode()
96088	req, err := http.NewRequest("GET", urls, body)
96089	if err != nil {
96090		return nil, err
96091	}
96092	req.Header = reqHeaders
96093	googleapi.Expand(req.URL, map[string]string{
96094		"project":                c.project,
96095		"region":                 c.region,
96096		"interconnectAttachment": c.interconnectAttachment,
96097	})
96098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96099}
96100
96101// Do executes the "compute.interconnectAttachments.get" call.
96102// Exactly one of *InterconnectAttachment or error will be non-nil. Any
96103// non-2xx status code is an error. Response headers are in either
96104// *InterconnectAttachment.ServerResponse.Header or (if a response was
96105// returned at all) in error.(*googleapi.Error).Header. Use
96106// googleapi.IsNotModified to check whether the returned error was
96107// because http.StatusNotModified was returned.
96108func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
96109	gensupport.SetOptions(c.urlParams_, opts...)
96110	res, err := c.doRequest("json")
96111	if res != nil && res.StatusCode == http.StatusNotModified {
96112		if res.Body != nil {
96113			res.Body.Close()
96114		}
96115		return nil, &googleapi.Error{
96116			Code:   res.StatusCode,
96117			Header: res.Header,
96118		}
96119	}
96120	if err != nil {
96121		return nil, err
96122	}
96123	defer googleapi.CloseBody(res)
96124	if err := googleapi.CheckResponse(res); err != nil {
96125		return nil, err
96126	}
96127	ret := &InterconnectAttachment{
96128		ServerResponse: googleapi.ServerResponse{
96129			Header:         res.Header,
96130			HTTPStatusCode: res.StatusCode,
96131		},
96132	}
96133	target := &ret
96134	if err := gensupport.DecodeResponse(target, res); err != nil {
96135		return nil, err
96136	}
96137	return ret, nil
96138	// {
96139	//   "description": "Returns the specified interconnect attachment.",
96140	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96141	//   "httpMethod": "GET",
96142	//   "id": "compute.interconnectAttachments.get",
96143	//   "parameterOrder": [
96144	//     "project",
96145	//     "region",
96146	//     "interconnectAttachment"
96147	//   ],
96148	//   "parameters": {
96149	//     "interconnectAttachment": {
96150	//       "description": "Name of the interconnect attachment to return.",
96151	//       "location": "path",
96152	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96153	//       "required": true,
96154	//       "type": "string"
96155	//     },
96156	//     "project": {
96157	//       "description": "Project ID for this request.",
96158	//       "location": "path",
96159	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96160	//       "required": true,
96161	//       "type": "string"
96162	//     },
96163	//     "region": {
96164	//       "description": "Name of the region for this request.",
96165	//       "location": "path",
96166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96167	//       "required": true,
96168	//       "type": "string"
96169	//     }
96170	//   },
96171	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96172	//   "response": {
96173	//     "$ref": "InterconnectAttachment"
96174	//   },
96175	//   "scopes": [
96176	//     "https://www.googleapis.com/auth/cloud-platform",
96177	//     "https://www.googleapis.com/auth/compute",
96178	//     "https://www.googleapis.com/auth/compute.readonly"
96179	//   ]
96180	// }
96181
96182}
96183
96184// method id "compute.interconnectAttachments.insert":
96185
96186type InterconnectAttachmentsInsertCall struct {
96187	s                      *Service
96188	project                string
96189	region                 string
96190	interconnectattachment *InterconnectAttachment
96191	urlParams_             gensupport.URLParams
96192	ctx_                   context.Context
96193	header_                http.Header
96194}
96195
96196// Insert: Creates an InterconnectAttachment in the specified project
96197// using the data included in the request.
96198//
96199// - project: Project ID for this request.
96200// - region: Name of the region for this request.
96201func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
96202	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96203	c.project = project
96204	c.region = region
96205	c.interconnectattachment = interconnectattachment
96206	return c
96207}
96208
96209// RequestId sets the optional parameter "requestId": An optional
96210// request ID to identify requests. Specify a unique request ID so that
96211// if you must retry your request, the server will know to ignore the
96212// request if it has already been completed. For example, consider a
96213// situation where you make an initial request and the request times
96214// out. If you make the request again with the same request ID, the
96215// server can check if original operation with the same request ID was
96216// received, and if so, will ignore the second request. This prevents
96217// clients from accidentally creating duplicate commitments. The request
96218// ID must be a valid UUID with the exception that zero UUID is not
96219// supported ( 00000000-0000-0000-0000-000000000000).
96220func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
96221	c.urlParams_.Set("requestId", requestId)
96222	return c
96223}
96224
96225// ValidateOnly sets the optional parameter "validateOnly": If true, the
96226// request will not be committed.
96227func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
96228	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
96229	return c
96230}
96231
96232// Fields allows partial responses to be retrieved. See
96233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96234// for more information.
96235func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
96236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96237	return c
96238}
96239
96240// Context sets the context to be used in this call's Do method. Any
96241// pending HTTP request will be aborted if the provided context is
96242// canceled.
96243func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
96244	c.ctx_ = ctx
96245	return c
96246}
96247
96248// Header returns an http.Header that can be modified by the caller to
96249// add HTTP headers to the request.
96250func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
96251	if c.header_ == nil {
96252		c.header_ = make(http.Header)
96253	}
96254	return c.header_
96255}
96256
96257func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
96258	reqHeaders := make(http.Header)
96259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
96260	for k, v := range c.header_ {
96261		reqHeaders[k] = v
96262	}
96263	reqHeaders.Set("User-Agent", c.s.userAgent())
96264	var body io.Reader = nil
96265	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
96266	if err != nil {
96267		return nil, err
96268	}
96269	reqHeaders.Set("Content-Type", "application/json")
96270	c.urlParams_.Set("alt", alt)
96271	c.urlParams_.Set("prettyPrint", "false")
96272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
96273	urls += "?" + c.urlParams_.Encode()
96274	req, err := http.NewRequest("POST", urls, body)
96275	if err != nil {
96276		return nil, err
96277	}
96278	req.Header = reqHeaders
96279	googleapi.Expand(req.URL, map[string]string{
96280		"project": c.project,
96281		"region":  c.region,
96282	})
96283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96284}
96285
96286// Do executes the "compute.interconnectAttachments.insert" call.
96287// Exactly one of *Operation or error will be non-nil. Any non-2xx
96288// status code is an error. Response headers are in either
96289// *Operation.ServerResponse.Header or (if a response was returned at
96290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96291// to check whether the returned error was because
96292// http.StatusNotModified was returned.
96293func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96294	gensupport.SetOptions(c.urlParams_, opts...)
96295	res, err := c.doRequest("json")
96296	if res != nil && res.StatusCode == http.StatusNotModified {
96297		if res.Body != nil {
96298			res.Body.Close()
96299		}
96300		return nil, &googleapi.Error{
96301			Code:   res.StatusCode,
96302			Header: res.Header,
96303		}
96304	}
96305	if err != nil {
96306		return nil, err
96307	}
96308	defer googleapi.CloseBody(res)
96309	if err := googleapi.CheckResponse(res); err != nil {
96310		return nil, err
96311	}
96312	ret := &Operation{
96313		ServerResponse: googleapi.ServerResponse{
96314			Header:         res.Header,
96315			HTTPStatusCode: res.StatusCode,
96316		},
96317	}
96318	target := &ret
96319	if err := gensupport.DecodeResponse(target, res); err != nil {
96320		return nil, err
96321	}
96322	return ret, nil
96323	// {
96324	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
96325	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments",
96326	//   "httpMethod": "POST",
96327	//   "id": "compute.interconnectAttachments.insert",
96328	//   "parameterOrder": [
96329	//     "project",
96330	//     "region"
96331	//   ],
96332	//   "parameters": {
96333	//     "project": {
96334	//       "description": "Project ID for this request.",
96335	//       "location": "path",
96336	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96337	//       "required": true,
96338	//       "type": "string"
96339	//     },
96340	//     "region": {
96341	//       "description": "Name of the region for this request.",
96342	//       "location": "path",
96343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96344	//       "required": true,
96345	//       "type": "string"
96346	//     },
96347	//     "requestId": {
96348	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
96349	//       "location": "query",
96350	//       "type": "string"
96351	//     },
96352	//     "validateOnly": {
96353	//       "description": "If true, the request will not be committed.",
96354	//       "location": "query",
96355	//       "type": "boolean"
96356	//     }
96357	//   },
96358	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
96359	//   "request": {
96360	//     "$ref": "InterconnectAttachment"
96361	//   },
96362	//   "response": {
96363	//     "$ref": "Operation"
96364	//   },
96365	//   "scopes": [
96366	//     "https://www.googleapis.com/auth/cloud-platform",
96367	//     "https://www.googleapis.com/auth/compute"
96368	//   ]
96369	// }
96370
96371}
96372
96373// method id "compute.interconnectAttachments.list":
96374
96375type InterconnectAttachmentsListCall struct {
96376	s            *Service
96377	project      string
96378	region       string
96379	urlParams_   gensupport.URLParams
96380	ifNoneMatch_ string
96381	ctx_         context.Context
96382	header_      http.Header
96383}
96384
96385// List: Retrieves the list of interconnect attachments contained within
96386// the specified region.
96387//
96388// - project: Project ID for this request.
96389// - region: Name of the region for this request.
96390func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
96391	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96392	c.project = project
96393	c.region = region
96394	return c
96395}
96396
96397// Filter sets the optional parameter "filter": A filter expression that
96398// filters resources listed in the response. The expression must specify
96399// the field name, a comparison operator, and the value that you want to
96400// use for filtering. The value must be a string, a number, or a
96401// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96402// `<`. For example, if you are filtering Compute Engine instances, you
96403// can exclude instances named `example-instance` by specifying `name !=
96404// example-instance`. You can also filter nested fields. For example,
96405// you could specify `scheduling.automaticRestart = false` to include
96406// instances only if they are not scheduled for automatic restarts. You
96407// can use filtering on nested fields to filter based on resource
96408// labels. To filter on multiple expressions, provide each separate
96409// expression within parentheses. For example: ```
96410// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
96411// ``` By default, each expression is an `AND` expression. However, you
96412// can include `AND` and `OR` expressions explicitly. For example: ```
96413// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
96414// AND (scheduling.automaticRestart = true) ```
96415func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
96416	c.urlParams_.Set("filter", filter)
96417	return c
96418}
96419
96420// MaxResults sets the optional parameter "maxResults": The maximum
96421// number of results per page that should be returned. If the number of
96422// available results is larger than `maxResults`, Compute Engine returns
96423// a `nextPageToken` that can be used to get the next page of results in
96424// subsequent list requests. Acceptable values are `0` to `500`,
96425// inclusive. (Default: `500`)
96426func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
96427	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96428	return c
96429}
96430
96431// OrderBy sets the optional parameter "orderBy": Sorts list results by
96432// a certain order. By default, results are returned in alphanumerical
96433// order based on the resource name. You can also sort results in
96434// descending order based on the creation timestamp using
96435// `orderBy="creationTimestamp desc". This sorts results based on the
96436// `creationTimestamp` field in reverse chronological order (newest
96437// result first). Use this to sort resources like operations so that the
96438// newest operation is returned first. Currently, only sorting by `name`
96439// or `creationTimestamp desc` is supported.
96440func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
96441	c.urlParams_.Set("orderBy", orderBy)
96442	return c
96443}
96444
96445// PageToken sets the optional parameter "pageToken": Specifies a page
96446// token to use. Set `pageToken` to the `nextPageToken` returned by a
96447// previous list request to get the next page of results.
96448func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
96449	c.urlParams_.Set("pageToken", pageToken)
96450	return c
96451}
96452
96453// ReturnPartialSuccess sets the optional parameter
96454// "returnPartialSuccess": Opt-in for partial success behavior which
96455// provides partial results in case of failure. The default value is
96456// false.
96457func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
96458	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96459	return c
96460}
96461
96462// Fields allows partial responses to be retrieved. See
96463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96464// for more information.
96465func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
96466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96467	return c
96468}
96469
96470// IfNoneMatch sets the optional parameter which makes the operation
96471// fail if the object's ETag matches the given value. This is useful for
96472// getting updates only after the object has changed since the last
96473// request. Use googleapi.IsNotModified to check whether the response
96474// error from Do is the result of In-None-Match.
96475func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
96476	c.ifNoneMatch_ = entityTag
96477	return c
96478}
96479
96480// Context sets the context to be used in this call's Do method. Any
96481// pending HTTP request will be aborted if the provided context is
96482// canceled.
96483func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
96484	c.ctx_ = ctx
96485	return c
96486}
96487
96488// Header returns an http.Header that can be modified by the caller to
96489// add HTTP headers to the request.
96490func (c *InterconnectAttachmentsListCall) Header() http.Header {
96491	if c.header_ == nil {
96492		c.header_ = make(http.Header)
96493	}
96494	return c.header_
96495}
96496
96497func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
96498	reqHeaders := make(http.Header)
96499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
96500	for k, v := range c.header_ {
96501		reqHeaders[k] = v
96502	}
96503	reqHeaders.Set("User-Agent", c.s.userAgent())
96504	if c.ifNoneMatch_ != "" {
96505		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96506	}
96507	var body io.Reader = nil
96508	c.urlParams_.Set("alt", alt)
96509	c.urlParams_.Set("prettyPrint", "false")
96510	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
96511	urls += "?" + c.urlParams_.Encode()
96512	req, err := http.NewRequest("GET", urls, body)
96513	if err != nil {
96514		return nil, err
96515	}
96516	req.Header = reqHeaders
96517	googleapi.Expand(req.URL, map[string]string{
96518		"project": c.project,
96519		"region":  c.region,
96520	})
96521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96522}
96523
96524// Do executes the "compute.interconnectAttachments.list" call.
96525// Exactly one of *InterconnectAttachmentList or error will be non-nil.
96526// Any non-2xx status code is an error. Response headers are in either
96527// *InterconnectAttachmentList.ServerResponse.Header or (if a response
96528// was returned at all) in error.(*googleapi.Error).Header. Use
96529// googleapi.IsNotModified to check whether the returned error was
96530// because http.StatusNotModified was returned.
96531func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
96532	gensupport.SetOptions(c.urlParams_, opts...)
96533	res, err := c.doRequest("json")
96534	if res != nil && res.StatusCode == http.StatusNotModified {
96535		if res.Body != nil {
96536			res.Body.Close()
96537		}
96538		return nil, &googleapi.Error{
96539			Code:   res.StatusCode,
96540			Header: res.Header,
96541		}
96542	}
96543	if err != nil {
96544		return nil, err
96545	}
96546	defer googleapi.CloseBody(res)
96547	if err := googleapi.CheckResponse(res); err != nil {
96548		return nil, err
96549	}
96550	ret := &InterconnectAttachmentList{
96551		ServerResponse: googleapi.ServerResponse{
96552			Header:         res.Header,
96553			HTTPStatusCode: res.StatusCode,
96554		},
96555	}
96556	target := &ret
96557	if err := gensupport.DecodeResponse(target, res); err != nil {
96558		return nil, err
96559	}
96560	return ret, nil
96561	// {
96562	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
96563	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments",
96564	//   "httpMethod": "GET",
96565	//   "id": "compute.interconnectAttachments.list",
96566	//   "parameterOrder": [
96567	//     "project",
96568	//     "region"
96569	//   ],
96570	//   "parameters": {
96571	//     "filter": {
96572	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96573	//       "location": "query",
96574	//       "type": "string"
96575	//     },
96576	//     "maxResults": {
96577	//       "default": "500",
96578	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96579	//       "format": "uint32",
96580	//       "location": "query",
96581	//       "minimum": "0",
96582	//       "type": "integer"
96583	//     },
96584	//     "orderBy": {
96585	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
96586	//       "location": "query",
96587	//       "type": "string"
96588	//     },
96589	//     "pageToken": {
96590	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96591	//       "location": "query",
96592	//       "type": "string"
96593	//     },
96594	//     "project": {
96595	//       "description": "Project ID for this request.",
96596	//       "location": "path",
96597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96598	//       "required": true,
96599	//       "type": "string"
96600	//     },
96601	//     "region": {
96602	//       "description": "Name of the region for this request.",
96603	//       "location": "path",
96604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96605	//       "required": true,
96606	//       "type": "string"
96607	//     },
96608	//     "returnPartialSuccess": {
96609	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
96610	//       "location": "query",
96611	//       "type": "boolean"
96612	//     }
96613	//   },
96614	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
96615	//   "response": {
96616	//     "$ref": "InterconnectAttachmentList"
96617	//   },
96618	//   "scopes": [
96619	//     "https://www.googleapis.com/auth/cloud-platform",
96620	//     "https://www.googleapis.com/auth/compute",
96621	//     "https://www.googleapis.com/auth/compute.readonly"
96622	//   ]
96623	// }
96624
96625}
96626
96627// Pages invokes f for each page of results.
96628// A non-nil error returned from f will halt the iteration.
96629// The provided context supersedes any context provided to the Context method.
96630func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
96631	c.ctx_ = ctx
96632	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96633	for {
96634		x, err := c.Do()
96635		if err != nil {
96636			return err
96637		}
96638		if err := f(x); err != nil {
96639			return err
96640		}
96641		if x.NextPageToken == "" {
96642			return nil
96643		}
96644		c.PageToken(x.NextPageToken)
96645	}
96646}
96647
96648// method id "compute.interconnectAttachments.patch":
96649
96650type InterconnectAttachmentsPatchCall struct {
96651	s                      *Service
96652	project                string
96653	region                 string
96654	interconnectAttachment string
96655	interconnectattachment *InterconnectAttachment
96656	urlParams_             gensupport.URLParams
96657	ctx_                   context.Context
96658	header_                http.Header
96659}
96660
96661// Patch: Updates the specified interconnect attachment with the data
96662// included in the request. This method supports PATCH semantics and
96663// uses the JSON merge patch format and processing rules.
96664//
96665// - interconnectAttachment: Name of the interconnect attachment to
96666//   patch.
96667// - project: Project ID for this request.
96668// - region: Name of the region scoping this request.
96669func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
96670	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96671	c.project = project
96672	c.region = region
96673	c.interconnectAttachment = interconnectAttachment
96674	c.interconnectattachment = interconnectattachment
96675	return c
96676}
96677
96678// RequestId sets the optional parameter "requestId": An optional
96679// request ID to identify requests. Specify a unique request ID so that
96680// if you must retry your request, the server will know to ignore the
96681// request if it has already been completed. For example, consider a
96682// situation where you make an initial request and the request times
96683// out. If you make the request again with the same request ID, the
96684// server can check if original operation with the same request ID was
96685// received, and if so, will ignore the second request. This prevents
96686// clients from accidentally creating duplicate commitments. The request
96687// ID must be a valid UUID with the exception that zero UUID is not
96688// supported ( 00000000-0000-0000-0000-000000000000).
96689func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
96690	c.urlParams_.Set("requestId", requestId)
96691	return c
96692}
96693
96694// Fields allows partial responses to be retrieved. See
96695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96696// for more information.
96697func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
96698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96699	return c
96700}
96701
96702// Context sets the context to be used in this call's Do method. Any
96703// pending HTTP request will be aborted if the provided context is
96704// canceled.
96705func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
96706	c.ctx_ = ctx
96707	return c
96708}
96709
96710// Header returns an http.Header that can be modified by the caller to
96711// add HTTP headers to the request.
96712func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
96713	if c.header_ == nil {
96714		c.header_ = make(http.Header)
96715	}
96716	return c.header_
96717}
96718
96719func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
96720	reqHeaders := make(http.Header)
96721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
96722	for k, v := range c.header_ {
96723		reqHeaders[k] = v
96724	}
96725	reqHeaders.Set("User-Agent", c.s.userAgent())
96726	var body io.Reader = nil
96727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
96728	if err != nil {
96729		return nil, err
96730	}
96731	reqHeaders.Set("Content-Type", "application/json")
96732	c.urlParams_.Set("alt", alt)
96733	c.urlParams_.Set("prettyPrint", "false")
96734	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
96735	urls += "?" + c.urlParams_.Encode()
96736	req, err := http.NewRequest("PATCH", urls, body)
96737	if err != nil {
96738		return nil, err
96739	}
96740	req.Header = reqHeaders
96741	googleapi.Expand(req.URL, map[string]string{
96742		"project":                c.project,
96743		"region":                 c.region,
96744		"interconnectAttachment": c.interconnectAttachment,
96745	})
96746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96747}
96748
96749// Do executes the "compute.interconnectAttachments.patch" call.
96750// Exactly one of *Operation or error will be non-nil. Any non-2xx
96751// status code is an error. Response headers are in either
96752// *Operation.ServerResponse.Header or (if a response was returned at
96753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96754// to check whether the returned error was because
96755// http.StatusNotModified was returned.
96756func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96757	gensupport.SetOptions(c.urlParams_, opts...)
96758	res, err := c.doRequest("json")
96759	if res != nil && res.StatusCode == http.StatusNotModified {
96760		if res.Body != nil {
96761			res.Body.Close()
96762		}
96763		return nil, &googleapi.Error{
96764			Code:   res.StatusCode,
96765			Header: res.Header,
96766		}
96767	}
96768	if err != nil {
96769		return nil, err
96770	}
96771	defer googleapi.CloseBody(res)
96772	if err := googleapi.CheckResponse(res); err != nil {
96773		return nil, err
96774	}
96775	ret := &Operation{
96776		ServerResponse: googleapi.ServerResponse{
96777			Header:         res.Header,
96778			HTTPStatusCode: res.StatusCode,
96779		},
96780	}
96781	target := &ret
96782	if err := gensupport.DecodeResponse(target, res); err != nil {
96783		return nil, err
96784	}
96785	return ret, nil
96786	// {
96787	//   "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.",
96788	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96789	//   "httpMethod": "PATCH",
96790	//   "id": "compute.interconnectAttachments.patch",
96791	//   "parameterOrder": [
96792	//     "project",
96793	//     "region",
96794	//     "interconnectAttachment"
96795	//   ],
96796	//   "parameters": {
96797	//     "interconnectAttachment": {
96798	//       "description": "Name of the interconnect attachment to patch.",
96799	//       "location": "path",
96800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96801	//       "required": true,
96802	//       "type": "string"
96803	//     },
96804	//     "project": {
96805	//       "description": "Project ID for this request.",
96806	//       "location": "path",
96807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96808	//       "required": true,
96809	//       "type": "string"
96810	//     },
96811	//     "region": {
96812	//       "description": "Name of the region scoping this request.",
96813	//       "location": "path",
96814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96815	//       "required": true,
96816	//       "type": "string"
96817	//     },
96818	//     "requestId": {
96819	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
96820	//       "location": "query",
96821	//       "type": "string"
96822	//     }
96823	//   },
96824	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96825	//   "request": {
96826	//     "$ref": "InterconnectAttachment"
96827	//   },
96828	//   "response": {
96829	//     "$ref": "Operation"
96830	//   },
96831	//   "scopes": [
96832	//     "https://www.googleapis.com/auth/cloud-platform",
96833	//     "https://www.googleapis.com/auth/compute"
96834	//   ]
96835	// }
96836
96837}
96838
96839// method id "compute.interconnectLocations.get":
96840
96841type InterconnectLocationsGetCall struct {
96842	s                    *Service
96843	project              string
96844	interconnectLocation string
96845	urlParams_           gensupport.URLParams
96846	ifNoneMatch_         string
96847	ctx_                 context.Context
96848	header_              http.Header
96849}
96850
96851// Get: Returns the details for the specified interconnect location.
96852// Gets a list of available interconnect locations by making a list()
96853// request.
96854//
96855// - interconnectLocation: Name of the interconnect location to return.
96856// - project: Project ID for this request.
96857func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
96858	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96859	c.project = project
96860	c.interconnectLocation = interconnectLocation
96861	return c
96862}
96863
96864// Fields allows partial responses to be retrieved. See
96865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96866// for more information.
96867func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
96868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96869	return c
96870}
96871
96872// IfNoneMatch sets the optional parameter which makes the operation
96873// fail if the object's ETag matches the given value. This is useful for
96874// getting updates only after the object has changed since the last
96875// request. Use googleapi.IsNotModified to check whether the response
96876// error from Do is the result of In-None-Match.
96877func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
96878	c.ifNoneMatch_ = entityTag
96879	return c
96880}
96881
96882// Context sets the context to be used in this call's Do method. Any
96883// pending HTTP request will be aborted if the provided context is
96884// canceled.
96885func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
96886	c.ctx_ = ctx
96887	return c
96888}
96889
96890// Header returns an http.Header that can be modified by the caller to
96891// add HTTP headers to the request.
96892func (c *InterconnectLocationsGetCall) Header() http.Header {
96893	if c.header_ == nil {
96894		c.header_ = make(http.Header)
96895	}
96896	return c.header_
96897}
96898
96899func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
96900	reqHeaders := make(http.Header)
96901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
96902	for k, v := range c.header_ {
96903		reqHeaders[k] = v
96904	}
96905	reqHeaders.Set("User-Agent", c.s.userAgent())
96906	if c.ifNoneMatch_ != "" {
96907		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96908	}
96909	var body io.Reader = nil
96910	c.urlParams_.Set("alt", alt)
96911	c.urlParams_.Set("prettyPrint", "false")
96912	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}")
96913	urls += "?" + c.urlParams_.Encode()
96914	req, err := http.NewRequest("GET", urls, body)
96915	if err != nil {
96916		return nil, err
96917	}
96918	req.Header = reqHeaders
96919	googleapi.Expand(req.URL, map[string]string{
96920		"project":              c.project,
96921		"interconnectLocation": c.interconnectLocation,
96922	})
96923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96924}
96925
96926// Do executes the "compute.interconnectLocations.get" call.
96927// Exactly one of *InterconnectLocation or error will be non-nil. Any
96928// non-2xx status code is an error. Response headers are in either
96929// *InterconnectLocation.ServerResponse.Header or (if a response was
96930// returned at all) in error.(*googleapi.Error).Header. Use
96931// googleapi.IsNotModified to check whether the returned error was
96932// because http.StatusNotModified was returned.
96933func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
96934	gensupport.SetOptions(c.urlParams_, opts...)
96935	res, err := c.doRequest("json")
96936	if res != nil && res.StatusCode == http.StatusNotModified {
96937		if res.Body != nil {
96938			res.Body.Close()
96939		}
96940		return nil, &googleapi.Error{
96941			Code:   res.StatusCode,
96942			Header: res.Header,
96943		}
96944	}
96945	if err != nil {
96946		return nil, err
96947	}
96948	defer googleapi.CloseBody(res)
96949	if err := googleapi.CheckResponse(res); err != nil {
96950		return nil, err
96951	}
96952	ret := &InterconnectLocation{
96953		ServerResponse: googleapi.ServerResponse{
96954			Header:         res.Header,
96955			HTTPStatusCode: res.StatusCode,
96956		},
96957	}
96958	target := &ret
96959	if err := gensupport.DecodeResponse(target, res); err != nil {
96960		return nil, err
96961	}
96962	return ret, nil
96963	// {
96964	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
96965	//   "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
96966	//   "httpMethod": "GET",
96967	//   "id": "compute.interconnectLocations.get",
96968	//   "parameterOrder": [
96969	//     "project",
96970	//     "interconnectLocation"
96971	//   ],
96972	//   "parameters": {
96973	//     "interconnectLocation": {
96974	//       "description": "Name of the interconnect location to return.",
96975	//       "location": "path",
96976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96977	//       "required": true,
96978	//       "type": "string"
96979	//     },
96980	//     "project": {
96981	//       "description": "Project ID for this request.",
96982	//       "location": "path",
96983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96984	//       "required": true,
96985	//       "type": "string"
96986	//     }
96987	//   },
96988	//   "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
96989	//   "response": {
96990	//     "$ref": "InterconnectLocation"
96991	//   },
96992	//   "scopes": [
96993	//     "https://www.googleapis.com/auth/cloud-platform",
96994	//     "https://www.googleapis.com/auth/compute",
96995	//     "https://www.googleapis.com/auth/compute.readonly"
96996	//   ]
96997	// }
96998
96999}
97000
97001// method id "compute.interconnectLocations.list":
97002
97003type InterconnectLocationsListCall struct {
97004	s            *Service
97005	project      string
97006	urlParams_   gensupport.URLParams
97007	ifNoneMatch_ string
97008	ctx_         context.Context
97009	header_      http.Header
97010}
97011
97012// List: Retrieves the list of interconnect locations available to the
97013// specified project.
97014//
97015// - project: Project ID for this request.
97016func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
97017	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97018	c.project = project
97019	return c
97020}
97021
97022// Filter sets the optional parameter "filter": A filter expression that
97023// filters resources listed in the response. The expression must specify
97024// the field name, a comparison operator, and the value that you want to
97025// use for filtering. The value must be a string, a number, or a
97026// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97027// `<`. For example, if you are filtering Compute Engine instances, you
97028// can exclude instances named `example-instance` by specifying `name !=
97029// example-instance`. You can also filter nested fields. For example,
97030// you could specify `scheduling.automaticRestart = false` to include
97031// instances only if they are not scheduled for automatic restarts. You
97032// can use filtering on nested fields to filter based on resource
97033// labels. To filter on multiple expressions, provide each separate
97034// expression within parentheses. For example: ```
97035// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
97036// ``` By default, each expression is an `AND` expression. However, you
97037// can include `AND` and `OR` expressions explicitly. For example: ```
97038// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
97039// AND (scheduling.automaticRestart = true) ```
97040func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
97041	c.urlParams_.Set("filter", filter)
97042	return c
97043}
97044
97045// MaxResults sets the optional parameter "maxResults": The maximum
97046// number of results per page that should be returned. If the number of
97047// available results is larger than `maxResults`, Compute Engine returns
97048// a `nextPageToken` that can be used to get the next page of results in
97049// subsequent list requests. Acceptable values are `0` to `500`,
97050// inclusive. (Default: `500`)
97051func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
97052	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97053	return c
97054}
97055
97056// OrderBy sets the optional parameter "orderBy": Sorts list results by
97057// a certain order. By default, results are returned in alphanumerical
97058// order based on the resource name. You can also sort results in
97059// descending order based on the creation timestamp using
97060// `orderBy="creationTimestamp desc". This sorts results based on the
97061// `creationTimestamp` field in reverse chronological order (newest
97062// result first). Use this to sort resources like operations so that the
97063// newest operation is returned first. Currently, only sorting by `name`
97064// or `creationTimestamp desc` is supported.
97065func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
97066	c.urlParams_.Set("orderBy", orderBy)
97067	return c
97068}
97069
97070// PageToken sets the optional parameter "pageToken": Specifies a page
97071// token to use. Set `pageToken` to the `nextPageToken` returned by a
97072// previous list request to get the next page of results.
97073func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
97074	c.urlParams_.Set("pageToken", pageToken)
97075	return c
97076}
97077
97078// ReturnPartialSuccess sets the optional parameter
97079// "returnPartialSuccess": Opt-in for partial success behavior which
97080// provides partial results in case of failure. The default value is
97081// false.
97082func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
97083	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
97084	return c
97085}
97086
97087// Fields allows partial responses to be retrieved. See
97088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97089// for more information.
97090func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
97091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97092	return c
97093}
97094
97095// IfNoneMatch sets the optional parameter which makes the operation
97096// fail if the object's ETag matches the given value. This is useful for
97097// getting updates only after the object has changed since the last
97098// request. Use googleapi.IsNotModified to check whether the response
97099// error from Do is the result of In-None-Match.
97100func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
97101	c.ifNoneMatch_ = entityTag
97102	return c
97103}
97104
97105// Context sets the context to be used in this call's Do method. Any
97106// pending HTTP request will be aborted if the provided context is
97107// canceled.
97108func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
97109	c.ctx_ = ctx
97110	return c
97111}
97112
97113// Header returns an http.Header that can be modified by the caller to
97114// add HTTP headers to the request.
97115func (c *InterconnectLocationsListCall) Header() http.Header {
97116	if c.header_ == nil {
97117		c.header_ = make(http.Header)
97118	}
97119	return c.header_
97120}
97121
97122func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
97123	reqHeaders := make(http.Header)
97124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
97125	for k, v := range c.header_ {
97126		reqHeaders[k] = v
97127	}
97128	reqHeaders.Set("User-Agent", c.s.userAgent())
97129	if c.ifNoneMatch_ != "" {
97130		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97131	}
97132	var body io.Reader = nil
97133	c.urlParams_.Set("alt", alt)
97134	c.urlParams_.Set("prettyPrint", "false")
97135	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations")
97136	urls += "?" + c.urlParams_.Encode()
97137	req, err := http.NewRequest("GET", urls, body)
97138	if err != nil {
97139		return nil, err
97140	}
97141	req.Header = reqHeaders
97142	googleapi.Expand(req.URL, map[string]string{
97143		"project": c.project,
97144	})
97145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97146}
97147
97148// Do executes the "compute.interconnectLocations.list" call.
97149// Exactly one of *InterconnectLocationList or error will be non-nil.
97150// Any non-2xx status code is an error. Response headers are in either
97151// *InterconnectLocationList.ServerResponse.Header or (if a response was
97152// returned at all) in error.(*googleapi.Error).Header. Use
97153// googleapi.IsNotModified to check whether the returned error was
97154// because http.StatusNotModified was returned.
97155func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
97156	gensupport.SetOptions(c.urlParams_, opts...)
97157	res, err := c.doRequest("json")
97158	if res != nil && res.StatusCode == http.StatusNotModified {
97159		if res.Body != nil {
97160			res.Body.Close()
97161		}
97162		return nil, &googleapi.Error{
97163			Code:   res.StatusCode,
97164			Header: res.Header,
97165		}
97166	}
97167	if err != nil {
97168		return nil, err
97169	}
97170	defer googleapi.CloseBody(res)
97171	if err := googleapi.CheckResponse(res); err != nil {
97172		return nil, err
97173	}
97174	ret := &InterconnectLocationList{
97175		ServerResponse: googleapi.ServerResponse{
97176			Header:         res.Header,
97177			HTTPStatusCode: res.StatusCode,
97178		},
97179	}
97180	target := &ret
97181	if err := gensupport.DecodeResponse(target, res); err != nil {
97182		return nil, err
97183	}
97184	return ret, nil
97185	// {
97186	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
97187	//   "flatPath": "projects/{project}/global/interconnectLocations",
97188	//   "httpMethod": "GET",
97189	//   "id": "compute.interconnectLocations.list",
97190	//   "parameterOrder": [
97191	//     "project"
97192	//   ],
97193	//   "parameters": {
97194	//     "filter": {
97195	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97196	//       "location": "query",
97197	//       "type": "string"
97198	//     },
97199	//     "maxResults": {
97200	//       "default": "500",
97201	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97202	//       "format": "uint32",
97203	//       "location": "query",
97204	//       "minimum": "0",
97205	//       "type": "integer"
97206	//     },
97207	//     "orderBy": {
97208	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
97209	//       "location": "query",
97210	//       "type": "string"
97211	//     },
97212	//     "pageToken": {
97213	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97214	//       "location": "query",
97215	//       "type": "string"
97216	//     },
97217	//     "project": {
97218	//       "description": "Project ID for this request.",
97219	//       "location": "path",
97220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97221	//       "required": true,
97222	//       "type": "string"
97223	//     },
97224	//     "returnPartialSuccess": {
97225	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
97226	//       "location": "query",
97227	//       "type": "boolean"
97228	//     }
97229	//   },
97230	//   "path": "projects/{project}/global/interconnectLocations",
97231	//   "response": {
97232	//     "$ref": "InterconnectLocationList"
97233	//   },
97234	//   "scopes": [
97235	//     "https://www.googleapis.com/auth/cloud-platform",
97236	//     "https://www.googleapis.com/auth/compute",
97237	//     "https://www.googleapis.com/auth/compute.readonly"
97238	//   ]
97239	// }
97240
97241}
97242
97243// Pages invokes f for each page of results.
97244// A non-nil error returned from f will halt the iteration.
97245// The provided context supersedes any context provided to the Context method.
97246func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
97247	c.ctx_ = ctx
97248	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97249	for {
97250		x, err := c.Do()
97251		if err != nil {
97252			return err
97253		}
97254		if err := f(x); err != nil {
97255			return err
97256		}
97257		if x.NextPageToken == "" {
97258			return nil
97259		}
97260		c.PageToken(x.NextPageToken)
97261	}
97262}
97263
97264// method id "compute.interconnects.delete":
97265
97266type InterconnectsDeleteCall struct {
97267	s            *Service
97268	project      string
97269	interconnect string
97270	urlParams_   gensupport.URLParams
97271	ctx_         context.Context
97272	header_      http.Header
97273}
97274
97275// Delete: Deletes the specified interconnect.
97276//
97277// - interconnect: Name of the interconnect to delete.
97278// - project: Project ID for this request.
97279func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
97280	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97281	c.project = project
97282	c.interconnect = interconnect
97283	return c
97284}
97285
97286// RequestId sets the optional parameter "requestId": An optional
97287// request ID to identify requests. Specify a unique request ID so that
97288// if you must retry your request, the server will know to ignore the
97289// request if it has already been completed. For example, consider a
97290// situation where you make an initial request and the request times
97291// out. If you make the request again with the same request ID, the
97292// server can check if original operation with the same request ID was
97293// received, and if so, will ignore the second request. This prevents
97294// clients from accidentally creating duplicate commitments. The request
97295// ID must be a valid UUID with the exception that zero UUID is not
97296// supported ( 00000000-0000-0000-0000-000000000000).
97297func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
97298	c.urlParams_.Set("requestId", requestId)
97299	return c
97300}
97301
97302// Fields allows partial responses to be retrieved. See
97303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97304// for more information.
97305func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
97306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97307	return c
97308}
97309
97310// Context sets the context to be used in this call's Do method. Any
97311// pending HTTP request will be aborted if the provided context is
97312// canceled.
97313func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
97314	c.ctx_ = ctx
97315	return c
97316}
97317
97318// Header returns an http.Header that can be modified by the caller to
97319// add HTTP headers to the request.
97320func (c *InterconnectsDeleteCall) Header() http.Header {
97321	if c.header_ == nil {
97322		c.header_ = make(http.Header)
97323	}
97324	return c.header_
97325}
97326
97327func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
97328	reqHeaders := make(http.Header)
97329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
97330	for k, v := range c.header_ {
97331		reqHeaders[k] = v
97332	}
97333	reqHeaders.Set("User-Agent", c.s.userAgent())
97334	var body io.Reader = nil
97335	c.urlParams_.Set("alt", alt)
97336	c.urlParams_.Set("prettyPrint", "false")
97337	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
97338	urls += "?" + c.urlParams_.Encode()
97339	req, err := http.NewRequest("DELETE", urls, body)
97340	if err != nil {
97341		return nil, err
97342	}
97343	req.Header = reqHeaders
97344	googleapi.Expand(req.URL, map[string]string{
97345		"project":      c.project,
97346		"interconnect": c.interconnect,
97347	})
97348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97349}
97350
97351// Do executes the "compute.interconnects.delete" call.
97352// Exactly one of *Operation or error will be non-nil. Any non-2xx
97353// status code is an error. Response headers are in either
97354// *Operation.ServerResponse.Header or (if a response was returned at
97355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97356// to check whether the returned error was because
97357// http.StatusNotModified was returned.
97358func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97359	gensupport.SetOptions(c.urlParams_, opts...)
97360	res, err := c.doRequest("json")
97361	if res != nil && res.StatusCode == http.StatusNotModified {
97362		if res.Body != nil {
97363			res.Body.Close()
97364		}
97365		return nil, &googleapi.Error{
97366			Code:   res.StatusCode,
97367			Header: res.Header,
97368		}
97369	}
97370	if err != nil {
97371		return nil, err
97372	}
97373	defer googleapi.CloseBody(res)
97374	if err := googleapi.CheckResponse(res); err != nil {
97375		return nil, err
97376	}
97377	ret := &Operation{
97378		ServerResponse: googleapi.ServerResponse{
97379			Header:         res.Header,
97380			HTTPStatusCode: res.StatusCode,
97381		},
97382	}
97383	target := &ret
97384	if err := gensupport.DecodeResponse(target, res); err != nil {
97385		return nil, err
97386	}
97387	return ret, nil
97388	// {
97389	//   "description": "Deletes the specified interconnect.",
97390	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
97391	//   "httpMethod": "DELETE",
97392	//   "id": "compute.interconnects.delete",
97393	//   "parameterOrder": [
97394	//     "project",
97395	//     "interconnect"
97396	//   ],
97397	//   "parameters": {
97398	//     "interconnect": {
97399	//       "description": "Name of the interconnect to delete.",
97400	//       "location": "path",
97401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97402	//       "required": true,
97403	//       "type": "string"
97404	//     },
97405	//     "project": {
97406	//       "description": "Project ID for this request.",
97407	//       "location": "path",
97408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97409	//       "required": true,
97410	//       "type": "string"
97411	//     },
97412	//     "requestId": {
97413	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
97414	//       "location": "query",
97415	//       "type": "string"
97416	//     }
97417	//   },
97418	//   "path": "projects/{project}/global/interconnects/{interconnect}",
97419	//   "response": {
97420	//     "$ref": "Operation"
97421	//   },
97422	//   "scopes": [
97423	//     "https://www.googleapis.com/auth/cloud-platform",
97424	//     "https://www.googleapis.com/auth/compute"
97425	//   ]
97426	// }
97427
97428}
97429
97430// method id "compute.interconnects.get":
97431
97432type InterconnectsGetCall struct {
97433	s            *Service
97434	project      string
97435	interconnect string
97436	urlParams_   gensupport.URLParams
97437	ifNoneMatch_ string
97438	ctx_         context.Context
97439	header_      http.Header
97440}
97441
97442// Get: Returns the specified interconnect. Get a list of available
97443// interconnects by making a list() request.
97444//
97445// - interconnect: Name of the interconnect to return.
97446// - project: Project ID for this request.
97447func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
97448	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97449	c.project = project
97450	c.interconnect = interconnect
97451	return c
97452}
97453
97454// Fields allows partial responses to be retrieved. See
97455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97456// for more information.
97457func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
97458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97459	return c
97460}
97461
97462// IfNoneMatch sets the optional parameter which makes the operation
97463// fail if the object's ETag matches the given value. This is useful for
97464// getting updates only after the object has changed since the last
97465// request. Use googleapi.IsNotModified to check whether the response
97466// error from Do is the result of In-None-Match.
97467func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
97468	c.ifNoneMatch_ = entityTag
97469	return c
97470}
97471
97472// Context sets the context to be used in this call's Do method. Any
97473// pending HTTP request will be aborted if the provided context is
97474// canceled.
97475func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
97476	c.ctx_ = ctx
97477	return c
97478}
97479
97480// Header returns an http.Header that can be modified by the caller to
97481// add HTTP headers to the request.
97482func (c *InterconnectsGetCall) Header() http.Header {
97483	if c.header_ == nil {
97484		c.header_ = make(http.Header)
97485	}
97486	return c.header_
97487}
97488
97489func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
97490	reqHeaders := make(http.Header)
97491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
97492	for k, v := range c.header_ {
97493		reqHeaders[k] = v
97494	}
97495	reqHeaders.Set("User-Agent", c.s.userAgent())
97496	if c.ifNoneMatch_ != "" {
97497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97498	}
97499	var body io.Reader = nil
97500	c.urlParams_.Set("alt", alt)
97501	c.urlParams_.Set("prettyPrint", "false")
97502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
97503	urls += "?" + c.urlParams_.Encode()
97504	req, err := http.NewRequest("GET", urls, body)
97505	if err != nil {
97506		return nil, err
97507	}
97508	req.Header = reqHeaders
97509	googleapi.Expand(req.URL, map[string]string{
97510		"project":      c.project,
97511		"interconnect": c.interconnect,
97512	})
97513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97514}
97515
97516// Do executes the "compute.interconnects.get" call.
97517// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
97518// status code is an error. Response headers are in either
97519// *Interconnect.ServerResponse.Header or (if a response was returned at
97520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97521// to check whether the returned error was because
97522// http.StatusNotModified was returned.
97523func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
97524	gensupport.SetOptions(c.urlParams_, opts...)
97525	res, err := c.doRequest("json")
97526	if res != nil && res.StatusCode == http.StatusNotModified {
97527		if res.Body != nil {
97528			res.Body.Close()
97529		}
97530		return nil, &googleapi.Error{
97531			Code:   res.StatusCode,
97532			Header: res.Header,
97533		}
97534	}
97535	if err != nil {
97536		return nil, err
97537	}
97538	defer googleapi.CloseBody(res)
97539	if err := googleapi.CheckResponse(res); err != nil {
97540		return nil, err
97541	}
97542	ret := &Interconnect{
97543		ServerResponse: googleapi.ServerResponse{
97544			Header:         res.Header,
97545			HTTPStatusCode: res.StatusCode,
97546		},
97547	}
97548	target := &ret
97549	if err := gensupport.DecodeResponse(target, res); err != nil {
97550		return nil, err
97551	}
97552	return ret, nil
97553	// {
97554	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
97555	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
97556	//   "httpMethod": "GET",
97557	//   "id": "compute.interconnects.get",
97558	//   "parameterOrder": [
97559	//     "project",
97560	//     "interconnect"
97561	//   ],
97562	//   "parameters": {
97563	//     "interconnect": {
97564	//       "description": "Name of the interconnect to return.",
97565	//       "location": "path",
97566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97567	//       "required": true,
97568	//       "type": "string"
97569	//     },
97570	//     "project": {
97571	//       "description": "Project ID for this request.",
97572	//       "location": "path",
97573	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97574	//       "required": true,
97575	//       "type": "string"
97576	//     }
97577	//   },
97578	//   "path": "projects/{project}/global/interconnects/{interconnect}",
97579	//   "response": {
97580	//     "$ref": "Interconnect"
97581	//   },
97582	//   "scopes": [
97583	//     "https://www.googleapis.com/auth/cloud-platform",
97584	//     "https://www.googleapis.com/auth/compute",
97585	//     "https://www.googleapis.com/auth/compute.readonly"
97586	//   ]
97587	// }
97588
97589}
97590
97591// method id "compute.interconnects.getDiagnostics":
97592
97593type InterconnectsGetDiagnosticsCall struct {
97594	s            *Service
97595	project      string
97596	interconnect string
97597	urlParams_   gensupport.URLParams
97598	ifNoneMatch_ string
97599	ctx_         context.Context
97600	header_      http.Header
97601}
97602
97603// GetDiagnostics: Returns the interconnectDiagnostics for the specified
97604// interconnect.
97605//
97606// - interconnect: Name of the interconnect resource to query.
97607// - project: Project ID for this request.
97608func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
97609	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97610	c.project = project
97611	c.interconnect = interconnect
97612	return c
97613}
97614
97615// Fields allows partial responses to be retrieved. See
97616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97617// for more information.
97618func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
97619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97620	return c
97621}
97622
97623// IfNoneMatch sets the optional parameter which makes the operation
97624// fail if the object's ETag matches the given value. This is useful for
97625// getting updates only after the object has changed since the last
97626// request. Use googleapi.IsNotModified to check whether the response
97627// error from Do is the result of In-None-Match.
97628func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
97629	c.ifNoneMatch_ = entityTag
97630	return c
97631}
97632
97633// Context sets the context to be used in this call's Do method. Any
97634// pending HTTP request will be aborted if the provided context is
97635// canceled.
97636func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
97637	c.ctx_ = ctx
97638	return c
97639}
97640
97641// Header returns an http.Header that can be modified by the caller to
97642// add HTTP headers to the request.
97643func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
97644	if c.header_ == nil {
97645		c.header_ = make(http.Header)
97646	}
97647	return c.header_
97648}
97649
97650func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
97651	reqHeaders := make(http.Header)
97652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
97653	for k, v := range c.header_ {
97654		reqHeaders[k] = v
97655	}
97656	reqHeaders.Set("User-Agent", c.s.userAgent())
97657	if c.ifNoneMatch_ != "" {
97658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97659	}
97660	var body io.Reader = nil
97661	c.urlParams_.Set("alt", alt)
97662	c.urlParams_.Set("prettyPrint", "false")
97663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics")
97664	urls += "?" + c.urlParams_.Encode()
97665	req, err := http.NewRequest("GET", urls, body)
97666	if err != nil {
97667		return nil, err
97668	}
97669	req.Header = reqHeaders
97670	googleapi.Expand(req.URL, map[string]string{
97671		"project":      c.project,
97672		"interconnect": c.interconnect,
97673	})
97674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97675}
97676
97677// Do executes the "compute.interconnects.getDiagnostics" call.
97678// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
97679// non-nil. Any non-2xx status code is an error. Response headers are in
97680// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
97681// (if a response was returned at all) in
97682// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
97683// whether the returned error was because http.StatusNotModified was
97684// returned.
97685func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
97686	gensupport.SetOptions(c.urlParams_, opts...)
97687	res, err := c.doRequest("json")
97688	if res != nil && res.StatusCode == http.StatusNotModified {
97689		if res.Body != nil {
97690			res.Body.Close()
97691		}
97692		return nil, &googleapi.Error{
97693			Code:   res.StatusCode,
97694			Header: res.Header,
97695		}
97696	}
97697	if err != nil {
97698		return nil, err
97699	}
97700	defer googleapi.CloseBody(res)
97701	if err := googleapi.CheckResponse(res); err != nil {
97702		return nil, err
97703	}
97704	ret := &InterconnectsGetDiagnosticsResponse{
97705		ServerResponse: googleapi.ServerResponse{
97706			Header:         res.Header,
97707			HTTPStatusCode: res.StatusCode,
97708		},
97709	}
97710	target := &ret
97711	if err := gensupport.DecodeResponse(target, res); err != nil {
97712		return nil, err
97713	}
97714	return ret, nil
97715	// {
97716	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
97717	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
97718	//   "httpMethod": "GET",
97719	//   "id": "compute.interconnects.getDiagnostics",
97720	//   "parameterOrder": [
97721	//     "project",
97722	//     "interconnect"
97723	//   ],
97724	//   "parameters": {
97725	//     "interconnect": {
97726	//       "description": "Name of the interconnect resource to query.",
97727	//       "location": "path",
97728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97729	//       "required": true,
97730	//       "type": "string"
97731	//     },
97732	//     "project": {
97733	//       "description": "Project ID for this request.",
97734	//       "location": "path",
97735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97736	//       "required": true,
97737	//       "type": "string"
97738	//     }
97739	//   },
97740	//   "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
97741	//   "response": {
97742	//     "$ref": "InterconnectsGetDiagnosticsResponse"
97743	//   },
97744	//   "scopes": [
97745	//     "https://www.googleapis.com/auth/cloud-platform",
97746	//     "https://www.googleapis.com/auth/compute",
97747	//     "https://www.googleapis.com/auth/compute.readonly"
97748	//   ]
97749	// }
97750
97751}
97752
97753// method id "compute.interconnects.insert":
97754
97755type InterconnectsInsertCall struct {
97756	s            *Service
97757	project      string
97758	interconnect *Interconnect
97759	urlParams_   gensupport.URLParams
97760	ctx_         context.Context
97761	header_      http.Header
97762}
97763
97764// Insert: Creates a Interconnect in the specified project using the
97765// data included in the request.
97766//
97767// - project: Project ID for this request.
97768func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
97769	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97770	c.project = project
97771	c.interconnect = interconnect
97772	return c
97773}
97774
97775// RequestId sets the optional parameter "requestId": An optional
97776// request ID to identify requests. Specify a unique request ID so that
97777// if you must retry your request, the server will know to ignore the
97778// request if it has already been completed. For example, consider a
97779// situation where you make an initial request and the request times
97780// out. If you make the request again with the same request ID, the
97781// server can check if original operation with the same request ID was
97782// received, and if so, will ignore the second request. This prevents
97783// clients from accidentally creating duplicate commitments. The request
97784// ID must be a valid UUID with the exception that zero UUID is not
97785// supported ( 00000000-0000-0000-0000-000000000000).
97786func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
97787	c.urlParams_.Set("requestId", requestId)
97788	return c
97789}
97790
97791// Fields allows partial responses to be retrieved. See
97792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97793// for more information.
97794func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
97795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97796	return c
97797}
97798
97799// Context sets the context to be used in this call's Do method. Any
97800// pending HTTP request will be aborted if the provided context is
97801// canceled.
97802func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
97803	c.ctx_ = ctx
97804	return c
97805}
97806
97807// Header returns an http.Header that can be modified by the caller to
97808// add HTTP headers to the request.
97809func (c *InterconnectsInsertCall) Header() http.Header {
97810	if c.header_ == nil {
97811		c.header_ = make(http.Header)
97812	}
97813	return c.header_
97814}
97815
97816func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
97817	reqHeaders := make(http.Header)
97818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
97819	for k, v := range c.header_ {
97820		reqHeaders[k] = v
97821	}
97822	reqHeaders.Set("User-Agent", c.s.userAgent())
97823	var body io.Reader = nil
97824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
97825	if err != nil {
97826		return nil, err
97827	}
97828	reqHeaders.Set("Content-Type", "application/json")
97829	c.urlParams_.Set("alt", alt)
97830	c.urlParams_.Set("prettyPrint", "false")
97831	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
97832	urls += "?" + c.urlParams_.Encode()
97833	req, err := http.NewRequest("POST", urls, body)
97834	if err != nil {
97835		return nil, err
97836	}
97837	req.Header = reqHeaders
97838	googleapi.Expand(req.URL, map[string]string{
97839		"project": c.project,
97840	})
97841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97842}
97843
97844// Do executes the "compute.interconnects.insert" call.
97845// Exactly one of *Operation or error will be non-nil. Any non-2xx
97846// status code is an error. Response headers are in either
97847// *Operation.ServerResponse.Header or (if a response was returned at
97848// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97849// to check whether the returned error was because
97850// http.StatusNotModified was returned.
97851func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97852	gensupport.SetOptions(c.urlParams_, opts...)
97853	res, err := c.doRequest("json")
97854	if res != nil && res.StatusCode == http.StatusNotModified {
97855		if res.Body != nil {
97856			res.Body.Close()
97857		}
97858		return nil, &googleapi.Error{
97859			Code:   res.StatusCode,
97860			Header: res.Header,
97861		}
97862	}
97863	if err != nil {
97864		return nil, err
97865	}
97866	defer googleapi.CloseBody(res)
97867	if err := googleapi.CheckResponse(res); err != nil {
97868		return nil, err
97869	}
97870	ret := &Operation{
97871		ServerResponse: googleapi.ServerResponse{
97872			Header:         res.Header,
97873			HTTPStatusCode: res.StatusCode,
97874		},
97875	}
97876	target := &ret
97877	if err := gensupport.DecodeResponse(target, res); err != nil {
97878		return nil, err
97879	}
97880	return ret, nil
97881	// {
97882	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
97883	//   "flatPath": "projects/{project}/global/interconnects",
97884	//   "httpMethod": "POST",
97885	//   "id": "compute.interconnects.insert",
97886	//   "parameterOrder": [
97887	//     "project"
97888	//   ],
97889	//   "parameters": {
97890	//     "project": {
97891	//       "description": "Project ID for this request.",
97892	//       "location": "path",
97893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97894	//       "required": true,
97895	//       "type": "string"
97896	//     },
97897	//     "requestId": {
97898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
97899	//       "location": "query",
97900	//       "type": "string"
97901	//     }
97902	//   },
97903	//   "path": "projects/{project}/global/interconnects",
97904	//   "request": {
97905	//     "$ref": "Interconnect"
97906	//   },
97907	//   "response": {
97908	//     "$ref": "Operation"
97909	//   },
97910	//   "scopes": [
97911	//     "https://www.googleapis.com/auth/cloud-platform",
97912	//     "https://www.googleapis.com/auth/compute"
97913	//   ]
97914	// }
97915
97916}
97917
97918// method id "compute.interconnects.list":
97919
97920type InterconnectsListCall struct {
97921	s            *Service
97922	project      string
97923	urlParams_   gensupport.URLParams
97924	ifNoneMatch_ string
97925	ctx_         context.Context
97926	header_      http.Header
97927}
97928
97929// List: Retrieves the list of interconnect available to the specified
97930// project.
97931//
97932// - project: Project ID for this request.
97933func (r *InterconnectsService) List(project string) *InterconnectsListCall {
97934	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97935	c.project = project
97936	return c
97937}
97938
97939// Filter sets the optional parameter "filter": A filter expression that
97940// filters resources listed in the response. The expression must specify
97941// the field name, a comparison operator, and the value that you want to
97942// use for filtering. The value must be a string, a number, or a
97943// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97944// `<`. For example, if you are filtering Compute Engine instances, you
97945// can exclude instances named `example-instance` by specifying `name !=
97946// example-instance`. You can also filter nested fields. For example,
97947// you could specify `scheduling.automaticRestart = false` to include
97948// instances only if they are not scheduled for automatic restarts. You
97949// can use filtering on nested fields to filter based on resource
97950// labels. To filter on multiple expressions, provide each separate
97951// expression within parentheses. For example: ```
97952// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
97953// ``` By default, each expression is an `AND` expression. However, you
97954// can include `AND` and `OR` expressions explicitly. For example: ```
97955// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
97956// AND (scheduling.automaticRestart = true) ```
97957func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
97958	c.urlParams_.Set("filter", filter)
97959	return c
97960}
97961
97962// MaxResults sets the optional parameter "maxResults": The maximum
97963// number of results per page that should be returned. If the number of
97964// available results is larger than `maxResults`, Compute Engine returns
97965// a `nextPageToken` that can be used to get the next page of results in
97966// subsequent list requests. Acceptable values are `0` to `500`,
97967// inclusive. (Default: `500`)
97968func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
97969	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97970	return c
97971}
97972
97973// OrderBy sets the optional parameter "orderBy": Sorts list results by
97974// a certain order. By default, results are returned in alphanumerical
97975// order based on the resource name. You can also sort results in
97976// descending order based on the creation timestamp using
97977// `orderBy="creationTimestamp desc". This sorts results based on the
97978// `creationTimestamp` field in reverse chronological order (newest
97979// result first). Use this to sort resources like operations so that the
97980// newest operation is returned first. Currently, only sorting by `name`
97981// or `creationTimestamp desc` is supported.
97982func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
97983	c.urlParams_.Set("orderBy", orderBy)
97984	return c
97985}
97986
97987// PageToken sets the optional parameter "pageToken": Specifies a page
97988// token to use. Set `pageToken` to the `nextPageToken` returned by a
97989// previous list request to get the next page of results.
97990func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
97991	c.urlParams_.Set("pageToken", pageToken)
97992	return c
97993}
97994
97995// ReturnPartialSuccess sets the optional parameter
97996// "returnPartialSuccess": Opt-in for partial success behavior which
97997// provides partial results in case of failure. The default value is
97998// false.
97999func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
98000	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98001	return c
98002}
98003
98004// Fields allows partial responses to be retrieved. See
98005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98006// for more information.
98007func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
98008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98009	return c
98010}
98011
98012// IfNoneMatch sets the optional parameter which makes the operation
98013// fail if the object's ETag matches the given value. This is useful for
98014// getting updates only after the object has changed since the last
98015// request. Use googleapi.IsNotModified to check whether the response
98016// error from Do is the result of In-None-Match.
98017func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
98018	c.ifNoneMatch_ = entityTag
98019	return c
98020}
98021
98022// Context sets the context to be used in this call's Do method. Any
98023// pending HTTP request will be aborted if the provided context is
98024// canceled.
98025func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
98026	c.ctx_ = ctx
98027	return c
98028}
98029
98030// Header returns an http.Header that can be modified by the caller to
98031// add HTTP headers to the request.
98032func (c *InterconnectsListCall) Header() http.Header {
98033	if c.header_ == nil {
98034		c.header_ = make(http.Header)
98035	}
98036	return c.header_
98037}
98038
98039func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
98040	reqHeaders := make(http.Header)
98041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98042	for k, v := range c.header_ {
98043		reqHeaders[k] = v
98044	}
98045	reqHeaders.Set("User-Agent", c.s.userAgent())
98046	if c.ifNoneMatch_ != "" {
98047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98048	}
98049	var body io.Reader = nil
98050	c.urlParams_.Set("alt", alt)
98051	c.urlParams_.Set("prettyPrint", "false")
98052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
98053	urls += "?" + c.urlParams_.Encode()
98054	req, err := http.NewRequest("GET", urls, body)
98055	if err != nil {
98056		return nil, err
98057	}
98058	req.Header = reqHeaders
98059	googleapi.Expand(req.URL, map[string]string{
98060		"project": c.project,
98061	})
98062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98063}
98064
98065// Do executes the "compute.interconnects.list" call.
98066// Exactly one of *InterconnectList or error will be non-nil. Any
98067// non-2xx status code is an error. Response headers are in either
98068// *InterconnectList.ServerResponse.Header or (if a response was
98069// returned at all) in error.(*googleapi.Error).Header. Use
98070// googleapi.IsNotModified to check whether the returned error was
98071// because http.StatusNotModified was returned.
98072func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
98073	gensupport.SetOptions(c.urlParams_, opts...)
98074	res, err := c.doRequest("json")
98075	if res != nil && res.StatusCode == http.StatusNotModified {
98076		if res.Body != nil {
98077			res.Body.Close()
98078		}
98079		return nil, &googleapi.Error{
98080			Code:   res.StatusCode,
98081			Header: res.Header,
98082		}
98083	}
98084	if err != nil {
98085		return nil, err
98086	}
98087	defer googleapi.CloseBody(res)
98088	if err := googleapi.CheckResponse(res); err != nil {
98089		return nil, err
98090	}
98091	ret := &InterconnectList{
98092		ServerResponse: googleapi.ServerResponse{
98093			Header:         res.Header,
98094			HTTPStatusCode: res.StatusCode,
98095		},
98096	}
98097	target := &ret
98098	if err := gensupport.DecodeResponse(target, res); err != nil {
98099		return nil, err
98100	}
98101	return ret, nil
98102	// {
98103	//   "description": "Retrieves the list of interconnect available to the specified project.",
98104	//   "flatPath": "projects/{project}/global/interconnects",
98105	//   "httpMethod": "GET",
98106	//   "id": "compute.interconnects.list",
98107	//   "parameterOrder": [
98108	//     "project"
98109	//   ],
98110	//   "parameters": {
98111	//     "filter": {
98112	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98113	//       "location": "query",
98114	//       "type": "string"
98115	//     },
98116	//     "maxResults": {
98117	//       "default": "500",
98118	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98119	//       "format": "uint32",
98120	//       "location": "query",
98121	//       "minimum": "0",
98122	//       "type": "integer"
98123	//     },
98124	//     "orderBy": {
98125	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
98126	//       "location": "query",
98127	//       "type": "string"
98128	//     },
98129	//     "pageToken": {
98130	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98131	//       "location": "query",
98132	//       "type": "string"
98133	//     },
98134	//     "project": {
98135	//       "description": "Project ID for this request.",
98136	//       "location": "path",
98137	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98138	//       "required": true,
98139	//       "type": "string"
98140	//     },
98141	//     "returnPartialSuccess": {
98142	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
98143	//       "location": "query",
98144	//       "type": "boolean"
98145	//     }
98146	//   },
98147	//   "path": "projects/{project}/global/interconnects",
98148	//   "response": {
98149	//     "$ref": "InterconnectList"
98150	//   },
98151	//   "scopes": [
98152	//     "https://www.googleapis.com/auth/cloud-platform",
98153	//     "https://www.googleapis.com/auth/compute",
98154	//     "https://www.googleapis.com/auth/compute.readonly"
98155	//   ]
98156	// }
98157
98158}
98159
98160// Pages invokes f for each page of results.
98161// A non-nil error returned from f will halt the iteration.
98162// The provided context supersedes any context provided to the Context method.
98163func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
98164	c.ctx_ = ctx
98165	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98166	for {
98167		x, err := c.Do()
98168		if err != nil {
98169			return err
98170		}
98171		if err := f(x); err != nil {
98172			return err
98173		}
98174		if x.NextPageToken == "" {
98175			return nil
98176		}
98177		c.PageToken(x.NextPageToken)
98178	}
98179}
98180
98181// method id "compute.interconnects.patch":
98182
98183type InterconnectsPatchCall struct {
98184	s             *Service
98185	project       string
98186	interconnect  string
98187	interconnect2 *Interconnect
98188	urlParams_    gensupport.URLParams
98189	ctx_          context.Context
98190	header_       http.Header
98191}
98192
98193// Patch: Updates the specified interconnect with the data included in
98194// the request. This method supports PATCH semantics and uses the JSON
98195// merge patch format and processing rules.
98196//
98197// - interconnect: Name of the interconnect to update.
98198// - project: Project ID for this request.
98199func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
98200	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98201	c.project = project
98202	c.interconnect = interconnect
98203	c.interconnect2 = interconnect2
98204	return c
98205}
98206
98207// RequestId sets the optional parameter "requestId": An optional
98208// request ID to identify requests. Specify a unique request ID so that
98209// if you must retry your request, the server will know to ignore the
98210// request if it has already been completed. For example, consider a
98211// situation where you make an initial request and the request times
98212// out. If you make the request again with the same request ID, the
98213// server can check if original operation with the same request ID was
98214// received, and if so, will ignore the second request. This prevents
98215// clients from accidentally creating duplicate commitments. The request
98216// ID must be a valid UUID with the exception that zero UUID is not
98217// supported ( 00000000-0000-0000-0000-000000000000).
98218func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
98219	c.urlParams_.Set("requestId", requestId)
98220	return c
98221}
98222
98223// Fields allows partial responses to be retrieved. See
98224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98225// for more information.
98226func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
98227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98228	return c
98229}
98230
98231// Context sets the context to be used in this call's Do method. Any
98232// pending HTTP request will be aborted if the provided context is
98233// canceled.
98234func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
98235	c.ctx_ = ctx
98236	return c
98237}
98238
98239// Header returns an http.Header that can be modified by the caller to
98240// add HTTP headers to the request.
98241func (c *InterconnectsPatchCall) Header() http.Header {
98242	if c.header_ == nil {
98243		c.header_ = make(http.Header)
98244	}
98245	return c.header_
98246}
98247
98248func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
98249	reqHeaders := make(http.Header)
98250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98251	for k, v := range c.header_ {
98252		reqHeaders[k] = v
98253	}
98254	reqHeaders.Set("User-Agent", c.s.userAgent())
98255	var body io.Reader = nil
98256	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
98257	if err != nil {
98258		return nil, err
98259	}
98260	reqHeaders.Set("Content-Type", "application/json")
98261	c.urlParams_.Set("alt", alt)
98262	c.urlParams_.Set("prettyPrint", "false")
98263	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
98264	urls += "?" + c.urlParams_.Encode()
98265	req, err := http.NewRequest("PATCH", urls, body)
98266	if err != nil {
98267		return nil, err
98268	}
98269	req.Header = reqHeaders
98270	googleapi.Expand(req.URL, map[string]string{
98271		"project":      c.project,
98272		"interconnect": c.interconnect,
98273	})
98274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98275}
98276
98277// Do executes the "compute.interconnects.patch" call.
98278// Exactly one of *Operation or error will be non-nil. Any non-2xx
98279// status code is an error. Response headers are in either
98280// *Operation.ServerResponse.Header or (if a response was returned at
98281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98282// to check whether the returned error was because
98283// http.StatusNotModified was returned.
98284func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98285	gensupport.SetOptions(c.urlParams_, opts...)
98286	res, err := c.doRequest("json")
98287	if res != nil && res.StatusCode == http.StatusNotModified {
98288		if res.Body != nil {
98289			res.Body.Close()
98290		}
98291		return nil, &googleapi.Error{
98292			Code:   res.StatusCode,
98293			Header: res.Header,
98294		}
98295	}
98296	if err != nil {
98297		return nil, err
98298	}
98299	defer googleapi.CloseBody(res)
98300	if err := googleapi.CheckResponse(res); err != nil {
98301		return nil, err
98302	}
98303	ret := &Operation{
98304		ServerResponse: googleapi.ServerResponse{
98305			Header:         res.Header,
98306			HTTPStatusCode: res.StatusCode,
98307		},
98308	}
98309	target := &ret
98310	if err := gensupport.DecodeResponse(target, res); err != nil {
98311		return nil, err
98312	}
98313	return ret, nil
98314	// {
98315	//   "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.",
98316	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
98317	//   "httpMethod": "PATCH",
98318	//   "id": "compute.interconnects.patch",
98319	//   "parameterOrder": [
98320	//     "project",
98321	//     "interconnect"
98322	//   ],
98323	//   "parameters": {
98324	//     "interconnect": {
98325	//       "description": "Name of the interconnect to update.",
98326	//       "location": "path",
98327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98328	//       "required": true,
98329	//       "type": "string"
98330	//     },
98331	//     "project": {
98332	//       "description": "Project ID for this request.",
98333	//       "location": "path",
98334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98335	//       "required": true,
98336	//       "type": "string"
98337	//     },
98338	//     "requestId": {
98339	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
98340	//       "location": "query",
98341	//       "type": "string"
98342	//     }
98343	//   },
98344	//   "path": "projects/{project}/global/interconnects/{interconnect}",
98345	//   "request": {
98346	//     "$ref": "Interconnect"
98347	//   },
98348	//   "response": {
98349	//     "$ref": "Operation"
98350	//   },
98351	//   "scopes": [
98352	//     "https://www.googleapis.com/auth/cloud-platform",
98353	//     "https://www.googleapis.com/auth/compute"
98354	//   ]
98355	// }
98356
98357}
98358
98359// method id "compute.licenseCodes.get":
98360
98361type LicenseCodesGetCall struct {
98362	s            *Service
98363	project      string
98364	licenseCode  string
98365	urlParams_   gensupport.URLParams
98366	ifNoneMatch_ string
98367	ctx_         context.Context
98368	header_      http.Header
98369}
98370
98371// Get: Return a specified license code. License codes are mirrored
98372// across all projects that have permissions to read the License Code.
98373// *Caution* This resource is intended for use only by third-party
98374// partners who are creating Cloud Marketplace images.
98375//
98376// - licenseCode: Number corresponding to the License code resource to
98377//   return.
98378// - project: Project ID for this request.
98379func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
98380	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98381	c.project = project
98382	c.licenseCode = licenseCode
98383	return c
98384}
98385
98386// Fields allows partial responses to be retrieved. See
98387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98388// for more information.
98389func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
98390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98391	return c
98392}
98393
98394// IfNoneMatch sets the optional parameter which makes the operation
98395// fail if the object's ETag matches the given value. This is useful for
98396// getting updates only after the object has changed since the last
98397// request. Use googleapi.IsNotModified to check whether the response
98398// error from Do is the result of In-None-Match.
98399func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
98400	c.ifNoneMatch_ = entityTag
98401	return c
98402}
98403
98404// Context sets the context to be used in this call's Do method. Any
98405// pending HTTP request will be aborted if the provided context is
98406// canceled.
98407func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
98408	c.ctx_ = ctx
98409	return c
98410}
98411
98412// Header returns an http.Header that can be modified by the caller to
98413// add HTTP headers to the request.
98414func (c *LicenseCodesGetCall) Header() http.Header {
98415	if c.header_ == nil {
98416		c.header_ = make(http.Header)
98417	}
98418	return c.header_
98419}
98420
98421func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
98422	reqHeaders := make(http.Header)
98423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98424	for k, v := range c.header_ {
98425		reqHeaders[k] = v
98426	}
98427	reqHeaders.Set("User-Agent", c.s.userAgent())
98428	if c.ifNoneMatch_ != "" {
98429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98430	}
98431	var body io.Reader = nil
98432	c.urlParams_.Set("alt", alt)
98433	c.urlParams_.Set("prettyPrint", "false")
98434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}")
98435	urls += "?" + c.urlParams_.Encode()
98436	req, err := http.NewRequest("GET", urls, body)
98437	if err != nil {
98438		return nil, err
98439	}
98440	req.Header = reqHeaders
98441	googleapi.Expand(req.URL, map[string]string{
98442		"project":     c.project,
98443		"licenseCode": c.licenseCode,
98444	})
98445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98446}
98447
98448// Do executes the "compute.licenseCodes.get" call.
98449// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
98450// status code is an error. Response headers are in either
98451// *LicenseCode.ServerResponse.Header or (if a response was returned at
98452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98453// to check whether the returned error was because
98454// http.StatusNotModified was returned.
98455func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
98456	gensupport.SetOptions(c.urlParams_, opts...)
98457	res, err := c.doRequest("json")
98458	if res != nil && res.StatusCode == http.StatusNotModified {
98459		if res.Body != nil {
98460			res.Body.Close()
98461		}
98462		return nil, &googleapi.Error{
98463			Code:   res.StatusCode,
98464			Header: res.Header,
98465		}
98466	}
98467	if err != nil {
98468		return nil, err
98469	}
98470	defer googleapi.CloseBody(res)
98471	if err := googleapi.CheckResponse(res); err != nil {
98472		return nil, err
98473	}
98474	ret := &LicenseCode{
98475		ServerResponse: googleapi.ServerResponse{
98476			Header:         res.Header,
98477			HTTPStatusCode: res.StatusCode,
98478		},
98479	}
98480	target := &ret
98481	if err := gensupport.DecodeResponse(target, res); err != nil {
98482		return nil, err
98483	}
98484	return ret, nil
98485	// {
98486	//   "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. ",
98487	//   "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}",
98488	//   "httpMethod": "GET",
98489	//   "id": "compute.licenseCodes.get",
98490	//   "parameterOrder": [
98491	//     "project",
98492	//     "licenseCode"
98493	//   ],
98494	//   "parameters": {
98495	//     "licenseCode": {
98496	//       "description": "Number corresponding to the License code resource to return.",
98497	//       "location": "path",
98498	//       "pattern": "[0-9]{0,61}?",
98499	//       "required": true,
98500	//       "type": "string"
98501	//     },
98502	//     "project": {
98503	//       "description": "Project ID for this request.",
98504	//       "location": "path",
98505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98506	//       "required": true,
98507	//       "type": "string"
98508	//     }
98509	//   },
98510	//   "path": "projects/{project}/global/licenseCodes/{licenseCode}",
98511	//   "response": {
98512	//     "$ref": "LicenseCode"
98513	//   },
98514	//   "scopes": [
98515	//     "https://www.googleapis.com/auth/cloud-platform",
98516	//     "https://www.googleapis.com/auth/compute",
98517	//     "https://www.googleapis.com/auth/compute.readonly"
98518	//   ]
98519	// }
98520
98521}
98522
98523// method id "compute.licenseCodes.testIamPermissions":
98524
98525type LicenseCodesTestIamPermissionsCall struct {
98526	s                      *Service
98527	project                string
98528	resource               string
98529	testpermissionsrequest *TestPermissionsRequest
98530	urlParams_             gensupport.URLParams
98531	ctx_                   context.Context
98532	header_                http.Header
98533}
98534
98535// TestIamPermissions: Returns permissions that a caller has on the
98536// specified resource. *Caution* This resource is intended for use only
98537// by third-party partners who are creating Cloud Marketplace images.
98538//
98539// - project: Project ID for this request.
98540// - resource: Name or id of the resource for this request.
98541func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
98542	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98543	c.project = project
98544	c.resource = resource
98545	c.testpermissionsrequest = testpermissionsrequest
98546	return c
98547}
98548
98549// Fields allows partial responses to be retrieved. See
98550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98551// for more information.
98552func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
98553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98554	return c
98555}
98556
98557// Context sets the context to be used in this call's Do method. Any
98558// pending HTTP request will be aborted if the provided context is
98559// canceled.
98560func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
98561	c.ctx_ = ctx
98562	return c
98563}
98564
98565// Header returns an http.Header that can be modified by the caller to
98566// add HTTP headers to the request.
98567func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
98568	if c.header_ == nil {
98569		c.header_ = make(http.Header)
98570	}
98571	return c.header_
98572}
98573
98574func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98575	reqHeaders := make(http.Header)
98576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98577	for k, v := range c.header_ {
98578		reqHeaders[k] = v
98579	}
98580	reqHeaders.Set("User-Agent", c.s.userAgent())
98581	var body io.Reader = nil
98582	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98583	if err != nil {
98584		return nil, err
98585	}
98586	reqHeaders.Set("Content-Type", "application/json")
98587	c.urlParams_.Set("alt", alt)
98588	c.urlParams_.Set("prettyPrint", "false")
98589	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions")
98590	urls += "?" + c.urlParams_.Encode()
98591	req, err := http.NewRequest("POST", urls, body)
98592	if err != nil {
98593		return nil, err
98594	}
98595	req.Header = reqHeaders
98596	googleapi.Expand(req.URL, map[string]string{
98597		"project":  c.project,
98598		"resource": c.resource,
98599	})
98600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98601}
98602
98603// Do executes the "compute.licenseCodes.testIamPermissions" call.
98604// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98605// non-2xx status code is an error. Response headers are in either
98606// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98607// returned at all) in error.(*googleapi.Error).Header. Use
98608// googleapi.IsNotModified to check whether the returned error was
98609// because http.StatusNotModified was returned.
98610func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
98611	gensupport.SetOptions(c.urlParams_, opts...)
98612	res, err := c.doRequest("json")
98613	if res != nil && res.StatusCode == http.StatusNotModified {
98614		if res.Body != nil {
98615			res.Body.Close()
98616		}
98617		return nil, &googleapi.Error{
98618			Code:   res.StatusCode,
98619			Header: res.Header,
98620		}
98621	}
98622	if err != nil {
98623		return nil, err
98624	}
98625	defer googleapi.CloseBody(res)
98626	if err := googleapi.CheckResponse(res); err != nil {
98627		return nil, err
98628	}
98629	ret := &TestPermissionsResponse{
98630		ServerResponse: googleapi.ServerResponse{
98631			Header:         res.Header,
98632			HTTPStatusCode: res.StatusCode,
98633		},
98634	}
98635	target := &ret
98636	if err := gensupport.DecodeResponse(target, res); err != nil {
98637		return nil, err
98638	}
98639	return ret, nil
98640	// {
98641	//   "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. ",
98642	//   "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
98643	//   "httpMethod": "POST",
98644	//   "id": "compute.licenseCodes.testIamPermissions",
98645	//   "parameterOrder": [
98646	//     "project",
98647	//     "resource"
98648	//   ],
98649	//   "parameters": {
98650	//     "project": {
98651	//       "description": "Project ID for this request.",
98652	//       "location": "path",
98653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98654	//       "required": true,
98655	//       "type": "string"
98656	//     },
98657	//     "resource": {
98658	//       "description": "Name or id of the resource for this request.",
98659	//       "location": "path",
98660	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98661	//       "required": true,
98662	//       "type": "string"
98663	//     }
98664	//   },
98665	//   "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
98666	//   "request": {
98667	//     "$ref": "TestPermissionsRequest"
98668	//   },
98669	//   "response": {
98670	//     "$ref": "TestPermissionsResponse"
98671	//   },
98672	//   "scopes": [
98673	//     "https://www.googleapis.com/auth/cloud-platform",
98674	//     "https://www.googleapis.com/auth/compute",
98675	//     "https://www.googleapis.com/auth/compute.readonly"
98676	//   ]
98677	// }
98678
98679}
98680
98681// method id "compute.licenses.delete":
98682
98683type LicensesDeleteCall struct {
98684	s          *Service
98685	project    string
98686	license    string
98687	urlParams_ gensupport.URLParams
98688	ctx_       context.Context
98689	header_    http.Header
98690}
98691
98692// Delete: Deletes the specified license. *Caution* This resource is
98693// intended for use only by third-party partners who are creating Cloud
98694// Marketplace images.
98695//
98696// - license: Name of the license resource to delete.
98697// - project: Project ID for this request.
98698func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
98699	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98700	c.project = project
98701	c.license = license
98702	return c
98703}
98704
98705// RequestId sets the optional parameter "requestId": An optional
98706// request ID to identify requests. Specify a unique request ID so that
98707// if you must retry your request, the server will know to ignore the
98708// request if it has already been completed. For example, consider a
98709// situation where you make an initial request and the request times
98710// out. If you make the request again with the same request ID, the
98711// server can check if original operation with the same request ID was
98712// received, and if so, will ignore the second request. This prevents
98713// clients from accidentally creating duplicate commitments. The request
98714// ID must be a valid UUID with the exception that zero UUID is not
98715// supported ( 00000000-0000-0000-0000-000000000000).
98716func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
98717	c.urlParams_.Set("requestId", requestId)
98718	return c
98719}
98720
98721// Fields allows partial responses to be retrieved. See
98722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98723// for more information.
98724func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
98725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98726	return c
98727}
98728
98729// Context sets the context to be used in this call's Do method. Any
98730// pending HTTP request will be aborted if the provided context is
98731// canceled.
98732func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
98733	c.ctx_ = ctx
98734	return c
98735}
98736
98737// Header returns an http.Header that can be modified by the caller to
98738// add HTTP headers to the request.
98739func (c *LicensesDeleteCall) Header() http.Header {
98740	if c.header_ == nil {
98741		c.header_ = make(http.Header)
98742	}
98743	return c.header_
98744}
98745
98746func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
98747	reqHeaders := make(http.Header)
98748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98749	for k, v := range c.header_ {
98750		reqHeaders[k] = v
98751	}
98752	reqHeaders.Set("User-Agent", c.s.userAgent())
98753	var body io.Reader = nil
98754	c.urlParams_.Set("alt", alt)
98755	c.urlParams_.Set("prettyPrint", "false")
98756	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
98757	urls += "?" + c.urlParams_.Encode()
98758	req, err := http.NewRequest("DELETE", urls, body)
98759	if err != nil {
98760		return nil, err
98761	}
98762	req.Header = reqHeaders
98763	googleapi.Expand(req.URL, map[string]string{
98764		"project": c.project,
98765		"license": c.license,
98766	})
98767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98768}
98769
98770// Do executes the "compute.licenses.delete" call.
98771// Exactly one of *Operation or error will be non-nil. Any non-2xx
98772// status code is an error. Response headers are in either
98773// *Operation.ServerResponse.Header or (if a response was returned at
98774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98775// to check whether the returned error was because
98776// http.StatusNotModified was returned.
98777func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98778	gensupport.SetOptions(c.urlParams_, opts...)
98779	res, err := c.doRequest("json")
98780	if res != nil && res.StatusCode == http.StatusNotModified {
98781		if res.Body != nil {
98782			res.Body.Close()
98783		}
98784		return nil, &googleapi.Error{
98785			Code:   res.StatusCode,
98786			Header: res.Header,
98787		}
98788	}
98789	if err != nil {
98790		return nil, err
98791	}
98792	defer googleapi.CloseBody(res)
98793	if err := googleapi.CheckResponse(res); err != nil {
98794		return nil, err
98795	}
98796	ret := &Operation{
98797		ServerResponse: googleapi.ServerResponse{
98798			Header:         res.Header,
98799			HTTPStatusCode: res.StatusCode,
98800		},
98801	}
98802	target := &ret
98803	if err := gensupport.DecodeResponse(target, res); err != nil {
98804		return nil, err
98805	}
98806	return ret, nil
98807	// {
98808	//   "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ",
98809	//   "flatPath": "projects/{project}/global/licenses/{license}",
98810	//   "httpMethod": "DELETE",
98811	//   "id": "compute.licenses.delete",
98812	//   "parameterOrder": [
98813	//     "project",
98814	//     "license"
98815	//   ],
98816	//   "parameters": {
98817	//     "license": {
98818	//       "description": "Name of the license resource to delete.",
98819	//       "location": "path",
98820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98821	//       "required": true,
98822	//       "type": "string"
98823	//     },
98824	//     "project": {
98825	//       "description": "Project ID for this request.",
98826	//       "location": "path",
98827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98828	//       "required": true,
98829	//       "type": "string"
98830	//     },
98831	//     "requestId": {
98832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
98833	//       "location": "query",
98834	//       "type": "string"
98835	//     }
98836	//   },
98837	//   "path": "projects/{project}/global/licenses/{license}",
98838	//   "response": {
98839	//     "$ref": "Operation"
98840	//   },
98841	//   "scopes": [
98842	//     "https://www.googleapis.com/auth/cloud-platform",
98843	//     "https://www.googleapis.com/auth/compute"
98844	//   ]
98845	// }
98846
98847}
98848
98849// method id "compute.licenses.get":
98850
98851type LicensesGetCall struct {
98852	s            *Service
98853	project      string
98854	license      string
98855	urlParams_   gensupport.URLParams
98856	ifNoneMatch_ string
98857	ctx_         context.Context
98858	header_      http.Header
98859}
98860
98861// Get: Returns the specified License resource. *Caution* This resource
98862// is intended for use only by third-party partners who are creating
98863// Cloud Marketplace images.
98864//
98865// - license: Name of the License resource to return.
98866// - project: Project ID for this request.
98867func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
98868	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98869	c.project = project
98870	c.license = license
98871	return c
98872}
98873
98874// Fields allows partial responses to be retrieved. See
98875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98876// for more information.
98877func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
98878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98879	return c
98880}
98881
98882// IfNoneMatch sets the optional parameter which makes the operation
98883// fail if the object's ETag matches the given value. This is useful for
98884// getting updates only after the object has changed since the last
98885// request. Use googleapi.IsNotModified to check whether the response
98886// error from Do is the result of In-None-Match.
98887func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
98888	c.ifNoneMatch_ = entityTag
98889	return c
98890}
98891
98892// Context sets the context to be used in this call's Do method. Any
98893// pending HTTP request will be aborted if the provided context is
98894// canceled.
98895func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
98896	c.ctx_ = ctx
98897	return c
98898}
98899
98900// Header returns an http.Header that can be modified by the caller to
98901// add HTTP headers to the request.
98902func (c *LicensesGetCall) Header() http.Header {
98903	if c.header_ == nil {
98904		c.header_ = make(http.Header)
98905	}
98906	return c.header_
98907}
98908
98909func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
98910	reqHeaders := make(http.Header)
98911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
98912	for k, v := range c.header_ {
98913		reqHeaders[k] = v
98914	}
98915	reqHeaders.Set("User-Agent", c.s.userAgent())
98916	if c.ifNoneMatch_ != "" {
98917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98918	}
98919	var body io.Reader = nil
98920	c.urlParams_.Set("alt", alt)
98921	c.urlParams_.Set("prettyPrint", "false")
98922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
98923	urls += "?" + c.urlParams_.Encode()
98924	req, err := http.NewRequest("GET", urls, body)
98925	if err != nil {
98926		return nil, err
98927	}
98928	req.Header = reqHeaders
98929	googleapi.Expand(req.URL, map[string]string{
98930		"project": c.project,
98931		"license": c.license,
98932	})
98933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98934}
98935
98936// Do executes the "compute.licenses.get" call.
98937// Exactly one of *License or error will be non-nil. Any non-2xx status
98938// code is an error. Response headers are in either
98939// *License.ServerResponse.Header or (if a response was returned at all)
98940// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98941// check whether the returned error was because http.StatusNotModified
98942// was returned.
98943func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
98944	gensupport.SetOptions(c.urlParams_, opts...)
98945	res, err := c.doRequest("json")
98946	if res != nil && res.StatusCode == http.StatusNotModified {
98947		if res.Body != nil {
98948			res.Body.Close()
98949		}
98950		return nil, &googleapi.Error{
98951			Code:   res.StatusCode,
98952			Header: res.Header,
98953		}
98954	}
98955	if err != nil {
98956		return nil, err
98957	}
98958	defer googleapi.CloseBody(res)
98959	if err := googleapi.CheckResponse(res); err != nil {
98960		return nil, err
98961	}
98962	ret := &License{
98963		ServerResponse: googleapi.ServerResponse{
98964			Header:         res.Header,
98965			HTTPStatusCode: res.StatusCode,
98966		},
98967	}
98968	target := &ret
98969	if err := gensupport.DecodeResponse(target, res); err != nil {
98970		return nil, err
98971	}
98972	return ret, nil
98973	// {
98974	//   "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ",
98975	//   "flatPath": "projects/{project}/global/licenses/{license}",
98976	//   "httpMethod": "GET",
98977	//   "id": "compute.licenses.get",
98978	//   "parameterOrder": [
98979	//     "project",
98980	//     "license"
98981	//   ],
98982	//   "parameters": {
98983	//     "license": {
98984	//       "description": "Name of the License resource to return.",
98985	//       "location": "path",
98986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98987	//       "required": true,
98988	//       "type": "string"
98989	//     },
98990	//     "project": {
98991	//       "description": "Project ID for this request.",
98992	//       "location": "path",
98993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98994	//       "required": true,
98995	//       "type": "string"
98996	//     }
98997	//   },
98998	//   "path": "projects/{project}/global/licenses/{license}",
98999	//   "response": {
99000	//     "$ref": "License"
99001	//   },
99002	//   "scopes": [
99003	//     "https://www.googleapis.com/auth/cloud-platform",
99004	//     "https://www.googleapis.com/auth/compute",
99005	//     "https://www.googleapis.com/auth/compute.readonly"
99006	//   ]
99007	// }
99008
99009}
99010
99011// method id "compute.licenses.getIamPolicy":
99012
99013type LicensesGetIamPolicyCall struct {
99014	s            *Service
99015	project      string
99016	resource     string
99017	urlParams_   gensupport.URLParams
99018	ifNoneMatch_ string
99019	ctx_         context.Context
99020	header_      http.Header
99021}
99022
99023// GetIamPolicy: Gets the access control policy for a resource. May be
99024// empty if no such policy or resource exists. *Caution* This resource
99025// is intended for use only by third-party partners who are creating
99026// Cloud Marketplace images.
99027//
99028// - project: Project ID for this request.
99029// - resource: Name or id of the resource for this request.
99030func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
99031	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99032	c.project = project
99033	c.resource = resource
99034	return c
99035}
99036
99037// OptionsRequestedPolicyVersion sets the optional parameter
99038// "optionsRequestedPolicyVersion": Requested IAM Policy version.
99039func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
99040	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
99041	return c
99042}
99043
99044// Fields allows partial responses to be retrieved. See
99045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99046// for more information.
99047func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
99048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99049	return c
99050}
99051
99052// IfNoneMatch sets the optional parameter which makes the operation
99053// fail if the object's ETag matches the given value. This is useful for
99054// getting updates only after the object has changed since the last
99055// request. Use googleapi.IsNotModified to check whether the response
99056// error from Do is the result of In-None-Match.
99057func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
99058	c.ifNoneMatch_ = entityTag
99059	return c
99060}
99061
99062// Context sets the context to be used in this call's Do method. Any
99063// pending HTTP request will be aborted if the provided context is
99064// canceled.
99065func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
99066	c.ctx_ = ctx
99067	return c
99068}
99069
99070// Header returns an http.Header that can be modified by the caller to
99071// add HTTP headers to the request.
99072func (c *LicensesGetIamPolicyCall) Header() http.Header {
99073	if c.header_ == nil {
99074		c.header_ = make(http.Header)
99075	}
99076	return c.header_
99077}
99078
99079func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99080	reqHeaders := make(http.Header)
99081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
99082	for k, v := range c.header_ {
99083		reqHeaders[k] = v
99084	}
99085	reqHeaders.Set("User-Agent", c.s.userAgent())
99086	if c.ifNoneMatch_ != "" {
99087		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99088	}
99089	var body io.Reader = nil
99090	c.urlParams_.Set("alt", alt)
99091	c.urlParams_.Set("prettyPrint", "false")
99092	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy")
99093	urls += "?" + c.urlParams_.Encode()
99094	req, err := http.NewRequest("GET", urls, body)
99095	if err != nil {
99096		return nil, err
99097	}
99098	req.Header = reqHeaders
99099	googleapi.Expand(req.URL, map[string]string{
99100		"project":  c.project,
99101		"resource": c.resource,
99102	})
99103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99104}
99105
99106// Do executes the "compute.licenses.getIamPolicy" call.
99107// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99108// code is an error. Response headers are in either
99109// *Policy.ServerResponse.Header or (if a response was returned at all)
99110// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99111// check whether the returned error was because http.StatusNotModified
99112// was returned.
99113func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99114	gensupport.SetOptions(c.urlParams_, opts...)
99115	res, err := c.doRequest("json")
99116	if res != nil && res.StatusCode == http.StatusNotModified {
99117		if res.Body != nil {
99118			res.Body.Close()
99119		}
99120		return nil, &googleapi.Error{
99121			Code:   res.StatusCode,
99122			Header: res.Header,
99123		}
99124	}
99125	if err != nil {
99126		return nil, err
99127	}
99128	defer googleapi.CloseBody(res)
99129	if err := googleapi.CheckResponse(res); err != nil {
99130		return nil, err
99131	}
99132	ret := &Policy{
99133		ServerResponse: googleapi.ServerResponse{
99134			Header:         res.Header,
99135			HTTPStatusCode: res.StatusCode,
99136		},
99137	}
99138	target := &ret
99139	if err := gensupport.DecodeResponse(target, res); err != nil {
99140		return nil, err
99141	}
99142	return ret, nil
99143	// {
99144	//   "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. ",
99145	//   "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy",
99146	//   "httpMethod": "GET",
99147	//   "id": "compute.licenses.getIamPolicy",
99148	//   "parameterOrder": [
99149	//     "project",
99150	//     "resource"
99151	//   ],
99152	//   "parameters": {
99153	//     "optionsRequestedPolicyVersion": {
99154	//       "description": "Requested IAM Policy version.",
99155	//       "format": "int32",
99156	//       "location": "query",
99157	//       "type": "integer"
99158	//     },
99159	//     "project": {
99160	//       "description": "Project ID for this request.",
99161	//       "location": "path",
99162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99163	//       "required": true,
99164	//       "type": "string"
99165	//     },
99166	//     "resource": {
99167	//       "description": "Name or id of the resource for this request.",
99168	//       "location": "path",
99169	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99170	//       "required": true,
99171	//       "type": "string"
99172	//     }
99173	//   },
99174	//   "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
99175	//   "response": {
99176	//     "$ref": "Policy"
99177	//   },
99178	//   "scopes": [
99179	//     "https://www.googleapis.com/auth/cloud-platform",
99180	//     "https://www.googleapis.com/auth/compute",
99181	//     "https://www.googleapis.com/auth/compute.readonly"
99182	//   ]
99183	// }
99184
99185}
99186
99187// method id "compute.licenses.insert":
99188
99189type LicensesInsertCall struct {
99190	s          *Service
99191	project    string
99192	license    *License
99193	urlParams_ gensupport.URLParams
99194	ctx_       context.Context
99195	header_    http.Header
99196}
99197
99198// Insert: Create a License resource in the specified project. *Caution*
99199// This resource is intended for use only by third-party partners who
99200// are creating Cloud Marketplace images.
99201//
99202// - project: Project ID for this request.
99203func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
99204	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99205	c.project = project
99206	c.license = license
99207	return c
99208}
99209
99210// RequestId sets the optional parameter "requestId": An optional
99211// request ID to identify requests. Specify a unique request ID so that
99212// if you must retry your request, the server will know to ignore the
99213// request if it has already been completed. For example, consider a
99214// situation where you make an initial request and the request times
99215// out. If you make the request again with the same request ID, the
99216// server can check if original operation with the same request ID was
99217// received, and if so, will ignore the second request. This prevents
99218// clients from accidentally creating duplicate commitments. The request
99219// ID must be a valid UUID with the exception that zero UUID is not
99220// supported ( 00000000-0000-0000-0000-000000000000).
99221func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
99222	c.urlParams_.Set("requestId", requestId)
99223	return c
99224}
99225
99226// Fields allows partial responses to be retrieved. See
99227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99228// for more information.
99229func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
99230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99231	return c
99232}
99233
99234// Context sets the context to be used in this call's Do method. Any
99235// pending HTTP request will be aborted if the provided context is
99236// canceled.
99237func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
99238	c.ctx_ = ctx
99239	return c
99240}
99241
99242// Header returns an http.Header that can be modified by the caller to
99243// add HTTP headers to the request.
99244func (c *LicensesInsertCall) Header() http.Header {
99245	if c.header_ == nil {
99246		c.header_ = make(http.Header)
99247	}
99248	return c.header_
99249}
99250
99251func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
99252	reqHeaders := make(http.Header)
99253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
99254	for k, v := range c.header_ {
99255		reqHeaders[k] = v
99256	}
99257	reqHeaders.Set("User-Agent", c.s.userAgent())
99258	var body io.Reader = nil
99259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
99260	if err != nil {
99261		return nil, err
99262	}
99263	reqHeaders.Set("Content-Type", "application/json")
99264	c.urlParams_.Set("alt", alt)
99265	c.urlParams_.Set("prettyPrint", "false")
99266	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
99267	urls += "?" + c.urlParams_.Encode()
99268	req, err := http.NewRequest("POST", urls, body)
99269	if err != nil {
99270		return nil, err
99271	}
99272	req.Header = reqHeaders
99273	googleapi.Expand(req.URL, map[string]string{
99274		"project": c.project,
99275	})
99276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99277}
99278
99279// Do executes the "compute.licenses.insert" call.
99280// Exactly one of *Operation or error will be non-nil. Any non-2xx
99281// status code is an error. Response headers are in either
99282// *Operation.ServerResponse.Header or (if a response was returned at
99283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99284// to check whether the returned error was because
99285// http.StatusNotModified was returned.
99286func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99287	gensupport.SetOptions(c.urlParams_, opts...)
99288	res, err := c.doRequest("json")
99289	if res != nil && res.StatusCode == http.StatusNotModified {
99290		if res.Body != nil {
99291			res.Body.Close()
99292		}
99293		return nil, &googleapi.Error{
99294			Code:   res.StatusCode,
99295			Header: res.Header,
99296		}
99297	}
99298	if err != nil {
99299		return nil, err
99300	}
99301	defer googleapi.CloseBody(res)
99302	if err := googleapi.CheckResponse(res); err != nil {
99303		return nil, err
99304	}
99305	ret := &Operation{
99306		ServerResponse: googleapi.ServerResponse{
99307			Header:         res.Header,
99308			HTTPStatusCode: res.StatusCode,
99309		},
99310	}
99311	target := &ret
99312	if err := gensupport.DecodeResponse(target, res); err != nil {
99313		return nil, err
99314	}
99315	return ret, nil
99316	// {
99317	//   "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. ",
99318	//   "flatPath": "projects/{project}/global/licenses",
99319	//   "httpMethod": "POST",
99320	//   "id": "compute.licenses.insert",
99321	//   "parameterOrder": [
99322	//     "project"
99323	//   ],
99324	//   "parameters": {
99325	//     "project": {
99326	//       "description": "Project ID for this request.",
99327	//       "location": "path",
99328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99329	//       "required": true,
99330	//       "type": "string"
99331	//     },
99332	//     "requestId": {
99333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
99334	//       "location": "query",
99335	//       "type": "string"
99336	//     }
99337	//   },
99338	//   "path": "projects/{project}/global/licenses",
99339	//   "request": {
99340	//     "$ref": "License"
99341	//   },
99342	//   "response": {
99343	//     "$ref": "Operation"
99344	//   },
99345	//   "scopes": [
99346	//     "https://www.googleapis.com/auth/cloud-platform",
99347	//     "https://www.googleapis.com/auth/compute",
99348	//     "https://www.googleapis.com/auth/devstorage.full_control",
99349	//     "https://www.googleapis.com/auth/devstorage.read_only",
99350	//     "https://www.googleapis.com/auth/devstorage.read_write"
99351	//   ]
99352	// }
99353
99354}
99355
99356// method id "compute.licenses.list":
99357
99358type LicensesListCall struct {
99359	s            *Service
99360	project      string
99361	urlParams_   gensupport.URLParams
99362	ifNoneMatch_ string
99363	ctx_         context.Context
99364	header_      http.Header
99365}
99366
99367// List: Retrieves the list of licenses available in the specified
99368// project. This method does not get any licenses that belong to other
99369// projects, including licenses attached to publicly-available images,
99370// like Debian 9. If you want to get a list of publicly-available
99371// licenses, use this method to make a request to the respective image
99372// project, such as debian-cloud or windows-cloud. *Caution* This
99373// resource is intended for use only by third-party partners who are
99374// creating Cloud Marketplace images.
99375//
99376// - project: Project ID for this request.
99377func (r *LicensesService) List(project string) *LicensesListCall {
99378	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99379	c.project = project
99380	return c
99381}
99382
99383// Filter sets the optional parameter "filter": A filter expression that
99384// filters resources listed in the response. The expression must specify
99385// the field name, a comparison operator, and the value that you want to
99386// use for filtering. The value must be a string, a number, or a
99387// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99388// `<`. For example, if you are filtering Compute Engine instances, you
99389// can exclude instances named `example-instance` by specifying `name !=
99390// example-instance`. You can also filter nested fields. For example,
99391// you could specify `scheduling.automaticRestart = false` to include
99392// instances only if they are not scheduled for automatic restarts. You
99393// can use filtering on nested fields to filter based on resource
99394// labels. To filter on multiple expressions, provide each separate
99395// expression within parentheses. For example: ```
99396// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
99397// ``` By default, each expression is an `AND` expression. However, you
99398// can include `AND` and `OR` expressions explicitly. For example: ```
99399// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
99400// AND (scheduling.automaticRestart = true) ```
99401func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
99402	c.urlParams_.Set("filter", filter)
99403	return c
99404}
99405
99406// MaxResults sets the optional parameter "maxResults": The maximum
99407// number of results per page that should be returned. If the number of
99408// available results is larger than `maxResults`, Compute Engine returns
99409// a `nextPageToken` that can be used to get the next page of results in
99410// subsequent list requests. Acceptable values are `0` to `500`,
99411// inclusive. (Default: `500`)
99412func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
99413	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99414	return c
99415}
99416
99417// OrderBy sets the optional parameter "orderBy": Sorts list results by
99418// a certain order. By default, results are returned in alphanumerical
99419// order based on the resource name. You can also sort results in
99420// descending order based on the creation timestamp using
99421// `orderBy="creationTimestamp desc". This sorts results based on the
99422// `creationTimestamp` field in reverse chronological order (newest
99423// result first). Use this to sort resources like operations so that the
99424// newest operation is returned first. Currently, only sorting by `name`
99425// or `creationTimestamp desc` is supported.
99426func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
99427	c.urlParams_.Set("orderBy", orderBy)
99428	return c
99429}
99430
99431// PageToken sets the optional parameter "pageToken": Specifies a page
99432// token to use. Set `pageToken` to the `nextPageToken` returned by a
99433// previous list request to get the next page of results.
99434func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
99435	c.urlParams_.Set("pageToken", pageToken)
99436	return c
99437}
99438
99439// ReturnPartialSuccess sets the optional parameter
99440// "returnPartialSuccess": Opt-in for partial success behavior which
99441// provides partial results in case of failure. The default value is
99442// false.
99443func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
99444	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
99445	return c
99446}
99447
99448// Fields allows partial responses to be retrieved. See
99449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99450// for more information.
99451func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
99452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99453	return c
99454}
99455
99456// IfNoneMatch sets the optional parameter which makes the operation
99457// fail if the object's ETag matches the given value. This is useful for
99458// getting updates only after the object has changed since the last
99459// request. Use googleapi.IsNotModified to check whether the response
99460// error from Do is the result of In-None-Match.
99461func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
99462	c.ifNoneMatch_ = entityTag
99463	return c
99464}
99465
99466// Context sets the context to be used in this call's Do method. Any
99467// pending HTTP request will be aborted if the provided context is
99468// canceled.
99469func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
99470	c.ctx_ = ctx
99471	return c
99472}
99473
99474// Header returns an http.Header that can be modified by the caller to
99475// add HTTP headers to the request.
99476func (c *LicensesListCall) Header() http.Header {
99477	if c.header_ == nil {
99478		c.header_ = make(http.Header)
99479	}
99480	return c.header_
99481}
99482
99483func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
99484	reqHeaders := make(http.Header)
99485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
99486	for k, v := range c.header_ {
99487		reqHeaders[k] = v
99488	}
99489	reqHeaders.Set("User-Agent", c.s.userAgent())
99490	if c.ifNoneMatch_ != "" {
99491		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99492	}
99493	var body io.Reader = nil
99494	c.urlParams_.Set("alt", alt)
99495	c.urlParams_.Set("prettyPrint", "false")
99496	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
99497	urls += "?" + c.urlParams_.Encode()
99498	req, err := http.NewRequest("GET", urls, body)
99499	if err != nil {
99500		return nil, err
99501	}
99502	req.Header = reqHeaders
99503	googleapi.Expand(req.URL, map[string]string{
99504		"project": c.project,
99505	})
99506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99507}
99508
99509// Do executes the "compute.licenses.list" call.
99510// Exactly one of *LicensesListResponse or error will be non-nil. Any
99511// non-2xx status code is an error. Response headers are in either
99512// *LicensesListResponse.ServerResponse.Header or (if a response was
99513// returned at all) in error.(*googleapi.Error).Header. Use
99514// googleapi.IsNotModified to check whether the returned error was
99515// because http.StatusNotModified was returned.
99516func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
99517	gensupport.SetOptions(c.urlParams_, opts...)
99518	res, err := c.doRequest("json")
99519	if res != nil && res.StatusCode == http.StatusNotModified {
99520		if res.Body != nil {
99521			res.Body.Close()
99522		}
99523		return nil, &googleapi.Error{
99524			Code:   res.StatusCode,
99525			Header: res.Header,
99526		}
99527	}
99528	if err != nil {
99529		return nil, err
99530	}
99531	defer googleapi.CloseBody(res)
99532	if err := googleapi.CheckResponse(res); err != nil {
99533		return nil, err
99534	}
99535	ret := &LicensesListResponse{
99536		ServerResponse: googleapi.ServerResponse{
99537			Header:         res.Header,
99538			HTTPStatusCode: res.StatusCode,
99539		},
99540	}
99541	target := &ret
99542	if err := gensupport.DecodeResponse(target, res); err != nil {
99543		return nil, err
99544	}
99545	return ret, nil
99546	// {
99547	//   "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. ",
99548	//   "flatPath": "projects/{project}/global/licenses",
99549	//   "httpMethod": "GET",
99550	//   "id": "compute.licenses.list",
99551	//   "parameterOrder": [
99552	//     "project"
99553	//   ],
99554	//   "parameters": {
99555	//     "filter": {
99556	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
99557	//       "location": "query",
99558	//       "type": "string"
99559	//     },
99560	//     "maxResults": {
99561	//       "default": "500",
99562	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99563	//       "format": "uint32",
99564	//       "location": "query",
99565	//       "minimum": "0",
99566	//       "type": "integer"
99567	//     },
99568	//     "orderBy": {
99569	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
99570	//       "location": "query",
99571	//       "type": "string"
99572	//     },
99573	//     "pageToken": {
99574	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99575	//       "location": "query",
99576	//       "type": "string"
99577	//     },
99578	//     "project": {
99579	//       "description": "Project ID for this request.",
99580	//       "location": "path",
99581	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99582	//       "required": true,
99583	//       "type": "string"
99584	//     },
99585	//     "returnPartialSuccess": {
99586	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
99587	//       "location": "query",
99588	//       "type": "boolean"
99589	//     }
99590	//   },
99591	//   "path": "projects/{project}/global/licenses",
99592	//   "response": {
99593	//     "$ref": "LicensesListResponse"
99594	//   },
99595	//   "scopes": [
99596	//     "https://www.googleapis.com/auth/cloud-platform",
99597	//     "https://www.googleapis.com/auth/compute",
99598	//     "https://www.googleapis.com/auth/compute.readonly"
99599	//   ]
99600	// }
99601
99602}
99603
99604// Pages invokes f for each page of results.
99605// A non-nil error returned from f will halt the iteration.
99606// The provided context supersedes any context provided to the Context method.
99607func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
99608	c.ctx_ = ctx
99609	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99610	for {
99611		x, err := c.Do()
99612		if err != nil {
99613			return err
99614		}
99615		if err := f(x); err != nil {
99616			return err
99617		}
99618		if x.NextPageToken == "" {
99619			return nil
99620		}
99621		c.PageToken(x.NextPageToken)
99622	}
99623}
99624
99625// method id "compute.licenses.setIamPolicy":
99626
99627type LicensesSetIamPolicyCall struct {
99628	s                      *Service
99629	project                string
99630	resource               string
99631	globalsetpolicyrequest *GlobalSetPolicyRequest
99632	urlParams_             gensupport.URLParams
99633	ctx_                   context.Context
99634	header_                http.Header
99635}
99636
99637// SetIamPolicy: Sets the access control policy on the specified
99638// resource. Replaces any existing policy. *Caution* This resource is
99639// intended for use only by third-party partners who are creating Cloud
99640// Marketplace images.
99641//
99642// - project: Project ID for this request.
99643// - resource: Name or id of the resource for this request.
99644func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
99645	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99646	c.project = project
99647	c.resource = resource
99648	c.globalsetpolicyrequest = globalsetpolicyrequest
99649	return c
99650}
99651
99652// Fields allows partial responses to be retrieved. See
99653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99654// for more information.
99655func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
99656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99657	return c
99658}
99659
99660// Context sets the context to be used in this call's Do method. Any
99661// pending HTTP request will be aborted if the provided context is
99662// canceled.
99663func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
99664	c.ctx_ = ctx
99665	return c
99666}
99667
99668// Header returns an http.Header that can be modified by the caller to
99669// add HTTP headers to the request.
99670func (c *LicensesSetIamPolicyCall) Header() http.Header {
99671	if c.header_ == nil {
99672		c.header_ = make(http.Header)
99673	}
99674	return c.header_
99675}
99676
99677func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99678	reqHeaders := make(http.Header)
99679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
99680	for k, v := range c.header_ {
99681		reqHeaders[k] = v
99682	}
99683	reqHeaders.Set("User-Agent", c.s.userAgent())
99684	var body io.Reader = nil
99685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
99686	if err != nil {
99687		return nil, err
99688	}
99689	reqHeaders.Set("Content-Type", "application/json")
99690	c.urlParams_.Set("alt", alt)
99691	c.urlParams_.Set("prettyPrint", "false")
99692	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy")
99693	urls += "?" + c.urlParams_.Encode()
99694	req, err := http.NewRequest("POST", urls, body)
99695	if err != nil {
99696		return nil, err
99697	}
99698	req.Header = reqHeaders
99699	googleapi.Expand(req.URL, map[string]string{
99700		"project":  c.project,
99701		"resource": c.resource,
99702	})
99703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99704}
99705
99706// Do executes the "compute.licenses.setIamPolicy" call.
99707// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99708// code is an error. Response headers are in either
99709// *Policy.ServerResponse.Header or (if a response was returned at all)
99710// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99711// check whether the returned error was because http.StatusNotModified
99712// was returned.
99713func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99714	gensupport.SetOptions(c.urlParams_, opts...)
99715	res, err := c.doRequest("json")
99716	if res != nil && res.StatusCode == http.StatusNotModified {
99717		if res.Body != nil {
99718			res.Body.Close()
99719		}
99720		return nil, &googleapi.Error{
99721			Code:   res.StatusCode,
99722			Header: res.Header,
99723		}
99724	}
99725	if err != nil {
99726		return nil, err
99727	}
99728	defer googleapi.CloseBody(res)
99729	if err := googleapi.CheckResponse(res); err != nil {
99730		return nil, err
99731	}
99732	ret := &Policy{
99733		ServerResponse: googleapi.ServerResponse{
99734			Header:         res.Header,
99735			HTTPStatusCode: res.StatusCode,
99736		},
99737	}
99738	target := &ret
99739	if err := gensupport.DecodeResponse(target, res); err != nil {
99740		return nil, err
99741	}
99742	return ret, nil
99743	// {
99744	//   "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. ",
99745	//   "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy",
99746	//   "httpMethod": "POST",
99747	//   "id": "compute.licenses.setIamPolicy",
99748	//   "parameterOrder": [
99749	//     "project",
99750	//     "resource"
99751	//   ],
99752	//   "parameters": {
99753	//     "project": {
99754	//       "description": "Project ID for this request.",
99755	//       "location": "path",
99756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99757	//       "required": true,
99758	//       "type": "string"
99759	//     },
99760	//     "resource": {
99761	//       "description": "Name or id of the resource for this request.",
99762	//       "location": "path",
99763	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99764	//       "required": true,
99765	//       "type": "string"
99766	//     }
99767	//   },
99768	//   "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
99769	//   "request": {
99770	//     "$ref": "GlobalSetPolicyRequest"
99771	//   },
99772	//   "response": {
99773	//     "$ref": "Policy"
99774	//   },
99775	//   "scopes": [
99776	//     "https://www.googleapis.com/auth/cloud-platform",
99777	//     "https://www.googleapis.com/auth/compute"
99778	//   ]
99779	// }
99780
99781}
99782
99783// method id "compute.licenses.testIamPermissions":
99784
99785type LicensesTestIamPermissionsCall struct {
99786	s                      *Service
99787	project                string
99788	resource               string
99789	testpermissionsrequest *TestPermissionsRequest
99790	urlParams_             gensupport.URLParams
99791	ctx_                   context.Context
99792	header_                http.Header
99793}
99794
99795// TestIamPermissions: Returns permissions that a caller has on the
99796// specified resource. *Caution* This resource is intended for use only
99797// by third-party partners who are creating Cloud Marketplace images.
99798//
99799// - project: Project ID for this request.
99800// - resource: Name or id of the resource for this request.
99801func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
99802	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99803	c.project = project
99804	c.resource = resource
99805	c.testpermissionsrequest = testpermissionsrequest
99806	return c
99807}
99808
99809// Fields allows partial responses to be retrieved. See
99810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99811// for more information.
99812func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
99813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99814	return c
99815}
99816
99817// Context sets the context to be used in this call's Do method. Any
99818// pending HTTP request will be aborted if the provided context is
99819// canceled.
99820func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
99821	c.ctx_ = ctx
99822	return c
99823}
99824
99825// Header returns an http.Header that can be modified by the caller to
99826// add HTTP headers to the request.
99827func (c *LicensesTestIamPermissionsCall) Header() http.Header {
99828	if c.header_ == nil {
99829		c.header_ = make(http.Header)
99830	}
99831	return c.header_
99832}
99833
99834func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99835	reqHeaders := make(http.Header)
99836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
99837	for k, v := range c.header_ {
99838		reqHeaders[k] = v
99839	}
99840	reqHeaders.Set("User-Agent", c.s.userAgent())
99841	var body io.Reader = nil
99842	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99843	if err != nil {
99844		return nil, err
99845	}
99846	reqHeaders.Set("Content-Type", "application/json")
99847	c.urlParams_.Set("alt", alt)
99848	c.urlParams_.Set("prettyPrint", "false")
99849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions")
99850	urls += "?" + c.urlParams_.Encode()
99851	req, err := http.NewRequest("POST", urls, body)
99852	if err != nil {
99853		return nil, err
99854	}
99855	req.Header = reqHeaders
99856	googleapi.Expand(req.URL, map[string]string{
99857		"project":  c.project,
99858		"resource": c.resource,
99859	})
99860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99861}
99862
99863// Do executes the "compute.licenses.testIamPermissions" call.
99864// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99865// non-2xx status code is an error. Response headers are in either
99866// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99867// returned at all) in error.(*googleapi.Error).Header. Use
99868// googleapi.IsNotModified to check whether the returned error was
99869// because http.StatusNotModified was returned.
99870func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99871	gensupport.SetOptions(c.urlParams_, opts...)
99872	res, err := c.doRequest("json")
99873	if res != nil && res.StatusCode == http.StatusNotModified {
99874		if res.Body != nil {
99875			res.Body.Close()
99876		}
99877		return nil, &googleapi.Error{
99878			Code:   res.StatusCode,
99879			Header: res.Header,
99880		}
99881	}
99882	if err != nil {
99883		return nil, err
99884	}
99885	defer googleapi.CloseBody(res)
99886	if err := googleapi.CheckResponse(res); err != nil {
99887		return nil, err
99888	}
99889	ret := &TestPermissionsResponse{
99890		ServerResponse: googleapi.ServerResponse{
99891			Header:         res.Header,
99892			HTTPStatusCode: res.StatusCode,
99893		},
99894	}
99895	target := &ret
99896	if err := gensupport.DecodeResponse(target, res); err != nil {
99897		return nil, err
99898	}
99899	return ret, nil
99900	// {
99901	//   "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. ",
99902	//   "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions",
99903	//   "httpMethod": "POST",
99904	//   "id": "compute.licenses.testIamPermissions",
99905	//   "parameterOrder": [
99906	//     "project",
99907	//     "resource"
99908	//   ],
99909	//   "parameters": {
99910	//     "project": {
99911	//       "description": "Project ID for this request.",
99912	//       "location": "path",
99913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99914	//       "required": true,
99915	//       "type": "string"
99916	//     },
99917	//     "resource": {
99918	//       "description": "Name or id of the resource for this request.",
99919	//       "location": "path",
99920	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99921	//       "required": true,
99922	//       "type": "string"
99923	//     }
99924	//   },
99925	//   "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
99926	//   "request": {
99927	//     "$ref": "TestPermissionsRequest"
99928	//   },
99929	//   "response": {
99930	//     "$ref": "TestPermissionsResponse"
99931	//   },
99932	//   "scopes": [
99933	//     "https://www.googleapis.com/auth/cloud-platform",
99934	//     "https://www.googleapis.com/auth/compute",
99935	//     "https://www.googleapis.com/auth/compute.readonly"
99936	//   ]
99937	// }
99938
99939}
99940
99941// method id "compute.machineTypes.aggregatedList":
99942
99943type MachineTypesAggregatedListCall struct {
99944	s            *Service
99945	project      string
99946	urlParams_   gensupport.URLParams
99947	ifNoneMatch_ string
99948	ctx_         context.Context
99949	header_      http.Header
99950}
99951
99952// AggregatedList: Retrieves an aggregated list of machine types.
99953//
99954// - project: Project ID for this request.
99955func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
99956	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99957	c.project = project
99958	return c
99959}
99960
99961// Filter sets the optional parameter "filter": A filter expression that
99962// filters resources listed in the response. The expression must specify
99963// the field name, a comparison operator, and the value that you want to
99964// use for filtering. The value must be a string, a number, or a
99965// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99966// `<`. For example, if you are filtering Compute Engine instances, you
99967// can exclude instances named `example-instance` by specifying `name !=
99968// example-instance`. You can also filter nested fields. For example,
99969// you could specify `scheduling.automaticRestart = false` to include
99970// instances only if they are not scheduled for automatic restarts. You
99971// can use filtering on nested fields to filter based on resource
99972// labels. To filter on multiple expressions, provide each separate
99973// expression within parentheses. For example: ```
99974// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
99975// ``` By default, each expression is an `AND` expression. However, you
99976// can include `AND` and `OR` expressions explicitly. For example: ```
99977// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
99978// AND (scheduling.automaticRestart = true) ```
99979func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
99980	c.urlParams_.Set("filter", filter)
99981	return c
99982}
99983
99984// IncludeAllScopes sets the optional parameter "includeAllScopes":
99985// Indicates whether every visible scope for each scope type (zone,
99986// region, global) should be included in the response. For new resource
99987// types added after this field, the flag has no effect as new resource
99988// types will always include every visible scope for each scope type in
99989// response. For resource types which predate this field, if this flag
99990// is omitted or false, only scopes of the scope types where the
99991// resource type is expected to be found will be included.
99992func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
99993	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
99994	return c
99995}
99996
99997// MaxResults sets the optional parameter "maxResults": The maximum
99998// number of results per page that should be returned. If the number of
99999// available results is larger than `maxResults`, Compute Engine returns
100000// a `nextPageToken` that can be used to get the next page of results in
100001// subsequent list requests. Acceptable values are `0` to `500`,
100002// inclusive. (Default: `500`)
100003func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
100004	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100005	return c
100006}
100007
100008// OrderBy sets the optional parameter "orderBy": Sorts list results by
100009// a certain order. By default, results are returned in alphanumerical
100010// order based on the resource name. You can also sort results in
100011// descending order based on the creation timestamp using
100012// `orderBy="creationTimestamp desc". This sorts results based on the
100013// `creationTimestamp` field in reverse chronological order (newest
100014// result first). Use this to sort resources like operations so that the
100015// newest operation is returned first. Currently, only sorting by `name`
100016// or `creationTimestamp desc` is supported.
100017func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
100018	c.urlParams_.Set("orderBy", orderBy)
100019	return c
100020}
100021
100022// PageToken sets the optional parameter "pageToken": Specifies a page
100023// token to use. Set `pageToken` to the `nextPageToken` returned by a
100024// previous list request to get the next page of results.
100025func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
100026	c.urlParams_.Set("pageToken", pageToken)
100027	return c
100028}
100029
100030// ReturnPartialSuccess sets the optional parameter
100031// "returnPartialSuccess": Opt-in for partial success behavior which
100032// provides partial results in case of failure. The default value is
100033// false.
100034func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
100035	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100036	return c
100037}
100038
100039// Fields allows partial responses to be retrieved. See
100040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100041// for more information.
100042func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
100043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100044	return c
100045}
100046
100047// IfNoneMatch sets the optional parameter which makes the operation
100048// fail if the object's ETag matches the given value. This is useful for
100049// getting updates only after the object has changed since the last
100050// request. Use googleapi.IsNotModified to check whether the response
100051// error from Do is the result of In-None-Match.
100052func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
100053	c.ifNoneMatch_ = entityTag
100054	return c
100055}
100056
100057// Context sets the context to be used in this call's Do method. Any
100058// pending HTTP request will be aborted if the provided context is
100059// canceled.
100060func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
100061	c.ctx_ = ctx
100062	return c
100063}
100064
100065// Header returns an http.Header that can be modified by the caller to
100066// add HTTP headers to the request.
100067func (c *MachineTypesAggregatedListCall) Header() http.Header {
100068	if c.header_ == nil {
100069		c.header_ = make(http.Header)
100070	}
100071	return c.header_
100072}
100073
100074func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100075	reqHeaders := make(http.Header)
100076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
100077	for k, v := range c.header_ {
100078		reqHeaders[k] = v
100079	}
100080	reqHeaders.Set("User-Agent", c.s.userAgent())
100081	if c.ifNoneMatch_ != "" {
100082		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100083	}
100084	var body io.Reader = nil
100085	c.urlParams_.Set("alt", alt)
100086	c.urlParams_.Set("prettyPrint", "false")
100087	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes")
100088	urls += "?" + c.urlParams_.Encode()
100089	req, err := http.NewRequest("GET", urls, body)
100090	if err != nil {
100091		return nil, err
100092	}
100093	req.Header = reqHeaders
100094	googleapi.Expand(req.URL, map[string]string{
100095		"project": c.project,
100096	})
100097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100098}
100099
100100// Do executes the "compute.machineTypes.aggregatedList" call.
100101// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
100102// Any non-2xx status code is an error. Response headers are in either
100103// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
100104// was returned at all) in error.(*googleapi.Error).Header. Use
100105// googleapi.IsNotModified to check whether the returned error was
100106// because http.StatusNotModified was returned.
100107func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
100108	gensupport.SetOptions(c.urlParams_, opts...)
100109	res, err := c.doRequest("json")
100110	if res != nil && res.StatusCode == http.StatusNotModified {
100111		if res.Body != nil {
100112			res.Body.Close()
100113		}
100114		return nil, &googleapi.Error{
100115			Code:   res.StatusCode,
100116			Header: res.Header,
100117		}
100118	}
100119	if err != nil {
100120		return nil, err
100121	}
100122	defer googleapi.CloseBody(res)
100123	if err := googleapi.CheckResponse(res); err != nil {
100124		return nil, err
100125	}
100126	ret := &MachineTypeAggregatedList{
100127		ServerResponse: googleapi.ServerResponse{
100128			Header:         res.Header,
100129			HTTPStatusCode: res.StatusCode,
100130		},
100131	}
100132	target := &ret
100133	if err := gensupport.DecodeResponse(target, res); err != nil {
100134		return nil, err
100135	}
100136	return ret, nil
100137	// {
100138	//   "description": "Retrieves an aggregated list of machine types.",
100139	//   "flatPath": "projects/{project}/aggregated/machineTypes",
100140	//   "httpMethod": "GET",
100141	//   "id": "compute.machineTypes.aggregatedList",
100142	//   "parameterOrder": [
100143	//     "project"
100144	//   ],
100145	//   "parameters": {
100146	//     "filter": {
100147	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100148	//       "location": "query",
100149	//       "type": "string"
100150	//     },
100151	//     "includeAllScopes": {
100152	//       "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.",
100153	//       "location": "query",
100154	//       "type": "boolean"
100155	//     },
100156	//     "maxResults": {
100157	//       "default": "500",
100158	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100159	//       "format": "uint32",
100160	//       "location": "query",
100161	//       "minimum": "0",
100162	//       "type": "integer"
100163	//     },
100164	//     "orderBy": {
100165	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
100166	//       "location": "query",
100167	//       "type": "string"
100168	//     },
100169	//     "pageToken": {
100170	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100171	//       "location": "query",
100172	//       "type": "string"
100173	//     },
100174	//     "project": {
100175	//       "description": "Project ID for this request.",
100176	//       "location": "path",
100177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100178	//       "required": true,
100179	//       "type": "string"
100180	//     },
100181	//     "returnPartialSuccess": {
100182	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100183	//       "location": "query",
100184	//       "type": "boolean"
100185	//     }
100186	//   },
100187	//   "path": "projects/{project}/aggregated/machineTypes",
100188	//   "response": {
100189	//     "$ref": "MachineTypeAggregatedList"
100190	//   },
100191	//   "scopes": [
100192	//     "https://www.googleapis.com/auth/cloud-platform",
100193	//     "https://www.googleapis.com/auth/compute",
100194	//     "https://www.googleapis.com/auth/compute.readonly"
100195	//   ]
100196	// }
100197
100198}
100199
100200// Pages invokes f for each page of results.
100201// A non-nil error returned from f will halt the iteration.
100202// The provided context supersedes any context provided to the Context method.
100203func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
100204	c.ctx_ = ctx
100205	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100206	for {
100207		x, err := c.Do()
100208		if err != nil {
100209			return err
100210		}
100211		if err := f(x); err != nil {
100212			return err
100213		}
100214		if x.NextPageToken == "" {
100215			return nil
100216		}
100217		c.PageToken(x.NextPageToken)
100218	}
100219}
100220
100221// method id "compute.machineTypes.get":
100222
100223type MachineTypesGetCall struct {
100224	s            *Service
100225	project      string
100226	zone         string
100227	machineType  string
100228	urlParams_   gensupport.URLParams
100229	ifNoneMatch_ string
100230	ctx_         context.Context
100231	header_      http.Header
100232}
100233
100234// Get: Returns the specified machine type. Gets a list of available
100235// machine types by making a list() request.
100236//
100237// - machineType: Name of the machine type to return.
100238// - project: Project ID for this request.
100239// - zone: The name of the zone for this request.
100240func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
100241	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100242	c.project = project
100243	c.zone = zone
100244	c.machineType = machineType
100245	return c
100246}
100247
100248// Fields allows partial responses to be retrieved. See
100249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100250// for more information.
100251func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
100252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100253	return c
100254}
100255
100256// IfNoneMatch sets the optional parameter which makes the operation
100257// fail if the object's ETag matches the given value. This is useful for
100258// getting updates only after the object has changed since the last
100259// request. Use googleapi.IsNotModified to check whether the response
100260// error from Do is the result of In-None-Match.
100261func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
100262	c.ifNoneMatch_ = entityTag
100263	return c
100264}
100265
100266// Context sets the context to be used in this call's Do method. Any
100267// pending HTTP request will be aborted if the provided context is
100268// canceled.
100269func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
100270	c.ctx_ = ctx
100271	return c
100272}
100273
100274// Header returns an http.Header that can be modified by the caller to
100275// add HTTP headers to the request.
100276func (c *MachineTypesGetCall) Header() http.Header {
100277	if c.header_ == nil {
100278		c.header_ = make(http.Header)
100279	}
100280	return c.header_
100281}
100282
100283func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
100284	reqHeaders := make(http.Header)
100285	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
100286	for k, v := range c.header_ {
100287		reqHeaders[k] = v
100288	}
100289	reqHeaders.Set("User-Agent", c.s.userAgent())
100290	if c.ifNoneMatch_ != "" {
100291		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100292	}
100293	var body io.Reader = nil
100294	c.urlParams_.Set("alt", alt)
100295	c.urlParams_.Set("prettyPrint", "false")
100296	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}")
100297	urls += "?" + c.urlParams_.Encode()
100298	req, err := http.NewRequest("GET", urls, body)
100299	if err != nil {
100300		return nil, err
100301	}
100302	req.Header = reqHeaders
100303	googleapi.Expand(req.URL, map[string]string{
100304		"project":     c.project,
100305		"zone":        c.zone,
100306		"machineType": c.machineType,
100307	})
100308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100309}
100310
100311// Do executes the "compute.machineTypes.get" call.
100312// Exactly one of *MachineType or error will be non-nil. Any non-2xx
100313// status code is an error. Response headers are in either
100314// *MachineType.ServerResponse.Header or (if a response was returned at
100315// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100316// to check whether the returned error was because
100317// http.StatusNotModified was returned.
100318func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
100319	gensupport.SetOptions(c.urlParams_, opts...)
100320	res, err := c.doRequest("json")
100321	if res != nil && res.StatusCode == http.StatusNotModified {
100322		if res.Body != nil {
100323			res.Body.Close()
100324		}
100325		return nil, &googleapi.Error{
100326			Code:   res.StatusCode,
100327			Header: res.Header,
100328		}
100329	}
100330	if err != nil {
100331		return nil, err
100332	}
100333	defer googleapi.CloseBody(res)
100334	if err := googleapi.CheckResponse(res); err != nil {
100335		return nil, err
100336	}
100337	ret := &MachineType{
100338		ServerResponse: googleapi.ServerResponse{
100339			Header:         res.Header,
100340			HTTPStatusCode: res.StatusCode,
100341		},
100342	}
100343	target := &ret
100344	if err := gensupport.DecodeResponse(target, res); err != nil {
100345		return nil, err
100346	}
100347	return ret, nil
100348	// {
100349	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
100350	//   "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
100351	//   "httpMethod": "GET",
100352	//   "id": "compute.machineTypes.get",
100353	//   "parameterOrder": [
100354	//     "project",
100355	//     "zone",
100356	//     "machineType"
100357	//   ],
100358	//   "parameters": {
100359	//     "machineType": {
100360	//       "description": "Name of the machine type to return.",
100361	//       "location": "path",
100362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100363	//       "required": true,
100364	//       "type": "string"
100365	//     },
100366	//     "project": {
100367	//       "description": "Project ID for this request.",
100368	//       "location": "path",
100369	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100370	//       "required": true,
100371	//       "type": "string"
100372	//     },
100373	//     "zone": {
100374	//       "description": "The name of the zone for this request.",
100375	//       "location": "path",
100376	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100377	//       "required": true,
100378	//       "type": "string"
100379	//     }
100380	//   },
100381	//   "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
100382	//   "response": {
100383	//     "$ref": "MachineType"
100384	//   },
100385	//   "scopes": [
100386	//     "https://www.googleapis.com/auth/cloud-platform",
100387	//     "https://www.googleapis.com/auth/compute",
100388	//     "https://www.googleapis.com/auth/compute.readonly"
100389	//   ]
100390	// }
100391
100392}
100393
100394// method id "compute.machineTypes.list":
100395
100396type MachineTypesListCall struct {
100397	s            *Service
100398	project      string
100399	zone         string
100400	urlParams_   gensupport.URLParams
100401	ifNoneMatch_ string
100402	ctx_         context.Context
100403	header_      http.Header
100404}
100405
100406// List: Retrieves a list of machine types available to the specified
100407// project.
100408//
100409// - project: Project ID for this request.
100410// - zone: The name of the zone for this request.
100411func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
100412	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100413	c.project = project
100414	c.zone = zone
100415	return c
100416}
100417
100418// Filter sets the optional parameter "filter": A filter expression that
100419// filters resources listed in the response. The expression must specify
100420// the field name, a comparison operator, and the value that you want to
100421// use for filtering. The value must be a string, a number, or a
100422// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100423// `<`. For example, if you are filtering Compute Engine instances, you
100424// can exclude instances named `example-instance` by specifying `name !=
100425// example-instance`. You can also filter nested fields. For example,
100426// you could specify `scheduling.automaticRestart = false` to include
100427// instances only if they are not scheduled for automatic restarts. You
100428// can use filtering on nested fields to filter based on resource
100429// labels. To filter on multiple expressions, provide each separate
100430// expression within parentheses. For example: ```
100431// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
100432// ``` By default, each expression is an `AND` expression. However, you
100433// can include `AND` and `OR` expressions explicitly. For example: ```
100434// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
100435// AND (scheduling.automaticRestart = true) ```
100436func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
100437	c.urlParams_.Set("filter", filter)
100438	return c
100439}
100440
100441// MaxResults sets the optional parameter "maxResults": The maximum
100442// number of results per page that should be returned. If the number of
100443// available results is larger than `maxResults`, Compute Engine returns
100444// a `nextPageToken` that can be used to get the next page of results in
100445// subsequent list requests. Acceptable values are `0` to `500`,
100446// inclusive. (Default: `500`)
100447func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
100448	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100449	return c
100450}
100451
100452// OrderBy sets the optional parameter "orderBy": Sorts list results by
100453// a certain order. By default, results are returned in alphanumerical
100454// order based on the resource name. You can also sort results in
100455// descending order based on the creation timestamp using
100456// `orderBy="creationTimestamp desc". This sorts results based on the
100457// `creationTimestamp` field in reverse chronological order (newest
100458// result first). Use this to sort resources like operations so that the
100459// newest operation is returned first. Currently, only sorting by `name`
100460// or `creationTimestamp desc` is supported.
100461func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
100462	c.urlParams_.Set("orderBy", orderBy)
100463	return c
100464}
100465
100466// PageToken sets the optional parameter "pageToken": Specifies a page
100467// token to use. Set `pageToken` to the `nextPageToken` returned by a
100468// previous list request to get the next page of results.
100469func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
100470	c.urlParams_.Set("pageToken", pageToken)
100471	return c
100472}
100473
100474// ReturnPartialSuccess sets the optional parameter
100475// "returnPartialSuccess": Opt-in for partial success behavior which
100476// provides partial results in case of failure. The default value is
100477// false.
100478func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
100479	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100480	return c
100481}
100482
100483// Fields allows partial responses to be retrieved. See
100484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100485// for more information.
100486func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
100487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100488	return c
100489}
100490
100491// IfNoneMatch sets the optional parameter which makes the operation
100492// fail if the object's ETag matches the given value. This is useful for
100493// getting updates only after the object has changed since the last
100494// request. Use googleapi.IsNotModified to check whether the response
100495// error from Do is the result of In-None-Match.
100496func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
100497	c.ifNoneMatch_ = entityTag
100498	return c
100499}
100500
100501// Context sets the context to be used in this call's Do method. Any
100502// pending HTTP request will be aborted if the provided context is
100503// canceled.
100504func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
100505	c.ctx_ = ctx
100506	return c
100507}
100508
100509// Header returns an http.Header that can be modified by the caller to
100510// add HTTP headers to the request.
100511func (c *MachineTypesListCall) Header() http.Header {
100512	if c.header_ == nil {
100513		c.header_ = make(http.Header)
100514	}
100515	return c.header_
100516}
100517
100518func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
100519	reqHeaders := make(http.Header)
100520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
100521	for k, v := range c.header_ {
100522		reqHeaders[k] = v
100523	}
100524	reqHeaders.Set("User-Agent", c.s.userAgent())
100525	if c.ifNoneMatch_ != "" {
100526		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100527	}
100528	var body io.Reader = nil
100529	c.urlParams_.Set("alt", alt)
100530	c.urlParams_.Set("prettyPrint", "false")
100531	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes")
100532	urls += "?" + c.urlParams_.Encode()
100533	req, err := http.NewRequest("GET", urls, body)
100534	if err != nil {
100535		return nil, err
100536	}
100537	req.Header = reqHeaders
100538	googleapi.Expand(req.URL, map[string]string{
100539		"project": c.project,
100540		"zone":    c.zone,
100541	})
100542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100543}
100544
100545// Do executes the "compute.machineTypes.list" call.
100546// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
100547// status code is an error. Response headers are in either
100548// *MachineTypeList.ServerResponse.Header or (if a response was returned
100549// at all) in error.(*googleapi.Error).Header. Use
100550// googleapi.IsNotModified to check whether the returned error was
100551// because http.StatusNotModified was returned.
100552func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
100553	gensupport.SetOptions(c.urlParams_, opts...)
100554	res, err := c.doRequest("json")
100555	if res != nil && res.StatusCode == http.StatusNotModified {
100556		if res.Body != nil {
100557			res.Body.Close()
100558		}
100559		return nil, &googleapi.Error{
100560			Code:   res.StatusCode,
100561			Header: res.Header,
100562		}
100563	}
100564	if err != nil {
100565		return nil, err
100566	}
100567	defer googleapi.CloseBody(res)
100568	if err := googleapi.CheckResponse(res); err != nil {
100569		return nil, err
100570	}
100571	ret := &MachineTypeList{
100572		ServerResponse: googleapi.ServerResponse{
100573			Header:         res.Header,
100574			HTTPStatusCode: res.StatusCode,
100575		},
100576	}
100577	target := &ret
100578	if err := gensupport.DecodeResponse(target, res); err != nil {
100579		return nil, err
100580	}
100581	return ret, nil
100582	// {
100583	//   "description": "Retrieves a list of machine types available to the specified project.",
100584	//   "flatPath": "projects/{project}/zones/{zone}/machineTypes",
100585	//   "httpMethod": "GET",
100586	//   "id": "compute.machineTypes.list",
100587	//   "parameterOrder": [
100588	//     "project",
100589	//     "zone"
100590	//   ],
100591	//   "parameters": {
100592	//     "filter": {
100593	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100594	//       "location": "query",
100595	//       "type": "string"
100596	//     },
100597	//     "maxResults": {
100598	//       "default": "500",
100599	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100600	//       "format": "uint32",
100601	//       "location": "query",
100602	//       "minimum": "0",
100603	//       "type": "integer"
100604	//     },
100605	//     "orderBy": {
100606	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
100607	//       "location": "query",
100608	//       "type": "string"
100609	//     },
100610	//     "pageToken": {
100611	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100612	//       "location": "query",
100613	//       "type": "string"
100614	//     },
100615	//     "project": {
100616	//       "description": "Project ID for this request.",
100617	//       "location": "path",
100618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100619	//       "required": true,
100620	//       "type": "string"
100621	//     },
100622	//     "returnPartialSuccess": {
100623	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100624	//       "location": "query",
100625	//       "type": "boolean"
100626	//     },
100627	//     "zone": {
100628	//       "description": "The name of the zone for this request.",
100629	//       "location": "path",
100630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100631	//       "required": true,
100632	//       "type": "string"
100633	//     }
100634	//   },
100635	//   "path": "projects/{project}/zones/{zone}/machineTypes",
100636	//   "response": {
100637	//     "$ref": "MachineTypeList"
100638	//   },
100639	//   "scopes": [
100640	//     "https://www.googleapis.com/auth/cloud-platform",
100641	//     "https://www.googleapis.com/auth/compute",
100642	//     "https://www.googleapis.com/auth/compute.readonly"
100643	//   ]
100644	// }
100645
100646}
100647
100648// Pages invokes f for each page of results.
100649// A non-nil error returned from f will halt the iteration.
100650// The provided context supersedes any context provided to the Context method.
100651func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
100652	c.ctx_ = ctx
100653	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100654	for {
100655		x, err := c.Do()
100656		if err != nil {
100657			return err
100658		}
100659		if err := f(x); err != nil {
100660			return err
100661		}
100662		if x.NextPageToken == "" {
100663			return nil
100664		}
100665		c.PageToken(x.NextPageToken)
100666	}
100667}
100668
100669// method id "compute.networkEndpointGroups.aggregatedList":
100670
100671type NetworkEndpointGroupsAggregatedListCall struct {
100672	s            *Service
100673	project      string
100674	urlParams_   gensupport.URLParams
100675	ifNoneMatch_ string
100676	ctx_         context.Context
100677	header_      http.Header
100678}
100679
100680// AggregatedList: Retrieves the list of network endpoint groups and
100681// sorts them by zone.
100682//
100683// - project: Project ID for this request.
100684func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
100685	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100686	c.project = project
100687	return c
100688}
100689
100690// Filter sets the optional parameter "filter": A filter expression that
100691// filters resources listed in the response. The expression must specify
100692// the field name, a comparison operator, and the value that you want to
100693// use for filtering. The value must be a string, a number, or a
100694// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100695// `<`. For example, if you are filtering Compute Engine instances, you
100696// can exclude instances named `example-instance` by specifying `name !=
100697// example-instance`. You can also filter nested fields. For example,
100698// you could specify `scheduling.automaticRestart = false` to include
100699// instances only if they are not scheduled for automatic restarts. You
100700// can use filtering on nested fields to filter based on resource
100701// labels. To filter on multiple expressions, provide each separate
100702// expression within parentheses. For example: ```
100703// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
100704// ``` By default, each expression is an `AND` expression. However, you
100705// can include `AND` and `OR` expressions explicitly. For example: ```
100706// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
100707// AND (scheduling.automaticRestart = true) ```
100708func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
100709	c.urlParams_.Set("filter", filter)
100710	return c
100711}
100712
100713// IncludeAllScopes sets the optional parameter "includeAllScopes":
100714// Indicates whether every visible scope for each scope type (zone,
100715// region, global) should be included in the response. For new resource
100716// types added after this field, the flag has no effect as new resource
100717// types will always include every visible scope for each scope type in
100718// response. For resource types which predate this field, if this flag
100719// is omitted or false, only scopes of the scope types where the
100720// resource type is expected to be found will be included.
100721func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
100722	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
100723	return c
100724}
100725
100726// MaxResults sets the optional parameter "maxResults": The maximum
100727// number of results per page that should be returned. If the number of
100728// available results is larger than `maxResults`, Compute Engine returns
100729// a `nextPageToken` that can be used to get the next page of results in
100730// subsequent list requests. Acceptable values are `0` to `500`,
100731// inclusive. (Default: `500`)
100732func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
100733	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100734	return c
100735}
100736
100737// OrderBy sets the optional parameter "orderBy": Sorts list results by
100738// a certain order. By default, results are returned in alphanumerical
100739// order based on the resource name. You can also sort results in
100740// descending order based on the creation timestamp using
100741// `orderBy="creationTimestamp desc". This sorts results based on the
100742// `creationTimestamp` field in reverse chronological order (newest
100743// result first). Use this to sort resources like operations so that the
100744// newest operation is returned first. Currently, only sorting by `name`
100745// or `creationTimestamp desc` is supported.
100746func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
100747	c.urlParams_.Set("orderBy", orderBy)
100748	return c
100749}
100750
100751// PageToken sets the optional parameter "pageToken": Specifies a page
100752// token to use. Set `pageToken` to the `nextPageToken` returned by a
100753// previous list request to get the next page of results.
100754func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
100755	c.urlParams_.Set("pageToken", pageToken)
100756	return c
100757}
100758
100759// ReturnPartialSuccess sets the optional parameter
100760// "returnPartialSuccess": Opt-in for partial success behavior which
100761// provides partial results in case of failure. The default value is
100762// false.
100763func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
100764	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100765	return c
100766}
100767
100768// Fields allows partial responses to be retrieved. See
100769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100770// for more information.
100771func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
100772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100773	return c
100774}
100775
100776// IfNoneMatch sets the optional parameter which makes the operation
100777// fail if the object's ETag matches the given value. This is useful for
100778// getting updates only after the object has changed since the last
100779// request. Use googleapi.IsNotModified to check whether the response
100780// error from Do is the result of In-None-Match.
100781func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
100782	c.ifNoneMatch_ = entityTag
100783	return c
100784}
100785
100786// Context sets the context to be used in this call's Do method. Any
100787// pending HTTP request will be aborted if the provided context is
100788// canceled.
100789func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
100790	c.ctx_ = ctx
100791	return c
100792}
100793
100794// Header returns an http.Header that can be modified by the caller to
100795// add HTTP headers to the request.
100796func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
100797	if c.header_ == nil {
100798		c.header_ = make(http.Header)
100799	}
100800	return c.header_
100801}
100802
100803func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100804	reqHeaders := make(http.Header)
100805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
100806	for k, v := range c.header_ {
100807		reqHeaders[k] = v
100808	}
100809	reqHeaders.Set("User-Agent", c.s.userAgent())
100810	if c.ifNoneMatch_ != "" {
100811		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100812	}
100813	var body io.Reader = nil
100814	c.urlParams_.Set("alt", alt)
100815	c.urlParams_.Set("prettyPrint", "false")
100816	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups")
100817	urls += "?" + c.urlParams_.Encode()
100818	req, err := http.NewRequest("GET", urls, body)
100819	if err != nil {
100820		return nil, err
100821	}
100822	req.Header = reqHeaders
100823	googleapi.Expand(req.URL, map[string]string{
100824		"project": c.project,
100825	})
100826	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100827}
100828
100829// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
100830// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
100831// non-nil. Any non-2xx status code is an error. Response headers are in
100832// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
100833// (if a response was returned at all) in
100834// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
100835// whether the returned error was because http.StatusNotModified was
100836// returned.
100837func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
100838	gensupport.SetOptions(c.urlParams_, opts...)
100839	res, err := c.doRequest("json")
100840	if res != nil && res.StatusCode == http.StatusNotModified {
100841		if res.Body != nil {
100842			res.Body.Close()
100843		}
100844		return nil, &googleapi.Error{
100845			Code:   res.StatusCode,
100846			Header: res.Header,
100847		}
100848	}
100849	if err != nil {
100850		return nil, err
100851	}
100852	defer googleapi.CloseBody(res)
100853	if err := googleapi.CheckResponse(res); err != nil {
100854		return nil, err
100855	}
100856	ret := &NetworkEndpointGroupAggregatedList{
100857		ServerResponse: googleapi.ServerResponse{
100858			Header:         res.Header,
100859			HTTPStatusCode: res.StatusCode,
100860		},
100861	}
100862	target := &ret
100863	if err := gensupport.DecodeResponse(target, res); err != nil {
100864		return nil, err
100865	}
100866	return ret, nil
100867	// {
100868	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
100869	//   "flatPath": "projects/{project}/aggregated/networkEndpointGroups",
100870	//   "httpMethod": "GET",
100871	//   "id": "compute.networkEndpointGroups.aggregatedList",
100872	//   "parameterOrder": [
100873	//     "project"
100874	//   ],
100875	//   "parameters": {
100876	//     "filter": {
100877	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100878	//       "location": "query",
100879	//       "type": "string"
100880	//     },
100881	//     "includeAllScopes": {
100882	//       "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.",
100883	//       "location": "query",
100884	//       "type": "boolean"
100885	//     },
100886	//     "maxResults": {
100887	//       "default": "500",
100888	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100889	//       "format": "uint32",
100890	//       "location": "query",
100891	//       "minimum": "0",
100892	//       "type": "integer"
100893	//     },
100894	//     "orderBy": {
100895	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
100896	//       "location": "query",
100897	//       "type": "string"
100898	//     },
100899	//     "pageToken": {
100900	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100901	//       "location": "query",
100902	//       "type": "string"
100903	//     },
100904	//     "project": {
100905	//       "description": "Project ID for this request.",
100906	//       "location": "path",
100907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100908	//       "required": true,
100909	//       "type": "string"
100910	//     },
100911	//     "returnPartialSuccess": {
100912	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100913	//       "location": "query",
100914	//       "type": "boolean"
100915	//     }
100916	//   },
100917	//   "path": "projects/{project}/aggregated/networkEndpointGroups",
100918	//   "response": {
100919	//     "$ref": "NetworkEndpointGroupAggregatedList"
100920	//   },
100921	//   "scopes": [
100922	//     "https://www.googleapis.com/auth/cloud-platform",
100923	//     "https://www.googleapis.com/auth/compute",
100924	//     "https://www.googleapis.com/auth/compute.readonly"
100925	//   ]
100926	// }
100927
100928}
100929
100930// Pages invokes f for each page of results.
100931// A non-nil error returned from f will halt the iteration.
100932// The provided context supersedes any context provided to the Context method.
100933func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
100934	c.ctx_ = ctx
100935	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100936	for {
100937		x, err := c.Do()
100938		if err != nil {
100939			return err
100940		}
100941		if err := f(x); err != nil {
100942			return err
100943		}
100944		if x.NextPageToken == "" {
100945			return nil
100946		}
100947		c.PageToken(x.NextPageToken)
100948	}
100949}
100950
100951// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
100952
100953type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
100954	s                                           *Service
100955	project                                     string
100956	zone                                        string
100957	networkEndpointGroup                        string
100958	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
100959	urlParams_                                  gensupport.URLParams
100960	ctx_                                        context.Context
100961	header_                                     http.Header
100962}
100963
100964// AttachNetworkEndpoints: Attach a list of network endpoints to the
100965// specified network endpoint group.
100966//
100967// - networkEndpointGroup: The name of the network endpoint group where
100968//   you are attaching network endpoints to. It should comply with
100969//   RFC1035.
100970// - project: Project ID for this request.
100971// - zone: The name of the zone where the network endpoint group is
100972//   located. It should comply with RFC1035.
100973func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100974	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100975	c.project = project
100976	c.zone = zone
100977	c.networkEndpointGroup = networkEndpointGroup
100978	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
100979	return c
100980}
100981
100982// RequestId sets the optional parameter "requestId": An optional
100983// request ID to identify requests. Specify a unique request ID so that
100984// if you must retry your request, the server will know to ignore the
100985// request if it has already been completed. For example, consider a
100986// situation where you make an initial request and the request times
100987// out. If you make the request again with the same request ID, the
100988// server can check if original operation with the same request ID was
100989// received, and if so, will ignore the second request. This prevents
100990// clients from accidentally creating duplicate commitments. The request
100991// ID must be a valid UUID with the exception that zero UUID is not
100992// supported ( 00000000-0000-0000-0000-000000000000).
100993func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100994	c.urlParams_.Set("requestId", requestId)
100995	return c
100996}
100997
100998// Fields allows partial responses to be retrieved. See
100999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101000// for more information.
101001func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101003	return c
101004}
101005
101006// Context sets the context to be used in this call's Do method. Any
101007// pending HTTP request will be aborted if the provided context is
101008// canceled.
101009func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101010	c.ctx_ = ctx
101011	return c
101012}
101013
101014// Header returns an http.Header that can be modified by the caller to
101015// add HTTP headers to the request.
101016func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
101017	if c.header_ == nil {
101018		c.header_ = make(http.Header)
101019	}
101020	return c.header_
101021}
101022
101023func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101024	reqHeaders := make(http.Header)
101025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101026	for k, v := range c.header_ {
101027		reqHeaders[k] = v
101028	}
101029	reqHeaders.Set("User-Agent", c.s.userAgent())
101030	var body io.Reader = nil
101031	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
101032	if err != nil {
101033		return nil, err
101034	}
101035	reqHeaders.Set("Content-Type", "application/json")
101036	c.urlParams_.Set("alt", alt)
101037	c.urlParams_.Set("prettyPrint", "false")
101038	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
101039	urls += "?" + c.urlParams_.Encode()
101040	req, err := http.NewRequest("POST", urls, body)
101041	if err != nil {
101042		return nil, err
101043	}
101044	req.Header = reqHeaders
101045	googleapi.Expand(req.URL, map[string]string{
101046		"project":              c.project,
101047		"zone":                 c.zone,
101048		"networkEndpointGroup": c.networkEndpointGroup,
101049	})
101050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101051}
101052
101053// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
101054// Exactly one of *Operation or error will be non-nil. Any non-2xx
101055// status code is an error. Response headers are in either
101056// *Operation.ServerResponse.Header or (if a response was returned at
101057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101058// to check whether the returned error was because
101059// http.StatusNotModified was returned.
101060func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101061	gensupport.SetOptions(c.urlParams_, opts...)
101062	res, err := c.doRequest("json")
101063	if res != nil && res.StatusCode == http.StatusNotModified {
101064		if res.Body != nil {
101065			res.Body.Close()
101066		}
101067		return nil, &googleapi.Error{
101068			Code:   res.StatusCode,
101069			Header: res.Header,
101070		}
101071	}
101072	if err != nil {
101073		return nil, err
101074	}
101075	defer googleapi.CloseBody(res)
101076	if err := googleapi.CheckResponse(res); err != nil {
101077		return nil, err
101078	}
101079	ret := &Operation{
101080		ServerResponse: googleapi.ServerResponse{
101081			Header:         res.Header,
101082			HTTPStatusCode: res.StatusCode,
101083		},
101084	}
101085	target := &ret
101086	if err := gensupport.DecodeResponse(target, res); err != nil {
101087		return nil, err
101088	}
101089	return ret, nil
101090	// {
101091	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
101092	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
101093	//   "httpMethod": "POST",
101094	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
101095	//   "parameterOrder": [
101096	//     "project",
101097	//     "zone",
101098	//     "networkEndpointGroup"
101099	//   ],
101100	//   "parameters": {
101101	//     "networkEndpointGroup": {
101102	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
101103	//       "location": "path",
101104	//       "required": true,
101105	//       "type": "string"
101106	//     },
101107	//     "project": {
101108	//       "description": "Project ID for this request.",
101109	//       "location": "path",
101110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101111	//       "required": true,
101112	//       "type": "string"
101113	//     },
101114	//     "requestId": {
101115	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101116	//       "location": "query",
101117	//       "type": "string"
101118	//     },
101119	//     "zone": {
101120	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101121	//       "location": "path",
101122	//       "required": true,
101123	//       "type": "string"
101124	//     }
101125	//   },
101126	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
101127	//   "request": {
101128	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
101129	//   },
101130	//   "response": {
101131	//     "$ref": "Operation"
101132	//   },
101133	//   "scopes": [
101134	//     "https://www.googleapis.com/auth/cloud-platform",
101135	//     "https://www.googleapis.com/auth/compute"
101136	//   ]
101137	// }
101138
101139}
101140
101141// method id "compute.networkEndpointGroups.delete":
101142
101143type NetworkEndpointGroupsDeleteCall struct {
101144	s                    *Service
101145	project              string
101146	zone                 string
101147	networkEndpointGroup string
101148	urlParams_           gensupport.URLParams
101149	ctx_                 context.Context
101150	header_              http.Header
101151}
101152
101153// Delete: Deletes the specified network endpoint group. The network
101154// endpoints in the NEG and the VM instances they belong to are not
101155// terminated when the NEG is deleted. Note that the NEG cannot be
101156// deleted if there are backend services referencing it.
101157//
101158// - networkEndpointGroup: The name of the network endpoint group to
101159//   delete. It should comply with RFC1035.
101160// - project: Project ID for this request.
101161// - zone: The name of the zone where the network endpoint group is
101162//   located. It should comply with RFC1035.
101163func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
101164	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101165	c.project = project
101166	c.zone = zone
101167	c.networkEndpointGroup = networkEndpointGroup
101168	return c
101169}
101170
101171// RequestId sets the optional parameter "requestId": An optional
101172// request ID to identify requests. Specify a unique request ID so that
101173// if you must retry your request, the server will know to ignore the
101174// request if it has already been completed. For example, consider a
101175// situation where you make an initial request and the request times
101176// out. If you make the request again with the same request ID, the
101177// server can check if original operation with the same request ID was
101178// received, and if so, will ignore the second request. This prevents
101179// clients from accidentally creating duplicate commitments. The request
101180// ID must be a valid UUID with the exception that zero UUID is not
101181// supported ( 00000000-0000-0000-0000-000000000000).
101182func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
101183	c.urlParams_.Set("requestId", requestId)
101184	return c
101185}
101186
101187// Fields allows partial responses to be retrieved. See
101188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101189// for more information.
101190func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
101191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101192	return c
101193}
101194
101195// Context sets the context to be used in this call's Do method. Any
101196// pending HTTP request will be aborted if the provided context is
101197// canceled.
101198func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
101199	c.ctx_ = ctx
101200	return c
101201}
101202
101203// Header returns an http.Header that can be modified by the caller to
101204// add HTTP headers to the request.
101205func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
101206	if c.header_ == nil {
101207		c.header_ = make(http.Header)
101208	}
101209	return c.header_
101210}
101211
101212func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
101213	reqHeaders := make(http.Header)
101214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101215	for k, v := range c.header_ {
101216		reqHeaders[k] = v
101217	}
101218	reqHeaders.Set("User-Agent", c.s.userAgent())
101219	var body io.Reader = nil
101220	c.urlParams_.Set("alt", alt)
101221	c.urlParams_.Set("prettyPrint", "false")
101222	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101223	urls += "?" + c.urlParams_.Encode()
101224	req, err := http.NewRequest("DELETE", urls, body)
101225	if err != nil {
101226		return nil, err
101227	}
101228	req.Header = reqHeaders
101229	googleapi.Expand(req.URL, map[string]string{
101230		"project":              c.project,
101231		"zone":                 c.zone,
101232		"networkEndpointGroup": c.networkEndpointGroup,
101233	})
101234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101235}
101236
101237// Do executes the "compute.networkEndpointGroups.delete" call.
101238// Exactly one of *Operation or error will be non-nil. Any non-2xx
101239// status code is an error. Response headers are in either
101240// *Operation.ServerResponse.Header or (if a response was returned at
101241// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101242// to check whether the returned error was because
101243// http.StatusNotModified was returned.
101244func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101245	gensupport.SetOptions(c.urlParams_, opts...)
101246	res, err := c.doRequest("json")
101247	if res != nil && res.StatusCode == http.StatusNotModified {
101248		if res.Body != nil {
101249			res.Body.Close()
101250		}
101251		return nil, &googleapi.Error{
101252			Code:   res.StatusCode,
101253			Header: res.Header,
101254		}
101255	}
101256	if err != nil {
101257		return nil, err
101258	}
101259	defer googleapi.CloseBody(res)
101260	if err := googleapi.CheckResponse(res); err != nil {
101261		return nil, err
101262	}
101263	ret := &Operation{
101264		ServerResponse: googleapi.ServerResponse{
101265			Header:         res.Header,
101266			HTTPStatusCode: res.StatusCode,
101267		},
101268	}
101269	target := &ret
101270	if err := gensupport.DecodeResponse(target, res); err != nil {
101271		return nil, err
101272	}
101273	return ret, nil
101274	// {
101275	//   "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.",
101276	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101277	//   "httpMethod": "DELETE",
101278	//   "id": "compute.networkEndpointGroups.delete",
101279	//   "parameterOrder": [
101280	//     "project",
101281	//     "zone",
101282	//     "networkEndpointGroup"
101283	//   ],
101284	//   "parameters": {
101285	//     "networkEndpointGroup": {
101286	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
101287	//       "location": "path",
101288	//       "required": true,
101289	//       "type": "string"
101290	//     },
101291	//     "project": {
101292	//       "description": "Project ID for this request.",
101293	//       "location": "path",
101294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101295	//       "required": true,
101296	//       "type": "string"
101297	//     },
101298	//     "requestId": {
101299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101300	//       "location": "query",
101301	//       "type": "string"
101302	//     },
101303	//     "zone": {
101304	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101305	//       "location": "path",
101306	//       "required": true,
101307	//       "type": "string"
101308	//     }
101309	//   },
101310	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101311	//   "response": {
101312	//     "$ref": "Operation"
101313	//   },
101314	//   "scopes": [
101315	//     "https://www.googleapis.com/auth/cloud-platform",
101316	//     "https://www.googleapis.com/auth/compute"
101317	//   ]
101318	// }
101319
101320}
101321
101322// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
101323
101324type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
101325	s                                           *Service
101326	project                                     string
101327	zone                                        string
101328	networkEndpointGroup                        string
101329	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
101330	urlParams_                                  gensupport.URLParams
101331	ctx_                                        context.Context
101332	header_                                     http.Header
101333}
101334
101335// DetachNetworkEndpoints: Detach a list of network endpoints from the
101336// specified network endpoint group.
101337//
101338// - networkEndpointGroup: The name of the network endpoint group where
101339//   you are removing network endpoints. It should comply with RFC1035.
101340// - project: Project ID for this request.
101341// - zone: The name of the zone where the network endpoint group is
101342//   located. It should comply with RFC1035.
101343func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101344	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101345	c.project = project
101346	c.zone = zone
101347	c.networkEndpointGroup = networkEndpointGroup
101348	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
101349	return c
101350}
101351
101352// RequestId sets the optional parameter "requestId": An optional
101353// request ID to identify requests. Specify a unique request ID so that
101354// if you must retry your request, the server will know to ignore the
101355// request if it has already been completed. For example, consider a
101356// situation where you make an initial request and the request times
101357// out. If you make the request again with the same request ID, the
101358// server can check if original operation with the same request ID was
101359// received, and if so, will ignore the second request. This prevents
101360// clients from accidentally creating duplicate commitments. The request
101361// ID must be a valid UUID with the exception that zero UUID is not
101362// supported ( 00000000-0000-0000-0000-000000000000).
101363func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101364	c.urlParams_.Set("requestId", requestId)
101365	return c
101366}
101367
101368// Fields allows partial responses to be retrieved. See
101369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101370// for more information.
101371func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101373	return c
101374}
101375
101376// Context sets the context to be used in this call's Do method. Any
101377// pending HTTP request will be aborted if the provided context is
101378// canceled.
101379func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101380	c.ctx_ = ctx
101381	return c
101382}
101383
101384// Header returns an http.Header that can be modified by the caller to
101385// add HTTP headers to the request.
101386func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
101387	if c.header_ == nil {
101388		c.header_ = make(http.Header)
101389	}
101390	return c.header_
101391}
101392
101393func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101394	reqHeaders := make(http.Header)
101395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101396	for k, v := range c.header_ {
101397		reqHeaders[k] = v
101398	}
101399	reqHeaders.Set("User-Agent", c.s.userAgent())
101400	var body io.Reader = nil
101401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
101402	if err != nil {
101403		return nil, err
101404	}
101405	reqHeaders.Set("Content-Type", "application/json")
101406	c.urlParams_.Set("alt", alt)
101407	c.urlParams_.Set("prettyPrint", "false")
101408	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
101409	urls += "?" + c.urlParams_.Encode()
101410	req, err := http.NewRequest("POST", urls, body)
101411	if err != nil {
101412		return nil, err
101413	}
101414	req.Header = reqHeaders
101415	googleapi.Expand(req.URL, map[string]string{
101416		"project":              c.project,
101417		"zone":                 c.zone,
101418		"networkEndpointGroup": c.networkEndpointGroup,
101419	})
101420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101421}
101422
101423// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
101424// Exactly one of *Operation or error will be non-nil. Any non-2xx
101425// status code is an error. Response headers are in either
101426// *Operation.ServerResponse.Header or (if a response was returned at
101427// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101428// to check whether the returned error was because
101429// http.StatusNotModified was returned.
101430func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101431	gensupport.SetOptions(c.urlParams_, opts...)
101432	res, err := c.doRequest("json")
101433	if res != nil && res.StatusCode == http.StatusNotModified {
101434		if res.Body != nil {
101435			res.Body.Close()
101436		}
101437		return nil, &googleapi.Error{
101438			Code:   res.StatusCode,
101439			Header: res.Header,
101440		}
101441	}
101442	if err != nil {
101443		return nil, err
101444	}
101445	defer googleapi.CloseBody(res)
101446	if err := googleapi.CheckResponse(res); err != nil {
101447		return nil, err
101448	}
101449	ret := &Operation{
101450		ServerResponse: googleapi.ServerResponse{
101451			Header:         res.Header,
101452			HTTPStatusCode: res.StatusCode,
101453		},
101454	}
101455	target := &ret
101456	if err := gensupport.DecodeResponse(target, res); err != nil {
101457		return nil, err
101458	}
101459	return ret, nil
101460	// {
101461	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
101462	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
101463	//   "httpMethod": "POST",
101464	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
101465	//   "parameterOrder": [
101466	//     "project",
101467	//     "zone",
101468	//     "networkEndpointGroup"
101469	//   ],
101470	//   "parameters": {
101471	//     "networkEndpointGroup": {
101472	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
101473	//       "location": "path",
101474	//       "required": true,
101475	//       "type": "string"
101476	//     },
101477	//     "project": {
101478	//       "description": "Project ID for this request.",
101479	//       "location": "path",
101480	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101481	//       "required": true,
101482	//       "type": "string"
101483	//     },
101484	//     "requestId": {
101485	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101486	//       "location": "query",
101487	//       "type": "string"
101488	//     },
101489	//     "zone": {
101490	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101491	//       "location": "path",
101492	//       "required": true,
101493	//       "type": "string"
101494	//     }
101495	//   },
101496	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
101497	//   "request": {
101498	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
101499	//   },
101500	//   "response": {
101501	//     "$ref": "Operation"
101502	//   },
101503	//   "scopes": [
101504	//     "https://www.googleapis.com/auth/cloud-platform",
101505	//     "https://www.googleapis.com/auth/compute"
101506	//   ]
101507	// }
101508
101509}
101510
101511// method id "compute.networkEndpointGroups.get":
101512
101513type NetworkEndpointGroupsGetCall struct {
101514	s                    *Service
101515	project              string
101516	zone                 string
101517	networkEndpointGroup string
101518	urlParams_           gensupport.URLParams
101519	ifNoneMatch_         string
101520	ctx_                 context.Context
101521	header_              http.Header
101522}
101523
101524// Get: Returns the specified network endpoint group. Gets a list of
101525// available network endpoint groups by making a list() request.
101526//
101527// - networkEndpointGroup: The name of the network endpoint group. It
101528//   should comply with RFC1035.
101529// - project: Project ID for this request.
101530// - zone: The name of the zone where the network endpoint group is
101531//   located. It should comply with RFC1035.
101532func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
101533	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101534	c.project = project
101535	c.zone = zone
101536	c.networkEndpointGroup = networkEndpointGroup
101537	return c
101538}
101539
101540// Fields allows partial responses to be retrieved. See
101541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101542// for more information.
101543func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
101544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101545	return c
101546}
101547
101548// IfNoneMatch sets the optional parameter which makes the operation
101549// fail if the object's ETag matches the given value. This is useful for
101550// getting updates only after the object has changed since the last
101551// request. Use googleapi.IsNotModified to check whether the response
101552// error from Do is the result of In-None-Match.
101553func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
101554	c.ifNoneMatch_ = entityTag
101555	return c
101556}
101557
101558// Context sets the context to be used in this call's Do method. Any
101559// pending HTTP request will be aborted if the provided context is
101560// canceled.
101561func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
101562	c.ctx_ = ctx
101563	return c
101564}
101565
101566// Header returns an http.Header that can be modified by the caller to
101567// add HTTP headers to the request.
101568func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
101569	if c.header_ == nil {
101570		c.header_ = make(http.Header)
101571	}
101572	return c.header_
101573}
101574
101575func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
101576	reqHeaders := make(http.Header)
101577	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101578	for k, v := range c.header_ {
101579		reqHeaders[k] = v
101580	}
101581	reqHeaders.Set("User-Agent", c.s.userAgent())
101582	if c.ifNoneMatch_ != "" {
101583		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101584	}
101585	var body io.Reader = nil
101586	c.urlParams_.Set("alt", alt)
101587	c.urlParams_.Set("prettyPrint", "false")
101588	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101589	urls += "?" + c.urlParams_.Encode()
101590	req, err := http.NewRequest("GET", urls, body)
101591	if err != nil {
101592		return nil, err
101593	}
101594	req.Header = reqHeaders
101595	googleapi.Expand(req.URL, map[string]string{
101596		"project":              c.project,
101597		"zone":                 c.zone,
101598		"networkEndpointGroup": c.networkEndpointGroup,
101599	})
101600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101601}
101602
101603// Do executes the "compute.networkEndpointGroups.get" call.
101604// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
101605// non-2xx status code is an error. Response headers are in either
101606// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
101607// returned at all) in error.(*googleapi.Error).Header. Use
101608// googleapi.IsNotModified to check whether the returned error was
101609// because http.StatusNotModified was returned.
101610func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
101611	gensupport.SetOptions(c.urlParams_, opts...)
101612	res, err := c.doRequest("json")
101613	if res != nil && res.StatusCode == http.StatusNotModified {
101614		if res.Body != nil {
101615			res.Body.Close()
101616		}
101617		return nil, &googleapi.Error{
101618			Code:   res.StatusCode,
101619			Header: res.Header,
101620		}
101621	}
101622	if err != nil {
101623		return nil, err
101624	}
101625	defer googleapi.CloseBody(res)
101626	if err := googleapi.CheckResponse(res); err != nil {
101627		return nil, err
101628	}
101629	ret := &NetworkEndpointGroup{
101630		ServerResponse: googleapi.ServerResponse{
101631			Header:         res.Header,
101632			HTTPStatusCode: res.StatusCode,
101633		},
101634	}
101635	target := &ret
101636	if err := gensupport.DecodeResponse(target, res); err != nil {
101637		return nil, err
101638	}
101639	return ret, nil
101640	// {
101641	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
101642	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101643	//   "httpMethod": "GET",
101644	//   "id": "compute.networkEndpointGroups.get",
101645	//   "parameterOrder": [
101646	//     "project",
101647	//     "zone",
101648	//     "networkEndpointGroup"
101649	//   ],
101650	//   "parameters": {
101651	//     "networkEndpointGroup": {
101652	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
101653	//       "location": "path",
101654	//       "required": true,
101655	//       "type": "string"
101656	//     },
101657	//     "project": {
101658	//       "description": "Project ID for this request.",
101659	//       "location": "path",
101660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101661	//       "required": true,
101662	//       "type": "string"
101663	//     },
101664	//     "zone": {
101665	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101666	//       "location": "path",
101667	//       "required": true,
101668	//       "type": "string"
101669	//     }
101670	//   },
101671	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101672	//   "response": {
101673	//     "$ref": "NetworkEndpointGroup"
101674	//   },
101675	//   "scopes": [
101676	//     "https://www.googleapis.com/auth/cloud-platform",
101677	//     "https://www.googleapis.com/auth/compute",
101678	//     "https://www.googleapis.com/auth/compute.readonly"
101679	//   ]
101680	// }
101681
101682}
101683
101684// method id "compute.networkEndpointGroups.insert":
101685
101686type NetworkEndpointGroupsInsertCall struct {
101687	s                    *Service
101688	project              string
101689	zone                 string
101690	networkendpointgroup *NetworkEndpointGroup
101691	urlParams_           gensupport.URLParams
101692	ctx_                 context.Context
101693	header_              http.Header
101694}
101695
101696// Insert: Creates a network endpoint group in the specified project
101697// using the parameters that are included in the request.
101698//
101699// - project: Project ID for this request.
101700// - zone: The name of the zone where you want to create the network
101701//   endpoint group. It should comply with RFC1035.
101702func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
101703	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101704	c.project = project
101705	c.zone = zone
101706	c.networkendpointgroup = networkendpointgroup
101707	return c
101708}
101709
101710// RequestId sets the optional parameter "requestId": An optional
101711// request ID to identify requests. Specify a unique request ID so that
101712// if you must retry your request, the server will know to ignore the
101713// request if it has already been completed. For example, consider a
101714// situation where you make an initial request and the request times
101715// out. If you make the request again with the same request ID, the
101716// server can check if original operation with the same request ID was
101717// received, and if so, will ignore the second request. This prevents
101718// clients from accidentally creating duplicate commitments. The request
101719// ID must be a valid UUID with the exception that zero UUID is not
101720// supported ( 00000000-0000-0000-0000-000000000000).
101721func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
101722	c.urlParams_.Set("requestId", requestId)
101723	return c
101724}
101725
101726// Fields allows partial responses to be retrieved. See
101727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101728// for more information.
101729func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
101730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101731	return c
101732}
101733
101734// Context sets the context to be used in this call's Do method. Any
101735// pending HTTP request will be aborted if the provided context is
101736// canceled.
101737func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
101738	c.ctx_ = ctx
101739	return c
101740}
101741
101742// Header returns an http.Header that can be modified by the caller to
101743// add HTTP headers to the request.
101744func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
101745	if c.header_ == nil {
101746		c.header_ = make(http.Header)
101747	}
101748	return c.header_
101749}
101750
101751func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
101752	reqHeaders := make(http.Header)
101753	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101754	for k, v := range c.header_ {
101755		reqHeaders[k] = v
101756	}
101757	reqHeaders.Set("User-Agent", c.s.userAgent())
101758	var body io.Reader = nil
101759	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
101760	if err != nil {
101761		return nil, err
101762	}
101763	reqHeaders.Set("Content-Type", "application/json")
101764	c.urlParams_.Set("alt", alt)
101765	c.urlParams_.Set("prettyPrint", "false")
101766	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
101767	urls += "?" + c.urlParams_.Encode()
101768	req, err := http.NewRequest("POST", urls, body)
101769	if err != nil {
101770		return nil, err
101771	}
101772	req.Header = reqHeaders
101773	googleapi.Expand(req.URL, map[string]string{
101774		"project": c.project,
101775		"zone":    c.zone,
101776	})
101777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101778}
101779
101780// Do executes the "compute.networkEndpointGroups.insert" call.
101781// Exactly one of *Operation or error will be non-nil. Any non-2xx
101782// status code is an error. Response headers are in either
101783// *Operation.ServerResponse.Header or (if a response was returned at
101784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101785// to check whether the returned error was because
101786// http.StatusNotModified was returned.
101787func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101788	gensupport.SetOptions(c.urlParams_, opts...)
101789	res, err := c.doRequest("json")
101790	if res != nil && res.StatusCode == http.StatusNotModified {
101791		if res.Body != nil {
101792			res.Body.Close()
101793		}
101794		return nil, &googleapi.Error{
101795			Code:   res.StatusCode,
101796			Header: res.Header,
101797		}
101798	}
101799	if err != nil {
101800		return nil, err
101801	}
101802	defer googleapi.CloseBody(res)
101803	if err := googleapi.CheckResponse(res); err != nil {
101804		return nil, err
101805	}
101806	ret := &Operation{
101807		ServerResponse: googleapi.ServerResponse{
101808			Header:         res.Header,
101809			HTTPStatusCode: res.StatusCode,
101810		},
101811	}
101812	target := &ret
101813	if err := gensupport.DecodeResponse(target, res); err != nil {
101814		return nil, err
101815	}
101816	return ret, nil
101817	// {
101818	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
101819	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
101820	//   "httpMethod": "POST",
101821	//   "id": "compute.networkEndpointGroups.insert",
101822	//   "parameterOrder": [
101823	//     "project",
101824	//     "zone"
101825	//   ],
101826	//   "parameters": {
101827	//     "project": {
101828	//       "description": "Project ID for this request.",
101829	//       "location": "path",
101830	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101831	//       "required": true,
101832	//       "type": "string"
101833	//     },
101834	//     "requestId": {
101835	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101836	//       "location": "query",
101837	//       "type": "string"
101838	//     },
101839	//     "zone": {
101840	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
101841	//       "location": "path",
101842	//       "required": true,
101843	//       "type": "string"
101844	//     }
101845	//   },
101846	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
101847	//   "request": {
101848	//     "$ref": "NetworkEndpointGroup"
101849	//   },
101850	//   "response": {
101851	//     "$ref": "Operation"
101852	//   },
101853	//   "scopes": [
101854	//     "https://www.googleapis.com/auth/cloud-platform",
101855	//     "https://www.googleapis.com/auth/compute"
101856	//   ]
101857	// }
101858
101859}
101860
101861// method id "compute.networkEndpointGroups.list":
101862
101863type NetworkEndpointGroupsListCall struct {
101864	s            *Service
101865	project      string
101866	zone         string
101867	urlParams_   gensupport.URLParams
101868	ifNoneMatch_ string
101869	ctx_         context.Context
101870	header_      http.Header
101871}
101872
101873// List: Retrieves the list of network endpoint groups that are located
101874// in the specified project and zone.
101875//
101876// - project: Project ID for this request.
101877// - zone: The name of the zone where the network endpoint group is
101878//   located. It should comply with RFC1035.
101879func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
101880	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101881	c.project = project
101882	c.zone = zone
101883	return c
101884}
101885
101886// Filter sets the optional parameter "filter": A filter expression that
101887// filters resources listed in the response. The expression must specify
101888// the field name, a comparison operator, and the value that you want to
101889// use for filtering. The value must be a string, a number, or a
101890// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101891// `<`. For example, if you are filtering Compute Engine instances, you
101892// can exclude instances named `example-instance` by specifying `name !=
101893// example-instance`. You can also filter nested fields. For example,
101894// you could specify `scheduling.automaticRestart = false` to include
101895// instances only if they are not scheduled for automatic restarts. You
101896// can use filtering on nested fields to filter based on resource
101897// labels. To filter on multiple expressions, provide each separate
101898// expression within parentheses. For example: ```
101899// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
101900// ``` By default, each expression is an `AND` expression. However, you
101901// can include `AND` and `OR` expressions explicitly. For example: ```
101902// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
101903// AND (scheduling.automaticRestart = true) ```
101904func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
101905	c.urlParams_.Set("filter", filter)
101906	return c
101907}
101908
101909// MaxResults sets the optional parameter "maxResults": The maximum
101910// number of results per page that should be returned. If the number of
101911// available results is larger than `maxResults`, Compute Engine returns
101912// a `nextPageToken` that can be used to get the next page of results in
101913// subsequent list requests. Acceptable values are `0` to `500`,
101914// inclusive. (Default: `500`)
101915func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
101916	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101917	return c
101918}
101919
101920// OrderBy sets the optional parameter "orderBy": Sorts list results by
101921// a certain order. By default, results are returned in alphanumerical
101922// order based on the resource name. You can also sort results in
101923// descending order based on the creation timestamp using
101924// `orderBy="creationTimestamp desc". This sorts results based on the
101925// `creationTimestamp` field in reverse chronological order (newest
101926// result first). Use this to sort resources like operations so that the
101927// newest operation is returned first. Currently, only sorting by `name`
101928// or `creationTimestamp desc` is supported.
101929func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
101930	c.urlParams_.Set("orderBy", orderBy)
101931	return c
101932}
101933
101934// PageToken sets the optional parameter "pageToken": Specifies a page
101935// token to use. Set `pageToken` to the `nextPageToken` returned by a
101936// previous list request to get the next page of results.
101937func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
101938	c.urlParams_.Set("pageToken", pageToken)
101939	return c
101940}
101941
101942// ReturnPartialSuccess sets the optional parameter
101943// "returnPartialSuccess": Opt-in for partial success behavior which
101944// provides partial results in case of failure. The default value is
101945// false.
101946func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
101947	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
101948	return c
101949}
101950
101951// Fields allows partial responses to be retrieved. See
101952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101953// for more information.
101954func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
101955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101956	return c
101957}
101958
101959// IfNoneMatch sets the optional parameter which makes the operation
101960// fail if the object's ETag matches the given value. This is useful for
101961// getting updates only after the object has changed since the last
101962// request. Use googleapi.IsNotModified to check whether the response
101963// error from Do is the result of In-None-Match.
101964func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
101965	c.ifNoneMatch_ = entityTag
101966	return c
101967}
101968
101969// Context sets the context to be used in this call's Do method. Any
101970// pending HTTP request will be aborted if the provided context is
101971// canceled.
101972func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
101973	c.ctx_ = ctx
101974	return c
101975}
101976
101977// Header returns an http.Header that can be modified by the caller to
101978// add HTTP headers to the request.
101979func (c *NetworkEndpointGroupsListCall) Header() http.Header {
101980	if c.header_ == nil {
101981		c.header_ = make(http.Header)
101982	}
101983	return c.header_
101984}
101985
101986func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
101987	reqHeaders := make(http.Header)
101988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
101989	for k, v := range c.header_ {
101990		reqHeaders[k] = v
101991	}
101992	reqHeaders.Set("User-Agent", c.s.userAgent())
101993	if c.ifNoneMatch_ != "" {
101994		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101995	}
101996	var body io.Reader = nil
101997	c.urlParams_.Set("alt", alt)
101998	c.urlParams_.Set("prettyPrint", "false")
101999	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
102000	urls += "?" + c.urlParams_.Encode()
102001	req, err := http.NewRequest("GET", urls, body)
102002	if err != nil {
102003		return nil, err
102004	}
102005	req.Header = reqHeaders
102006	googleapi.Expand(req.URL, map[string]string{
102007		"project": c.project,
102008		"zone":    c.zone,
102009	})
102010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102011}
102012
102013// Do executes the "compute.networkEndpointGroups.list" call.
102014// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
102015// Any non-2xx status code is an error. Response headers are in either
102016// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
102017// returned at all) in error.(*googleapi.Error).Header. Use
102018// googleapi.IsNotModified to check whether the returned error was
102019// because http.StatusNotModified was returned.
102020func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
102021	gensupport.SetOptions(c.urlParams_, opts...)
102022	res, err := c.doRequest("json")
102023	if res != nil && res.StatusCode == http.StatusNotModified {
102024		if res.Body != nil {
102025			res.Body.Close()
102026		}
102027		return nil, &googleapi.Error{
102028			Code:   res.StatusCode,
102029			Header: res.Header,
102030		}
102031	}
102032	if err != nil {
102033		return nil, err
102034	}
102035	defer googleapi.CloseBody(res)
102036	if err := googleapi.CheckResponse(res); err != nil {
102037		return nil, err
102038	}
102039	ret := &NetworkEndpointGroupList{
102040		ServerResponse: googleapi.ServerResponse{
102041			Header:         res.Header,
102042			HTTPStatusCode: res.StatusCode,
102043		},
102044	}
102045	target := &ret
102046	if err := gensupport.DecodeResponse(target, res); err != nil {
102047		return nil, err
102048	}
102049	return ret, nil
102050	// {
102051	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
102052	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
102053	//   "httpMethod": "GET",
102054	//   "id": "compute.networkEndpointGroups.list",
102055	//   "parameterOrder": [
102056	//     "project",
102057	//     "zone"
102058	//   ],
102059	//   "parameters": {
102060	//     "filter": {
102061	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102062	//       "location": "query",
102063	//       "type": "string"
102064	//     },
102065	//     "maxResults": {
102066	//       "default": "500",
102067	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102068	//       "format": "uint32",
102069	//       "location": "query",
102070	//       "minimum": "0",
102071	//       "type": "integer"
102072	//     },
102073	//     "orderBy": {
102074	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
102075	//       "location": "query",
102076	//       "type": "string"
102077	//     },
102078	//     "pageToken": {
102079	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102080	//       "location": "query",
102081	//       "type": "string"
102082	//     },
102083	//     "project": {
102084	//       "description": "Project ID for this request.",
102085	//       "location": "path",
102086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102087	//       "required": true,
102088	//       "type": "string"
102089	//     },
102090	//     "returnPartialSuccess": {
102091	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102092	//       "location": "query",
102093	//       "type": "boolean"
102094	//     },
102095	//     "zone": {
102096	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102097	//       "location": "path",
102098	//       "required": true,
102099	//       "type": "string"
102100	//     }
102101	//   },
102102	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
102103	//   "response": {
102104	//     "$ref": "NetworkEndpointGroupList"
102105	//   },
102106	//   "scopes": [
102107	//     "https://www.googleapis.com/auth/cloud-platform",
102108	//     "https://www.googleapis.com/auth/compute",
102109	//     "https://www.googleapis.com/auth/compute.readonly"
102110	//   ]
102111	// }
102112
102113}
102114
102115// Pages invokes f for each page of results.
102116// A non-nil error returned from f will halt the iteration.
102117// The provided context supersedes any context provided to the Context method.
102118func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
102119	c.ctx_ = ctx
102120	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102121	for {
102122		x, err := c.Do()
102123		if err != nil {
102124			return err
102125		}
102126		if err := f(x); err != nil {
102127			return err
102128		}
102129		if x.NextPageToken == "" {
102130			return nil
102131		}
102132		c.PageToken(x.NextPageToken)
102133	}
102134}
102135
102136// method id "compute.networkEndpointGroups.listNetworkEndpoints":
102137
102138type NetworkEndpointGroupsListNetworkEndpointsCall struct {
102139	s                                         *Service
102140	project                                   string
102141	zone                                      string
102142	networkEndpointGroup                      string
102143	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
102144	urlParams_                                gensupport.URLParams
102145	ctx_                                      context.Context
102146	header_                                   http.Header
102147}
102148
102149// ListNetworkEndpoints: Lists the network endpoints in the specified
102150// network endpoint group.
102151//
102152// - networkEndpointGroup: The name of the network endpoint group from
102153//   which you want to generate a list of included network endpoints. It
102154//   should comply with RFC1035.
102155// - project: Project ID for this request.
102156// - zone: The name of the zone where the network endpoint group is
102157//   located. It should comply with RFC1035.
102158func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
102159	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102160	c.project = project
102161	c.zone = zone
102162	c.networkEndpointGroup = networkEndpointGroup
102163	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
102164	return c
102165}
102166
102167// Filter sets the optional parameter "filter": A filter expression that
102168// filters resources listed in the response. The expression must specify
102169// the field name, a comparison operator, and the value that you want to
102170// use for filtering. The value must be a string, a number, or a
102171// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102172// `<`. For example, if you are filtering Compute Engine instances, you
102173// can exclude instances named `example-instance` by specifying `name !=
102174// example-instance`. You can also filter nested fields. For example,
102175// you could specify `scheduling.automaticRestart = false` to include
102176// instances only if they are not scheduled for automatic restarts. You
102177// can use filtering on nested fields to filter based on resource
102178// labels. To filter on multiple expressions, provide each separate
102179// expression within parentheses. For example: ```
102180// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
102181// ``` By default, each expression is an `AND` expression. However, you
102182// can include `AND` and `OR` expressions explicitly. For example: ```
102183// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
102184// AND (scheduling.automaticRestart = true) ```
102185func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102186	c.urlParams_.Set("filter", filter)
102187	return c
102188}
102189
102190// MaxResults sets the optional parameter "maxResults": The maximum
102191// number of results per page that should be returned. If the number of
102192// available results is larger than `maxResults`, Compute Engine returns
102193// a `nextPageToken` that can be used to get the next page of results in
102194// subsequent list requests. Acceptable values are `0` to `500`,
102195// inclusive. (Default: `500`)
102196func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
102197	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102198	return c
102199}
102200
102201// OrderBy sets the optional parameter "orderBy": Sorts list results by
102202// a certain order. By default, results are returned in alphanumerical
102203// order based on the resource name. You can also sort results in
102204// descending order based on the creation timestamp using
102205// `orderBy="creationTimestamp desc". This sorts results based on the
102206// `creationTimestamp` field in reverse chronological order (newest
102207// result first). Use this to sort resources like operations so that the
102208// newest operation is returned first. Currently, only sorting by `name`
102209// or `creationTimestamp desc` is supported.
102210func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102211	c.urlParams_.Set("orderBy", orderBy)
102212	return c
102213}
102214
102215// PageToken sets the optional parameter "pageToken": Specifies a page
102216// token to use. Set `pageToken` to the `nextPageToken` returned by a
102217// previous list request to get the next page of results.
102218func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102219	c.urlParams_.Set("pageToken", pageToken)
102220	return c
102221}
102222
102223// ReturnPartialSuccess sets the optional parameter
102224// "returnPartialSuccess": Opt-in for partial success behavior which
102225// provides partial results in case of failure. The default value is
102226// false.
102227func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
102228	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102229	return c
102230}
102231
102232// Fields allows partial responses to be retrieved. See
102233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102234// for more information.
102235func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
102236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102237	return c
102238}
102239
102240// Context sets the context to be used in this call's Do method. Any
102241// pending HTTP request will be aborted if the provided context is
102242// canceled.
102243func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
102244	c.ctx_ = ctx
102245	return c
102246}
102247
102248// Header returns an http.Header that can be modified by the caller to
102249// add HTTP headers to the request.
102250func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
102251	if c.header_ == nil {
102252		c.header_ = make(http.Header)
102253	}
102254	return c.header_
102255}
102256
102257func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
102258	reqHeaders := make(http.Header)
102259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
102260	for k, v := range c.header_ {
102261		reqHeaders[k] = v
102262	}
102263	reqHeaders.Set("User-Agent", c.s.userAgent())
102264	var body io.Reader = nil
102265	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
102266	if err != nil {
102267		return nil, err
102268	}
102269	reqHeaders.Set("Content-Type", "application/json")
102270	c.urlParams_.Set("alt", alt)
102271	c.urlParams_.Set("prettyPrint", "false")
102272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
102273	urls += "?" + c.urlParams_.Encode()
102274	req, err := http.NewRequest("POST", urls, body)
102275	if err != nil {
102276		return nil, err
102277	}
102278	req.Header = reqHeaders
102279	googleapi.Expand(req.URL, map[string]string{
102280		"project":              c.project,
102281		"zone":                 c.zone,
102282		"networkEndpointGroup": c.networkEndpointGroup,
102283	})
102284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102285}
102286
102287// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
102288// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
102289// will be non-nil. Any non-2xx status code is an error. Response
102290// headers are in either
102291// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
102292// (if a response was returned at all) in
102293// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
102294// whether the returned error was because http.StatusNotModified was
102295// returned.
102296func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
102297	gensupport.SetOptions(c.urlParams_, opts...)
102298	res, err := c.doRequest("json")
102299	if res != nil && res.StatusCode == http.StatusNotModified {
102300		if res.Body != nil {
102301			res.Body.Close()
102302		}
102303		return nil, &googleapi.Error{
102304			Code:   res.StatusCode,
102305			Header: res.Header,
102306		}
102307	}
102308	if err != nil {
102309		return nil, err
102310	}
102311	defer googleapi.CloseBody(res)
102312	if err := googleapi.CheckResponse(res); err != nil {
102313		return nil, err
102314	}
102315	ret := &NetworkEndpointGroupsListNetworkEndpoints{
102316		ServerResponse: googleapi.ServerResponse{
102317			Header:         res.Header,
102318			HTTPStatusCode: res.StatusCode,
102319		},
102320	}
102321	target := &ret
102322	if err := gensupport.DecodeResponse(target, res); err != nil {
102323		return nil, err
102324	}
102325	return ret, nil
102326	// {
102327	//   "description": "Lists the network endpoints in the specified network endpoint group.",
102328	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
102329	//   "httpMethod": "POST",
102330	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
102331	//   "parameterOrder": [
102332	//     "project",
102333	//     "zone",
102334	//     "networkEndpointGroup"
102335	//   ],
102336	//   "parameters": {
102337	//     "filter": {
102338	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102339	//       "location": "query",
102340	//       "type": "string"
102341	//     },
102342	//     "maxResults": {
102343	//       "default": "500",
102344	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102345	//       "format": "uint32",
102346	//       "location": "query",
102347	//       "minimum": "0",
102348	//       "type": "integer"
102349	//     },
102350	//     "networkEndpointGroup": {
102351	//       "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.",
102352	//       "location": "path",
102353	//       "required": true,
102354	//       "type": "string"
102355	//     },
102356	//     "orderBy": {
102357	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
102358	//       "location": "query",
102359	//       "type": "string"
102360	//     },
102361	//     "pageToken": {
102362	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102363	//       "location": "query",
102364	//       "type": "string"
102365	//     },
102366	//     "project": {
102367	//       "description": "Project ID for this request.",
102368	//       "location": "path",
102369	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102370	//       "required": true,
102371	//       "type": "string"
102372	//     },
102373	//     "returnPartialSuccess": {
102374	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102375	//       "location": "query",
102376	//       "type": "boolean"
102377	//     },
102378	//     "zone": {
102379	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102380	//       "location": "path",
102381	//       "required": true,
102382	//       "type": "string"
102383	//     }
102384	//   },
102385	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
102386	//   "request": {
102387	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
102388	//   },
102389	//   "response": {
102390	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
102391	//   },
102392	//   "scopes": [
102393	//     "https://www.googleapis.com/auth/cloud-platform",
102394	//     "https://www.googleapis.com/auth/compute",
102395	//     "https://www.googleapis.com/auth/compute.readonly"
102396	//   ]
102397	// }
102398
102399}
102400
102401// Pages invokes f for each page of results.
102402// A non-nil error returned from f will halt the iteration.
102403// The provided context supersedes any context provided to the Context method.
102404func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
102405	c.ctx_ = ctx
102406	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102407	for {
102408		x, err := c.Do()
102409		if err != nil {
102410			return err
102411		}
102412		if err := f(x); err != nil {
102413			return err
102414		}
102415		if x.NextPageToken == "" {
102416			return nil
102417		}
102418		c.PageToken(x.NextPageToken)
102419	}
102420}
102421
102422// method id "compute.networkEndpointGroups.testIamPermissions":
102423
102424type NetworkEndpointGroupsTestIamPermissionsCall struct {
102425	s                      *Service
102426	project                string
102427	zone                   string
102428	resource               string
102429	testpermissionsrequest *TestPermissionsRequest
102430	urlParams_             gensupport.URLParams
102431	ctx_                   context.Context
102432	header_                http.Header
102433}
102434
102435// TestIamPermissions: Returns permissions that a caller has on the
102436// specified resource.
102437//
102438// - project: Project ID for this request.
102439// - resource: Name or id of the resource for this request.
102440// - zone: The name of the zone for this request.
102441func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
102442	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102443	c.project = project
102444	c.zone = zone
102445	c.resource = resource
102446	c.testpermissionsrequest = testpermissionsrequest
102447	return c
102448}
102449
102450// Fields allows partial responses to be retrieved. See
102451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102452// for more information.
102453func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
102454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102455	return c
102456}
102457
102458// Context sets the context to be used in this call's Do method. Any
102459// pending HTTP request will be aborted if the provided context is
102460// canceled.
102461func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
102462	c.ctx_ = ctx
102463	return c
102464}
102465
102466// Header returns an http.Header that can be modified by the caller to
102467// add HTTP headers to the request.
102468func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
102469	if c.header_ == nil {
102470		c.header_ = make(http.Header)
102471	}
102472	return c.header_
102473}
102474
102475func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
102476	reqHeaders := make(http.Header)
102477	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
102478	for k, v := range c.header_ {
102479		reqHeaders[k] = v
102480	}
102481	reqHeaders.Set("User-Agent", c.s.userAgent())
102482	var body io.Reader = nil
102483	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
102484	if err != nil {
102485		return nil, err
102486	}
102487	reqHeaders.Set("Content-Type", "application/json")
102488	c.urlParams_.Set("alt", alt)
102489	c.urlParams_.Set("prettyPrint", "false")
102490	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
102491	urls += "?" + c.urlParams_.Encode()
102492	req, err := http.NewRequest("POST", urls, body)
102493	if err != nil {
102494		return nil, err
102495	}
102496	req.Header = reqHeaders
102497	googleapi.Expand(req.URL, map[string]string{
102498		"project":  c.project,
102499		"zone":     c.zone,
102500		"resource": c.resource,
102501	})
102502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102503}
102504
102505// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
102506// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
102507// non-2xx status code is an error. Response headers are in either
102508// *TestPermissionsResponse.ServerResponse.Header or (if a response was
102509// returned at all) in error.(*googleapi.Error).Header. Use
102510// googleapi.IsNotModified to check whether the returned error was
102511// because http.StatusNotModified was returned.
102512func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
102513	gensupport.SetOptions(c.urlParams_, opts...)
102514	res, err := c.doRequest("json")
102515	if res != nil && res.StatusCode == http.StatusNotModified {
102516		if res.Body != nil {
102517			res.Body.Close()
102518		}
102519		return nil, &googleapi.Error{
102520			Code:   res.StatusCode,
102521			Header: res.Header,
102522		}
102523	}
102524	if err != nil {
102525		return nil, err
102526	}
102527	defer googleapi.CloseBody(res)
102528	if err := googleapi.CheckResponse(res); err != nil {
102529		return nil, err
102530	}
102531	ret := &TestPermissionsResponse{
102532		ServerResponse: googleapi.ServerResponse{
102533			Header:         res.Header,
102534			HTTPStatusCode: res.StatusCode,
102535		},
102536	}
102537	target := &ret
102538	if err := gensupport.DecodeResponse(target, res); err != nil {
102539		return nil, err
102540	}
102541	return ret, nil
102542	// {
102543	//   "description": "Returns permissions that a caller has on the specified resource.",
102544	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
102545	//   "httpMethod": "POST",
102546	//   "id": "compute.networkEndpointGroups.testIamPermissions",
102547	//   "parameterOrder": [
102548	//     "project",
102549	//     "zone",
102550	//     "resource"
102551	//   ],
102552	//   "parameters": {
102553	//     "project": {
102554	//       "description": "Project ID for this request.",
102555	//       "location": "path",
102556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102557	//       "required": true,
102558	//       "type": "string"
102559	//     },
102560	//     "resource": {
102561	//       "description": "Name or id of the resource for this request.",
102562	//       "location": "path",
102563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102564	//       "required": true,
102565	//       "type": "string"
102566	//     },
102567	//     "zone": {
102568	//       "description": "The name of the zone for this request.",
102569	//       "location": "path",
102570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102571	//       "required": true,
102572	//       "type": "string"
102573	//     }
102574	//   },
102575	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
102576	//   "request": {
102577	//     "$ref": "TestPermissionsRequest"
102578	//   },
102579	//   "response": {
102580	//     "$ref": "TestPermissionsResponse"
102581	//   },
102582	//   "scopes": [
102583	//     "https://www.googleapis.com/auth/cloud-platform",
102584	//     "https://www.googleapis.com/auth/compute",
102585	//     "https://www.googleapis.com/auth/compute.readonly"
102586	//   ]
102587	// }
102588
102589}
102590
102591// method id "compute.networks.addPeering":
102592
102593type NetworksAddPeeringCall struct {
102594	s                         *Service
102595	project                   string
102596	network                   string
102597	networksaddpeeringrequest *NetworksAddPeeringRequest
102598	urlParams_                gensupport.URLParams
102599	ctx_                      context.Context
102600	header_                   http.Header
102601}
102602
102603// AddPeering: Adds a peering to the specified network.
102604//
102605// - network: Name of the network resource to add peering to.
102606// - project: Project ID for this request.
102607func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
102608	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102609	c.project = project
102610	c.network = network
102611	c.networksaddpeeringrequest = networksaddpeeringrequest
102612	return c
102613}
102614
102615// RequestId sets the optional parameter "requestId": An optional
102616// request ID to identify requests. Specify a unique request ID so that
102617// if you must retry your request, the server will know to ignore the
102618// request if it has already been completed. For example, consider a
102619// situation where you make an initial request and the request times
102620// out. If you make the request again with the same request ID, the
102621// server can check if original operation with the same request ID was
102622// received, and if so, will ignore the second request. This prevents
102623// clients from accidentally creating duplicate commitments. The request
102624// ID must be a valid UUID with the exception that zero UUID is not
102625// supported ( 00000000-0000-0000-0000-000000000000).
102626func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
102627	c.urlParams_.Set("requestId", requestId)
102628	return c
102629}
102630
102631// Fields allows partial responses to be retrieved. See
102632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102633// for more information.
102634func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
102635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102636	return c
102637}
102638
102639// Context sets the context to be used in this call's Do method. Any
102640// pending HTTP request will be aborted if the provided context is
102641// canceled.
102642func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
102643	c.ctx_ = ctx
102644	return c
102645}
102646
102647// Header returns an http.Header that can be modified by the caller to
102648// add HTTP headers to the request.
102649func (c *NetworksAddPeeringCall) Header() http.Header {
102650	if c.header_ == nil {
102651		c.header_ = make(http.Header)
102652	}
102653	return c.header_
102654}
102655
102656func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
102657	reqHeaders := make(http.Header)
102658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
102659	for k, v := range c.header_ {
102660		reqHeaders[k] = v
102661	}
102662	reqHeaders.Set("User-Agent", c.s.userAgent())
102663	var body io.Reader = nil
102664	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
102665	if err != nil {
102666		return nil, err
102667	}
102668	reqHeaders.Set("Content-Type", "application/json")
102669	c.urlParams_.Set("alt", alt)
102670	c.urlParams_.Set("prettyPrint", "false")
102671	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering")
102672	urls += "?" + c.urlParams_.Encode()
102673	req, err := http.NewRequest("POST", urls, body)
102674	if err != nil {
102675		return nil, err
102676	}
102677	req.Header = reqHeaders
102678	googleapi.Expand(req.URL, map[string]string{
102679		"project": c.project,
102680		"network": c.network,
102681	})
102682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102683}
102684
102685// Do executes the "compute.networks.addPeering" call.
102686// Exactly one of *Operation or error will be non-nil. Any non-2xx
102687// status code is an error. Response headers are in either
102688// *Operation.ServerResponse.Header or (if a response was returned at
102689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102690// to check whether the returned error was because
102691// http.StatusNotModified was returned.
102692func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102693	gensupport.SetOptions(c.urlParams_, opts...)
102694	res, err := c.doRequest("json")
102695	if res != nil && res.StatusCode == http.StatusNotModified {
102696		if res.Body != nil {
102697			res.Body.Close()
102698		}
102699		return nil, &googleapi.Error{
102700			Code:   res.StatusCode,
102701			Header: res.Header,
102702		}
102703	}
102704	if err != nil {
102705		return nil, err
102706	}
102707	defer googleapi.CloseBody(res)
102708	if err := googleapi.CheckResponse(res); err != nil {
102709		return nil, err
102710	}
102711	ret := &Operation{
102712		ServerResponse: googleapi.ServerResponse{
102713			Header:         res.Header,
102714			HTTPStatusCode: res.StatusCode,
102715		},
102716	}
102717	target := &ret
102718	if err := gensupport.DecodeResponse(target, res); err != nil {
102719		return nil, err
102720	}
102721	return ret, nil
102722	// {
102723	//   "description": "Adds a peering to the specified network.",
102724	//   "flatPath": "projects/{project}/global/networks/{network}/addPeering",
102725	//   "httpMethod": "POST",
102726	//   "id": "compute.networks.addPeering",
102727	//   "parameterOrder": [
102728	//     "project",
102729	//     "network"
102730	//   ],
102731	//   "parameters": {
102732	//     "network": {
102733	//       "description": "Name of the network resource to add peering to.",
102734	//       "location": "path",
102735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102736	//       "required": true,
102737	//       "type": "string"
102738	//     },
102739	//     "project": {
102740	//       "description": "Project ID for this request.",
102741	//       "location": "path",
102742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102743	//       "required": true,
102744	//       "type": "string"
102745	//     },
102746	//     "requestId": {
102747	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
102748	//       "location": "query",
102749	//       "type": "string"
102750	//     }
102751	//   },
102752	//   "path": "projects/{project}/global/networks/{network}/addPeering",
102753	//   "request": {
102754	//     "$ref": "NetworksAddPeeringRequest"
102755	//   },
102756	//   "response": {
102757	//     "$ref": "Operation"
102758	//   },
102759	//   "scopes": [
102760	//     "https://www.googleapis.com/auth/cloud-platform",
102761	//     "https://www.googleapis.com/auth/compute"
102762	//   ]
102763	// }
102764
102765}
102766
102767// method id "compute.networks.delete":
102768
102769type NetworksDeleteCall struct {
102770	s          *Service
102771	project    string
102772	network    string
102773	urlParams_ gensupport.URLParams
102774	ctx_       context.Context
102775	header_    http.Header
102776}
102777
102778// Delete: Deletes the specified network.
102779//
102780// - network: Name of the network to delete.
102781// - project: Project ID for this request.
102782func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
102783	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102784	c.project = project
102785	c.network = network
102786	return c
102787}
102788
102789// RequestId sets the optional parameter "requestId": An optional
102790// request ID to identify requests. Specify a unique request ID so that
102791// if you must retry your request, the server will know to ignore the
102792// request if it has already been completed. For example, consider a
102793// situation where you make an initial request and the request times
102794// out. If you make the request again with the same request ID, the
102795// server can check if original operation with the same request ID was
102796// received, and if so, will ignore the second request. This prevents
102797// clients from accidentally creating duplicate commitments. The request
102798// ID must be a valid UUID with the exception that zero UUID is not
102799// supported ( 00000000-0000-0000-0000-000000000000).
102800func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
102801	c.urlParams_.Set("requestId", requestId)
102802	return c
102803}
102804
102805// Fields allows partial responses to be retrieved. See
102806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102807// for more information.
102808func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
102809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102810	return c
102811}
102812
102813// Context sets the context to be used in this call's Do method. Any
102814// pending HTTP request will be aborted if the provided context is
102815// canceled.
102816func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
102817	c.ctx_ = ctx
102818	return c
102819}
102820
102821// Header returns an http.Header that can be modified by the caller to
102822// add HTTP headers to the request.
102823func (c *NetworksDeleteCall) Header() http.Header {
102824	if c.header_ == nil {
102825		c.header_ = make(http.Header)
102826	}
102827	return c.header_
102828}
102829
102830func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
102831	reqHeaders := make(http.Header)
102832	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
102833	for k, v := range c.header_ {
102834		reqHeaders[k] = v
102835	}
102836	reqHeaders.Set("User-Agent", c.s.userAgent())
102837	var body io.Reader = nil
102838	c.urlParams_.Set("alt", alt)
102839	c.urlParams_.Set("prettyPrint", "false")
102840	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
102841	urls += "?" + c.urlParams_.Encode()
102842	req, err := http.NewRequest("DELETE", urls, body)
102843	if err != nil {
102844		return nil, err
102845	}
102846	req.Header = reqHeaders
102847	googleapi.Expand(req.URL, map[string]string{
102848		"project": c.project,
102849		"network": c.network,
102850	})
102851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102852}
102853
102854// Do executes the "compute.networks.delete" call.
102855// Exactly one of *Operation or error will be non-nil. Any non-2xx
102856// status code is an error. Response headers are in either
102857// *Operation.ServerResponse.Header or (if a response was returned at
102858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102859// to check whether the returned error was because
102860// http.StatusNotModified was returned.
102861func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102862	gensupport.SetOptions(c.urlParams_, opts...)
102863	res, err := c.doRequest("json")
102864	if res != nil && res.StatusCode == http.StatusNotModified {
102865		if res.Body != nil {
102866			res.Body.Close()
102867		}
102868		return nil, &googleapi.Error{
102869			Code:   res.StatusCode,
102870			Header: res.Header,
102871		}
102872	}
102873	if err != nil {
102874		return nil, err
102875	}
102876	defer googleapi.CloseBody(res)
102877	if err := googleapi.CheckResponse(res); err != nil {
102878		return nil, err
102879	}
102880	ret := &Operation{
102881		ServerResponse: googleapi.ServerResponse{
102882			Header:         res.Header,
102883			HTTPStatusCode: res.StatusCode,
102884		},
102885	}
102886	target := &ret
102887	if err := gensupport.DecodeResponse(target, res); err != nil {
102888		return nil, err
102889	}
102890	return ret, nil
102891	// {
102892	//   "description": "Deletes the specified network.",
102893	//   "flatPath": "projects/{project}/global/networks/{network}",
102894	//   "httpMethod": "DELETE",
102895	//   "id": "compute.networks.delete",
102896	//   "parameterOrder": [
102897	//     "project",
102898	//     "network"
102899	//   ],
102900	//   "parameters": {
102901	//     "network": {
102902	//       "description": "Name of the network to delete.",
102903	//       "location": "path",
102904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102905	//       "required": true,
102906	//       "type": "string"
102907	//     },
102908	//     "project": {
102909	//       "description": "Project ID for this request.",
102910	//       "location": "path",
102911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102912	//       "required": true,
102913	//       "type": "string"
102914	//     },
102915	//     "requestId": {
102916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
102917	//       "location": "query",
102918	//       "type": "string"
102919	//     }
102920	//   },
102921	//   "path": "projects/{project}/global/networks/{network}",
102922	//   "response": {
102923	//     "$ref": "Operation"
102924	//   },
102925	//   "scopes": [
102926	//     "https://www.googleapis.com/auth/cloud-platform",
102927	//     "https://www.googleapis.com/auth/compute"
102928	//   ]
102929	// }
102930
102931}
102932
102933// method id "compute.networks.get":
102934
102935type NetworksGetCall struct {
102936	s            *Service
102937	project      string
102938	network      string
102939	urlParams_   gensupport.URLParams
102940	ifNoneMatch_ string
102941	ctx_         context.Context
102942	header_      http.Header
102943}
102944
102945// Get: Returns the specified network. Gets a list of available networks
102946// by making a list() request.
102947//
102948// - network: Name of the network to return.
102949// - project: Project ID for this request.
102950func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
102951	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102952	c.project = project
102953	c.network = network
102954	return c
102955}
102956
102957// Fields allows partial responses to be retrieved. See
102958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102959// for more information.
102960func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
102961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102962	return c
102963}
102964
102965// IfNoneMatch sets the optional parameter which makes the operation
102966// fail if the object's ETag matches the given value. This is useful for
102967// getting updates only after the object has changed since the last
102968// request. Use googleapi.IsNotModified to check whether the response
102969// error from Do is the result of In-None-Match.
102970func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
102971	c.ifNoneMatch_ = entityTag
102972	return c
102973}
102974
102975// Context sets the context to be used in this call's Do method. Any
102976// pending HTTP request will be aborted if the provided context is
102977// canceled.
102978func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
102979	c.ctx_ = ctx
102980	return c
102981}
102982
102983// Header returns an http.Header that can be modified by the caller to
102984// add HTTP headers to the request.
102985func (c *NetworksGetCall) Header() http.Header {
102986	if c.header_ == nil {
102987		c.header_ = make(http.Header)
102988	}
102989	return c.header_
102990}
102991
102992func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
102993	reqHeaders := make(http.Header)
102994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
102995	for k, v := range c.header_ {
102996		reqHeaders[k] = v
102997	}
102998	reqHeaders.Set("User-Agent", c.s.userAgent())
102999	if c.ifNoneMatch_ != "" {
103000		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103001	}
103002	var body io.Reader = nil
103003	c.urlParams_.Set("alt", alt)
103004	c.urlParams_.Set("prettyPrint", "false")
103005	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
103006	urls += "?" + c.urlParams_.Encode()
103007	req, err := http.NewRequest("GET", urls, body)
103008	if err != nil {
103009		return nil, err
103010	}
103011	req.Header = reqHeaders
103012	googleapi.Expand(req.URL, map[string]string{
103013		"project": c.project,
103014		"network": c.network,
103015	})
103016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103017}
103018
103019// Do executes the "compute.networks.get" call.
103020// Exactly one of *Network or error will be non-nil. Any non-2xx status
103021// code is an error. Response headers are in either
103022// *Network.ServerResponse.Header or (if a response was returned at all)
103023// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
103024// check whether the returned error was because http.StatusNotModified
103025// was returned.
103026func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
103027	gensupport.SetOptions(c.urlParams_, opts...)
103028	res, err := c.doRequest("json")
103029	if res != nil && res.StatusCode == http.StatusNotModified {
103030		if res.Body != nil {
103031			res.Body.Close()
103032		}
103033		return nil, &googleapi.Error{
103034			Code:   res.StatusCode,
103035			Header: res.Header,
103036		}
103037	}
103038	if err != nil {
103039		return nil, err
103040	}
103041	defer googleapi.CloseBody(res)
103042	if err := googleapi.CheckResponse(res); err != nil {
103043		return nil, err
103044	}
103045	ret := &Network{
103046		ServerResponse: googleapi.ServerResponse{
103047			Header:         res.Header,
103048			HTTPStatusCode: res.StatusCode,
103049		},
103050	}
103051	target := &ret
103052	if err := gensupport.DecodeResponse(target, res); err != nil {
103053		return nil, err
103054	}
103055	return ret, nil
103056	// {
103057	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
103058	//   "flatPath": "projects/{project}/global/networks/{network}",
103059	//   "httpMethod": "GET",
103060	//   "id": "compute.networks.get",
103061	//   "parameterOrder": [
103062	//     "project",
103063	//     "network"
103064	//   ],
103065	//   "parameters": {
103066	//     "network": {
103067	//       "description": "Name of the network to return.",
103068	//       "location": "path",
103069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103070	//       "required": true,
103071	//       "type": "string"
103072	//     },
103073	//     "project": {
103074	//       "description": "Project ID for this request.",
103075	//       "location": "path",
103076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103077	//       "required": true,
103078	//       "type": "string"
103079	//     }
103080	//   },
103081	//   "path": "projects/{project}/global/networks/{network}",
103082	//   "response": {
103083	//     "$ref": "Network"
103084	//   },
103085	//   "scopes": [
103086	//     "https://www.googleapis.com/auth/cloud-platform",
103087	//     "https://www.googleapis.com/auth/compute",
103088	//     "https://www.googleapis.com/auth/compute.readonly"
103089	//   ]
103090	// }
103091
103092}
103093
103094// method id "compute.networks.getEffectiveFirewalls":
103095
103096type NetworksGetEffectiveFirewallsCall struct {
103097	s            *Service
103098	project      string
103099	network      string
103100	urlParams_   gensupport.URLParams
103101	ifNoneMatch_ string
103102	ctx_         context.Context
103103	header_      http.Header
103104}
103105
103106// GetEffectiveFirewalls: Returns the effective firewalls on a given
103107// network.
103108//
103109// - network: Name of the network for this request.
103110// - project: Project ID for this request.
103111func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
103112	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103113	c.project = project
103114	c.network = network
103115	return c
103116}
103117
103118// Fields allows partial responses to be retrieved. See
103119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103120// for more information.
103121func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
103122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103123	return c
103124}
103125
103126// IfNoneMatch sets the optional parameter which makes the operation
103127// fail if the object's ETag matches the given value. This is useful for
103128// getting updates only after the object has changed since the last
103129// request. Use googleapi.IsNotModified to check whether the response
103130// error from Do is the result of In-None-Match.
103131func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
103132	c.ifNoneMatch_ = entityTag
103133	return c
103134}
103135
103136// Context sets the context to be used in this call's Do method. Any
103137// pending HTTP request will be aborted if the provided context is
103138// canceled.
103139func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
103140	c.ctx_ = ctx
103141	return c
103142}
103143
103144// Header returns an http.Header that can be modified by the caller to
103145// add HTTP headers to the request.
103146func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
103147	if c.header_ == nil {
103148		c.header_ = make(http.Header)
103149	}
103150	return c.header_
103151}
103152
103153func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
103154	reqHeaders := make(http.Header)
103155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
103156	for k, v := range c.header_ {
103157		reqHeaders[k] = v
103158	}
103159	reqHeaders.Set("User-Agent", c.s.userAgent())
103160	if c.ifNoneMatch_ != "" {
103161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103162	}
103163	var body io.Reader = nil
103164	c.urlParams_.Set("alt", alt)
103165	c.urlParams_.Set("prettyPrint", "false")
103166	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls")
103167	urls += "?" + c.urlParams_.Encode()
103168	req, err := http.NewRequest("GET", urls, body)
103169	if err != nil {
103170		return nil, err
103171	}
103172	req.Header = reqHeaders
103173	googleapi.Expand(req.URL, map[string]string{
103174		"project": c.project,
103175		"network": c.network,
103176	})
103177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103178}
103179
103180// Do executes the "compute.networks.getEffectiveFirewalls" call.
103181// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
103182// be non-nil. Any non-2xx status code is an error. Response headers are
103183// in either
103184// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
103185// response was returned at all) in error.(*googleapi.Error).Header. Use
103186// googleapi.IsNotModified to check whether the returned error was
103187// because http.StatusNotModified was returned.
103188func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
103189	gensupport.SetOptions(c.urlParams_, opts...)
103190	res, err := c.doRequest("json")
103191	if res != nil && res.StatusCode == http.StatusNotModified {
103192		if res.Body != nil {
103193			res.Body.Close()
103194		}
103195		return nil, &googleapi.Error{
103196			Code:   res.StatusCode,
103197			Header: res.Header,
103198		}
103199	}
103200	if err != nil {
103201		return nil, err
103202	}
103203	defer googleapi.CloseBody(res)
103204	if err := googleapi.CheckResponse(res); err != nil {
103205		return nil, err
103206	}
103207	ret := &NetworksGetEffectiveFirewallsResponse{
103208		ServerResponse: googleapi.ServerResponse{
103209			Header:         res.Header,
103210			HTTPStatusCode: res.StatusCode,
103211		},
103212	}
103213	target := &ret
103214	if err := gensupport.DecodeResponse(target, res); err != nil {
103215		return nil, err
103216	}
103217	return ret, nil
103218	// {
103219	//   "description": "Returns the effective firewalls on a given network.",
103220	//   "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
103221	//   "httpMethod": "GET",
103222	//   "id": "compute.networks.getEffectiveFirewalls",
103223	//   "parameterOrder": [
103224	//     "project",
103225	//     "network"
103226	//   ],
103227	//   "parameters": {
103228	//     "network": {
103229	//       "description": "Name of the network for this request.",
103230	//       "location": "path",
103231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103232	//       "required": true,
103233	//       "type": "string"
103234	//     },
103235	//     "project": {
103236	//       "description": "Project ID for this request.",
103237	//       "location": "path",
103238	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103239	//       "required": true,
103240	//       "type": "string"
103241	//     }
103242	//   },
103243	//   "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
103244	//   "response": {
103245	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
103246	//   },
103247	//   "scopes": [
103248	//     "https://www.googleapis.com/auth/cloud-platform",
103249	//     "https://www.googleapis.com/auth/compute",
103250	//     "https://www.googleapis.com/auth/compute.readonly"
103251	//   ]
103252	// }
103253
103254}
103255
103256// method id "compute.networks.insert":
103257
103258type NetworksInsertCall struct {
103259	s          *Service
103260	project    string
103261	network    *Network
103262	urlParams_ gensupport.URLParams
103263	ctx_       context.Context
103264	header_    http.Header
103265}
103266
103267// Insert: Creates a network in the specified project using the data
103268// included in the request.
103269//
103270// - project: Project ID for this request.
103271func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
103272	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103273	c.project = project
103274	c.network = network
103275	return c
103276}
103277
103278// RequestId sets the optional parameter "requestId": An optional
103279// request ID to identify requests. Specify a unique request ID so that
103280// if you must retry your request, the server will know to ignore the
103281// request if it has already been completed. For example, consider a
103282// situation where you make an initial request and the request times
103283// out. If you make the request again with the same request ID, the
103284// server can check if original operation with the same request ID was
103285// received, and if so, will ignore the second request. This prevents
103286// clients from accidentally creating duplicate commitments. The request
103287// ID must be a valid UUID with the exception that zero UUID is not
103288// supported ( 00000000-0000-0000-0000-000000000000).
103289func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
103290	c.urlParams_.Set("requestId", requestId)
103291	return c
103292}
103293
103294// Fields allows partial responses to be retrieved. See
103295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103296// for more information.
103297func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
103298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103299	return c
103300}
103301
103302// Context sets the context to be used in this call's Do method. Any
103303// pending HTTP request will be aborted if the provided context is
103304// canceled.
103305func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
103306	c.ctx_ = ctx
103307	return c
103308}
103309
103310// Header returns an http.Header that can be modified by the caller to
103311// add HTTP headers to the request.
103312func (c *NetworksInsertCall) Header() http.Header {
103313	if c.header_ == nil {
103314		c.header_ = make(http.Header)
103315	}
103316	return c.header_
103317}
103318
103319func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
103320	reqHeaders := make(http.Header)
103321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
103322	for k, v := range c.header_ {
103323		reqHeaders[k] = v
103324	}
103325	reqHeaders.Set("User-Agent", c.s.userAgent())
103326	var body io.Reader = nil
103327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
103328	if err != nil {
103329		return nil, err
103330	}
103331	reqHeaders.Set("Content-Type", "application/json")
103332	c.urlParams_.Set("alt", alt)
103333	c.urlParams_.Set("prettyPrint", "false")
103334	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
103335	urls += "?" + c.urlParams_.Encode()
103336	req, err := http.NewRequest("POST", urls, body)
103337	if err != nil {
103338		return nil, err
103339	}
103340	req.Header = reqHeaders
103341	googleapi.Expand(req.URL, map[string]string{
103342		"project": c.project,
103343	})
103344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103345}
103346
103347// Do executes the "compute.networks.insert" call.
103348// Exactly one of *Operation or error will be non-nil. Any non-2xx
103349// status code is an error. Response headers are in either
103350// *Operation.ServerResponse.Header or (if a response was returned at
103351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103352// to check whether the returned error was because
103353// http.StatusNotModified was returned.
103354func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103355	gensupport.SetOptions(c.urlParams_, opts...)
103356	res, err := c.doRequest("json")
103357	if res != nil && res.StatusCode == http.StatusNotModified {
103358		if res.Body != nil {
103359			res.Body.Close()
103360		}
103361		return nil, &googleapi.Error{
103362			Code:   res.StatusCode,
103363			Header: res.Header,
103364		}
103365	}
103366	if err != nil {
103367		return nil, err
103368	}
103369	defer googleapi.CloseBody(res)
103370	if err := googleapi.CheckResponse(res); err != nil {
103371		return nil, err
103372	}
103373	ret := &Operation{
103374		ServerResponse: googleapi.ServerResponse{
103375			Header:         res.Header,
103376			HTTPStatusCode: res.StatusCode,
103377		},
103378	}
103379	target := &ret
103380	if err := gensupport.DecodeResponse(target, res); err != nil {
103381		return nil, err
103382	}
103383	return ret, nil
103384	// {
103385	//   "description": "Creates a network in the specified project using the data included in the request.",
103386	//   "flatPath": "projects/{project}/global/networks",
103387	//   "httpMethod": "POST",
103388	//   "id": "compute.networks.insert",
103389	//   "parameterOrder": [
103390	//     "project"
103391	//   ],
103392	//   "parameters": {
103393	//     "project": {
103394	//       "description": "Project ID for this request.",
103395	//       "location": "path",
103396	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103397	//       "required": true,
103398	//       "type": "string"
103399	//     },
103400	//     "requestId": {
103401	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
103402	//       "location": "query",
103403	//       "type": "string"
103404	//     }
103405	//   },
103406	//   "path": "projects/{project}/global/networks",
103407	//   "request": {
103408	//     "$ref": "Network"
103409	//   },
103410	//   "response": {
103411	//     "$ref": "Operation"
103412	//   },
103413	//   "scopes": [
103414	//     "https://www.googleapis.com/auth/cloud-platform",
103415	//     "https://www.googleapis.com/auth/compute"
103416	//   ]
103417	// }
103418
103419}
103420
103421// method id "compute.networks.list":
103422
103423type NetworksListCall struct {
103424	s            *Service
103425	project      string
103426	urlParams_   gensupport.URLParams
103427	ifNoneMatch_ string
103428	ctx_         context.Context
103429	header_      http.Header
103430}
103431
103432// List: Retrieves the list of networks available to the specified
103433// project.
103434//
103435// - project: Project ID for this request.
103436func (r *NetworksService) List(project string) *NetworksListCall {
103437	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103438	c.project = project
103439	return c
103440}
103441
103442// Filter sets the optional parameter "filter": A filter expression that
103443// filters resources listed in the response. The expression must specify
103444// the field name, a comparison operator, and the value that you want to
103445// use for filtering. The value must be a string, a number, or a
103446// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103447// `<`. For example, if you are filtering Compute Engine instances, you
103448// can exclude instances named `example-instance` by specifying `name !=
103449// example-instance`. You can also filter nested fields. For example,
103450// you could specify `scheduling.automaticRestart = false` to include
103451// instances only if they are not scheduled for automatic restarts. You
103452// can use filtering on nested fields to filter based on resource
103453// labels. To filter on multiple expressions, provide each separate
103454// expression within parentheses. For example: ```
103455// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
103456// ``` By default, each expression is an `AND` expression. However, you
103457// can include `AND` and `OR` expressions explicitly. For example: ```
103458// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
103459// AND (scheduling.automaticRestart = true) ```
103460func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
103461	c.urlParams_.Set("filter", filter)
103462	return c
103463}
103464
103465// MaxResults sets the optional parameter "maxResults": The maximum
103466// number of results per page that should be returned. If the number of
103467// available results is larger than `maxResults`, Compute Engine returns
103468// a `nextPageToken` that can be used to get the next page of results in
103469// subsequent list requests. Acceptable values are `0` to `500`,
103470// inclusive. (Default: `500`)
103471func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
103472	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103473	return c
103474}
103475
103476// OrderBy sets the optional parameter "orderBy": Sorts list results by
103477// a certain order. By default, results are returned in alphanumerical
103478// order based on the resource name. You can also sort results in
103479// descending order based on the creation timestamp using
103480// `orderBy="creationTimestamp desc". This sorts results based on the
103481// `creationTimestamp` field in reverse chronological order (newest
103482// result first). Use this to sort resources like operations so that the
103483// newest operation is returned first. Currently, only sorting by `name`
103484// or `creationTimestamp desc` is supported.
103485func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
103486	c.urlParams_.Set("orderBy", orderBy)
103487	return c
103488}
103489
103490// PageToken sets the optional parameter "pageToken": Specifies a page
103491// token to use. Set `pageToken` to the `nextPageToken` returned by a
103492// previous list request to get the next page of results.
103493func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
103494	c.urlParams_.Set("pageToken", pageToken)
103495	return c
103496}
103497
103498// ReturnPartialSuccess sets the optional parameter
103499// "returnPartialSuccess": Opt-in for partial success behavior which
103500// provides partial results in case of failure. The default value is
103501// false.
103502func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
103503	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103504	return c
103505}
103506
103507// Fields allows partial responses to be retrieved. See
103508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103509// for more information.
103510func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
103511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103512	return c
103513}
103514
103515// IfNoneMatch sets the optional parameter which makes the operation
103516// fail if the object's ETag matches the given value. This is useful for
103517// getting updates only after the object has changed since the last
103518// request. Use googleapi.IsNotModified to check whether the response
103519// error from Do is the result of In-None-Match.
103520func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
103521	c.ifNoneMatch_ = entityTag
103522	return c
103523}
103524
103525// Context sets the context to be used in this call's Do method. Any
103526// pending HTTP request will be aborted if the provided context is
103527// canceled.
103528func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
103529	c.ctx_ = ctx
103530	return c
103531}
103532
103533// Header returns an http.Header that can be modified by the caller to
103534// add HTTP headers to the request.
103535func (c *NetworksListCall) Header() http.Header {
103536	if c.header_ == nil {
103537		c.header_ = make(http.Header)
103538	}
103539	return c.header_
103540}
103541
103542func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
103543	reqHeaders := make(http.Header)
103544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
103545	for k, v := range c.header_ {
103546		reqHeaders[k] = v
103547	}
103548	reqHeaders.Set("User-Agent", c.s.userAgent())
103549	if c.ifNoneMatch_ != "" {
103550		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103551	}
103552	var body io.Reader = nil
103553	c.urlParams_.Set("alt", alt)
103554	c.urlParams_.Set("prettyPrint", "false")
103555	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
103556	urls += "?" + c.urlParams_.Encode()
103557	req, err := http.NewRequest("GET", urls, body)
103558	if err != nil {
103559		return nil, err
103560	}
103561	req.Header = reqHeaders
103562	googleapi.Expand(req.URL, map[string]string{
103563		"project": c.project,
103564	})
103565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103566}
103567
103568// Do executes the "compute.networks.list" call.
103569// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
103570// status code is an error. Response headers are in either
103571// *NetworkList.ServerResponse.Header or (if a response was returned at
103572// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103573// to check whether the returned error was because
103574// http.StatusNotModified was returned.
103575func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
103576	gensupport.SetOptions(c.urlParams_, opts...)
103577	res, err := c.doRequest("json")
103578	if res != nil && res.StatusCode == http.StatusNotModified {
103579		if res.Body != nil {
103580			res.Body.Close()
103581		}
103582		return nil, &googleapi.Error{
103583			Code:   res.StatusCode,
103584			Header: res.Header,
103585		}
103586	}
103587	if err != nil {
103588		return nil, err
103589	}
103590	defer googleapi.CloseBody(res)
103591	if err := googleapi.CheckResponse(res); err != nil {
103592		return nil, err
103593	}
103594	ret := &NetworkList{
103595		ServerResponse: googleapi.ServerResponse{
103596			Header:         res.Header,
103597			HTTPStatusCode: res.StatusCode,
103598		},
103599	}
103600	target := &ret
103601	if err := gensupport.DecodeResponse(target, res); err != nil {
103602		return nil, err
103603	}
103604	return ret, nil
103605	// {
103606	//   "description": "Retrieves the list of networks available to the specified project.",
103607	//   "flatPath": "projects/{project}/global/networks",
103608	//   "httpMethod": "GET",
103609	//   "id": "compute.networks.list",
103610	//   "parameterOrder": [
103611	//     "project"
103612	//   ],
103613	//   "parameters": {
103614	//     "filter": {
103615	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103616	//       "location": "query",
103617	//       "type": "string"
103618	//     },
103619	//     "maxResults": {
103620	//       "default": "500",
103621	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103622	//       "format": "uint32",
103623	//       "location": "query",
103624	//       "minimum": "0",
103625	//       "type": "integer"
103626	//     },
103627	//     "orderBy": {
103628	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
103629	//       "location": "query",
103630	//       "type": "string"
103631	//     },
103632	//     "pageToken": {
103633	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103634	//       "location": "query",
103635	//       "type": "string"
103636	//     },
103637	//     "project": {
103638	//       "description": "Project ID for this request.",
103639	//       "location": "path",
103640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103641	//       "required": true,
103642	//       "type": "string"
103643	//     },
103644	//     "returnPartialSuccess": {
103645	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
103646	//       "location": "query",
103647	//       "type": "boolean"
103648	//     }
103649	//   },
103650	//   "path": "projects/{project}/global/networks",
103651	//   "response": {
103652	//     "$ref": "NetworkList"
103653	//   },
103654	//   "scopes": [
103655	//     "https://www.googleapis.com/auth/cloud-platform",
103656	//     "https://www.googleapis.com/auth/compute",
103657	//     "https://www.googleapis.com/auth/compute.readonly"
103658	//   ]
103659	// }
103660
103661}
103662
103663// Pages invokes f for each page of results.
103664// A non-nil error returned from f will halt the iteration.
103665// The provided context supersedes any context provided to the Context method.
103666func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
103667	c.ctx_ = ctx
103668	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103669	for {
103670		x, err := c.Do()
103671		if err != nil {
103672			return err
103673		}
103674		if err := f(x); err != nil {
103675			return err
103676		}
103677		if x.NextPageToken == "" {
103678			return nil
103679		}
103680		c.PageToken(x.NextPageToken)
103681	}
103682}
103683
103684// method id "compute.networks.listPeeringRoutes":
103685
103686type NetworksListPeeringRoutesCall struct {
103687	s            *Service
103688	project      string
103689	network      string
103690	urlParams_   gensupport.URLParams
103691	ifNoneMatch_ string
103692	ctx_         context.Context
103693	header_      http.Header
103694}
103695
103696// ListPeeringRoutes: Lists the peering routes exchanged over peering
103697// connection.
103698//
103699// - network: Name of the network for this request.
103700// - project: Project ID for this request.
103701func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
103702	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103703	c.project = project
103704	c.network = network
103705	return c
103706}
103707
103708// Direction sets the optional parameter "direction": The direction of
103709// the exchanged routes.
103710//
103711// Possible values:
103712//   "INCOMING" - For routes exported from peer network.
103713//   "OUTGOING" - For routes exported from local network.
103714func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
103715	c.urlParams_.Set("direction", direction)
103716	return c
103717}
103718
103719// Filter sets the optional parameter "filter": A filter expression that
103720// filters resources listed in the response. The expression must specify
103721// the field name, a comparison operator, and the value that you want to
103722// use for filtering. The value must be a string, a number, or a
103723// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103724// `<`. For example, if you are filtering Compute Engine instances, you
103725// can exclude instances named `example-instance` by specifying `name !=
103726// example-instance`. You can also filter nested fields. For example,
103727// you could specify `scheduling.automaticRestart = false` to include
103728// instances only if they are not scheduled for automatic restarts. You
103729// can use filtering on nested fields to filter based on resource
103730// labels. To filter on multiple expressions, provide each separate
103731// expression within parentheses. For example: ```
103732// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
103733// ``` By default, each expression is an `AND` expression. However, you
103734// can include `AND` and `OR` expressions explicitly. For example: ```
103735// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
103736// AND (scheduling.automaticRestart = true) ```
103737func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
103738	c.urlParams_.Set("filter", filter)
103739	return c
103740}
103741
103742// MaxResults sets the optional parameter "maxResults": The maximum
103743// number of results per page that should be returned. If the number of
103744// available results is larger than `maxResults`, Compute Engine returns
103745// a `nextPageToken` that can be used to get the next page of results in
103746// subsequent list requests. Acceptable values are `0` to `500`,
103747// inclusive. (Default: `500`)
103748func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
103749	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103750	return c
103751}
103752
103753// OrderBy sets the optional parameter "orderBy": Sorts list results by
103754// a certain order. By default, results are returned in alphanumerical
103755// order based on the resource name. You can also sort results in
103756// descending order based on the creation timestamp using
103757// `orderBy="creationTimestamp desc". This sorts results based on the
103758// `creationTimestamp` field in reverse chronological order (newest
103759// result first). Use this to sort resources like operations so that the
103760// newest operation is returned first. Currently, only sorting by `name`
103761// or `creationTimestamp desc` is supported.
103762func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
103763	c.urlParams_.Set("orderBy", orderBy)
103764	return c
103765}
103766
103767// PageToken sets the optional parameter "pageToken": Specifies a page
103768// token to use. Set `pageToken` to the `nextPageToken` returned by a
103769// previous list request to get the next page of results.
103770func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
103771	c.urlParams_.Set("pageToken", pageToken)
103772	return c
103773}
103774
103775// PeeringName sets the optional parameter "peeringName": The response
103776// will show routes exchanged over the given peering connection.
103777func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
103778	c.urlParams_.Set("peeringName", peeringName)
103779	return c
103780}
103781
103782// Region sets the optional parameter "region": The region of the
103783// request. The response will include all subnet routes, static routes
103784// and dynamic routes in the region.
103785func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
103786	c.urlParams_.Set("region", region)
103787	return c
103788}
103789
103790// ReturnPartialSuccess sets the optional parameter
103791// "returnPartialSuccess": Opt-in for partial success behavior which
103792// provides partial results in case of failure. The default value is
103793// false.
103794func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
103795	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103796	return c
103797}
103798
103799// Fields allows partial responses to be retrieved. See
103800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103801// for more information.
103802func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
103803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103804	return c
103805}
103806
103807// IfNoneMatch sets the optional parameter which makes the operation
103808// fail if the object's ETag matches the given value. This is useful for
103809// getting updates only after the object has changed since the last
103810// request. Use googleapi.IsNotModified to check whether the response
103811// error from Do is the result of In-None-Match.
103812func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
103813	c.ifNoneMatch_ = entityTag
103814	return c
103815}
103816
103817// Context sets the context to be used in this call's Do method. Any
103818// pending HTTP request will be aborted if the provided context is
103819// canceled.
103820func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
103821	c.ctx_ = ctx
103822	return c
103823}
103824
103825// Header returns an http.Header that can be modified by the caller to
103826// add HTTP headers to the request.
103827func (c *NetworksListPeeringRoutesCall) Header() http.Header {
103828	if c.header_ == nil {
103829		c.header_ = make(http.Header)
103830	}
103831	return c.header_
103832}
103833
103834func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
103835	reqHeaders := make(http.Header)
103836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
103837	for k, v := range c.header_ {
103838		reqHeaders[k] = v
103839	}
103840	reqHeaders.Set("User-Agent", c.s.userAgent())
103841	if c.ifNoneMatch_ != "" {
103842		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103843	}
103844	var body io.Reader = nil
103845	c.urlParams_.Set("alt", alt)
103846	c.urlParams_.Set("prettyPrint", "false")
103847	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes")
103848	urls += "?" + c.urlParams_.Encode()
103849	req, err := http.NewRequest("GET", urls, body)
103850	if err != nil {
103851		return nil, err
103852	}
103853	req.Header = reqHeaders
103854	googleapi.Expand(req.URL, map[string]string{
103855		"project": c.project,
103856		"network": c.network,
103857	})
103858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103859}
103860
103861// Do executes the "compute.networks.listPeeringRoutes" call.
103862// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
103863// Any non-2xx status code is an error. Response headers are in either
103864// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
103865// was returned at all) in error.(*googleapi.Error).Header. Use
103866// googleapi.IsNotModified to check whether the returned error was
103867// because http.StatusNotModified was returned.
103868func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
103869	gensupport.SetOptions(c.urlParams_, opts...)
103870	res, err := c.doRequest("json")
103871	if res != nil && res.StatusCode == http.StatusNotModified {
103872		if res.Body != nil {
103873			res.Body.Close()
103874		}
103875		return nil, &googleapi.Error{
103876			Code:   res.StatusCode,
103877			Header: res.Header,
103878		}
103879	}
103880	if err != nil {
103881		return nil, err
103882	}
103883	defer googleapi.CloseBody(res)
103884	if err := googleapi.CheckResponse(res); err != nil {
103885		return nil, err
103886	}
103887	ret := &ExchangedPeeringRoutesList{
103888		ServerResponse: googleapi.ServerResponse{
103889			Header:         res.Header,
103890			HTTPStatusCode: res.StatusCode,
103891		},
103892	}
103893	target := &ret
103894	if err := gensupport.DecodeResponse(target, res); err != nil {
103895		return nil, err
103896	}
103897	return ret, nil
103898	// {
103899	//   "description": "Lists the peering routes exchanged over peering connection.",
103900	//   "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes",
103901	//   "httpMethod": "GET",
103902	//   "id": "compute.networks.listPeeringRoutes",
103903	//   "parameterOrder": [
103904	//     "project",
103905	//     "network"
103906	//   ],
103907	//   "parameters": {
103908	//     "direction": {
103909	//       "description": "The direction of the exchanged routes.",
103910	//       "enum": [
103911	//         "INCOMING",
103912	//         "OUTGOING"
103913	//       ],
103914	//       "enumDescriptions": [
103915	//         "For routes exported from peer network.",
103916	//         "For routes exported from local network."
103917	//       ],
103918	//       "location": "query",
103919	//       "type": "string"
103920	//     },
103921	//     "filter": {
103922	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103923	//       "location": "query",
103924	//       "type": "string"
103925	//     },
103926	//     "maxResults": {
103927	//       "default": "500",
103928	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103929	//       "format": "uint32",
103930	//       "location": "query",
103931	//       "minimum": "0",
103932	//       "type": "integer"
103933	//     },
103934	//     "network": {
103935	//       "description": "Name of the network for this request.",
103936	//       "location": "path",
103937	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103938	//       "required": true,
103939	//       "type": "string"
103940	//     },
103941	//     "orderBy": {
103942	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
103943	//       "location": "query",
103944	//       "type": "string"
103945	//     },
103946	//     "pageToken": {
103947	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103948	//       "location": "query",
103949	//       "type": "string"
103950	//     },
103951	//     "peeringName": {
103952	//       "description": "The response will show routes exchanged over the given peering connection.",
103953	//       "location": "query",
103954	//       "type": "string"
103955	//     },
103956	//     "project": {
103957	//       "description": "Project ID for this request.",
103958	//       "location": "path",
103959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103960	//       "required": true,
103961	//       "type": "string"
103962	//     },
103963	//     "region": {
103964	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
103965	//       "location": "query",
103966	//       "type": "string"
103967	//     },
103968	//     "returnPartialSuccess": {
103969	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
103970	//       "location": "query",
103971	//       "type": "boolean"
103972	//     }
103973	//   },
103974	//   "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
103975	//   "response": {
103976	//     "$ref": "ExchangedPeeringRoutesList"
103977	//   },
103978	//   "scopes": [
103979	//     "https://www.googleapis.com/auth/cloud-platform",
103980	//     "https://www.googleapis.com/auth/compute",
103981	//     "https://www.googleapis.com/auth/compute.readonly"
103982	//   ]
103983	// }
103984
103985}
103986
103987// Pages invokes f for each page of results.
103988// A non-nil error returned from f will halt the iteration.
103989// The provided context supersedes any context provided to the Context method.
103990func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
103991	c.ctx_ = ctx
103992	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103993	for {
103994		x, err := c.Do()
103995		if err != nil {
103996			return err
103997		}
103998		if err := f(x); err != nil {
103999			return err
104000		}
104001		if x.NextPageToken == "" {
104002			return nil
104003		}
104004		c.PageToken(x.NextPageToken)
104005	}
104006}
104007
104008// method id "compute.networks.patch":
104009
104010type NetworksPatchCall struct {
104011	s          *Service
104012	project    string
104013	network    string
104014	network2   *Network
104015	urlParams_ gensupport.URLParams
104016	ctx_       context.Context
104017	header_    http.Header
104018}
104019
104020// Patch: Patches the specified network with the data included in the
104021// request. Only the following fields can be modified:
104022// routingConfig.routingMode.
104023//
104024// - network: Name of the network to update.
104025// - project: Project ID for this request.
104026func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
104027	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104028	c.project = project
104029	c.network = network
104030	c.network2 = network2
104031	return c
104032}
104033
104034// RequestId sets the optional parameter "requestId": An optional
104035// request ID to identify requests. Specify a unique request ID so that
104036// if you must retry your request, the server will know to ignore the
104037// request if it has already been completed. For example, consider a
104038// situation where you make an initial request and the request times
104039// out. If you make the request again with the same request ID, the
104040// server can check if original operation with the same request ID was
104041// received, and if so, will ignore the second request. This prevents
104042// clients from accidentally creating duplicate commitments. The request
104043// ID must be a valid UUID with the exception that zero UUID is not
104044// supported ( 00000000-0000-0000-0000-000000000000).
104045func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
104046	c.urlParams_.Set("requestId", requestId)
104047	return c
104048}
104049
104050// Fields allows partial responses to be retrieved. See
104051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104052// for more information.
104053func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
104054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104055	return c
104056}
104057
104058// Context sets the context to be used in this call's Do method. Any
104059// pending HTTP request will be aborted if the provided context is
104060// canceled.
104061func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
104062	c.ctx_ = ctx
104063	return c
104064}
104065
104066// Header returns an http.Header that can be modified by the caller to
104067// add HTTP headers to the request.
104068func (c *NetworksPatchCall) Header() http.Header {
104069	if c.header_ == nil {
104070		c.header_ = make(http.Header)
104071	}
104072	return c.header_
104073}
104074
104075func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
104076	reqHeaders := make(http.Header)
104077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
104078	for k, v := range c.header_ {
104079		reqHeaders[k] = v
104080	}
104081	reqHeaders.Set("User-Agent", c.s.userAgent())
104082	var body io.Reader = nil
104083	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
104084	if err != nil {
104085		return nil, err
104086	}
104087	reqHeaders.Set("Content-Type", "application/json")
104088	c.urlParams_.Set("alt", alt)
104089	c.urlParams_.Set("prettyPrint", "false")
104090	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
104091	urls += "?" + c.urlParams_.Encode()
104092	req, err := http.NewRequest("PATCH", urls, body)
104093	if err != nil {
104094		return nil, err
104095	}
104096	req.Header = reqHeaders
104097	googleapi.Expand(req.URL, map[string]string{
104098		"project": c.project,
104099		"network": c.network,
104100	})
104101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104102}
104103
104104// Do executes the "compute.networks.patch" call.
104105// Exactly one of *Operation or error will be non-nil. Any non-2xx
104106// status code is an error. Response headers are in either
104107// *Operation.ServerResponse.Header or (if a response was returned at
104108// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104109// to check whether the returned error was because
104110// http.StatusNotModified was returned.
104111func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104112	gensupport.SetOptions(c.urlParams_, opts...)
104113	res, err := c.doRequest("json")
104114	if res != nil && res.StatusCode == http.StatusNotModified {
104115		if res.Body != nil {
104116			res.Body.Close()
104117		}
104118		return nil, &googleapi.Error{
104119			Code:   res.StatusCode,
104120			Header: res.Header,
104121		}
104122	}
104123	if err != nil {
104124		return nil, err
104125	}
104126	defer googleapi.CloseBody(res)
104127	if err := googleapi.CheckResponse(res); err != nil {
104128		return nil, err
104129	}
104130	ret := &Operation{
104131		ServerResponse: googleapi.ServerResponse{
104132			Header:         res.Header,
104133			HTTPStatusCode: res.StatusCode,
104134		},
104135	}
104136	target := &ret
104137	if err := gensupport.DecodeResponse(target, res); err != nil {
104138		return nil, err
104139	}
104140	return ret, nil
104141	// {
104142	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
104143	//   "flatPath": "projects/{project}/global/networks/{network}",
104144	//   "httpMethod": "PATCH",
104145	//   "id": "compute.networks.patch",
104146	//   "parameterOrder": [
104147	//     "project",
104148	//     "network"
104149	//   ],
104150	//   "parameters": {
104151	//     "network": {
104152	//       "description": "Name of the network to update.",
104153	//       "location": "path",
104154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104155	//       "required": true,
104156	//       "type": "string"
104157	//     },
104158	//     "project": {
104159	//       "description": "Project ID for this request.",
104160	//       "location": "path",
104161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104162	//       "required": true,
104163	//       "type": "string"
104164	//     },
104165	//     "requestId": {
104166	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104167	//       "location": "query",
104168	//       "type": "string"
104169	//     }
104170	//   },
104171	//   "path": "projects/{project}/global/networks/{network}",
104172	//   "request": {
104173	//     "$ref": "Network"
104174	//   },
104175	//   "response": {
104176	//     "$ref": "Operation"
104177	//   },
104178	//   "scopes": [
104179	//     "https://www.googleapis.com/auth/cloud-platform",
104180	//     "https://www.googleapis.com/auth/compute"
104181	//   ]
104182	// }
104183
104184}
104185
104186// method id "compute.networks.removePeering":
104187
104188type NetworksRemovePeeringCall struct {
104189	s                            *Service
104190	project                      string
104191	network                      string
104192	networksremovepeeringrequest *NetworksRemovePeeringRequest
104193	urlParams_                   gensupport.URLParams
104194	ctx_                         context.Context
104195	header_                      http.Header
104196}
104197
104198// RemovePeering: Removes a peering from the specified network.
104199//
104200// - network: Name of the network resource to remove peering from.
104201// - project: Project ID for this request.
104202func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
104203	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104204	c.project = project
104205	c.network = network
104206	c.networksremovepeeringrequest = networksremovepeeringrequest
104207	return c
104208}
104209
104210// RequestId sets the optional parameter "requestId": An optional
104211// request ID to identify requests. Specify a unique request ID so that
104212// if you must retry your request, the server will know to ignore the
104213// request if it has already been completed. For example, consider a
104214// situation where you make an initial request and the request times
104215// out. If you make the request again with the same request ID, the
104216// server can check if original operation with the same request ID was
104217// received, and if so, will ignore the second request. This prevents
104218// clients from accidentally creating duplicate commitments. The request
104219// ID must be a valid UUID with the exception that zero UUID is not
104220// supported ( 00000000-0000-0000-0000-000000000000).
104221func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
104222	c.urlParams_.Set("requestId", requestId)
104223	return c
104224}
104225
104226// Fields allows partial responses to be retrieved. See
104227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104228// for more information.
104229func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
104230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104231	return c
104232}
104233
104234// Context sets the context to be used in this call's Do method. Any
104235// pending HTTP request will be aborted if the provided context is
104236// canceled.
104237func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
104238	c.ctx_ = ctx
104239	return c
104240}
104241
104242// Header returns an http.Header that can be modified by the caller to
104243// add HTTP headers to the request.
104244func (c *NetworksRemovePeeringCall) Header() http.Header {
104245	if c.header_ == nil {
104246		c.header_ = make(http.Header)
104247	}
104248	return c.header_
104249}
104250
104251func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
104252	reqHeaders := make(http.Header)
104253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
104254	for k, v := range c.header_ {
104255		reqHeaders[k] = v
104256	}
104257	reqHeaders.Set("User-Agent", c.s.userAgent())
104258	var body io.Reader = nil
104259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
104260	if err != nil {
104261		return nil, err
104262	}
104263	reqHeaders.Set("Content-Type", "application/json")
104264	c.urlParams_.Set("alt", alt)
104265	c.urlParams_.Set("prettyPrint", "false")
104266	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering")
104267	urls += "?" + c.urlParams_.Encode()
104268	req, err := http.NewRequest("POST", urls, body)
104269	if err != nil {
104270		return nil, err
104271	}
104272	req.Header = reqHeaders
104273	googleapi.Expand(req.URL, map[string]string{
104274		"project": c.project,
104275		"network": c.network,
104276	})
104277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104278}
104279
104280// Do executes the "compute.networks.removePeering" call.
104281// Exactly one of *Operation or error will be non-nil. Any non-2xx
104282// status code is an error. Response headers are in either
104283// *Operation.ServerResponse.Header or (if a response was returned at
104284// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104285// to check whether the returned error was because
104286// http.StatusNotModified was returned.
104287func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104288	gensupport.SetOptions(c.urlParams_, opts...)
104289	res, err := c.doRequest("json")
104290	if res != nil && res.StatusCode == http.StatusNotModified {
104291		if res.Body != nil {
104292			res.Body.Close()
104293		}
104294		return nil, &googleapi.Error{
104295			Code:   res.StatusCode,
104296			Header: res.Header,
104297		}
104298	}
104299	if err != nil {
104300		return nil, err
104301	}
104302	defer googleapi.CloseBody(res)
104303	if err := googleapi.CheckResponse(res); err != nil {
104304		return nil, err
104305	}
104306	ret := &Operation{
104307		ServerResponse: googleapi.ServerResponse{
104308			Header:         res.Header,
104309			HTTPStatusCode: res.StatusCode,
104310		},
104311	}
104312	target := &ret
104313	if err := gensupport.DecodeResponse(target, res); err != nil {
104314		return nil, err
104315	}
104316	return ret, nil
104317	// {
104318	//   "description": "Removes a peering from the specified network.",
104319	//   "flatPath": "projects/{project}/global/networks/{network}/removePeering",
104320	//   "httpMethod": "POST",
104321	//   "id": "compute.networks.removePeering",
104322	//   "parameterOrder": [
104323	//     "project",
104324	//     "network"
104325	//   ],
104326	//   "parameters": {
104327	//     "network": {
104328	//       "description": "Name of the network resource to remove peering from.",
104329	//       "location": "path",
104330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104331	//       "required": true,
104332	//       "type": "string"
104333	//     },
104334	//     "project": {
104335	//       "description": "Project ID for this request.",
104336	//       "location": "path",
104337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104338	//       "required": true,
104339	//       "type": "string"
104340	//     },
104341	//     "requestId": {
104342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104343	//       "location": "query",
104344	//       "type": "string"
104345	//     }
104346	//   },
104347	//   "path": "projects/{project}/global/networks/{network}/removePeering",
104348	//   "request": {
104349	//     "$ref": "NetworksRemovePeeringRequest"
104350	//   },
104351	//   "response": {
104352	//     "$ref": "Operation"
104353	//   },
104354	//   "scopes": [
104355	//     "https://www.googleapis.com/auth/cloud-platform",
104356	//     "https://www.googleapis.com/auth/compute"
104357	//   ]
104358	// }
104359
104360}
104361
104362// method id "compute.networks.switchToCustomMode":
104363
104364type NetworksSwitchToCustomModeCall struct {
104365	s          *Service
104366	project    string
104367	network    string
104368	urlParams_ gensupport.URLParams
104369	ctx_       context.Context
104370	header_    http.Header
104371}
104372
104373// SwitchToCustomMode: Switches the network mode from auto subnet mode
104374// to custom subnet mode.
104375//
104376// - network: Name of the network to be updated.
104377// - project: Project ID for this request.
104378func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
104379	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104380	c.project = project
104381	c.network = network
104382	return c
104383}
104384
104385// RequestId sets the optional parameter "requestId": An optional
104386// request ID to identify requests. Specify a unique request ID so that
104387// if you must retry your request, the server will know to ignore the
104388// request if it has already been completed. For example, consider a
104389// situation where you make an initial request and the request times
104390// out. If you make the request again with the same request ID, the
104391// server can check if original operation with the same request ID was
104392// received, and if so, will ignore the second request. This prevents
104393// clients from accidentally creating duplicate commitments. The request
104394// ID must be a valid UUID with the exception that zero UUID is not
104395// supported ( 00000000-0000-0000-0000-000000000000).
104396func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
104397	c.urlParams_.Set("requestId", requestId)
104398	return c
104399}
104400
104401// Fields allows partial responses to be retrieved. See
104402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104403// for more information.
104404func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
104405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104406	return c
104407}
104408
104409// Context sets the context to be used in this call's Do method. Any
104410// pending HTTP request will be aborted if the provided context is
104411// canceled.
104412func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
104413	c.ctx_ = ctx
104414	return c
104415}
104416
104417// Header returns an http.Header that can be modified by the caller to
104418// add HTTP headers to the request.
104419func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
104420	if c.header_ == nil {
104421		c.header_ = make(http.Header)
104422	}
104423	return c.header_
104424}
104425
104426func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
104427	reqHeaders := make(http.Header)
104428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
104429	for k, v := range c.header_ {
104430		reqHeaders[k] = v
104431	}
104432	reqHeaders.Set("User-Agent", c.s.userAgent())
104433	var body io.Reader = nil
104434	c.urlParams_.Set("alt", alt)
104435	c.urlParams_.Set("prettyPrint", "false")
104436	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode")
104437	urls += "?" + c.urlParams_.Encode()
104438	req, err := http.NewRequest("POST", urls, body)
104439	if err != nil {
104440		return nil, err
104441	}
104442	req.Header = reqHeaders
104443	googleapi.Expand(req.URL, map[string]string{
104444		"project": c.project,
104445		"network": c.network,
104446	})
104447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104448}
104449
104450// Do executes the "compute.networks.switchToCustomMode" call.
104451// Exactly one of *Operation or error will be non-nil. Any non-2xx
104452// status code is an error. Response headers are in either
104453// *Operation.ServerResponse.Header or (if a response was returned at
104454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104455// to check whether the returned error was because
104456// http.StatusNotModified was returned.
104457func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104458	gensupport.SetOptions(c.urlParams_, opts...)
104459	res, err := c.doRequest("json")
104460	if res != nil && res.StatusCode == http.StatusNotModified {
104461		if res.Body != nil {
104462			res.Body.Close()
104463		}
104464		return nil, &googleapi.Error{
104465			Code:   res.StatusCode,
104466			Header: res.Header,
104467		}
104468	}
104469	if err != nil {
104470		return nil, err
104471	}
104472	defer googleapi.CloseBody(res)
104473	if err := googleapi.CheckResponse(res); err != nil {
104474		return nil, err
104475	}
104476	ret := &Operation{
104477		ServerResponse: googleapi.ServerResponse{
104478			Header:         res.Header,
104479			HTTPStatusCode: res.StatusCode,
104480		},
104481	}
104482	target := &ret
104483	if err := gensupport.DecodeResponse(target, res); err != nil {
104484		return nil, err
104485	}
104486	return ret, nil
104487	// {
104488	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
104489	//   "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode",
104490	//   "httpMethod": "POST",
104491	//   "id": "compute.networks.switchToCustomMode",
104492	//   "parameterOrder": [
104493	//     "project",
104494	//     "network"
104495	//   ],
104496	//   "parameters": {
104497	//     "network": {
104498	//       "description": "Name of the network to be updated.",
104499	//       "location": "path",
104500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104501	//       "required": true,
104502	//       "type": "string"
104503	//     },
104504	//     "project": {
104505	//       "description": "Project ID for this request.",
104506	//       "location": "path",
104507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104508	//       "required": true,
104509	//       "type": "string"
104510	//     },
104511	//     "requestId": {
104512	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104513	//       "location": "query",
104514	//       "type": "string"
104515	//     }
104516	//   },
104517	//   "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
104518	//   "response": {
104519	//     "$ref": "Operation"
104520	//   },
104521	//   "scopes": [
104522	//     "https://www.googleapis.com/auth/cloud-platform",
104523	//     "https://www.googleapis.com/auth/compute"
104524	//   ]
104525	// }
104526
104527}
104528
104529// method id "compute.networks.updatePeering":
104530
104531type NetworksUpdatePeeringCall struct {
104532	s                            *Service
104533	project                      string
104534	network                      string
104535	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
104536	urlParams_                   gensupport.URLParams
104537	ctx_                         context.Context
104538	header_                      http.Header
104539}
104540
104541// UpdatePeering: Updates the specified network peering with the data
104542// included in the request. You can only modify the
104543// NetworkPeering.export_custom_routes field and the
104544// NetworkPeering.import_custom_routes field.
104545//
104546// - network: Name of the network resource which the updated peering is
104547//   belonging to.
104548// - project: Project ID for this request.
104549func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
104550	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104551	c.project = project
104552	c.network = network
104553	c.networksupdatepeeringrequest = networksupdatepeeringrequest
104554	return c
104555}
104556
104557// RequestId sets the optional parameter "requestId": An optional
104558// request ID to identify requests. Specify a unique request ID so that
104559// if you must retry your request, the server will know to ignore the
104560// request if it has already been completed. For example, consider a
104561// situation where you make an initial request and the request times
104562// out. If you make the request again with the same request ID, the
104563// server can check if original operation with the same request ID was
104564// received, and if so, will ignore the second request. This prevents
104565// clients from accidentally creating duplicate commitments. The request
104566// ID must be a valid UUID with the exception that zero UUID is not
104567// supported ( 00000000-0000-0000-0000-000000000000).
104568func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
104569	c.urlParams_.Set("requestId", requestId)
104570	return c
104571}
104572
104573// Fields allows partial responses to be retrieved. See
104574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104575// for more information.
104576func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
104577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104578	return c
104579}
104580
104581// Context sets the context to be used in this call's Do method. Any
104582// pending HTTP request will be aborted if the provided context is
104583// canceled.
104584func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
104585	c.ctx_ = ctx
104586	return c
104587}
104588
104589// Header returns an http.Header that can be modified by the caller to
104590// add HTTP headers to the request.
104591func (c *NetworksUpdatePeeringCall) Header() http.Header {
104592	if c.header_ == nil {
104593		c.header_ = make(http.Header)
104594	}
104595	return c.header_
104596}
104597
104598func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
104599	reqHeaders := make(http.Header)
104600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
104601	for k, v := range c.header_ {
104602		reqHeaders[k] = v
104603	}
104604	reqHeaders.Set("User-Agent", c.s.userAgent())
104605	var body io.Reader = nil
104606	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
104607	if err != nil {
104608		return nil, err
104609	}
104610	reqHeaders.Set("Content-Type", "application/json")
104611	c.urlParams_.Set("alt", alt)
104612	c.urlParams_.Set("prettyPrint", "false")
104613	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering")
104614	urls += "?" + c.urlParams_.Encode()
104615	req, err := http.NewRequest("PATCH", urls, body)
104616	if err != nil {
104617		return nil, err
104618	}
104619	req.Header = reqHeaders
104620	googleapi.Expand(req.URL, map[string]string{
104621		"project": c.project,
104622		"network": c.network,
104623	})
104624	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104625}
104626
104627// Do executes the "compute.networks.updatePeering" call.
104628// Exactly one of *Operation or error will be non-nil. Any non-2xx
104629// status code is an error. Response headers are in either
104630// *Operation.ServerResponse.Header or (if a response was returned at
104631// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104632// to check whether the returned error was because
104633// http.StatusNotModified was returned.
104634func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104635	gensupport.SetOptions(c.urlParams_, opts...)
104636	res, err := c.doRequest("json")
104637	if res != nil && res.StatusCode == http.StatusNotModified {
104638		if res.Body != nil {
104639			res.Body.Close()
104640		}
104641		return nil, &googleapi.Error{
104642			Code:   res.StatusCode,
104643			Header: res.Header,
104644		}
104645	}
104646	if err != nil {
104647		return nil, err
104648	}
104649	defer googleapi.CloseBody(res)
104650	if err := googleapi.CheckResponse(res); err != nil {
104651		return nil, err
104652	}
104653	ret := &Operation{
104654		ServerResponse: googleapi.ServerResponse{
104655			Header:         res.Header,
104656			HTTPStatusCode: res.StatusCode,
104657		},
104658	}
104659	target := &ret
104660	if err := gensupport.DecodeResponse(target, res); err != nil {
104661		return nil, err
104662	}
104663	return ret, nil
104664	// {
104665	//   "description": "Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export_custom_routes field and the NetworkPeering.import_custom_routes field.",
104666	//   "flatPath": "projects/{project}/global/networks/{network}/updatePeering",
104667	//   "httpMethod": "PATCH",
104668	//   "id": "compute.networks.updatePeering",
104669	//   "parameterOrder": [
104670	//     "project",
104671	//     "network"
104672	//   ],
104673	//   "parameters": {
104674	//     "network": {
104675	//       "description": "Name of the network resource which the updated peering is belonging to.",
104676	//       "location": "path",
104677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104678	//       "required": true,
104679	//       "type": "string"
104680	//     },
104681	//     "project": {
104682	//       "description": "Project ID for this request.",
104683	//       "location": "path",
104684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104685	//       "required": true,
104686	//       "type": "string"
104687	//     },
104688	//     "requestId": {
104689	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104690	//       "location": "query",
104691	//       "type": "string"
104692	//     }
104693	//   },
104694	//   "path": "projects/{project}/global/networks/{network}/updatePeering",
104695	//   "request": {
104696	//     "$ref": "NetworksUpdatePeeringRequest"
104697	//   },
104698	//   "response": {
104699	//     "$ref": "Operation"
104700	//   },
104701	//   "scopes": [
104702	//     "https://www.googleapis.com/auth/cloud-platform",
104703	//     "https://www.googleapis.com/auth/compute"
104704	//   ]
104705	// }
104706
104707}
104708
104709// method id "compute.nodeGroups.addNodes":
104710
104711type NodeGroupsAddNodesCall struct {
104712	s                         *Service
104713	project                   string
104714	zone                      string
104715	nodeGroup                 string
104716	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
104717	urlParams_                gensupport.URLParams
104718	ctx_                      context.Context
104719	header_                   http.Header
104720}
104721
104722// AddNodes: Adds specified number of nodes to the node group.
104723//
104724// - nodeGroup: Name of the NodeGroup resource.
104725// - project: Project ID for this request.
104726// - zone: The name of the zone for this request.
104727func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
104728	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104729	c.project = project
104730	c.zone = zone
104731	c.nodeGroup = nodeGroup
104732	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
104733	return c
104734}
104735
104736// RequestId sets the optional parameter "requestId": An optional
104737// request ID to identify requests. Specify a unique request ID so that
104738// if you must retry your request, the server will know to ignore the
104739// request if it has already been completed. For example, consider a
104740// situation where you make an initial request and the request times
104741// out. If you make the request again with the same request ID, the
104742// server can check if original operation with the same request ID was
104743// received, and if so, will ignore the second request. This prevents
104744// clients from accidentally creating duplicate commitments. The request
104745// ID must be a valid UUID with the exception that zero UUID is not
104746// supported ( 00000000-0000-0000-0000-000000000000).
104747func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
104748	c.urlParams_.Set("requestId", requestId)
104749	return c
104750}
104751
104752// Fields allows partial responses to be retrieved. See
104753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104754// for more information.
104755func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
104756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104757	return c
104758}
104759
104760// Context sets the context to be used in this call's Do method. Any
104761// pending HTTP request will be aborted if the provided context is
104762// canceled.
104763func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
104764	c.ctx_ = ctx
104765	return c
104766}
104767
104768// Header returns an http.Header that can be modified by the caller to
104769// add HTTP headers to the request.
104770func (c *NodeGroupsAddNodesCall) Header() http.Header {
104771	if c.header_ == nil {
104772		c.header_ = make(http.Header)
104773	}
104774	return c.header_
104775}
104776
104777func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
104778	reqHeaders := make(http.Header)
104779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
104780	for k, v := range c.header_ {
104781		reqHeaders[k] = v
104782	}
104783	reqHeaders.Set("User-Agent", c.s.userAgent())
104784	var body io.Reader = nil
104785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
104786	if err != nil {
104787		return nil, err
104788	}
104789	reqHeaders.Set("Content-Type", "application/json")
104790	c.urlParams_.Set("alt", alt)
104791	c.urlParams_.Set("prettyPrint", "false")
104792	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
104793	urls += "?" + c.urlParams_.Encode()
104794	req, err := http.NewRequest("POST", urls, body)
104795	if err != nil {
104796		return nil, err
104797	}
104798	req.Header = reqHeaders
104799	googleapi.Expand(req.URL, map[string]string{
104800		"project":   c.project,
104801		"zone":      c.zone,
104802		"nodeGroup": c.nodeGroup,
104803	})
104804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104805}
104806
104807// Do executes the "compute.nodeGroups.addNodes" call.
104808// Exactly one of *Operation or error will be non-nil. Any non-2xx
104809// status code is an error. Response headers are in either
104810// *Operation.ServerResponse.Header or (if a response was returned at
104811// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104812// to check whether the returned error was because
104813// http.StatusNotModified was returned.
104814func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104815	gensupport.SetOptions(c.urlParams_, opts...)
104816	res, err := c.doRequest("json")
104817	if res != nil && res.StatusCode == http.StatusNotModified {
104818		if res.Body != nil {
104819			res.Body.Close()
104820		}
104821		return nil, &googleapi.Error{
104822			Code:   res.StatusCode,
104823			Header: res.Header,
104824		}
104825	}
104826	if err != nil {
104827		return nil, err
104828	}
104829	defer googleapi.CloseBody(res)
104830	if err := googleapi.CheckResponse(res); err != nil {
104831		return nil, err
104832	}
104833	ret := &Operation{
104834		ServerResponse: googleapi.ServerResponse{
104835			Header:         res.Header,
104836			HTTPStatusCode: res.StatusCode,
104837		},
104838	}
104839	target := &ret
104840	if err := gensupport.DecodeResponse(target, res); err != nil {
104841		return nil, err
104842	}
104843	return ret, nil
104844	// {
104845	//   "description": "Adds specified number of nodes to the node group.",
104846	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
104847	//   "httpMethod": "POST",
104848	//   "id": "compute.nodeGroups.addNodes",
104849	//   "parameterOrder": [
104850	//     "project",
104851	//     "zone",
104852	//     "nodeGroup"
104853	//   ],
104854	//   "parameters": {
104855	//     "nodeGroup": {
104856	//       "description": "Name of the NodeGroup resource.",
104857	//       "location": "path",
104858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104859	//       "required": true,
104860	//       "type": "string"
104861	//     },
104862	//     "project": {
104863	//       "description": "Project ID for this request.",
104864	//       "location": "path",
104865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104866	//       "required": true,
104867	//       "type": "string"
104868	//     },
104869	//     "requestId": {
104870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104871	//       "location": "query",
104872	//       "type": "string"
104873	//     },
104874	//     "zone": {
104875	//       "description": "The name of the zone for this request.",
104876	//       "location": "path",
104877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104878	//       "required": true,
104879	//       "type": "string"
104880	//     }
104881	//   },
104882	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
104883	//   "request": {
104884	//     "$ref": "NodeGroupsAddNodesRequest"
104885	//   },
104886	//   "response": {
104887	//     "$ref": "Operation"
104888	//   },
104889	//   "scopes": [
104890	//     "https://www.googleapis.com/auth/cloud-platform",
104891	//     "https://www.googleapis.com/auth/compute"
104892	//   ]
104893	// }
104894
104895}
104896
104897// method id "compute.nodeGroups.aggregatedList":
104898
104899type NodeGroupsAggregatedListCall struct {
104900	s            *Service
104901	project      string
104902	urlParams_   gensupport.URLParams
104903	ifNoneMatch_ string
104904	ctx_         context.Context
104905	header_      http.Header
104906}
104907
104908// AggregatedList: Retrieves an aggregated list of node groups. Note:
104909// use nodeGroups.listNodes for more details about each group.
104910//
104911// - project: Project ID for this request.
104912func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
104913	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104914	c.project = project
104915	return c
104916}
104917
104918// Filter sets the optional parameter "filter": A filter expression that
104919// filters resources listed in the response. The expression must specify
104920// the field name, a comparison operator, and the value that you want to
104921// use for filtering. The value must be a string, a number, or a
104922// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104923// `<`. For example, if you are filtering Compute Engine instances, you
104924// can exclude instances named `example-instance` by specifying `name !=
104925// example-instance`. You can also filter nested fields. For example,
104926// you could specify `scheduling.automaticRestart = false` to include
104927// instances only if they are not scheduled for automatic restarts. You
104928// can use filtering on nested fields to filter based on resource
104929// labels. To filter on multiple expressions, provide each separate
104930// expression within parentheses. For example: ```
104931// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
104932// ``` By default, each expression is an `AND` expression. However, you
104933// can include `AND` and `OR` expressions explicitly. For example: ```
104934// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
104935// AND (scheduling.automaticRestart = true) ```
104936func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
104937	c.urlParams_.Set("filter", filter)
104938	return c
104939}
104940
104941// IncludeAllScopes sets the optional parameter "includeAllScopes":
104942// Indicates whether every visible scope for each scope type (zone,
104943// region, global) should be included in the response. For new resource
104944// types added after this field, the flag has no effect as new resource
104945// types will always include every visible scope for each scope type in
104946// response. For resource types which predate this field, if this flag
104947// is omitted or false, only scopes of the scope types where the
104948// resource type is expected to be found will be included.
104949func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
104950	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
104951	return c
104952}
104953
104954// MaxResults sets the optional parameter "maxResults": The maximum
104955// number of results per page that should be returned. If the number of
104956// available results is larger than `maxResults`, Compute Engine returns
104957// a `nextPageToken` that can be used to get the next page of results in
104958// subsequent list requests. Acceptable values are `0` to `500`,
104959// inclusive. (Default: `500`)
104960func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
104961	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104962	return c
104963}
104964
104965// OrderBy sets the optional parameter "orderBy": Sorts list results by
104966// a certain order. By default, results are returned in alphanumerical
104967// order based on the resource name. You can also sort results in
104968// descending order based on the creation timestamp using
104969// `orderBy="creationTimestamp desc". This sorts results based on the
104970// `creationTimestamp` field in reverse chronological order (newest
104971// result first). Use this to sort resources like operations so that the
104972// newest operation is returned first. Currently, only sorting by `name`
104973// or `creationTimestamp desc` is supported.
104974func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
104975	c.urlParams_.Set("orderBy", orderBy)
104976	return c
104977}
104978
104979// PageToken sets the optional parameter "pageToken": Specifies a page
104980// token to use. Set `pageToken` to the `nextPageToken` returned by a
104981// previous list request to get the next page of results.
104982func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
104983	c.urlParams_.Set("pageToken", pageToken)
104984	return c
104985}
104986
104987// ReturnPartialSuccess sets the optional parameter
104988// "returnPartialSuccess": Opt-in for partial success behavior which
104989// provides partial results in case of failure. The default value is
104990// false.
104991func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
104992	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104993	return c
104994}
104995
104996// Fields allows partial responses to be retrieved. See
104997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104998// for more information.
104999func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
105000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105001	return c
105002}
105003
105004// IfNoneMatch sets the optional parameter which makes the operation
105005// fail if the object's ETag matches the given value. This is useful for
105006// getting updates only after the object has changed since the last
105007// request. Use googleapi.IsNotModified to check whether the response
105008// error from Do is the result of In-None-Match.
105009func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
105010	c.ifNoneMatch_ = entityTag
105011	return c
105012}
105013
105014// Context sets the context to be used in this call's Do method. Any
105015// pending HTTP request will be aborted if the provided context is
105016// canceled.
105017func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
105018	c.ctx_ = ctx
105019	return c
105020}
105021
105022// Header returns an http.Header that can be modified by the caller to
105023// add HTTP headers to the request.
105024func (c *NodeGroupsAggregatedListCall) Header() http.Header {
105025	if c.header_ == nil {
105026		c.header_ = make(http.Header)
105027	}
105028	return c.header_
105029}
105030
105031func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
105032	reqHeaders := make(http.Header)
105033	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105034	for k, v := range c.header_ {
105035		reqHeaders[k] = v
105036	}
105037	reqHeaders.Set("User-Agent", c.s.userAgent())
105038	if c.ifNoneMatch_ != "" {
105039		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105040	}
105041	var body io.Reader = nil
105042	c.urlParams_.Set("alt", alt)
105043	c.urlParams_.Set("prettyPrint", "false")
105044	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups")
105045	urls += "?" + c.urlParams_.Encode()
105046	req, err := http.NewRequest("GET", urls, body)
105047	if err != nil {
105048		return nil, err
105049	}
105050	req.Header = reqHeaders
105051	googleapi.Expand(req.URL, map[string]string{
105052		"project": c.project,
105053	})
105054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105055}
105056
105057// Do executes the "compute.nodeGroups.aggregatedList" call.
105058// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
105059// non-2xx status code is an error. Response headers are in either
105060// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
105061// returned at all) in error.(*googleapi.Error).Header. Use
105062// googleapi.IsNotModified to check whether the returned error was
105063// because http.StatusNotModified was returned.
105064func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
105065	gensupport.SetOptions(c.urlParams_, opts...)
105066	res, err := c.doRequest("json")
105067	if res != nil && res.StatusCode == http.StatusNotModified {
105068		if res.Body != nil {
105069			res.Body.Close()
105070		}
105071		return nil, &googleapi.Error{
105072			Code:   res.StatusCode,
105073			Header: res.Header,
105074		}
105075	}
105076	if err != nil {
105077		return nil, err
105078	}
105079	defer googleapi.CloseBody(res)
105080	if err := googleapi.CheckResponse(res); err != nil {
105081		return nil, err
105082	}
105083	ret := &NodeGroupAggregatedList{
105084		ServerResponse: googleapi.ServerResponse{
105085			Header:         res.Header,
105086			HTTPStatusCode: res.StatusCode,
105087		},
105088	}
105089	target := &ret
105090	if err := gensupport.DecodeResponse(target, res); err != nil {
105091		return nil, err
105092	}
105093	return ret, nil
105094	// {
105095	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
105096	//   "flatPath": "projects/{project}/aggregated/nodeGroups",
105097	//   "httpMethod": "GET",
105098	//   "id": "compute.nodeGroups.aggregatedList",
105099	//   "parameterOrder": [
105100	//     "project"
105101	//   ],
105102	//   "parameters": {
105103	//     "filter": {
105104	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105105	//       "location": "query",
105106	//       "type": "string"
105107	//     },
105108	//     "includeAllScopes": {
105109	//       "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.",
105110	//       "location": "query",
105111	//       "type": "boolean"
105112	//     },
105113	//     "maxResults": {
105114	//       "default": "500",
105115	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105116	//       "format": "uint32",
105117	//       "location": "query",
105118	//       "minimum": "0",
105119	//       "type": "integer"
105120	//     },
105121	//     "orderBy": {
105122	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
105123	//       "location": "query",
105124	//       "type": "string"
105125	//     },
105126	//     "pageToken": {
105127	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105128	//       "location": "query",
105129	//       "type": "string"
105130	//     },
105131	//     "project": {
105132	//       "description": "Project ID for this request.",
105133	//       "location": "path",
105134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105135	//       "required": true,
105136	//       "type": "string"
105137	//     },
105138	//     "returnPartialSuccess": {
105139	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105140	//       "location": "query",
105141	//       "type": "boolean"
105142	//     }
105143	//   },
105144	//   "path": "projects/{project}/aggregated/nodeGroups",
105145	//   "response": {
105146	//     "$ref": "NodeGroupAggregatedList"
105147	//   },
105148	//   "scopes": [
105149	//     "https://www.googleapis.com/auth/cloud-platform",
105150	//     "https://www.googleapis.com/auth/compute",
105151	//     "https://www.googleapis.com/auth/compute.readonly"
105152	//   ]
105153	// }
105154
105155}
105156
105157// Pages invokes f for each page of results.
105158// A non-nil error returned from f will halt the iteration.
105159// The provided context supersedes any context provided to the Context method.
105160func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
105161	c.ctx_ = ctx
105162	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105163	for {
105164		x, err := c.Do()
105165		if err != nil {
105166			return err
105167		}
105168		if err := f(x); err != nil {
105169			return err
105170		}
105171		if x.NextPageToken == "" {
105172			return nil
105173		}
105174		c.PageToken(x.NextPageToken)
105175	}
105176}
105177
105178// method id "compute.nodeGroups.delete":
105179
105180type NodeGroupsDeleteCall struct {
105181	s          *Service
105182	project    string
105183	zone       string
105184	nodeGroup  string
105185	urlParams_ gensupport.URLParams
105186	ctx_       context.Context
105187	header_    http.Header
105188}
105189
105190// Delete: Deletes the specified NodeGroup resource.
105191//
105192// - nodeGroup: Name of the NodeGroup resource to delete.
105193// - project: Project ID for this request.
105194// - zone: The name of the zone for this request.
105195func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
105196	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105197	c.project = project
105198	c.zone = zone
105199	c.nodeGroup = nodeGroup
105200	return c
105201}
105202
105203// RequestId sets the optional parameter "requestId": An optional
105204// request ID to identify requests. Specify a unique request ID so that
105205// if you must retry your request, the server will know to ignore the
105206// request if it has already been completed. For example, consider a
105207// situation where you make an initial request and the request times
105208// out. If you make the request again with the same request ID, the
105209// server can check if original operation with the same request ID was
105210// received, and if so, will ignore the second request. This prevents
105211// clients from accidentally creating duplicate commitments. The request
105212// ID must be a valid UUID with the exception that zero UUID is not
105213// supported ( 00000000-0000-0000-0000-000000000000).
105214func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
105215	c.urlParams_.Set("requestId", requestId)
105216	return c
105217}
105218
105219// Fields allows partial responses to be retrieved. See
105220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105221// for more information.
105222func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
105223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105224	return c
105225}
105226
105227// Context sets the context to be used in this call's Do method. Any
105228// pending HTTP request will be aborted if the provided context is
105229// canceled.
105230func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
105231	c.ctx_ = ctx
105232	return c
105233}
105234
105235// Header returns an http.Header that can be modified by the caller to
105236// add HTTP headers to the request.
105237func (c *NodeGroupsDeleteCall) Header() http.Header {
105238	if c.header_ == nil {
105239		c.header_ = make(http.Header)
105240	}
105241	return c.header_
105242}
105243
105244func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
105245	reqHeaders := make(http.Header)
105246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105247	for k, v := range c.header_ {
105248		reqHeaders[k] = v
105249	}
105250	reqHeaders.Set("User-Agent", c.s.userAgent())
105251	var body io.Reader = nil
105252	c.urlParams_.Set("alt", alt)
105253	c.urlParams_.Set("prettyPrint", "false")
105254	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
105255	urls += "?" + c.urlParams_.Encode()
105256	req, err := http.NewRequest("DELETE", urls, body)
105257	if err != nil {
105258		return nil, err
105259	}
105260	req.Header = reqHeaders
105261	googleapi.Expand(req.URL, map[string]string{
105262		"project":   c.project,
105263		"zone":      c.zone,
105264		"nodeGroup": c.nodeGroup,
105265	})
105266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105267}
105268
105269// Do executes the "compute.nodeGroups.delete" call.
105270// Exactly one of *Operation or error will be non-nil. Any non-2xx
105271// status code is an error. Response headers are in either
105272// *Operation.ServerResponse.Header or (if a response was returned at
105273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105274// to check whether the returned error was because
105275// http.StatusNotModified was returned.
105276func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105277	gensupport.SetOptions(c.urlParams_, opts...)
105278	res, err := c.doRequest("json")
105279	if res != nil && res.StatusCode == http.StatusNotModified {
105280		if res.Body != nil {
105281			res.Body.Close()
105282		}
105283		return nil, &googleapi.Error{
105284			Code:   res.StatusCode,
105285			Header: res.Header,
105286		}
105287	}
105288	if err != nil {
105289		return nil, err
105290	}
105291	defer googleapi.CloseBody(res)
105292	if err := googleapi.CheckResponse(res); err != nil {
105293		return nil, err
105294	}
105295	ret := &Operation{
105296		ServerResponse: googleapi.ServerResponse{
105297			Header:         res.Header,
105298			HTTPStatusCode: res.StatusCode,
105299		},
105300	}
105301	target := &ret
105302	if err := gensupport.DecodeResponse(target, res); err != nil {
105303		return nil, err
105304	}
105305	return ret, nil
105306	// {
105307	//   "description": "Deletes the specified NodeGroup resource.",
105308	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105309	//   "httpMethod": "DELETE",
105310	//   "id": "compute.nodeGroups.delete",
105311	//   "parameterOrder": [
105312	//     "project",
105313	//     "zone",
105314	//     "nodeGroup"
105315	//   ],
105316	//   "parameters": {
105317	//     "nodeGroup": {
105318	//       "description": "Name of the NodeGroup resource to delete.",
105319	//       "location": "path",
105320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105321	//       "required": true,
105322	//       "type": "string"
105323	//     },
105324	//     "project": {
105325	//       "description": "Project ID for this request.",
105326	//       "location": "path",
105327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105328	//       "required": true,
105329	//       "type": "string"
105330	//     },
105331	//     "requestId": {
105332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105333	//       "location": "query",
105334	//       "type": "string"
105335	//     },
105336	//     "zone": {
105337	//       "description": "The name of the zone for this request.",
105338	//       "location": "path",
105339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105340	//       "required": true,
105341	//       "type": "string"
105342	//     }
105343	//   },
105344	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105345	//   "response": {
105346	//     "$ref": "Operation"
105347	//   },
105348	//   "scopes": [
105349	//     "https://www.googleapis.com/auth/cloud-platform",
105350	//     "https://www.googleapis.com/auth/compute"
105351	//   ]
105352	// }
105353
105354}
105355
105356// method id "compute.nodeGroups.deleteNodes":
105357
105358type NodeGroupsDeleteNodesCall struct {
105359	s                            *Service
105360	project                      string
105361	zone                         string
105362	nodeGroup                    string
105363	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
105364	urlParams_                   gensupport.URLParams
105365	ctx_                         context.Context
105366	header_                      http.Header
105367}
105368
105369// DeleteNodes: Deletes specified nodes from the node group.
105370//
105371// - nodeGroup: Name of the NodeGroup resource whose nodes will be
105372//   deleted.
105373// - project: Project ID for this request.
105374// - zone: The name of the zone for this request.
105375func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
105376	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105377	c.project = project
105378	c.zone = zone
105379	c.nodeGroup = nodeGroup
105380	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
105381	return c
105382}
105383
105384// RequestId sets the optional parameter "requestId": An optional
105385// request ID to identify requests. Specify a unique request ID so that
105386// if you must retry your request, the server will know to ignore the
105387// request if it has already been completed. For example, consider a
105388// situation where you make an initial request and the request times
105389// out. If you make the request again with the same request ID, the
105390// server can check if original operation with the same request ID was
105391// received, and if so, will ignore the second request. This prevents
105392// clients from accidentally creating duplicate commitments. The request
105393// ID must be a valid UUID with the exception that zero UUID is not
105394// supported ( 00000000-0000-0000-0000-000000000000).
105395func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
105396	c.urlParams_.Set("requestId", requestId)
105397	return c
105398}
105399
105400// Fields allows partial responses to be retrieved. See
105401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105402// for more information.
105403func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
105404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105405	return c
105406}
105407
105408// Context sets the context to be used in this call's Do method. Any
105409// pending HTTP request will be aborted if the provided context is
105410// canceled.
105411func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
105412	c.ctx_ = ctx
105413	return c
105414}
105415
105416// Header returns an http.Header that can be modified by the caller to
105417// add HTTP headers to the request.
105418func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
105419	if c.header_ == nil {
105420		c.header_ = make(http.Header)
105421	}
105422	return c.header_
105423}
105424
105425func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
105426	reqHeaders := make(http.Header)
105427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105428	for k, v := range c.header_ {
105429		reqHeaders[k] = v
105430	}
105431	reqHeaders.Set("User-Agent", c.s.userAgent())
105432	var body io.Reader = nil
105433	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
105434	if err != nil {
105435		return nil, err
105436	}
105437	reqHeaders.Set("Content-Type", "application/json")
105438	c.urlParams_.Set("alt", alt)
105439	c.urlParams_.Set("prettyPrint", "false")
105440	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
105441	urls += "?" + c.urlParams_.Encode()
105442	req, err := http.NewRequest("POST", urls, body)
105443	if err != nil {
105444		return nil, err
105445	}
105446	req.Header = reqHeaders
105447	googleapi.Expand(req.URL, map[string]string{
105448		"project":   c.project,
105449		"zone":      c.zone,
105450		"nodeGroup": c.nodeGroup,
105451	})
105452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105453}
105454
105455// Do executes the "compute.nodeGroups.deleteNodes" call.
105456// Exactly one of *Operation or error will be non-nil. Any non-2xx
105457// status code is an error. Response headers are in either
105458// *Operation.ServerResponse.Header or (if a response was returned at
105459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105460// to check whether the returned error was because
105461// http.StatusNotModified was returned.
105462func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105463	gensupport.SetOptions(c.urlParams_, opts...)
105464	res, err := c.doRequest("json")
105465	if res != nil && res.StatusCode == http.StatusNotModified {
105466		if res.Body != nil {
105467			res.Body.Close()
105468		}
105469		return nil, &googleapi.Error{
105470			Code:   res.StatusCode,
105471			Header: res.Header,
105472		}
105473	}
105474	if err != nil {
105475		return nil, err
105476	}
105477	defer googleapi.CloseBody(res)
105478	if err := googleapi.CheckResponse(res); err != nil {
105479		return nil, err
105480	}
105481	ret := &Operation{
105482		ServerResponse: googleapi.ServerResponse{
105483			Header:         res.Header,
105484			HTTPStatusCode: res.StatusCode,
105485		},
105486	}
105487	target := &ret
105488	if err := gensupport.DecodeResponse(target, res); err != nil {
105489		return nil, err
105490	}
105491	return ret, nil
105492	// {
105493	//   "description": "Deletes specified nodes from the node group.",
105494	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
105495	//   "httpMethod": "POST",
105496	//   "id": "compute.nodeGroups.deleteNodes",
105497	//   "parameterOrder": [
105498	//     "project",
105499	//     "zone",
105500	//     "nodeGroup"
105501	//   ],
105502	//   "parameters": {
105503	//     "nodeGroup": {
105504	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
105505	//       "location": "path",
105506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105507	//       "required": true,
105508	//       "type": "string"
105509	//     },
105510	//     "project": {
105511	//       "description": "Project ID for this request.",
105512	//       "location": "path",
105513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105514	//       "required": true,
105515	//       "type": "string"
105516	//     },
105517	//     "requestId": {
105518	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105519	//       "location": "query",
105520	//       "type": "string"
105521	//     },
105522	//     "zone": {
105523	//       "description": "The name of the zone for this request.",
105524	//       "location": "path",
105525	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105526	//       "required": true,
105527	//       "type": "string"
105528	//     }
105529	//   },
105530	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
105531	//   "request": {
105532	//     "$ref": "NodeGroupsDeleteNodesRequest"
105533	//   },
105534	//   "response": {
105535	//     "$ref": "Operation"
105536	//   },
105537	//   "scopes": [
105538	//     "https://www.googleapis.com/auth/cloud-platform",
105539	//     "https://www.googleapis.com/auth/compute"
105540	//   ]
105541	// }
105542
105543}
105544
105545// method id "compute.nodeGroups.get":
105546
105547type NodeGroupsGetCall struct {
105548	s            *Service
105549	project      string
105550	zone         string
105551	nodeGroup    string
105552	urlParams_   gensupport.URLParams
105553	ifNoneMatch_ string
105554	ctx_         context.Context
105555	header_      http.Header
105556}
105557
105558// Get: Returns the specified NodeGroup. Get a list of available
105559// NodeGroups by making a list() request. Note: the "nodes" field should
105560// not be used. Use nodeGroups.listNodes instead.
105561//
105562// - nodeGroup: Name of the node group to return.
105563// - project: Project ID for this request.
105564// - zone: The name of the zone for this request.
105565func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
105566	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105567	c.project = project
105568	c.zone = zone
105569	c.nodeGroup = nodeGroup
105570	return c
105571}
105572
105573// Fields allows partial responses to be retrieved. See
105574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105575// for more information.
105576func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
105577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105578	return c
105579}
105580
105581// IfNoneMatch sets the optional parameter which makes the operation
105582// fail if the object's ETag matches the given value. This is useful for
105583// getting updates only after the object has changed since the last
105584// request. Use googleapi.IsNotModified to check whether the response
105585// error from Do is the result of In-None-Match.
105586func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
105587	c.ifNoneMatch_ = entityTag
105588	return c
105589}
105590
105591// Context sets the context to be used in this call's Do method. Any
105592// pending HTTP request will be aborted if the provided context is
105593// canceled.
105594func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
105595	c.ctx_ = ctx
105596	return c
105597}
105598
105599// Header returns an http.Header that can be modified by the caller to
105600// add HTTP headers to the request.
105601func (c *NodeGroupsGetCall) Header() http.Header {
105602	if c.header_ == nil {
105603		c.header_ = make(http.Header)
105604	}
105605	return c.header_
105606}
105607
105608func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
105609	reqHeaders := make(http.Header)
105610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105611	for k, v := range c.header_ {
105612		reqHeaders[k] = v
105613	}
105614	reqHeaders.Set("User-Agent", c.s.userAgent())
105615	if c.ifNoneMatch_ != "" {
105616		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105617	}
105618	var body io.Reader = nil
105619	c.urlParams_.Set("alt", alt)
105620	c.urlParams_.Set("prettyPrint", "false")
105621	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
105622	urls += "?" + c.urlParams_.Encode()
105623	req, err := http.NewRequest("GET", urls, body)
105624	if err != nil {
105625		return nil, err
105626	}
105627	req.Header = reqHeaders
105628	googleapi.Expand(req.URL, map[string]string{
105629		"project":   c.project,
105630		"zone":      c.zone,
105631		"nodeGroup": c.nodeGroup,
105632	})
105633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105634}
105635
105636// Do executes the "compute.nodeGroups.get" call.
105637// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
105638// status code is an error. Response headers are in either
105639// *NodeGroup.ServerResponse.Header or (if a response was returned at
105640// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105641// to check whether the returned error was because
105642// http.StatusNotModified was returned.
105643func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
105644	gensupport.SetOptions(c.urlParams_, opts...)
105645	res, err := c.doRequest("json")
105646	if res != nil && res.StatusCode == http.StatusNotModified {
105647		if res.Body != nil {
105648			res.Body.Close()
105649		}
105650		return nil, &googleapi.Error{
105651			Code:   res.StatusCode,
105652			Header: res.Header,
105653		}
105654	}
105655	if err != nil {
105656		return nil, err
105657	}
105658	defer googleapi.CloseBody(res)
105659	if err := googleapi.CheckResponse(res); err != nil {
105660		return nil, err
105661	}
105662	ret := &NodeGroup{
105663		ServerResponse: googleapi.ServerResponse{
105664			Header:         res.Header,
105665			HTTPStatusCode: res.StatusCode,
105666		},
105667	}
105668	target := &ret
105669	if err := gensupport.DecodeResponse(target, res); err != nil {
105670		return nil, err
105671	}
105672	return ret, nil
105673	// {
105674	//   "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.",
105675	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105676	//   "httpMethod": "GET",
105677	//   "id": "compute.nodeGroups.get",
105678	//   "parameterOrder": [
105679	//     "project",
105680	//     "zone",
105681	//     "nodeGroup"
105682	//   ],
105683	//   "parameters": {
105684	//     "nodeGroup": {
105685	//       "description": "Name of the node group to return.",
105686	//       "location": "path",
105687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105688	//       "required": true,
105689	//       "type": "string"
105690	//     },
105691	//     "project": {
105692	//       "description": "Project ID for this request.",
105693	//       "location": "path",
105694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105695	//       "required": true,
105696	//       "type": "string"
105697	//     },
105698	//     "zone": {
105699	//       "description": "The name of the zone for this request.",
105700	//       "location": "path",
105701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105702	//       "required": true,
105703	//       "type": "string"
105704	//     }
105705	//   },
105706	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105707	//   "response": {
105708	//     "$ref": "NodeGroup"
105709	//   },
105710	//   "scopes": [
105711	//     "https://www.googleapis.com/auth/cloud-platform",
105712	//     "https://www.googleapis.com/auth/compute",
105713	//     "https://www.googleapis.com/auth/compute.readonly"
105714	//   ]
105715	// }
105716
105717}
105718
105719// method id "compute.nodeGroups.getIamPolicy":
105720
105721type NodeGroupsGetIamPolicyCall struct {
105722	s            *Service
105723	project      string
105724	zone         string
105725	resource     string
105726	urlParams_   gensupport.URLParams
105727	ifNoneMatch_ string
105728	ctx_         context.Context
105729	header_      http.Header
105730}
105731
105732// GetIamPolicy: Gets the access control policy for a resource. May be
105733// empty if no such policy or resource exists.
105734//
105735// - project: Project ID for this request.
105736// - resource: Name or id of the resource for this request.
105737// - zone: The name of the zone for this request.
105738func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
105739	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105740	c.project = project
105741	c.zone = zone
105742	c.resource = resource
105743	return c
105744}
105745
105746// OptionsRequestedPolicyVersion sets the optional parameter
105747// "optionsRequestedPolicyVersion": Requested IAM Policy version.
105748func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
105749	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
105750	return c
105751}
105752
105753// Fields allows partial responses to be retrieved. See
105754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105755// for more information.
105756func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
105757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105758	return c
105759}
105760
105761// IfNoneMatch sets the optional parameter which makes the operation
105762// fail if the object's ETag matches the given value. This is useful for
105763// getting updates only after the object has changed since the last
105764// request. Use googleapi.IsNotModified to check whether the response
105765// error from Do is the result of In-None-Match.
105766func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
105767	c.ifNoneMatch_ = entityTag
105768	return c
105769}
105770
105771// Context sets the context to be used in this call's Do method. Any
105772// pending HTTP request will be aborted if the provided context is
105773// canceled.
105774func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
105775	c.ctx_ = ctx
105776	return c
105777}
105778
105779// Header returns an http.Header that can be modified by the caller to
105780// add HTTP headers to the request.
105781func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
105782	if c.header_ == nil {
105783		c.header_ = make(http.Header)
105784	}
105785	return c.header_
105786}
105787
105788func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
105789	reqHeaders := make(http.Header)
105790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105791	for k, v := range c.header_ {
105792		reqHeaders[k] = v
105793	}
105794	reqHeaders.Set("User-Agent", c.s.userAgent())
105795	if c.ifNoneMatch_ != "" {
105796		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105797	}
105798	var body io.Reader = nil
105799	c.urlParams_.Set("alt", alt)
105800	c.urlParams_.Set("prettyPrint", "false")
105801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
105802	urls += "?" + c.urlParams_.Encode()
105803	req, err := http.NewRequest("GET", urls, body)
105804	if err != nil {
105805		return nil, err
105806	}
105807	req.Header = reqHeaders
105808	googleapi.Expand(req.URL, map[string]string{
105809		"project":  c.project,
105810		"zone":     c.zone,
105811		"resource": c.resource,
105812	})
105813	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105814}
105815
105816// Do executes the "compute.nodeGroups.getIamPolicy" call.
105817// Exactly one of *Policy or error will be non-nil. Any non-2xx status
105818// code is an error. Response headers are in either
105819// *Policy.ServerResponse.Header or (if a response was returned at all)
105820// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
105821// check whether the returned error was because http.StatusNotModified
105822// was returned.
105823func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
105824	gensupport.SetOptions(c.urlParams_, opts...)
105825	res, err := c.doRequest("json")
105826	if res != nil && res.StatusCode == http.StatusNotModified {
105827		if res.Body != nil {
105828			res.Body.Close()
105829		}
105830		return nil, &googleapi.Error{
105831			Code:   res.StatusCode,
105832			Header: res.Header,
105833		}
105834	}
105835	if err != nil {
105836		return nil, err
105837	}
105838	defer googleapi.CloseBody(res)
105839	if err := googleapi.CheckResponse(res); err != nil {
105840		return nil, err
105841	}
105842	ret := &Policy{
105843		ServerResponse: googleapi.ServerResponse{
105844			Header:         res.Header,
105845			HTTPStatusCode: res.StatusCode,
105846		},
105847	}
105848	target := &ret
105849	if err := gensupport.DecodeResponse(target, res); err != nil {
105850		return nil, err
105851	}
105852	return ret, nil
105853	// {
105854	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
105855	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
105856	//   "httpMethod": "GET",
105857	//   "id": "compute.nodeGroups.getIamPolicy",
105858	//   "parameterOrder": [
105859	//     "project",
105860	//     "zone",
105861	//     "resource"
105862	//   ],
105863	//   "parameters": {
105864	//     "optionsRequestedPolicyVersion": {
105865	//       "description": "Requested IAM Policy version.",
105866	//       "format": "int32",
105867	//       "location": "query",
105868	//       "type": "integer"
105869	//     },
105870	//     "project": {
105871	//       "description": "Project ID for this request.",
105872	//       "location": "path",
105873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105874	//       "required": true,
105875	//       "type": "string"
105876	//     },
105877	//     "resource": {
105878	//       "description": "Name or id of the resource for this request.",
105879	//       "location": "path",
105880	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105881	//       "required": true,
105882	//       "type": "string"
105883	//     },
105884	//     "zone": {
105885	//       "description": "The name of the zone for this request.",
105886	//       "location": "path",
105887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105888	//       "required": true,
105889	//       "type": "string"
105890	//     }
105891	//   },
105892	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
105893	//   "response": {
105894	//     "$ref": "Policy"
105895	//   },
105896	//   "scopes": [
105897	//     "https://www.googleapis.com/auth/cloud-platform",
105898	//     "https://www.googleapis.com/auth/compute",
105899	//     "https://www.googleapis.com/auth/compute.readonly"
105900	//   ]
105901	// }
105902
105903}
105904
105905// method id "compute.nodeGroups.insert":
105906
105907type NodeGroupsInsertCall struct {
105908	s          *Service
105909	project    string
105910	zone       string
105911	nodegroup  *NodeGroup
105912	urlParams_ gensupport.URLParams
105913	ctx_       context.Context
105914	header_    http.Header
105915}
105916
105917// Insert: Creates a NodeGroup resource in the specified project using
105918// the data included in the request.
105919//
105920// - initialNodeCount: Initial count of nodes in the node group.
105921// - project: Project ID for this request.
105922// - zone: The name of the zone for this request.
105923func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
105924	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105925	c.project = project
105926	c.zone = zone
105927	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
105928	c.nodegroup = nodegroup
105929	return c
105930}
105931
105932// RequestId sets the optional parameter "requestId": An optional
105933// request ID to identify requests. Specify a unique request ID so that
105934// if you must retry your request, the server will know to ignore the
105935// request if it has already been completed. For example, consider a
105936// situation where you make an initial request and the request times
105937// out. If you make the request again with the same request ID, the
105938// server can check if original operation with the same request ID was
105939// received, and if so, will ignore the second request. This prevents
105940// clients from accidentally creating duplicate commitments. The request
105941// ID must be a valid UUID with the exception that zero UUID is not
105942// supported ( 00000000-0000-0000-0000-000000000000).
105943func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
105944	c.urlParams_.Set("requestId", requestId)
105945	return c
105946}
105947
105948// Fields allows partial responses to be retrieved. See
105949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105950// for more information.
105951func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
105952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105953	return c
105954}
105955
105956// Context sets the context to be used in this call's Do method. Any
105957// pending HTTP request will be aborted if the provided context is
105958// canceled.
105959func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
105960	c.ctx_ = ctx
105961	return c
105962}
105963
105964// Header returns an http.Header that can be modified by the caller to
105965// add HTTP headers to the request.
105966func (c *NodeGroupsInsertCall) Header() http.Header {
105967	if c.header_ == nil {
105968		c.header_ = make(http.Header)
105969	}
105970	return c.header_
105971}
105972
105973func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
105974	reqHeaders := make(http.Header)
105975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
105976	for k, v := range c.header_ {
105977		reqHeaders[k] = v
105978	}
105979	reqHeaders.Set("User-Agent", c.s.userAgent())
105980	var body io.Reader = nil
105981	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
105982	if err != nil {
105983		return nil, err
105984	}
105985	reqHeaders.Set("Content-Type", "application/json")
105986	c.urlParams_.Set("alt", alt)
105987	c.urlParams_.Set("prettyPrint", "false")
105988	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
105989	urls += "?" + c.urlParams_.Encode()
105990	req, err := http.NewRequest("POST", urls, body)
105991	if err != nil {
105992		return nil, err
105993	}
105994	req.Header = reqHeaders
105995	googleapi.Expand(req.URL, map[string]string{
105996		"project": c.project,
105997		"zone":    c.zone,
105998	})
105999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106000}
106001
106002// Do executes the "compute.nodeGroups.insert" call.
106003// Exactly one of *Operation or error will be non-nil. Any non-2xx
106004// status code is an error. Response headers are in either
106005// *Operation.ServerResponse.Header or (if a response was returned at
106006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106007// to check whether the returned error was because
106008// http.StatusNotModified was returned.
106009func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106010	gensupport.SetOptions(c.urlParams_, opts...)
106011	res, err := c.doRequest("json")
106012	if res != nil && res.StatusCode == http.StatusNotModified {
106013		if res.Body != nil {
106014			res.Body.Close()
106015		}
106016		return nil, &googleapi.Error{
106017			Code:   res.StatusCode,
106018			Header: res.Header,
106019		}
106020	}
106021	if err != nil {
106022		return nil, err
106023	}
106024	defer googleapi.CloseBody(res)
106025	if err := googleapi.CheckResponse(res); err != nil {
106026		return nil, err
106027	}
106028	ret := &Operation{
106029		ServerResponse: googleapi.ServerResponse{
106030			Header:         res.Header,
106031			HTTPStatusCode: res.StatusCode,
106032		},
106033	}
106034	target := &ret
106035	if err := gensupport.DecodeResponse(target, res); err != nil {
106036		return nil, err
106037	}
106038	return ret, nil
106039	// {
106040	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
106041	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
106042	//   "httpMethod": "POST",
106043	//   "id": "compute.nodeGroups.insert",
106044	//   "parameterOrder": [
106045	//     "project",
106046	//     "zone",
106047	//     "initialNodeCount"
106048	//   ],
106049	//   "parameters": {
106050	//     "initialNodeCount": {
106051	//       "description": "Initial count of nodes in the node group.",
106052	//       "format": "int32",
106053	//       "location": "query",
106054	//       "required": true,
106055	//       "type": "integer"
106056	//     },
106057	//     "project": {
106058	//       "description": "Project ID for this request.",
106059	//       "location": "path",
106060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106061	//       "required": true,
106062	//       "type": "string"
106063	//     },
106064	//     "requestId": {
106065	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
106066	//       "location": "query",
106067	//       "type": "string"
106068	//     },
106069	//     "zone": {
106070	//       "description": "The name of the zone for this request.",
106071	//       "location": "path",
106072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106073	//       "required": true,
106074	//       "type": "string"
106075	//     }
106076	//   },
106077	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
106078	//   "request": {
106079	//     "$ref": "NodeGroup"
106080	//   },
106081	//   "response": {
106082	//     "$ref": "Operation"
106083	//   },
106084	//   "scopes": [
106085	//     "https://www.googleapis.com/auth/cloud-platform",
106086	//     "https://www.googleapis.com/auth/compute"
106087	//   ]
106088	// }
106089
106090}
106091
106092// method id "compute.nodeGroups.list":
106093
106094type NodeGroupsListCall struct {
106095	s            *Service
106096	project      string
106097	zone         string
106098	urlParams_   gensupport.URLParams
106099	ifNoneMatch_ string
106100	ctx_         context.Context
106101	header_      http.Header
106102}
106103
106104// List: Retrieves a list of node groups available to the specified
106105// project. Note: use nodeGroups.listNodes for more details about each
106106// group.
106107//
106108// - project: Project ID for this request.
106109// - zone: The name of the zone for this request.
106110func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
106111	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106112	c.project = project
106113	c.zone = zone
106114	return c
106115}
106116
106117// Filter sets the optional parameter "filter": A filter expression that
106118// filters resources listed in the response. The expression must specify
106119// the field name, a comparison operator, and the value that you want to
106120// use for filtering. The value must be a string, a number, or a
106121// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106122// `<`. For example, if you are filtering Compute Engine instances, you
106123// can exclude instances named `example-instance` by specifying `name !=
106124// example-instance`. You can also filter nested fields. For example,
106125// you could specify `scheduling.automaticRestart = false` to include
106126// instances only if they are not scheduled for automatic restarts. You
106127// can use filtering on nested fields to filter based on resource
106128// labels. To filter on multiple expressions, provide each separate
106129// expression within parentheses. For example: ```
106130// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
106131// ``` By default, each expression is an `AND` expression. However, you
106132// can include `AND` and `OR` expressions explicitly. For example: ```
106133// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
106134// AND (scheduling.automaticRestart = true) ```
106135func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
106136	c.urlParams_.Set("filter", filter)
106137	return c
106138}
106139
106140// MaxResults sets the optional parameter "maxResults": The maximum
106141// number of results per page that should be returned. If the number of
106142// available results is larger than `maxResults`, Compute Engine returns
106143// a `nextPageToken` that can be used to get the next page of results in
106144// subsequent list requests. Acceptable values are `0` to `500`,
106145// inclusive. (Default: `500`)
106146func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
106147	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106148	return c
106149}
106150
106151// OrderBy sets the optional parameter "orderBy": Sorts list results by
106152// a certain order. By default, results are returned in alphanumerical
106153// order based on the resource name. You can also sort results in
106154// descending order based on the creation timestamp using
106155// `orderBy="creationTimestamp desc". This sorts results based on the
106156// `creationTimestamp` field in reverse chronological order (newest
106157// result first). Use this to sort resources like operations so that the
106158// newest operation is returned first. Currently, only sorting by `name`
106159// or `creationTimestamp desc` is supported.
106160func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
106161	c.urlParams_.Set("orderBy", orderBy)
106162	return c
106163}
106164
106165// PageToken sets the optional parameter "pageToken": Specifies a page
106166// token to use. Set `pageToken` to the `nextPageToken` returned by a
106167// previous list request to get the next page of results.
106168func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
106169	c.urlParams_.Set("pageToken", pageToken)
106170	return c
106171}
106172
106173// ReturnPartialSuccess sets the optional parameter
106174// "returnPartialSuccess": Opt-in for partial success behavior which
106175// provides partial results in case of failure. The default value is
106176// false.
106177func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
106178	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106179	return c
106180}
106181
106182// Fields allows partial responses to be retrieved. See
106183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106184// for more information.
106185func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
106186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106187	return c
106188}
106189
106190// IfNoneMatch sets the optional parameter which makes the operation
106191// fail if the object's ETag matches the given value. This is useful for
106192// getting updates only after the object has changed since the last
106193// request. Use googleapi.IsNotModified to check whether the response
106194// error from Do is the result of In-None-Match.
106195func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
106196	c.ifNoneMatch_ = entityTag
106197	return c
106198}
106199
106200// Context sets the context to be used in this call's Do method. Any
106201// pending HTTP request will be aborted if the provided context is
106202// canceled.
106203func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
106204	c.ctx_ = ctx
106205	return c
106206}
106207
106208// Header returns an http.Header that can be modified by the caller to
106209// add HTTP headers to the request.
106210func (c *NodeGroupsListCall) Header() http.Header {
106211	if c.header_ == nil {
106212		c.header_ = make(http.Header)
106213	}
106214	return c.header_
106215}
106216
106217func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
106218	reqHeaders := make(http.Header)
106219	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
106220	for k, v := range c.header_ {
106221		reqHeaders[k] = v
106222	}
106223	reqHeaders.Set("User-Agent", c.s.userAgent())
106224	if c.ifNoneMatch_ != "" {
106225		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106226	}
106227	var body io.Reader = nil
106228	c.urlParams_.Set("alt", alt)
106229	c.urlParams_.Set("prettyPrint", "false")
106230	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
106231	urls += "?" + c.urlParams_.Encode()
106232	req, err := http.NewRequest("GET", urls, body)
106233	if err != nil {
106234		return nil, err
106235	}
106236	req.Header = reqHeaders
106237	googleapi.Expand(req.URL, map[string]string{
106238		"project": c.project,
106239		"zone":    c.zone,
106240	})
106241	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106242}
106243
106244// Do executes the "compute.nodeGroups.list" call.
106245// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
106246// status code is an error. Response headers are in either
106247// *NodeGroupList.ServerResponse.Header or (if a response was returned
106248// at all) in error.(*googleapi.Error).Header. Use
106249// googleapi.IsNotModified to check whether the returned error was
106250// because http.StatusNotModified was returned.
106251func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
106252	gensupport.SetOptions(c.urlParams_, opts...)
106253	res, err := c.doRequest("json")
106254	if res != nil && res.StatusCode == http.StatusNotModified {
106255		if res.Body != nil {
106256			res.Body.Close()
106257		}
106258		return nil, &googleapi.Error{
106259			Code:   res.StatusCode,
106260			Header: res.Header,
106261		}
106262	}
106263	if err != nil {
106264		return nil, err
106265	}
106266	defer googleapi.CloseBody(res)
106267	if err := googleapi.CheckResponse(res); err != nil {
106268		return nil, err
106269	}
106270	ret := &NodeGroupList{
106271		ServerResponse: googleapi.ServerResponse{
106272			Header:         res.Header,
106273			HTTPStatusCode: res.StatusCode,
106274		},
106275	}
106276	target := &ret
106277	if err := gensupport.DecodeResponse(target, res); err != nil {
106278		return nil, err
106279	}
106280	return ret, nil
106281	// {
106282	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
106283	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
106284	//   "httpMethod": "GET",
106285	//   "id": "compute.nodeGroups.list",
106286	//   "parameterOrder": [
106287	//     "project",
106288	//     "zone"
106289	//   ],
106290	//   "parameters": {
106291	//     "filter": {
106292	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106293	//       "location": "query",
106294	//       "type": "string"
106295	//     },
106296	//     "maxResults": {
106297	//       "default": "500",
106298	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106299	//       "format": "uint32",
106300	//       "location": "query",
106301	//       "minimum": "0",
106302	//       "type": "integer"
106303	//     },
106304	//     "orderBy": {
106305	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
106306	//       "location": "query",
106307	//       "type": "string"
106308	//     },
106309	//     "pageToken": {
106310	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106311	//       "location": "query",
106312	//       "type": "string"
106313	//     },
106314	//     "project": {
106315	//       "description": "Project ID for this request.",
106316	//       "location": "path",
106317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106318	//       "required": true,
106319	//       "type": "string"
106320	//     },
106321	//     "returnPartialSuccess": {
106322	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106323	//       "location": "query",
106324	//       "type": "boolean"
106325	//     },
106326	//     "zone": {
106327	//       "description": "The name of the zone for this request.",
106328	//       "location": "path",
106329	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106330	//       "required": true,
106331	//       "type": "string"
106332	//     }
106333	//   },
106334	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
106335	//   "response": {
106336	//     "$ref": "NodeGroupList"
106337	//   },
106338	//   "scopes": [
106339	//     "https://www.googleapis.com/auth/cloud-platform",
106340	//     "https://www.googleapis.com/auth/compute",
106341	//     "https://www.googleapis.com/auth/compute.readonly"
106342	//   ]
106343	// }
106344
106345}
106346
106347// Pages invokes f for each page of results.
106348// A non-nil error returned from f will halt the iteration.
106349// The provided context supersedes any context provided to the Context method.
106350func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
106351	c.ctx_ = ctx
106352	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106353	for {
106354		x, err := c.Do()
106355		if err != nil {
106356			return err
106357		}
106358		if err := f(x); err != nil {
106359			return err
106360		}
106361		if x.NextPageToken == "" {
106362			return nil
106363		}
106364		c.PageToken(x.NextPageToken)
106365	}
106366}
106367
106368// method id "compute.nodeGroups.listNodes":
106369
106370type NodeGroupsListNodesCall struct {
106371	s          *Service
106372	project    string
106373	zone       string
106374	nodeGroup  string
106375	urlParams_ gensupport.URLParams
106376	ctx_       context.Context
106377	header_    http.Header
106378}
106379
106380// ListNodes: Lists nodes in the node group.
106381//
106382// - nodeGroup: Name of the NodeGroup resource whose nodes you want to
106383//   list.
106384// - project: Project ID for this request.
106385// - zone: The name of the zone for this request.
106386func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
106387	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106388	c.project = project
106389	c.zone = zone
106390	c.nodeGroup = nodeGroup
106391	return c
106392}
106393
106394// Filter sets the optional parameter "filter": A filter expression that
106395// filters resources listed in the response. The expression must specify
106396// the field name, a comparison operator, and the value that you want to
106397// use for filtering. The value must be a string, a number, or a
106398// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106399// `<`. For example, if you are filtering Compute Engine instances, you
106400// can exclude instances named `example-instance` by specifying `name !=
106401// example-instance`. You can also filter nested fields. For example,
106402// you could specify `scheduling.automaticRestart = false` to include
106403// instances only if they are not scheduled for automatic restarts. You
106404// can use filtering on nested fields to filter based on resource
106405// labels. To filter on multiple expressions, provide each separate
106406// expression within parentheses. For example: ```
106407// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
106408// ``` By default, each expression is an `AND` expression. However, you
106409// can include `AND` and `OR` expressions explicitly. For example: ```
106410// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
106411// AND (scheduling.automaticRestart = true) ```
106412func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
106413	c.urlParams_.Set("filter", filter)
106414	return c
106415}
106416
106417// MaxResults sets the optional parameter "maxResults": The maximum
106418// number of results per page that should be returned. If the number of
106419// available results is larger than `maxResults`, Compute Engine returns
106420// a `nextPageToken` that can be used to get the next page of results in
106421// subsequent list requests. Acceptable values are `0` to `500`,
106422// inclusive. (Default: `500`)
106423func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
106424	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106425	return c
106426}
106427
106428// OrderBy sets the optional parameter "orderBy": Sorts list results by
106429// a certain order. By default, results are returned in alphanumerical
106430// order based on the resource name. You can also sort results in
106431// descending order based on the creation timestamp using
106432// `orderBy="creationTimestamp desc". This sorts results based on the
106433// `creationTimestamp` field in reverse chronological order (newest
106434// result first). Use this to sort resources like operations so that the
106435// newest operation is returned first. Currently, only sorting by `name`
106436// or `creationTimestamp desc` is supported.
106437func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
106438	c.urlParams_.Set("orderBy", orderBy)
106439	return c
106440}
106441
106442// PageToken sets the optional parameter "pageToken": Specifies a page
106443// token to use. Set `pageToken` to the `nextPageToken` returned by a
106444// previous list request to get the next page of results.
106445func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
106446	c.urlParams_.Set("pageToken", pageToken)
106447	return c
106448}
106449
106450// ReturnPartialSuccess sets the optional parameter
106451// "returnPartialSuccess": Opt-in for partial success behavior which
106452// provides partial results in case of failure. The default value is
106453// false.
106454func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
106455	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106456	return c
106457}
106458
106459// Fields allows partial responses to be retrieved. See
106460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106461// for more information.
106462func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
106463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106464	return c
106465}
106466
106467// Context sets the context to be used in this call's Do method. Any
106468// pending HTTP request will be aborted if the provided context is
106469// canceled.
106470func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
106471	c.ctx_ = ctx
106472	return c
106473}
106474
106475// Header returns an http.Header that can be modified by the caller to
106476// add HTTP headers to the request.
106477func (c *NodeGroupsListNodesCall) Header() http.Header {
106478	if c.header_ == nil {
106479		c.header_ = make(http.Header)
106480	}
106481	return c.header_
106482}
106483
106484func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
106485	reqHeaders := make(http.Header)
106486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
106487	for k, v := range c.header_ {
106488		reqHeaders[k] = v
106489	}
106490	reqHeaders.Set("User-Agent", c.s.userAgent())
106491	var body io.Reader = nil
106492	c.urlParams_.Set("alt", alt)
106493	c.urlParams_.Set("prettyPrint", "false")
106494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
106495	urls += "?" + c.urlParams_.Encode()
106496	req, err := http.NewRequest("POST", urls, body)
106497	if err != nil {
106498		return nil, err
106499	}
106500	req.Header = reqHeaders
106501	googleapi.Expand(req.URL, map[string]string{
106502		"project":   c.project,
106503		"zone":      c.zone,
106504		"nodeGroup": c.nodeGroup,
106505	})
106506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106507}
106508
106509// Do executes the "compute.nodeGroups.listNodes" call.
106510// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
106511// non-2xx status code is an error. Response headers are in either
106512// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
106513// returned at all) in error.(*googleapi.Error).Header. Use
106514// googleapi.IsNotModified to check whether the returned error was
106515// because http.StatusNotModified was returned.
106516func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
106517	gensupport.SetOptions(c.urlParams_, opts...)
106518	res, err := c.doRequest("json")
106519	if res != nil && res.StatusCode == http.StatusNotModified {
106520		if res.Body != nil {
106521			res.Body.Close()
106522		}
106523		return nil, &googleapi.Error{
106524			Code:   res.StatusCode,
106525			Header: res.Header,
106526		}
106527	}
106528	if err != nil {
106529		return nil, err
106530	}
106531	defer googleapi.CloseBody(res)
106532	if err := googleapi.CheckResponse(res); err != nil {
106533		return nil, err
106534	}
106535	ret := &NodeGroupsListNodes{
106536		ServerResponse: googleapi.ServerResponse{
106537			Header:         res.Header,
106538			HTTPStatusCode: res.StatusCode,
106539		},
106540	}
106541	target := &ret
106542	if err := gensupport.DecodeResponse(target, res); err != nil {
106543		return nil, err
106544	}
106545	return ret, nil
106546	// {
106547	//   "description": "Lists nodes in the node group.",
106548	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
106549	//   "httpMethod": "POST",
106550	//   "id": "compute.nodeGroups.listNodes",
106551	//   "parameterOrder": [
106552	//     "project",
106553	//     "zone",
106554	//     "nodeGroup"
106555	//   ],
106556	//   "parameters": {
106557	//     "filter": {
106558	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106559	//       "location": "query",
106560	//       "type": "string"
106561	//     },
106562	//     "maxResults": {
106563	//       "default": "500",
106564	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106565	//       "format": "uint32",
106566	//       "location": "query",
106567	//       "minimum": "0",
106568	//       "type": "integer"
106569	//     },
106570	//     "nodeGroup": {
106571	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
106572	//       "location": "path",
106573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106574	//       "required": true,
106575	//       "type": "string"
106576	//     },
106577	//     "orderBy": {
106578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
106579	//       "location": "query",
106580	//       "type": "string"
106581	//     },
106582	//     "pageToken": {
106583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106584	//       "location": "query",
106585	//       "type": "string"
106586	//     },
106587	//     "project": {
106588	//       "description": "Project ID for this request.",
106589	//       "location": "path",
106590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106591	//       "required": true,
106592	//       "type": "string"
106593	//     },
106594	//     "returnPartialSuccess": {
106595	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106596	//       "location": "query",
106597	//       "type": "boolean"
106598	//     },
106599	//     "zone": {
106600	//       "description": "The name of the zone for this request.",
106601	//       "location": "path",
106602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106603	//       "required": true,
106604	//       "type": "string"
106605	//     }
106606	//   },
106607	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
106608	//   "response": {
106609	//     "$ref": "NodeGroupsListNodes"
106610	//   },
106611	//   "scopes": [
106612	//     "https://www.googleapis.com/auth/cloud-platform",
106613	//     "https://www.googleapis.com/auth/compute",
106614	//     "https://www.googleapis.com/auth/compute.readonly"
106615	//   ]
106616	// }
106617
106618}
106619
106620// Pages invokes f for each page of results.
106621// A non-nil error returned from f will halt the iteration.
106622// The provided context supersedes any context provided to the Context method.
106623func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
106624	c.ctx_ = ctx
106625	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106626	for {
106627		x, err := c.Do()
106628		if err != nil {
106629			return err
106630		}
106631		if err := f(x); err != nil {
106632			return err
106633		}
106634		if x.NextPageToken == "" {
106635			return nil
106636		}
106637		c.PageToken(x.NextPageToken)
106638	}
106639}
106640
106641// method id "compute.nodeGroups.patch":
106642
106643type NodeGroupsPatchCall struct {
106644	s          *Service
106645	project    string
106646	zone       string
106647	nodeGroup  string
106648	nodegroup  *NodeGroup
106649	urlParams_ gensupport.URLParams
106650	ctx_       context.Context
106651	header_    http.Header
106652}
106653
106654// Patch: Updates the specified node group.
106655//
106656// - nodeGroup: Name of the NodeGroup resource to update.
106657// - project: Project ID for this request.
106658// - zone: The name of the zone for this request.
106659func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
106660	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106661	c.project = project
106662	c.zone = zone
106663	c.nodeGroup = nodeGroup
106664	c.nodegroup = nodegroup
106665	return c
106666}
106667
106668// RequestId sets the optional parameter "requestId": An optional
106669// request ID to identify requests. Specify a unique request ID so that
106670// if you must retry your request, the server will know to ignore the
106671// request if it has already been completed. For example, consider a
106672// situation where you make an initial request and the request times
106673// out. If you make the request again with the same request ID, the
106674// server can check if original operation with the same request ID was
106675// received, and if so, will ignore the second request. This prevents
106676// clients from accidentally creating duplicate commitments. The request
106677// ID must be a valid UUID with the exception that zero UUID is not
106678// supported ( 00000000-0000-0000-0000-000000000000).
106679func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
106680	c.urlParams_.Set("requestId", requestId)
106681	return c
106682}
106683
106684// Fields allows partial responses to be retrieved. See
106685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106686// for more information.
106687func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
106688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106689	return c
106690}
106691
106692// Context sets the context to be used in this call's Do method. Any
106693// pending HTTP request will be aborted if the provided context is
106694// canceled.
106695func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
106696	c.ctx_ = ctx
106697	return c
106698}
106699
106700// Header returns an http.Header that can be modified by the caller to
106701// add HTTP headers to the request.
106702func (c *NodeGroupsPatchCall) Header() http.Header {
106703	if c.header_ == nil {
106704		c.header_ = make(http.Header)
106705	}
106706	return c.header_
106707}
106708
106709func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
106710	reqHeaders := make(http.Header)
106711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
106712	for k, v := range c.header_ {
106713		reqHeaders[k] = v
106714	}
106715	reqHeaders.Set("User-Agent", c.s.userAgent())
106716	var body io.Reader = nil
106717	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
106718	if err != nil {
106719		return nil, err
106720	}
106721	reqHeaders.Set("Content-Type", "application/json")
106722	c.urlParams_.Set("alt", alt)
106723	c.urlParams_.Set("prettyPrint", "false")
106724	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
106725	urls += "?" + c.urlParams_.Encode()
106726	req, err := http.NewRequest("PATCH", urls, body)
106727	if err != nil {
106728		return nil, err
106729	}
106730	req.Header = reqHeaders
106731	googleapi.Expand(req.URL, map[string]string{
106732		"project":   c.project,
106733		"zone":      c.zone,
106734		"nodeGroup": c.nodeGroup,
106735	})
106736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106737}
106738
106739// Do executes the "compute.nodeGroups.patch" call.
106740// Exactly one of *Operation or error will be non-nil. Any non-2xx
106741// status code is an error. Response headers are in either
106742// *Operation.ServerResponse.Header or (if a response was returned at
106743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106744// to check whether the returned error was because
106745// http.StatusNotModified was returned.
106746func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106747	gensupport.SetOptions(c.urlParams_, opts...)
106748	res, err := c.doRequest("json")
106749	if res != nil && res.StatusCode == http.StatusNotModified {
106750		if res.Body != nil {
106751			res.Body.Close()
106752		}
106753		return nil, &googleapi.Error{
106754			Code:   res.StatusCode,
106755			Header: res.Header,
106756		}
106757	}
106758	if err != nil {
106759		return nil, err
106760	}
106761	defer googleapi.CloseBody(res)
106762	if err := googleapi.CheckResponse(res); err != nil {
106763		return nil, err
106764	}
106765	ret := &Operation{
106766		ServerResponse: googleapi.ServerResponse{
106767			Header:         res.Header,
106768			HTTPStatusCode: res.StatusCode,
106769		},
106770	}
106771	target := &ret
106772	if err := gensupport.DecodeResponse(target, res); err != nil {
106773		return nil, err
106774	}
106775	return ret, nil
106776	// {
106777	//   "description": "Updates the specified node group.",
106778	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106779	//   "httpMethod": "PATCH",
106780	//   "id": "compute.nodeGroups.patch",
106781	//   "parameterOrder": [
106782	//     "project",
106783	//     "zone",
106784	//     "nodeGroup"
106785	//   ],
106786	//   "parameters": {
106787	//     "nodeGroup": {
106788	//       "description": "Name of the NodeGroup resource to update.",
106789	//       "location": "path",
106790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106791	//       "required": true,
106792	//       "type": "string"
106793	//     },
106794	//     "project": {
106795	//       "description": "Project ID for this request.",
106796	//       "location": "path",
106797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106798	//       "required": true,
106799	//       "type": "string"
106800	//     },
106801	//     "requestId": {
106802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
106803	//       "location": "query",
106804	//       "type": "string"
106805	//     },
106806	//     "zone": {
106807	//       "description": "The name of the zone for this request.",
106808	//       "location": "path",
106809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106810	//       "required": true,
106811	//       "type": "string"
106812	//     }
106813	//   },
106814	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106815	//   "request": {
106816	//     "$ref": "NodeGroup"
106817	//   },
106818	//   "response": {
106819	//     "$ref": "Operation"
106820	//   },
106821	//   "scopes": [
106822	//     "https://www.googleapis.com/auth/cloud-platform",
106823	//     "https://www.googleapis.com/auth/compute"
106824	//   ]
106825	// }
106826
106827}
106828
106829// method id "compute.nodeGroups.setIamPolicy":
106830
106831type NodeGroupsSetIamPolicyCall struct {
106832	s                    *Service
106833	project              string
106834	zone                 string
106835	resource             string
106836	zonesetpolicyrequest *ZoneSetPolicyRequest
106837	urlParams_           gensupport.URLParams
106838	ctx_                 context.Context
106839	header_              http.Header
106840}
106841
106842// SetIamPolicy: Sets the access control policy on the specified
106843// resource. Replaces any existing policy.
106844//
106845// - project: Project ID for this request.
106846// - resource: Name or id of the resource for this request.
106847// - zone: The name of the zone for this request.
106848func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
106849	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106850	c.project = project
106851	c.zone = zone
106852	c.resource = resource
106853	c.zonesetpolicyrequest = zonesetpolicyrequest
106854	return c
106855}
106856
106857// Fields allows partial responses to be retrieved. See
106858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106859// for more information.
106860func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
106861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106862	return c
106863}
106864
106865// Context sets the context to be used in this call's Do method. Any
106866// pending HTTP request will be aborted if the provided context is
106867// canceled.
106868func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
106869	c.ctx_ = ctx
106870	return c
106871}
106872
106873// Header returns an http.Header that can be modified by the caller to
106874// add HTTP headers to the request.
106875func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
106876	if c.header_ == nil {
106877		c.header_ = make(http.Header)
106878	}
106879	return c.header_
106880}
106881
106882func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
106883	reqHeaders := make(http.Header)
106884	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
106885	for k, v := range c.header_ {
106886		reqHeaders[k] = v
106887	}
106888	reqHeaders.Set("User-Agent", c.s.userAgent())
106889	var body io.Reader = nil
106890	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
106891	if err != nil {
106892		return nil, err
106893	}
106894	reqHeaders.Set("Content-Type", "application/json")
106895	c.urlParams_.Set("alt", alt)
106896	c.urlParams_.Set("prettyPrint", "false")
106897	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
106898	urls += "?" + c.urlParams_.Encode()
106899	req, err := http.NewRequest("POST", urls, body)
106900	if err != nil {
106901		return nil, err
106902	}
106903	req.Header = reqHeaders
106904	googleapi.Expand(req.URL, map[string]string{
106905		"project":  c.project,
106906		"zone":     c.zone,
106907		"resource": c.resource,
106908	})
106909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106910}
106911
106912// Do executes the "compute.nodeGroups.setIamPolicy" call.
106913// Exactly one of *Policy or error will be non-nil. Any non-2xx status
106914// code is an error. Response headers are in either
106915// *Policy.ServerResponse.Header or (if a response was returned at all)
106916// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106917// check whether the returned error was because http.StatusNotModified
106918// was returned.
106919func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
106920	gensupport.SetOptions(c.urlParams_, opts...)
106921	res, err := c.doRequest("json")
106922	if res != nil && res.StatusCode == http.StatusNotModified {
106923		if res.Body != nil {
106924			res.Body.Close()
106925		}
106926		return nil, &googleapi.Error{
106927			Code:   res.StatusCode,
106928			Header: res.Header,
106929		}
106930	}
106931	if err != nil {
106932		return nil, err
106933	}
106934	defer googleapi.CloseBody(res)
106935	if err := googleapi.CheckResponse(res); err != nil {
106936		return nil, err
106937	}
106938	ret := &Policy{
106939		ServerResponse: googleapi.ServerResponse{
106940			Header:         res.Header,
106941			HTTPStatusCode: res.StatusCode,
106942		},
106943	}
106944	target := &ret
106945	if err := gensupport.DecodeResponse(target, res); err != nil {
106946		return nil, err
106947	}
106948	return ret, nil
106949	// {
106950	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
106951	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
106952	//   "httpMethod": "POST",
106953	//   "id": "compute.nodeGroups.setIamPolicy",
106954	//   "parameterOrder": [
106955	//     "project",
106956	//     "zone",
106957	//     "resource"
106958	//   ],
106959	//   "parameters": {
106960	//     "project": {
106961	//       "description": "Project ID for this request.",
106962	//       "location": "path",
106963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106964	//       "required": true,
106965	//       "type": "string"
106966	//     },
106967	//     "resource": {
106968	//       "description": "Name or id of the resource for this request.",
106969	//       "location": "path",
106970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106971	//       "required": true,
106972	//       "type": "string"
106973	//     },
106974	//     "zone": {
106975	//       "description": "The name of the zone for this request.",
106976	//       "location": "path",
106977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106978	//       "required": true,
106979	//       "type": "string"
106980	//     }
106981	//   },
106982	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
106983	//   "request": {
106984	//     "$ref": "ZoneSetPolicyRequest"
106985	//   },
106986	//   "response": {
106987	//     "$ref": "Policy"
106988	//   },
106989	//   "scopes": [
106990	//     "https://www.googleapis.com/auth/cloud-platform",
106991	//     "https://www.googleapis.com/auth/compute"
106992	//   ]
106993	// }
106994
106995}
106996
106997// method id "compute.nodeGroups.setNodeTemplate":
106998
106999type NodeGroupsSetNodeTemplateCall struct {
107000	s                                *Service
107001	project                          string
107002	zone                             string
107003	nodeGroup                        string
107004	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
107005	urlParams_                       gensupport.URLParams
107006	ctx_                             context.Context
107007	header_                          http.Header
107008}
107009
107010// SetNodeTemplate: Updates the node template of the node group.
107011//
107012// - nodeGroup: Name of the NodeGroup resource to update.
107013// - project: Project ID for this request.
107014// - zone: The name of the zone for this request.
107015func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
107016	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107017	c.project = project
107018	c.zone = zone
107019	c.nodeGroup = nodeGroup
107020	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
107021	return c
107022}
107023
107024// RequestId sets the optional parameter "requestId": An optional
107025// request ID to identify requests. Specify a unique request ID so that
107026// if you must retry your request, the server will know to ignore the
107027// request if it has already been completed. For example, consider a
107028// situation where you make an initial request and the request times
107029// out. If you make the request again with the same request ID, the
107030// server can check if original operation with the same request ID was
107031// received, and if so, will ignore the second request. This prevents
107032// clients from accidentally creating duplicate commitments. The request
107033// ID must be a valid UUID with the exception that zero UUID is not
107034// supported ( 00000000-0000-0000-0000-000000000000).
107035func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
107036	c.urlParams_.Set("requestId", requestId)
107037	return c
107038}
107039
107040// Fields allows partial responses to be retrieved. See
107041// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107042// for more information.
107043func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
107044	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107045	return c
107046}
107047
107048// Context sets the context to be used in this call's Do method. Any
107049// pending HTTP request will be aborted if the provided context is
107050// canceled.
107051func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
107052	c.ctx_ = ctx
107053	return c
107054}
107055
107056// Header returns an http.Header that can be modified by the caller to
107057// add HTTP headers to the request.
107058func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
107059	if c.header_ == nil {
107060		c.header_ = make(http.Header)
107061	}
107062	return c.header_
107063}
107064
107065func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
107066	reqHeaders := make(http.Header)
107067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
107068	for k, v := range c.header_ {
107069		reqHeaders[k] = v
107070	}
107071	reqHeaders.Set("User-Agent", c.s.userAgent())
107072	var body io.Reader = nil
107073	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
107074	if err != nil {
107075		return nil, err
107076	}
107077	reqHeaders.Set("Content-Type", "application/json")
107078	c.urlParams_.Set("alt", alt)
107079	c.urlParams_.Set("prettyPrint", "false")
107080	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
107081	urls += "?" + c.urlParams_.Encode()
107082	req, err := http.NewRequest("POST", urls, body)
107083	if err != nil {
107084		return nil, err
107085	}
107086	req.Header = reqHeaders
107087	googleapi.Expand(req.URL, map[string]string{
107088		"project":   c.project,
107089		"zone":      c.zone,
107090		"nodeGroup": c.nodeGroup,
107091	})
107092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107093}
107094
107095// Do executes the "compute.nodeGroups.setNodeTemplate" call.
107096// Exactly one of *Operation or error will be non-nil. Any non-2xx
107097// status code is an error. Response headers are in either
107098// *Operation.ServerResponse.Header or (if a response was returned at
107099// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107100// to check whether the returned error was because
107101// http.StatusNotModified was returned.
107102func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107103	gensupport.SetOptions(c.urlParams_, opts...)
107104	res, err := c.doRequest("json")
107105	if res != nil && res.StatusCode == http.StatusNotModified {
107106		if res.Body != nil {
107107			res.Body.Close()
107108		}
107109		return nil, &googleapi.Error{
107110			Code:   res.StatusCode,
107111			Header: res.Header,
107112		}
107113	}
107114	if err != nil {
107115		return nil, err
107116	}
107117	defer googleapi.CloseBody(res)
107118	if err := googleapi.CheckResponse(res); err != nil {
107119		return nil, err
107120	}
107121	ret := &Operation{
107122		ServerResponse: googleapi.ServerResponse{
107123			Header:         res.Header,
107124			HTTPStatusCode: res.StatusCode,
107125		},
107126	}
107127	target := &ret
107128	if err := gensupport.DecodeResponse(target, res); err != nil {
107129		return nil, err
107130	}
107131	return ret, nil
107132	// {
107133	//   "description": "Updates the node template of the node group.",
107134	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
107135	//   "httpMethod": "POST",
107136	//   "id": "compute.nodeGroups.setNodeTemplate",
107137	//   "parameterOrder": [
107138	//     "project",
107139	//     "zone",
107140	//     "nodeGroup"
107141	//   ],
107142	//   "parameters": {
107143	//     "nodeGroup": {
107144	//       "description": "Name of the NodeGroup resource to update.",
107145	//       "location": "path",
107146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107147	//       "required": true,
107148	//       "type": "string"
107149	//     },
107150	//     "project": {
107151	//       "description": "Project ID for this request.",
107152	//       "location": "path",
107153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107154	//       "required": true,
107155	//       "type": "string"
107156	//     },
107157	//     "requestId": {
107158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
107159	//       "location": "query",
107160	//       "type": "string"
107161	//     },
107162	//     "zone": {
107163	//       "description": "The name of the zone for this request.",
107164	//       "location": "path",
107165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107166	//       "required": true,
107167	//       "type": "string"
107168	//     }
107169	//   },
107170	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
107171	//   "request": {
107172	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
107173	//   },
107174	//   "response": {
107175	//     "$ref": "Operation"
107176	//   },
107177	//   "scopes": [
107178	//     "https://www.googleapis.com/auth/cloud-platform",
107179	//     "https://www.googleapis.com/auth/compute"
107180	//   ]
107181	// }
107182
107183}
107184
107185// method id "compute.nodeGroups.testIamPermissions":
107186
107187type NodeGroupsTestIamPermissionsCall struct {
107188	s                      *Service
107189	project                string
107190	zone                   string
107191	resource               string
107192	testpermissionsrequest *TestPermissionsRequest
107193	urlParams_             gensupport.URLParams
107194	ctx_                   context.Context
107195	header_                http.Header
107196}
107197
107198// TestIamPermissions: Returns permissions that a caller has on the
107199// specified resource.
107200//
107201// - project: Project ID for this request.
107202// - resource: Name or id of the resource for this request.
107203// - zone: The name of the zone for this request.
107204func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
107205	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107206	c.project = project
107207	c.zone = zone
107208	c.resource = resource
107209	c.testpermissionsrequest = testpermissionsrequest
107210	return c
107211}
107212
107213// Fields allows partial responses to be retrieved. See
107214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107215// for more information.
107216func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
107217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107218	return c
107219}
107220
107221// Context sets the context to be used in this call's Do method. Any
107222// pending HTTP request will be aborted if the provided context is
107223// canceled.
107224func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
107225	c.ctx_ = ctx
107226	return c
107227}
107228
107229// Header returns an http.Header that can be modified by the caller to
107230// add HTTP headers to the request.
107231func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
107232	if c.header_ == nil {
107233		c.header_ = make(http.Header)
107234	}
107235	return c.header_
107236}
107237
107238func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107239	reqHeaders := make(http.Header)
107240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
107241	for k, v := range c.header_ {
107242		reqHeaders[k] = v
107243	}
107244	reqHeaders.Set("User-Agent", c.s.userAgent())
107245	var body io.Reader = nil
107246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107247	if err != nil {
107248		return nil, err
107249	}
107250	reqHeaders.Set("Content-Type", "application/json")
107251	c.urlParams_.Set("alt", alt)
107252	c.urlParams_.Set("prettyPrint", "false")
107253	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
107254	urls += "?" + c.urlParams_.Encode()
107255	req, err := http.NewRequest("POST", urls, body)
107256	if err != nil {
107257		return nil, err
107258	}
107259	req.Header = reqHeaders
107260	googleapi.Expand(req.URL, map[string]string{
107261		"project":  c.project,
107262		"zone":     c.zone,
107263		"resource": c.resource,
107264	})
107265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107266}
107267
107268// Do executes the "compute.nodeGroups.testIamPermissions" call.
107269// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107270// non-2xx status code is an error. Response headers are in either
107271// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107272// returned at all) in error.(*googleapi.Error).Header. Use
107273// googleapi.IsNotModified to check whether the returned error was
107274// because http.StatusNotModified was returned.
107275func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107276	gensupport.SetOptions(c.urlParams_, opts...)
107277	res, err := c.doRequest("json")
107278	if res != nil && res.StatusCode == http.StatusNotModified {
107279		if res.Body != nil {
107280			res.Body.Close()
107281		}
107282		return nil, &googleapi.Error{
107283			Code:   res.StatusCode,
107284			Header: res.Header,
107285		}
107286	}
107287	if err != nil {
107288		return nil, err
107289	}
107290	defer googleapi.CloseBody(res)
107291	if err := googleapi.CheckResponse(res); err != nil {
107292		return nil, err
107293	}
107294	ret := &TestPermissionsResponse{
107295		ServerResponse: googleapi.ServerResponse{
107296			Header:         res.Header,
107297			HTTPStatusCode: res.StatusCode,
107298		},
107299	}
107300	target := &ret
107301	if err := gensupport.DecodeResponse(target, res); err != nil {
107302		return nil, err
107303	}
107304	return ret, nil
107305	// {
107306	//   "description": "Returns permissions that a caller has on the specified resource.",
107307	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107308	//   "httpMethod": "POST",
107309	//   "id": "compute.nodeGroups.testIamPermissions",
107310	//   "parameterOrder": [
107311	//     "project",
107312	//     "zone",
107313	//     "resource"
107314	//   ],
107315	//   "parameters": {
107316	//     "project": {
107317	//       "description": "Project ID for this request.",
107318	//       "location": "path",
107319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107320	//       "required": true,
107321	//       "type": "string"
107322	//     },
107323	//     "resource": {
107324	//       "description": "Name or id of the resource for this request.",
107325	//       "location": "path",
107326	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107327	//       "required": true,
107328	//       "type": "string"
107329	//     },
107330	//     "zone": {
107331	//       "description": "The name of the zone for this request.",
107332	//       "location": "path",
107333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107334	//       "required": true,
107335	//       "type": "string"
107336	//     }
107337	//   },
107338	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107339	//   "request": {
107340	//     "$ref": "TestPermissionsRequest"
107341	//   },
107342	//   "response": {
107343	//     "$ref": "TestPermissionsResponse"
107344	//   },
107345	//   "scopes": [
107346	//     "https://www.googleapis.com/auth/cloud-platform",
107347	//     "https://www.googleapis.com/auth/compute",
107348	//     "https://www.googleapis.com/auth/compute.readonly"
107349	//   ]
107350	// }
107351
107352}
107353
107354// method id "compute.nodeTemplates.aggregatedList":
107355
107356type NodeTemplatesAggregatedListCall struct {
107357	s            *Service
107358	project      string
107359	urlParams_   gensupport.URLParams
107360	ifNoneMatch_ string
107361	ctx_         context.Context
107362	header_      http.Header
107363}
107364
107365// AggregatedList: Retrieves an aggregated list of node templates.
107366//
107367// - project: Project ID for this request.
107368func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
107369	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107370	c.project = project
107371	return c
107372}
107373
107374// Filter sets the optional parameter "filter": A filter expression that
107375// filters resources listed in the response. The expression must specify
107376// the field name, a comparison operator, and the value that you want to
107377// use for filtering. The value must be a string, a number, or a
107378// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107379// `<`. For example, if you are filtering Compute Engine instances, you
107380// can exclude instances named `example-instance` by specifying `name !=
107381// example-instance`. You can also filter nested fields. For example,
107382// you could specify `scheduling.automaticRestart = false` to include
107383// instances only if they are not scheduled for automatic restarts. You
107384// can use filtering on nested fields to filter based on resource
107385// labels. To filter on multiple expressions, provide each separate
107386// expression within parentheses. For example: ```
107387// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
107388// ``` By default, each expression is an `AND` expression. However, you
107389// can include `AND` and `OR` expressions explicitly. For example: ```
107390// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
107391// AND (scheduling.automaticRestart = true) ```
107392func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
107393	c.urlParams_.Set("filter", filter)
107394	return c
107395}
107396
107397// IncludeAllScopes sets the optional parameter "includeAllScopes":
107398// Indicates whether every visible scope for each scope type (zone,
107399// region, global) should be included in the response. For new resource
107400// types added after this field, the flag has no effect as new resource
107401// types will always include every visible scope for each scope type in
107402// response. For resource types which predate this field, if this flag
107403// is omitted or false, only scopes of the scope types where the
107404// resource type is expected to be found will be included.
107405func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
107406	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
107407	return c
107408}
107409
107410// MaxResults sets the optional parameter "maxResults": The maximum
107411// number of results per page that should be returned. If the number of
107412// available results is larger than `maxResults`, Compute Engine returns
107413// a `nextPageToken` that can be used to get the next page of results in
107414// subsequent list requests. Acceptable values are `0` to `500`,
107415// inclusive. (Default: `500`)
107416func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
107417	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107418	return c
107419}
107420
107421// OrderBy sets the optional parameter "orderBy": Sorts list results by
107422// a certain order. By default, results are returned in alphanumerical
107423// order based on the resource name. You can also sort results in
107424// descending order based on the creation timestamp using
107425// `orderBy="creationTimestamp desc". This sorts results based on the
107426// `creationTimestamp` field in reverse chronological order (newest
107427// result first). Use this to sort resources like operations so that the
107428// newest operation is returned first. Currently, only sorting by `name`
107429// or `creationTimestamp desc` is supported.
107430func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
107431	c.urlParams_.Set("orderBy", orderBy)
107432	return c
107433}
107434
107435// PageToken sets the optional parameter "pageToken": Specifies a page
107436// token to use. Set `pageToken` to the `nextPageToken` returned by a
107437// previous list request to get the next page of results.
107438func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
107439	c.urlParams_.Set("pageToken", pageToken)
107440	return c
107441}
107442
107443// ReturnPartialSuccess sets the optional parameter
107444// "returnPartialSuccess": Opt-in for partial success behavior which
107445// provides partial results in case of failure. The default value is
107446// false.
107447func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
107448	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
107449	return c
107450}
107451
107452// Fields allows partial responses to be retrieved. See
107453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107454// for more information.
107455func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
107456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107457	return c
107458}
107459
107460// IfNoneMatch sets the optional parameter which makes the operation
107461// fail if the object's ETag matches the given value. This is useful for
107462// getting updates only after the object has changed since the last
107463// request. Use googleapi.IsNotModified to check whether the response
107464// error from Do is the result of In-None-Match.
107465func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
107466	c.ifNoneMatch_ = entityTag
107467	return c
107468}
107469
107470// Context sets the context to be used in this call's Do method. Any
107471// pending HTTP request will be aborted if the provided context is
107472// canceled.
107473func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
107474	c.ctx_ = ctx
107475	return c
107476}
107477
107478// Header returns an http.Header that can be modified by the caller to
107479// add HTTP headers to the request.
107480func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
107481	if c.header_ == nil {
107482		c.header_ = make(http.Header)
107483	}
107484	return c.header_
107485}
107486
107487func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107488	reqHeaders := make(http.Header)
107489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
107490	for k, v := range c.header_ {
107491		reqHeaders[k] = v
107492	}
107493	reqHeaders.Set("User-Agent", c.s.userAgent())
107494	if c.ifNoneMatch_ != "" {
107495		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107496	}
107497	var body io.Reader = nil
107498	c.urlParams_.Set("alt", alt)
107499	c.urlParams_.Set("prettyPrint", "false")
107500	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates")
107501	urls += "?" + c.urlParams_.Encode()
107502	req, err := http.NewRequest("GET", urls, body)
107503	if err != nil {
107504		return nil, err
107505	}
107506	req.Header = reqHeaders
107507	googleapi.Expand(req.URL, map[string]string{
107508		"project": c.project,
107509	})
107510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107511}
107512
107513// Do executes the "compute.nodeTemplates.aggregatedList" call.
107514// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
107515// Any non-2xx status code is an error. Response headers are in either
107516// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
107517// was returned at all) in error.(*googleapi.Error).Header. Use
107518// googleapi.IsNotModified to check whether the returned error was
107519// because http.StatusNotModified was returned.
107520func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
107521	gensupport.SetOptions(c.urlParams_, opts...)
107522	res, err := c.doRequest("json")
107523	if res != nil && res.StatusCode == http.StatusNotModified {
107524		if res.Body != nil {
107525			res.Body.Close()
107526		}
107527		return nil, &googleapi.Error{
107528			Code:   res.StatusCode,
107529			Header: res.Header,
107530		}
107531	}
107532	if err != nil {
107533		return nil, err
107534	}
107535	defer googleapi.CloseBody(res)
107536	if err := googleapi.CheckResponse(res); err != nil {
107537		return nil, err
107538	}
107539	ret := &NodeTemplateAggregatedList{
107540		ServerResponse: googleapi.ServerResponse{
107541			Header:         res.Header,
107542			HTTPStatusCode: res.StatusCode,
107543		},
107544	}
107545	target := &ret
107546	if err := gensupport.DecodeResponse(target, res); err != nil {
107547		return nil, err
107548	}
107549	return ret, nil
107550	// {
107551	//   "description": "Retrieves an aggregated list of node templates.",
107552	//   "flatPath": "projects/{project}/aggregated/nodeTemplates",
107553	//   "httpMethod": "GET",
107554	//   "id": "compute.nodeTemplates.aggregatedList",
107555	//   "parameterOrder": [
107556	//     "project"
107557	//   ],
107558	//   "parameters": {
107559	//     "filter": {
107560	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
107561	//       "location": "query",
107562	//       "type": "string"
107563	//     },
107564	//     "includeAllScopes": {
107565	//       "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.",
107566	//       "location": "query",
107567	//       "type": "boolean"
107568	//     },
107569	//     "maxResults": {
107570	//       "default": "500",
107571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
107572	//       "format": "uint32",
107573	//       "location": "query",
107574	//       "minimum": "0",
107575	//       "type": "integer"
107576	//     },
107577	//     "orderBy": {
107578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
107579	//       "location": "query",
107580	//       "type": "string"
107581	//     },
107582	//     "pageToken": {
107583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107584	//       "location": "query",
107585	//       "type": "string"
107586	//     },
107587	//     "project": {
107588	//       "description": "Project ID for this request.",
107589	//       "location": "path",
107590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107591	//       "required": true,
107592	//       "type": "string"
107593	//     },
107594	//     "returnPartialSuccess": {
107595	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
107596	//       "location": "query",
107597	//       "type": "boolean"
107598	//     }
107599	//   },
107600	//   "path": "projects/{project}/aggregated/nodeTemplates",
107601	//   "response": {
107602	//     "$ref": "NodeTemplateAggregatedList"
107603	//   },
107604	//   "scopes": [
107605	//     "https://www.googleapis.com/auth/cloud-platform",
107606	//     "https://www.googleapis.com/auth/compute",
107607	//     "https://www.googleapis.com/auth/compute.readonly"
107608	//   ]
107609	// }
107610
107611}
107612
107613// Pages invokes f for each page of results.
107614// A non-nil error returned from f will halt the iteration.
107615// The provided context supersedes any context provided to the Context method.
107616func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
107617	c.ctx_ = ctx
107618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107619	for {
107620		x, err := c.Do()
107621		if err != nil {
107622			return err
107623		}
107624		if err := f(x); err != nil {
107625			return err
107626		}
107627		if x.NextPageToken == "" {
107628			return nil
107629		}
107630		c.PageToken(x.NextPageToken)
107631	}
107632}
107633
107634// method id "compute.nodeTemplates.delete":
107635
107636type NodeTemplatesDeleteCall struct {
107637	s            *Service
107638	project      string
107639	region       string
107640	nodeTemplate string
107641	urlParams_   gensupport.URLParams
107642	ctx_         context.Context
107643	header_      http.Header
107644}
107645
107646// Delete: Deletes the specified NodeTemplate resource.
107647//
107648// - nodeTemplate: Name of the NodeTemplate resource to delete.
107649// - project: Project ID for this request.
107650// - region: The name of the region for this request.
107651func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
107652	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107653	c.project = project
107654	c.region = region
107655	c.nodeTemplate = nodeTemplate
107656	return c
107657}
107658
107659// RequestId sets the optional parameter "requestId": An optional
107660// request ID to identify requests. Specify a unique request ID so that
107661// if you must retry your request, the server will know to ignore the
107662// request if it has already been completed. For example, consider a
107663// situation where you make an initial request and the request times
107664// out. If you make the request again with the same request ID, the
107665// server can check if original operation with the same request ID was
107666// received, and if so, will ignore the second request. This prevents
107667// clients from accidentally creating duplicate commitments. The request
107668// ID must be a valid UUID with the exception that zero UUID is not
107669// supported ( 00000000-0000-0000-0000-000000000000).
107670func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
107671	c.urlParams_.Set("requestId", requestId)
107672	return c
107673}
107674
107675// Fields allows partial responses to be retrieved. See
107676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107677// for more information.
107678func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
107679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107680	return c
107681}
107682
107683// Context sets the context to be used in this call's Do method. Any
107684// pending HTTP request will be aborted if the provided context is
107685// canceled.
107686func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
107687	c.ctx_ = ctx
107688	return c
107689}
107690
107691// Header returns an http.Header that can be modified by the caller to
107692// add HTTP headers to the request.
107693func (c *NodeTemplatesDeleteCall) Header() http.Header {
107694	if c.header_ == nil {
107695		c.header_ = make(http.Header)
107696	}
107697	return c.header_
107698}
107699
107700func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
107701	reqHeaders := make(http.Header)
107702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
107703	for k, v := range c.header_ {
107704		reqHeaders[k] = v
107705	}
107706	reqHeaders.Set("User-Agent", c.s.userAgent())
107707	var body io.Reader = nil
107708	c.urlParams_.Set("alt", alt)
107709	c.urlParams_.Set("prettyPrint", "false")
107710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
107711	urls += "?" + c.urlParams_.Encode()
107712	req, err := http.NewRequest("DELETE", urls, body)
107713	if err != nil {
107714		return nil, err
107715	}
107716	req.Header = reqHeaders
107717	googleapi.Expand(req.URL, map[string]string{
107718		"project":      c.project,
107719		"region":       c.region,
107720		"nodeTemplate": c.nodeTemplate,
107721	})
107722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107723}
107724
107725// Do executes the "compute.nodeTemplates.delete" call.
107726// Exactly one of *Operation or error will be non-nil. Any non-2xx
107727// status code is an error. Response headers are in either
107728// *Operation.ServerResponse.Header or (if a response was returned at
107729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107730// to check whether the returned error was because
107731// http.StatusNotModified was returned.
107732func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107733	gensupport.SetOptions(c.urlParams_, opts...)
107734	res, err := c.doRequest("json")
107735	if res != nil && res.StatusCode == http.StatusNotModified {
107736		if res.Body != nil {
107737			res.Body.Close()
107738		}
107739		return nil, &googleapi.Error{
107740			Code:   res.StatusCode,
107741			Header: res.Header,
107742		}
107743	}
107744	if err != nil {
107745		return nil, err
107746	}
107747	defer googleapi.CloseBody(res)
107748	if err := googleapi.CheckResponse(res); err != nil {
107749		return nil, err
107750	}
107751	ret := &Operation{
107752		ServerResponse: googleapi.ServerResponse{
107753			Header:         res.Header,
107754			HTTPStatusCode: res.StatusCode,
107755		},
107756	}
107757	target := &ret
107758	if err := gensupport.DecodeResponse(target, res); err != nil {
107759		return nil, err
107760	}
107761	return ret, nil
107762	// {
107763	//   "description": "Deletes the specified NodeTemplate resource.",
107764	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107765	//   "httpMethod": "DELETE",
107766	//   "id": "compute.nodeTemplates.delete",
107767	//   "parameterOrder": [
107768	//     "project",
107769	//     "region",
107770	//     "nodeTemplate"
107771	//   ],
107772	//   "parameters": {
107773	//     "nodeTemplate": {
107774	//       "description": "Name of the NodeTemplate resource to delete.",
107775	//       "location": "path",
107776	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107777	//       "required": true,
107778	//       "type": "string"
107779	//     },
107780	//     "project": {
107781	//       "description": "Project ID for this request.",
107782	//       "location": "path",
107783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107784	//       "required": true,
107785	//       "type": "string"
107786	//     },
107787	//     "region": {
107788	//       "description": "The name of the region for this request.",
107789	//       "location": "path",
107790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107791	//       "required": true,
107792	//       "type": "string"
107793	//     },
107794	//     "requestId": {
107795	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
107796	//       "location": "query",
107797	//       "type": "string"
107798	//     }
107799	//   },
107800	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107801	//   "response": {
107802	//     "$ref": "Operation"
107803	//   },
107804	//   "scopes": [
107805	//     "https://www.googleapis.com/auth/cloud-platform",
107806	//     "https://www.googleapis.com/auth/compute"
107807	//   ]
107808	// }
107809
107810}
107811
107812// method id "compute.nodeTemplates.get":
107813
107814type NodeTemplatesGetCall struct {
107815	s            *Service
107816	project      string
107817	region       string
107818	nodeTemplate string
107819	urlParams_   gensupport.URLParams
107820	ifNoneMatch_ string
107821	ctx_         context.Context
107822	header_      http.Header
107823}
107824
107825// Get: Returns the specified node template. Gets a list of available
107826// node templates by making a list() request.
107827//
107828// - nodeTemplate: Name of the node template to return.
107829// - project: Project ID for this request.
107830// - region: The name of the region for this request.
107831func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
107832	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107833	c.project = project
107834	c.region = region
107835	c.nodeTemplate = nodeTemplate
107836	return c
107837}
107838
107839// Fields allows partial responses to be retrieved. See
107840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107841// for more information.
107842func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
107843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107844	return c
107845}
107846
107847// IfNoneMatch sets the optional parameter which makes the operation
107848// fail if the object's ETag matches the given value. This is useful for
107849// getting updates only after the object has changed since the last
107850// request. Use googleapi.IsNotModified to check whether the response
107851// error from Do is the result of In-None-Match.
107852func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
107853	c.ifNoneMatch_ = entityTag
107854	return c
107855}
107856
107857// Context sets the context to be used in this call's Do method. Any
107858// pending HTTP request will be aborted if the provided context is
107859// canceled.
107860func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
107861	c.ctx_ = ctx
107862	return c
107863}
107864
107865// Header returns an http.Header that can be modified by the caller to
107866// add HTTP headers to the request.
107867func (c *NodeTemplatesGetCall) Header() http.Header {
107868	if c.header_ == nil {
107869		c.header_ = make(http.Header)
107870	}
107871	return c.header_
107872}
107873
107874func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
107875	reqHeaders := make(http.Header)
107876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
107877	for k, v := range c.header_ {
107878		reqHeaders[k] = v
107879	}
107880	reqHeaders.Set("User-Agent", c.s.userAgent())
107881	if c.ifNoneMatch_ != "" {
107882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107883	}
107884	var body io.Reader = nil
107885	c.urlParams_.Set("alt", alt)
107886	c.urlParams_.Set("prettyPrint", "false")
107887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
107888	urls += "?" + c.urlParams_.Encode()
107889	req, err := http.NewRequest("GET", urls, body)
107890	if err != nil {
107891		return nil, err
107892	}
107893	req.Header = reqHeaders
107894	googleapi.Expand(req.URL, map[string]string{
107895		"project":      c.project,
107896		"region":       c.region,
107897		"nodeTemplate": c.nodeTemplate,
107898	})
107899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107900}
107901
107902// Do executes the "compute.nodeTemplates.get" call.
107903// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
107904// status code is an error. Response headers are in either
107905// *NodeTemplate.ServerResponse.Header or (if a response was returned at
107906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107907// to check whether the returned error was because
107908// http.StatusNotModified was returned.
107909func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
107910	gensupport.SetOptions(c.urlParams_, opts...)
107911	res, err := c.doRequest("json")
107912	if res != nil && res.StatusCode == http.StatusNotModified {
107913		if res.Body != nil {
107914			res.Body.Close()
107915		}
107916		return nil, &googleapi.Error{
107917			Code:   res.StatusCode,
107918			Header: res.Header,
107919		}
107920	}
107921	if err != nil {
107922		return nil, err
107923	}
107924	defer googleapi.CloseBody(res)
107925	if err := googleapi.CheckResponse(res); err != nil {
107926		return nil, err
107927	}
107928	ret := &NodeTemplate{
107929		ServerResponse: googleapi.ServerResponse{
107930			Header:         res.Header,
107931			HTTPStatusCode: res.StatusCode,
107932		},
107933	}
107934	target := &ret
107935	if err := gensupport.DecodeResponse(target, res); err != nil {
107936		return nil, err
107937	}
107938	return ret, nil
107939	// {
107940	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
107941	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107942	//   "httpMethod": "GET",
107943	//   "id": "compute.nodeTemplates.get",
107944	//   "parameterOrder": [
107945	//     "project",
107946	//     "region",
107947	//     "nodeTemplate"
107948	//   ],
107949	//   "parameters": {
107950	//     "nodeTemplate": {
107951	//       "description": "Name of the node template to return.",
107952	//       "location": "path",
107953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107954	//       "required": true,
107955	//       "type": "string"
107956	//     },
107957	//     "project": {
107958	//       "description": "Project ID for this request.",
107959	//       "location": "path",
107960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107961	//       "required": true,
107962	//       "type": "string"
107963	//     },
107964	//     "region": {
107965	//       "description": "The name of the region for this request.",
107966	//       "location": "path",
107967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107968	//       "required": true,
107969	//       "type": "string"
107970	//     }
107971	//   },
107972	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
107973	//   "response": {
107974	//     "$ref": "NodeTemplate"
107975	//   },
107976	//   "scopes": [
107977	//     "https://www.googleapis.com/auth/cloud-platform",
107978	//     "https://www.googleapis.com/auth/compute",
107979	//     "https://www.googleapis.com/auth/compute.readonly"
107980	//   ]
107981	// }
107982
107983}
107984
107985// method id "compute.nodeTemplates.getIamPolicy":
107986
107987type NodeTemplatesGetIamPolicyCall struct {
107988	s            *Service
107989	project      string
107990	region       string
107991	resource     string
107992	urlParams_   gensupport.URLParams
107993	ifNoneMatch_ string
107994	ctx_         context.Context
107995	header_      http.Header
107996}
107997
107998// GetIamPolicy: Gets the access control policy for a resource. May be
107999// empty if no such policy or resource exists.
108000//
108001// - project: Project ID for this request.
108002// - region: The name of the region for this request.
108003// - resource: Name or id of the resource for this request.
108004func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
108005	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108006	c.project = project
108007	c.region = region
108008	c.resource = resource
108009	return c
108010}
108011
108012// OptionsRequestedPolicyVersion sets the optional parameter
108013// "optionsRequestedPolicyVersion": Requested IAM Policy version.
108014func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
108015	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
108016	return c
108017}
108018
108019// Fields allows partial responses to be retrieved. See
108020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108021// for more information.
108022func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
108023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108024	return c
108025}
108026
108027// IfNoneMatch sets the optional parameter which makes the operation
108028// fail if the object's ETag matches the given value. This is useful for
108029// getting updates only after the object has changed since the last
108030// request. Use googleapi.IsNotModified to check whether the response
108031// error from Do is the result of In-None-Match.
108032func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
108033	c.ifNoneMatch_ = entityTag
108034	return c
108035}
108036
108037// Context sets the context to be used in this call's Do method. Any
108038// pending HTTP request will be aborted if the provided context is
108039// canceled.
108040func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
108041	c.ctx_ = ctx
108042	return c
108043}
108044
108045// Header returns an http.Header that can be modified by the caller to
108046// add HTTP headers to the request.
108047func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
108048	if c.header_ == nil {
108049		c.header_ = make(http.Header)
108050	}
108051	return c.header_
108052}
108053
108054func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108055	reqHeaders := make(http.Header)
108056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
108057	for k, v := range c.header_ {
108058		reqHeaders[k] = v
108059	}
108060	reqHeaders.Set("User-Agent", c.s.userAgent())
108061	if c.ifNoneMatch_ != "" {
108062		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108063	}
108064	var body io.Reader = nil
108065	c.urlParams_.Set("alt", alt)
108066	c.urlParams_.Set("prettyPrint", "false")
108067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
108068	urls += "?" + c.urlParams_.Encode()
108069	req, err := http.NewRequest("GET", urls, body)
108070	if err != nil {
108071		return nil, err
108072	}
108073	req.Header = reqHeaders
108074	googleapi.Expand(req.URL, map[string]string{
108075		"project":  c.project,
108076		"region":   c.region,
108077		"resource": c.resource,
108078	})
108079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108080}
108081
108082// Do executes the "compute.nodeTemplates.getIamPolicy" call.
108083// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108084// code is an error. Response headers are in either
108085// *Policy.ServerResponse.Header or (if a response was returned at all)
108086// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108087// check whether the returned error was because http.StatusNotModified
108088// was returned.
108089func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108090	gensupport.SetOptions(c.urlParams_, opts...)
108091	res, err := c.doRequest("json")
108092	if res != nil && res.StatusCode == http.StatusNotModified {
108093		if res.Body != nil {
108094			res.Body.Close()
108095		}
108096		return nil, &googleapi.Error{
108097			Code:   res.StatusCode,
108098			Header: res.Header,
108099		}
108100	}
108101	if err != nil {
108102		return nil, err
108103	}
108104	defer googleapi.CloseBody(res)
108105	if err := googleapi.CheckResponse(res); err != nil {
108106		return nil, err
108107	}
108108	ret := &Policy{
108109		ServerResponse: googleapi.ServerResponse{
108110			Header:         res.Header,
108111			HTTPStatusCode: res.StatusCode,
108112		},
108113	}
108114	target := &ret
108115	if err := gensupport.DecodeResponse(target, res); err != nil {
108116		return nil, err
108117	}
108118	return ret, nil
108119	// {
108120	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
108121	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
108122	//   "httpMethod": "GET",
108123	//   "id": "compute.nodeTemplates.getIamPolicy",
108124	//   "parameterOrder": [
108125	//     "project",
108126	//     "region",
108127	//     "resource"
108128	//   ],
108129	//   "parameters": {
108130	//     "optionsRequestedPolicyVersion": {
108131	//       "description": "Requested IAM Policy version.",
108132	//       "format": "int32",
108133	//       "location": "query",
108134	//       "type": "integer"
108135	//     },
108136	//     "project": {
108137	//       "description": "Project ID for this request.",
108138	//       "location": "path",
108139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108140	//       "required": true,
108141	//       "type": "string"
108142	//     },
108143	//     "region": {
108144	//       "description": "The name of the region for this request.",
108145	//       "location": "path",
108146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108147	//       "required": true,
108148	//       "type": "string"
108149	//     },
108150	//     "resource": {
108151	//       "description": "Name or id of the resource for this request.",
108152	//       "location": "path",
108153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108154	//       "required": true,
108155	//       "type": "string"
108156	//     }
108157	//   },
108158	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
108159	//   "response": {
108160	//     "$ref": "Policy"
108161	//   },
108162	//   "scopes": [
108163	//     "https://www.googleapis.com/auth/cloud-platform",
108164	//     "https://www.googleapis.com/auth/compute",
108165	//     "https://www.googleapis.com/auth/compute.readonly"
108166	//   ]
108167	// }
108168
108169}
108170
108171// method id "compute.nodeTemplates.insert":
108172
108173type NodeTemplatesInsertCall struct {
108174	s            *Service
108175	project      string
108176	region       string
108177	nodetemplate *NodeTemplate
108178	urlParams_   gensupport.URLParams
108179	ctx_         context.Context
108180	header_      http.Header
108181}
108182
108183// Insert: Creates a NodeTemplate resource in the specified project
108184// using the data included in the request.
108185//
108186// - project: Project ID for this request.
108187// - region: The name of the region for this request.
108188func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
108189	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108190	c.project = project
108191	c.region = region
108192	c.nodetemplate = nodetemplate
108193	return c
108194}
108195
108196// RequestId sets the optional parameter "requestId": An optional
108197// request ID to identify requests. Specify a unique request ID so that
108198// if you must retry your request, the server will know to ignore the
108199// request if it has already been completed. For example, consider a
108200// situation where you make an initial request and the request times
108201// out. If you make the request again with the same request ID, the
108202// server can check if original operation with the same request ID was
108203// received, and if so, will ignore the second request. This prevents
108204// clients from accidentally creating duplicate commitments. The request
108205// ID must be a valid UUID with the exception that zero UUID is not
108206// supported ( 00000000-0000-0000-0000-000000000000).
108207func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
108208	c.urlParams_.Set("requestId", requestId)
108209	return c
108210}
108211
108212// Fields allows partial responses to be retrieved. See
108213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108214// for more information.
108215func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
108216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108217	return c
108218}
108219
108220// Context sets the context to be used in this call's Do method. Any
108221// pending HTTP request will be aborted if the provided context is
108222// canceled.
108223func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
108224	c.ctx_ = ctx
108225	return c
108226}
108227
108228// Header returns an http.Header that can be modified by the caller to
108229// add HTTP headers to the request.
108230func (c *NodeTemplatesInsertCall) Header() http.Header {
108231	if c.header_ == nil {
108232		c.header_ = make(http.Header)
108233	}
108234	return c.header_
108235}
108236
108237func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
108238	reqHeaders := make(http.Header)
108239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
108240	for k, v := range c.header_ {
108241		reqHeaders[k] = v
108242	}
108243	reqHeaders.Set("User-Agent", c.s.userAgent())
108244	var body io.Reader = nil
108245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
108246	if err != nil {
108247		return nil, err
108248	}
108249	reqHeaders.Set("Content-Type", "application/json")
108250	c.urlParams_.Set("alt", alt)
108251	c.urlParams_.Set("prettyPrint", "false")
108252	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
108253	urls += "?" + c.urlParams_.Encode()
108254	req, err := http.NewRequest("POST", urls, body)
108255	if err != nil {
108256		return nil, err
108257	}
108258	req.Header = reqHeaders
108259	googleapi.Expand(req.URL, map[string]string{
108260		"project": c.project,
108261		"region":  c.region,
108262	})
108263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108264}
108265
108266// Do executes the "compute.nodeTemplates.insert" call.
108267// Exactly one of *Operation or error will be non-nil. Any non-2xx
108268// status code is an error. Response headers are in either
108269// *Operation.ServerResponse.Header or (if a response was returned at
108270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108271// to check whether the returned error was because
108272// http.StatusNotModified was returned.
108273func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108274	gensupport.SetOptions(c.urlParams_, opts...)
108275	res, err := c.doRequest("json")
108276	if res != nil && res.StatusCode == http.StatusNotModified {
108277		if res.Body != nil {
108278			res.Body.Close()
108279		}
108280		return nil, &googleapi.Error{
108281			Code:   res.StatusCode,
108282			Header: res.Header,
108283		}
108284	}
108285	if err != nil {
108286		return nil, err
108287	}
108288	defer googleapi.CloseBody(res)
108289	if err := googleapi.CheckResponse(res); err != nil {
108290		return nil, err
108291	}
108292	ret := &Operation{
108293		ServerResponse: googleapi.ServerResponse{
108294			Header:         res.Header,
108295			HTTPStatusCode: res.StatusCode,
108296		},
108297	}
108298	target := &ret
108299	if err := gensupport.DecodeResponse(target, res); err != nil {
108300		return nil, err
108301	}
108302	return ret, nil
108303	// {
108304	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
108305	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
108306	//   "httpMethod": "POST",
108307	//   "id": "compute.nodeTemplates.insert",
108308	//   "parameterOrder": [
108309	//     "project",
108310	//     "region"
108311	//   ],
108312	//   "parameters": {
108313	//     "project": {
108314	//       "description": "Project ID for this request.",
108315	//       "location": "path",
108316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108317	//       "required": true,
108318	//       "type": "string"
108319	//     },
108320	//     "region": {
108321	//       "description": "The name of the region for this request.",
108322	//       "location": "path",
108323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108324	//       "required": true,
108325	//       "type": "string"
108326	//     },
108327	//     "requestId": {
108328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
108329	//       "location": "query",
108330	//       "type": "string"
108331	//     }
108332	//   },
108333	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
108334	//   "request": {
108335	//     "$ref": "NodeTemplate"
108336	//   },
108337	//   "response": {
108338	//     "$ref": "Operation"
108339	//   },
108340	//   "scopes": [
108341	//     "https://www.googleapis.com/auth/cloud-platform",
108342	//     "https://www.googleapis.com/auth/compute"
108343	//   ]
108344	// }
108345
108346}
108347
108348// method id "compute.nodeTemplates.list":
108349
108350type NodeTemplatesListCall struct {
108351	s            *Service
108352	project      string
108353	region       string
108354	urlParams_   gensupport.URLParams
108355	ifNoneMatch_ string
108356	ctx_         context.Context
108357	header_      http.Header
108358}
108359
108360// List: Retrieves a list of node templates available to the specified
108361// project.
108362//
108363// - project: Project ID for this request.
108364// - region: The name of the region for this request.
108365func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
108366	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108367	c.project = project
108368	c.region = region
108369	return c
108370}
108371
108372// Filter sets the optional parameter "filter": A filter expression that
108373// filters resources listed in the response. The expression must specify
108374// the field name, a comparison operator, and the value that you want to
108375// use for filtering. The value must be a string, a number, or a
108376// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108377// `<`. For example, if you are filtering Compute Engine instances, you
108378// can exclude instances named `example-instance` by specifying `name !=
108379// example-instance`. You can also filter nested fields. For example,
108380// you could specify `scheduling.automaticRestart = false` to include
108381// instances only if they are not scheduled for automatic restarts. You
108382// can use filtering on nested fields to filter based on resource
108383// labels. To filter on multiple expressions, provide each separate
108384// expression within parentheses. For example: ```
108385// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
108386// ``` By default, each expression is an `AND` expression. However, you
108387// can include `AND` and `OR` expressions explicitly. For example: ```
108388// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
108389// AND (scheduling.automaticRestart = true) ```
108390func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
108391	c.urlParams_.Set("filter", filter)
108392	return c
108393}
108394
108395// MaxResults sets the optional parameter "maxResults": The maximum
108396// number of results per page that should be returned. If the number of
108397// available results is larger than `maxResults`, Compute Engine returns
108398// a `nextPageToken` that can be used to get the next page of results in
108399// subsequent list requests. Acceptable values are `0` to `500`,
108400// inclusive. (Default: `500`)
108401func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
108402	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108403	return c
108404}
108405
108406// OrderBy sets the optional parameter "orderBy": Sorts list results by
108407// a certain order. By default, results are returned in alphanumerical
108408// order based on the resource name. You can also sort results in
108409// descending order based on the creation timestamp using
108410// `orderBy="creationTimestamp desc". This sorts results based on the
108411// `creationTimestamp` field in reverse chronological order (newest
108412// result first). Use this to sort resources like operations so that the
108413// newest operation is returned first. Currently, only sorting by `name`
108414// or `creationTimestamp desc` is supported.
108415func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
108416	c.urlParams_.Set("orderBy", orderBy)
108417	return c
108418}
108419
108420// PageToken sets the optional parameter "pageToken": Specifies a page
108421// token to use. Set `pageToken` to the `nextPageToken` returned by a
108422// previous list request to get the next page of results.
108423func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
108424	c.urlParams_.Set("pageToken", pageToken)
108425	return c
108426}
108427
108428// ReturnPartialSuccess sets the optional parameter
108429// "returnPartialSuccess": Opt-in for partial success behavior which
108430// provides partial results in case of failure. The default value is
108431// false.
108432func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
108433	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108434	return c
108435}
108436
108437// Fields allows partial responses to be retrieved. See
108438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108439// for more information.
108440func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
108441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108442	return c
108443}
108444
108445// IfNoneMatch sets the optional parameter which makes the operation
108446// fail if the object's ETag matches the given value. This is useful for
108447// getting updates only after the object has changed since the last
108448// request. Use googleapi.IsNotModified to check whether the response
108449// error from Do is the result of In-None-Match.
108450func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
108451	c.ifNoneMatch_ = entityTag
108452	return c
108453}
108454
108455// Context sets the context to be used in this call's Do method. Any
108456// pending HTTP request will be aborted if the provided context is
108457// canceled.
108458func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
108459	c.ctx_ = ctx
108460	return c
108461}
108462
108463// Header returns an http.Header that can be modified by the caller to
108464// add HTTP headers to the request.
108465func (c *NodeTemplatesListCall) Header() http.Header {
108466	if c.header_ == nil {
108467		c.header_ = make(http.Header)
108468	}
108469	return c.header_
108470}
108471
108472func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
108473	reqHeaders := make(http.Header)
108474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
108475	for k, v := range c.header_ {
108476		reqHeaders[k] = v
108477	}
108478	reqHeaders.Set("User-Agent", c.s.userAgent())
108479	if c.ifNoneMatch_ != "" {
108480		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108481	}
108482	var body io.Reader = nil
108483	c.urlParams_.Set("alt", alt)
108484	c.urlParams_.Set("prettyPrint", "false")
108485	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
108486	urls += "?" + c.urlParams_.Encode()
108487	req, err := http.NewRequest("GET", urls, body)
108488	if err != nil {
108489		return nil, err
108490	}
108491	req.Header = reqHeaders
108492	googleapi.Expand(req.URL, map[string]string{
108493		"project": c.project,
108494		"region":  c.region,
108495	})
108496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108497}
108498
108499// Do executes the "compute.nodeTemplates.list" call.
108500// Exactly one of *NodeTemplateList or error will be non-nil. Any
108501// non-2xx status code is an error. Response headers are in either
108502// *NodeTemplateList.ServerResponse.Header or (if a response was
108503// returned at all) in error.(*googleapi.Error).Header. Use
108504// googleapi.IsNotModified to check whether the returned error was
108505// because http.StatusNotModified was returned.
108506func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
108507	gensupport.SetOptions(c.urlParams_, opts...)
108508	res, err := c.doRequest("json")
108509	if res != nil && res.StatusCode == http.StatusNotModified {
108510		if res.Body != nil {
108511			res.Body.Close()
108512		}
108513		return nil, &googleapi.Error{
108514			Code:   res.StatusCode,
108515			Header: res.Header,
108516		}
108517	}
108518	if err != nil {
108519		return nil, err
108520	}
108521	defer googleapi.CloseBody(res)
108522	if err := googleapi.CheckResponse(res); err != nil {
108523		return nil, err
108524	}
108525	ret := &NodeTemplateList{
108526		ServerResponse: googleapi.ServerResponse{
108527			Header:         res.Header,
108528			HTTPStatusCode: res.StatusCode,
108529		},
108530	}
108531	target := &ret
108532	if err := gensupport.DecodeResponse(target, res); err != nil {
108533		return nil, err
108534	}
108535	return ret, nil
108536	// {
108537	//   "description": "Retrieves a list of node templates available to the specified project.",
108538	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
108539	//   "httpMethod": "GET",
108540	//   "id": "compute.nodeTemplates.list",
108541	//   "parameterOrder": [
108542	//     "project",
108543	//     "region"
108544	//   ],
108545	//   "parameters": {
108546	//     "filter": {
108547	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108548	//       "location": "query",
108549	//       "type": "string"
108550	//     },
108551	//     "maxResults": {
108552	//       "default": "500",
108553	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108554	//       "format": "uint32",
108555	//       "location": "query",
108556	//       "minimum": "0",
108557	//       "type": "integer"
108558	//     },
108559	//     "orderBy": {
108560	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
108561	//       "location": "query",
108562	//       "type": "string"
108563	//     },
108564	//     "pageToken": {
108565	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108566	//       "location": "query",
108567	//       "type": "string"
108568	//     },
108569	//     "project": {
108570	//       "description": "Project ID for this request.",
108571	//       "location": "path",
108572	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108573	//       "required": true,
108574	//       "type": "string"
108575	//     },
108576	//     "region": {
108577	//       "description": "The name of the region for this request.",
108578	//       "location": "path",
108579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108580	//       "required": true,
108581	//       "type": "string"
108582	//     },
108583	//     "returnPartialSuccess": {
108584	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108585	//       "location": "query",
108586	//       "type": "boolean"
108587	//     }
108588	//   },
108589	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
108590	//   "response": {
108591	//     "$ref": "NodeTemplateList"
108592	//   },
108593	//   "scopes": [
108594	//     "https://www.googleapis.com/auth/cloud-platform",
108595	//     "https://www.googleapis.com/auth/compute",
108596	//     "https://www.googleapis.com/auth/compute.readonly"
108597	//   ]
108598	// }
108599
108600}
108601
108602// Pages invokes f for each page of results.
108603// A non-nil error returned from f will halt the iteration.
108604// The provided context supersedes any context provided to the Context method.
108605func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
108606	c.ctx_ = ctx
108607	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108608	for {
108609		x, err := c.Do()
108610		if err != nil {
108611			return err
108612		}
108613		if err := f(x); err != nil {
108614			return err
108615		}
108616		if x.NextPageToken == "" {
108617			return nil
108618		}
108619		c.PageToken(x.NextPageToken)
108620	}
108621}
108622
108623// method id "compute.nodeTemplates.setIamPolicy":
108624
108625type NodeTemplatesSetIamPolicyCall struct {
108626	s                      *Service
108627	project                string
108628	region                 string
108629	resource               string
108630	regionsetpolicyrequest *RegionSetPolicyRequest
108631	urlParams_             gensupport.URLParams
108632	ctx_                   context.Context
108633	header_                http.Header
108634}
108635
108636// SetIamPolicy: Sets the access control policy on the specified
108637// resource. Replaces any existing policy.
108638//
108639// - project: Project ID for this request.
108640// - region: The name of the region for this request.
108641// - resource: Name or id of the resource for this request.
108642func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
108643	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108644	c.project = project
108645	c.region = region
108646	c.resource = resource
108647	c.regionsetpolicyrequest = regionsetpolicyrequest
108648	return c
108649}
108650
108651// Fields allows partial responses to be retrieved. See
108652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108653// for more information.
108654func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
108655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108656	return c
108657}
108658
108659// Context sets the context to be used in this call's Do method. Any
108660// pending HTTP request will be aborted if the provided context is
108661// canceled.
108662func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
108663	c.ctx_ = ctx
108664	return c
108665}
108666
108667// Header returns an http.Header that can be modified by the caller to
108668// add HTTP headers to the request.
108669func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
108670	if c.header_ == nil {
108671		c.header_ = make(http.Header)
108672	}
108673	return c.header_
108674}
108675
108676func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108677	reqHeaders := make(http.Header)
108678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
108679	for k, v := range c.header_ {
108680		reqHeaders[k] = v
108681	}
108682	reqHeaders.Set("User-Agent", c.s.userAgent())
108683	var body io.Reader = nil
108684	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
108685	if err != nil {
108686		return nil, err
108687	}
108688	reqHeaders.Set("Content-Type", "application/json")
108689	c.urlParams_.Set("alt", alt)
108690	c.urlParams_.Set("prettyPrint", "false")
108691	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
108692	urls += "?" + c.urlParams_.Encode()
108693	req, err := http.NewRequest("POST", urls, body)
108694	if err != nil {
108695		return nil, err
108696	}
108697	req.Header = reqHeaders
108698	googleapi.Expand(req.URL, map[string]string{
108699		"project":  c.project,
108700		"region":   c.region,
108701		"resource": c.resource,
108702	})
108703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108704}
108705
108706// Do executes the "compute.nodeTemplates.setIamPolicy" call.
108707// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108708// code is an error. Response headers are in either
108709// *Policy.ServerResponse.Header or (if a response was returned at all)
108710// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108711// check whether the returned error was because http.StatusNotModified
108712// was returned.
108713func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108714	gensupport.SetOptions(c.urlParams_, opts...)
108715	res, err := c.doRequest("json")
108716	if res != nil && res.StatusCode == http.StatusNotModified {
108717		if res.Body != nil {
108718			res.Body.Close()
108719		}
108720		return nil, &googleapi.Error{
108721			Code:   res.StatusCode,
108722			Header: res.Header,
108723		}
108724	}
108725	if err != nil {
108726		return nil, err
108727	}
108728	defer googleapi.CloseBody(res)
108729	if err := googleapi.CheckResponse(res); err != nil {
108730		return nil, err
108731	}
108732	ret := &Policy{
108733		ServerResponse: googleapi.ServerResponse{
108734			Header:         res.Header,
108735			HTTPStatusCode: res.StatusCode,
108736		},
108737	}
108738	target := &ret
108739	if err := gensupport.DecodeResponse(target, res); err != nil {
108740		return nil, err
108741	}
108742	return ret, nil
108743	// {
108744	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
108745	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
108746	//   "httpMethod": "POST",
108747	//   "id": "compute.nodeTemplates.setIamPolicy",
108748	//   "parameterOrder": [
108749	//     "project",
108750	//     "region",
108751	//     "resource"
108752	//   ],
108753	//   "parameters": {
108754	//     "project": {
108755	//       "description": "Project ID for this request.",
108756	//       "location": "path",
108757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108758	//       "required": true,
108759	//       "type": "string"
108760	//     },
108761	//     "region": {
108762	//       "description": "The name of the region for this request.",
108763	//       "location": "path",
108764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108765	//       "required": true,
108766	//       "type": "string"
108767	//     },
108768	//     "resource": {
108769	//       "description": "Name or id of the resource for this request.",
108770	//       "location": "path",
108771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108772	//       "required": true,
108773	//       "type": "string"
108774	//     }
108775	//   },
108776	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
108777	//   "request": {
108778	//     "$ref": "RegionSetPolicyRequest"
108779	//   },
108780	//   "response": {
108781	//     "$ref": "Policy"
108782	//   },
108783	//   "scopes": [
108784	//     "https://www.googleapis.com/auth/cloud-platform",
108785	//     "https://www.googleapis.com/auth/compute"
108786	//   ]
108787	// }
108788
108789}
108790
108791// method id "compute.nodeTemplates.testIamPermissions":
108792
108793type NodeTemplatesTestIamPermissionsCall struct {
108794	s                      *Service
108795	project                string
108796	region                 string
108797	resource               string
108798	testpermissionsrequest *TestPermissionsRequest
108799	urlParams_             gensupport.URLParams
108800	ctx_                   context.Context
108801	header_                http.Header
108802}
108803
108804// TestIamPermissions: Returns permissions that a caller has on the
108805// specified resource.
108806//
108807// - project: Project ID for this request.
108808// - region: The name of the region for this request.
108809// - resource: Name or id of the resource for this request.
108810func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
108811	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108812	c.project = project
108813	c.region = region
108814	c.resource = resource
108815	c.testpermissionsrequest = testpermissionsrequest
108816	return c
108817}
108818
108819// Fields allows partial responses to be retrieved. See
108820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108821// for more information.
108822func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
108823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108824	return c
108825}
108826
108827// Context sets the context to be used in this call's Do method. Any
108828// pending HTTP request will be aborted if the provided context is
108829// canceled.
108830func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
108831	c.ctx_ = ctx
108832	return c
108833}
108834
108835// Header returns an http.Header that can be modified by the caller to
108836// add HTTP headers to the request.
108837func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
108838	if c.header_ == nil {
108839		c.header_ = make(http.Header)
108840	}
108841	return c.header_
108842}
108843
108844func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
108845	reqHeaders := make(http.Header)
108846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
108847	for k, v := range c.header_ {
108848		reqHeaders[k] = v
108849	}
108850	reqHeaders.Set("User-Agent", c.s.userAgent())
108851	var body io.Reader = nil
108852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
108853	if err != nil {
108854		return nil, err
108855	}
108856	reqHeaders.Set("Content-Type", "application/json")
108857	c.urlParams_.Set("alt", alt)
108858	c.urlParams_.Set("prettyPrint", "false")
108859	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
108860	urls += "?" + c.urlParams_.Encode()
108861	req, err := http.NewRequest("POST", urls, body)
108862	if err != nil {
108863		return nil, err
108864	}
108865	req.Header = reqHeaders
108866	googleapi.Expand(req.URL, map[string]string{
108867		"project":  c.project,
108868		"region":   c.region,
108869		"resource": c.resource,
108870	})
108871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108872}
108873
108874// Do executes the "compute.nodeTemplates.testIamPermissions" call.
108875// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
108876// non-2xx status code is an error. Response headers are in either
108877// *TestPermissionsResponse.ServerResponse.Header or (if a response was
108878// returned at all) in error.(*googleapi.Error).Header. Use
108879// googleapi.IsNotModified to check whether the returned error was
108880// because http.StatusNotModified was returned.
108881func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
108882	gensupport.SetOptions(c.urlParams_, opts...)
108883	res, err := c.doRequest("json")
108884	if res != nil && res.StatusCode == http.StatusNotModified {
108885		if res.Body != nil {
108886			res.Body.Close()
108887		}
108888		return nil, &googleapi.Error{
108889			Code:   res.StatusCode,
108890			Header: res.Header,
108891		}
108892	}
108893	if err != nil {
108894		return nil, err
108895	}
108896	defer googleapi.CloseBody(res)
108897	if err := googleapi.CheckResponse(res); err != nil {
108898		return nil, err
108899	}
108900	ret := &TestPermissionsResponse{
108901		ServerResponse: googleapi.ServerResponse{
108902			Header:         res.Header,
108903			HTTPStatusCode: res.StatusCode,
108904		},
108905	}
108906	target := &ret
108907	if err := gensupport.DecodeResponse(target, res); err != nil {
108908		return nil, err
108909	}
108910	return ret, nil
108911	// {
108912	//   "description": "Returns permissions that a caller has on the specified resource.",
108913	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
108914	//   "httpMethod": "POST",
108915	//   "id": "compute.nodeTemplates.testIamPermissions",
108916	//   "parameterOrder": [
108917	//     "project",
108918	//     "region",
108919	//     "resource"
108920	//   ],
108921	//   "parameters": {
108922	//     "project": {
108923	//       "description": "Project ID for this request.",
108924	//       "location": "path",
108925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108926	//       "required": true,
108927	//       "type": "string"
108928	//     },
108929	//     "region": {
108930	//       "description": "The name of the region for this request.",
108931	//       "location": "path",
108932	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108933	//       "required": true,
108934	//       "type": "string"
108935	//     },
108936	//     "resource": {
108937	//       "description": "Name or id of the resource for this request.",
108938	//       "location": "path",
108939	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108940	//       "required": true,
108941	//       "type": "string"
108942	//     }
108943	//   },
108944	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
108945	//   "request": {
108946	//     "$ref": "TestPermissionsRequest"
108947	//   },
108948	//   "response": {
108949	//     "$ref": "TestPermissionsResponse"
108950	//   },
108951	//   "scopes": [
108952	//     "https://www.googleapis.com/auth/cloud-platform",
108953	//     "https://www.googleapis.com/auth/compute",
108954	//     "https://www.googleapis.com/auth/compute.readonly"
108955	//   ]
108956	// }
108957
108958}
108959
108960// method id "compute.nodeTypes.aggregatedList":
108961
108962type NodeTypesAggregatedListCall struct {
108963	s            *Service
108964	project      string
108965	urlParams_   gensupport.URLParams
108966	ifNoneMatch_ string
108967	ctx_         context.Context
108968	header_      http.Header
108969}
108970
108971// AggregatedList: Retrieves an aggregated list of node types.
108972//
108973// - project: Project ID for this request.
108974func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
108975	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108976	c.project = project
108977	return c
108978}
108979
108980// Filter sets the optional parameter "filter": A filter expression that
108981// filters resources listed in the response. The expression must specify
108982// the field name, a comparison operator, and the value that you want to
108983// use for filtering. The value must be a string, a number, or a
108984// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108985// `<`. For example, if you are filtering Compute Engine instances, you
108986// can exclude instances named `example-instance` by specifying `name !=
108987// example-instance`. You can also filter nested fields. For example,
108988// you could specify `scheduling.automaticRestart = false` to include
108989// instances only if they are not scheduled for automatic restarts. You
108990// can use filtering on nested fields to filter based on resource
108991// labels. To filter on multiple expressions, provide each separate
108992// expression within parentheses. For example: ```
108993// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
108994// ``` By default, each expression is an `AND` expression. However, you
108995// can include `AND` and `OR` expressions explicitly. For example: ```
108996// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
108997// AND (scheduling.automaticRestart = true) ```
108998func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
108999	c.urlParams_.Set("filter", filter)
109000	return c
109001}
109002
109003// IncludeAllScopes sets the optional parameter "includeAllScopes":
109004// Indicates whether every visible scope for each scope type (zone,
109005// region, global) should be included in the response. For new resource
109006// types added after this field, the flag has no effect as new resource
109007// types will always include every visible scope for each scope type in
109008// response. For resource types which predate this field, if this flag
109009// is omitted or false, only scopes of the scope types where the
109010// resource type is expected to be found will be included.
109011func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
109012	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
109013	return c
109014}
109015
109016// MaxResults sets the optional parameter "maxResults": The maximum
109017// number of results per page that should be returned. If the number of
109018// available results is larger than `maxResults`, Compute Engine returns
109019// a `nextPageToken` that can be used to get the next page of results in
109020// subsequent list requests. Acceptable values are `0` to `500`,
109021// inclusive. (Default: `500`)
109022func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
109023	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109024	return c
109025}
109026
109027// OrderBy sets the optional parameter "orderBy": Sorts list results by
109028// a certain order. By default, results are returned in alphanumerical
109029// order based on the resource name. You can also sort results in
109030// descending order based on the creation timestamp using
109031// `orderBy="creationTimestamp desc". This sorts results based on the
109032// `creationTimestamp` field in reverse chronological order (newest
109033// result first). Use this to sort resources like operations so that the
109034// newest operation is returned first. Currently, only sorting by `name`
109035// or `creationTimestamp desc` is supported.
109036func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
109037	c.urlParams_.Set("orderBy", orderBy)
109038	return c
109039}
109040
109041// PageToken sets the optional parameter "pageToken": Specifies a page
109042// token to use. Set `pageToken` to the `nextPageToken` returned by a
109043// previous list request to get the next page of results.
109044func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
109045	c.urlParams_.Set("pageToken", pageToken)
109046	return c
109047}
109048
109049// ReturnPartialSuccess sets the optional parameter
109050// "returnPartialSuccess": Opt-in for partial success behavior which
109051// provides partial results in case of failure. The default value is
109052// false.
109053func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
109054	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109055	return c
109056}
109057
109058// Fields allows partial responses to be retrieved. See
109059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109060// for more information.
109061func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
109062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109063	return c
109064}
109065
109066// IfNoneMatch sets the optional parameter which makes the operation
109067// fail if the object's ETag matches the given value. This is useful for
109068// getting updates only after the object has changed since the last
109069// request. Use googleapi.IsNotModified to check whether the response
109070// error from Do is the result of In-None-Match.
109071func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
109072	c.ifNoneMatch_ = entityTag
109073	return c
109074}
109075
109076// Context sets the context to be used in this call's Do method. Any
109077// pending HTTP request will be aborted if the provided context is
109078// canceled.
109079func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
109080	c.ctx_ = ctx
109081	return c
109082}
109083
109084// Header returns an http.Header that can be modified by the caller to
109085// add HTTP headers to the request.
109086func (c *NodeTypesAggregatedListCall) Header() http.Header {
109087	if c.header_ == nil {
109088		c.header_ = make(http.Header)
109089	}
109090	return c.header_
109091}
109092
109093func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
109094	reqHeaders := make(http.Header)
109095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
109096	for k, v := range c.header_ {
109097		reqHeaders[k] = v
109098	}
109099	reqHeaders.Set("User-Agent", c.s.userAgent())
109100	if c.ifNoneMatch_ != "" {
109101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109102	}
109103	var body io.Reader = nil
109104	c.urlParams_.Set("alt", alt)
109105	c.urlParams_.Set("prettyPrint", "false")
109106	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes")
109107	urls += "?" + c.urlParams_.Encode()
109108	req, err := http.NewRequest("GET", urls, body)
109109	if err != nil {
109110		return nil, err
109111	}
109112	req.Header = reqHeaders
109113	googleapi.Expand(req.URL, map[string]string{
109114		"project": c.project,
109115	})
109116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109117}
109118
109119// Do executes the "compute.nodeTypes.aggregatedList" call.
109120// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
109121// non-2xx status code is an error. Response headers are in either
109122// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
109123// returned at all) in error.(*googleapi.Error).Header. Use
109124// googleapi.IsNotModified to check whether the returned error was
109125// because http.StatusNotModified was returned.
109126func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
109127	gensupport.SetOptions(c.urlParams_, opts...)
109128	res, err := c.doRequest("json")
109129	if res != nil && res.StatusCode == http.StatusNotModified {
109130		if res.Body != nil {
109131			res.Body.Close()
109132		}
109133		return nil, &googleapi.Error{
109134			Code:   res.StatusCode,
109135			Header: res.Header,
109136		}
109137	}
109138	if err != nil {
109139		return nil, err
109140	}
109141	defer googleapi.CloseBody(res)
109142	if err := googleapi.CheckResponse(res); err != nil {
109143		return nil, err
109144	}
109145	ret := &NodeTypeAggregatedList{
109146		ServerResponse: googleapi.ServerResponse{
109147			Header:         res.Header,
109148			HTTPStatusCode: res.StatusCode,
109149		},
109150	}
109151	target := &ret
109152	if err := gensupport.DecodeResponse(target, res); err != nil {
109153		return nil, err
109154	}
109155	return ret, nil
109156	// {
109157	//   "description": "Retrieves an aggregated list of node types.",
109158	//   "flatPath": "projects/{project}/aggregated/nodeTypes",
109159	//   "httpMethod": "GET",
109160	//   "id": "compute.nodeTypes.aggregatedList",
109161	//   "parameterOrder": [
109162	//     "project"
109163	//   ],
109164	//   "parameters": {
109165	//     "filter": {
109166	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109167	//       "location": "query",
109168	//       "type": "string"
109169	//     },
109170	//     "includeAllScopes": {
109171	//       "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.",
109172	//       "location": "query",
109173	//       "type": "boolean"
109174	//     },
109175	//     "maxResults": {
109176	//       "default": "500",
109177	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109178	//       "format": "uint32",
109179	//       "location": "query",
109180	//       "minimum": "0",
109181	//       "type": "integer"
109182	//     },
109183	//     "orderBy": {
109184	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
109185	//       "location": "query",
109186	//       "type": "string"
109187	//     },
109188	//     "pageToken": {
109189	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109190	//       "location": "query",
109191	//       "type": "string"
109192	//     },
109193	//     "project": {
109194	//       "description": "Project ID for this request.",
109195	//       "location": "path",
109196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109197	//       "required": true,
109198	//       "type": "string"
109199	//     },
109200	//     "returnPartialSuccess": {
109201	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109202	//       "location": "query",
109203	//       "type": "boolean"
109204	//     }
109205	//   },
109206	//   "path": "projects/{project}/aggregated/nodeTypes",
109207	//   "response": {
109208	//     "$ref": "NodeTypeAggregatedList"
109209	//   },
109210	//   "scopes": [
109211	//     "https://www.googleapis.com/auth/cloud-platform",
109212	//     "https://www.googleapis.com/auth/compute",
109213	//     "https://www.googleapis.com/auth/compute.readonly"
109214	//   ]
109215	// }
109216
109217}
109218
109219// Pages invokes f for each page of results.
109220// A non-nil error returned from f will halt the iteration.
109221// The provided context supersedes any context provided to the Context method.
109222func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
109223	c.ctx_ = ctx
109224	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109225	for {
109226		x, err := c.Do()
109227		if err != nil {
109228			return err
109229		}
109230		if err := f(x); err != nil {
109231			return err
109232		}
109233		if x.NextPageToken == "" {
109234			return nil
109235		}
109236		c.PageToken(x.NextPageToken)
109237	}
109238}
109239
109240// method id "compute.nodeTypes.get":
109241
109242type NodeTypesGetCall struct {
109243	s            *Service
109244	project      string
109245	zone         string
109246	nodeType     string
109247	urlParams_   gensupport.URLParams
109248	ifNoneMatch_ string
109249	ctx_         context.Context
109250	header_      http.Header
109251}
109252
109253// Get: Returns the specified node type. Gets a list of available node
109254// types by making a list() request.
109255//
109256// - nodeType: Name of the node type to return.
109257// - project: Project ID for this request.
109258// - zone: The name of the zone for this request.
109259func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
109260	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109261	c.project = project
109262	c.zone = zone
109263	c.nodeType = nodeType
109264	return c
109265}
109266
109267// Fields allows partial responses to be retrieved. See
109268// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109269// for more information.
109270func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
109271	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109272	return c
109273}
109274
109275// IfNoneMatch sets the optional parameter which makes the operation
109276// fail if the object's ETag matches the given value. This is useful for
109277// getting updates only after the object has changed since the last
109278// request. Use googleapi.IsNotModified to check whether the response
109279// error from Do is the result of In-None-Match.
109280func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
109281	c.ifNoneMatch_ = entityTag
109282	return c
109283}
109284
109285// Context sets the context to be used in this call's Do method. Any
109286// pending HTTP request will be aborted if the provided context is
109287// canceled.
109288func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
109289	c.ctx_ = ctx
109290	return c
109291}
109292
109293// Header returns an http.Header that can be modified by the caller to
109294// add HTTP headers to the request.
109295func (c *NodeTypesGetCall) Header() http.Header {
109296	if c.header_ == nil {
109297		c.header_ = make(http.Header)
109298	}
109299	return c.header_
109300}
109301
109302func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
109303	reqHeaders := make(http.Header)
109304	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
109305	for k, v := range c.header_ {
109306		reqHeaders[k] = v
109307	}
109308	reqHeaders.Set("User-Agent", c.s.userAgent())
109309	if c.ifNoneMatch_ != "" {
109310		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109311	}
109312	var body io.Reader = nil
109313	c.urlParams_.Set("alt", alt)
109314	c.urlParams_.Set("prettyPrint", "false")
109315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}")
109316	urls += "?" + c.urlParams_.Encode()
109317	req, err := http.NewRequest("GET", urls, body)
109318	if err != nil {
109319		return nil, err
109320	}
109321	req.Header = reqHeaders
109322	googleapi.Expand(req.URL, map[string]string{
109323		"project":  c.project,
109324		"zone":     c.zone,
109325		"nodeType": c.nodeType,
109326	})
109327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109328}
109329
109330// Do executes the "compute.nodeTypes.get" call.
109331// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
109332// code is an error. Response headers are in either
109333// *NodeType.ServerResponse.Header or (if a response was returned at
109334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109335// to check whether the returned error was because
109336// http.StatusNotModified was returned.
109337func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
109338	gensupport.SetOptions(c.urlParams_, opts...)
109339	res, err := c.doRequest("json")
109340	if res != nil && res.StatusCode == http.StatusNotModified {
109341		if res.Body != nil {
109342			res.Body.Close()
109343		}
109344		return nil, &googleapi.Error{
109345			Code:   res.StatusCode,
109346			Header: res.Header,
109347		}
109348	}
109349	if err != nil {
109350		return nil, err
109351	}
109352	defer googleapi.CloseBody(res)
109353	if err := googleapi.CheckResponse(res); err != nil {
109354		return nil, err
109355	}
109356	ret := &NodeType{
109357		ServerResponse: googleapi.ServerResponse{
109358			Header:         res.Header,
109359			HTTPStatusCode: res.StatusCode,
109360		},
109361	}
109362	target := &ret
109363	if err := gensupport.DecodeResponse(target, res); err != nil {
109364		return nil, err
109365	}
109366	return ret, nil
109367	// {
109368	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
109369	//   "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
109370	//   "httpMethod": "GET",
109371	//   "id": "compute.nodeTypes.get",
109372	//   "parameterOrder": [
109373	//     "project",
109374	//     "zone",
109375	//     "nodeType"
109376	//   ],
109377	//   "parameters": {
109378	//     "nodeType": {
109379	//       "description": "Name of the node type to return.",
109380	//       "location": "path",
109381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109382	//       "required": true,
109383	//       "type": "string"
109384	//     },
109385	//     "project": {
109386	//       "description": "Project ID for this request.",
109387	//       "location": "path",
109388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109389	//       "required": true,
109390	//       "type": "string"
109391	//     },
109392	//     "zone": {
109393	//       "description": "The name of the zone for this request.",
109394	//       "location": "path",
109395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109396	//       "required": true,
109397	//       "type": "string"
109398	//     }
109399	//   },
109400	//   "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
109401	//   "response": {
109402	//     "$ref": "NodeType"
109403	//   },
109404	//   "scopes": [
109405	//     "https://www.googleapis.com/auth/cloud-platform",
109406	//     "https://www.googleapis.com/auth/compute",
109407	//     "https://www.googleapis.com/auth/compute.readonly"
109408	//   ]
109409	// }
109410
109411}
109412
109413// method id "compute.nodeTypes.list":
109414
109415type NodeTypesListCall struct {
109416	s            *Service
109417	project      string
109418	zone         string
109419	urlParams_   gensupport.URLParams
109420	ifNoneMatch_ string
109421	ctx_         context.Context
109422	header_      http.Header
109423}
109424
109425// List: Retrieves a list of node types available to the specified
109426// project.
109427//
109428// - project: Project ID for this request.
109429// - zone: The name of the zone for this request.
109430func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
109431	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109432	c.project = project
109433	c.zone = zone
109434	return c
109435}
109436
109437// Filter sets the optional parameter "filter": A filter expression that
109438// filters resources listed in the response. The expression must specify
109439// the field name, a comparison operator, and the value that you want to
109440// use for filtering. The value must be a string, a number, or a
109441// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109442// `<`. For example, if you are filtering Compute Engine instances, you
109443// can exclude instances named `example-instance` by specifying `name !=
109444// example-instance`. You can also filter nested fields. For example,
109445// you could specify `scheduling.automaticRestart = false` to include
109446// instances only if they are not scheduled for automatic restarts. You
109447// can use filtering on nested fields to filter based on resource
109448// labels. To filter on multiple expressions, provide each separate
109449// expression within parentheses. For example: ```
109450// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
109451// ``` By default, each expression is an `AND` expression. However, you
109452// can include `AND` and `OR` expressions explicitly. For example: ```
109453// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
109454// AND (scheduling.automaticRestart = true) ```
109455func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
109456	c.urlParams_.Set("filter", filter)
109457	return c
109458}
109459
109460// MaxResults sets the optional parameter "maxResults": The maximum
109461// number of results per page that should be returned. If the number of
109462// available results is larger than `maxResults`, Compute Engine returns
109463// a `nextPageToken` that can be used to get the next page of results in
109464// subsequent list requests. Acceptable values are `0` to `500`,
109465// inclusive. (Default: `500`)
109466func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
109467	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109468	return c
109469}
109470
109471// OrderBy sets the optional parameter "orderBy": Sorts list results by
109472// a certain order. By default, results are returned in alphanumerical
109473// order based on the resource name. You can also sort results in
109474// descending order based on the creation timestamp using
109475// `orderBy="creationTimestamp desc". This sorts results based on the
109476// `creationTimestamp` field in reverse chronological order (newest
109477// result first). Use this to sort resources like operations so that the
109478// newest operation is returned first. Currently, only sorting by `name`
109479// or `creationTimestamp desc` is supported.
109480func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
109481	c.urlParams_.Set("orderBy", orderBy)
109482	return c
109483}
109484
109485// PageToken sets the optional parameter "pageToken": Specifies a page
109486// token to use. Set `pageToken` to the `nextPageToken` returned by a
109487// previous list request to get the next page of results.
109488func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
109489	c.urlParams_.Set("pageToken", pageToken)
109490	return c
109491}
109492
109493// ReturnPartialSuccess sets the optional parameter
109494// "returnPartialSuccess": Opt-in for partial success behavior which
109495// provides partial results in case of failure. The default value is
109496// false.
109497func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
109498	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109499	return c
109500}
109501
109502// Fields allows partial responses to be retrieved. See
109503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109504// for more information.
109505func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
109506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109507	return c
109508}
109509
109510// IfNoneMatch sets the optional parameter which makes the operation
109511// fail if the object's ETag matches the given value. This is useful for
109512// getting updates only after the object has changed since the last
109513// request. Use googleapi.IsNotModified to check whether the response
109514// error from Do is the result of In-None-Match.
109515func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
109516	c.ifNoneMatch_ = entityTag
109517	return c
109518}
109519
109520// Context sets the context to be used in this call's Do method. Any
109521// pending HTTP request will be aborted if the provided context is
109522// canceled.
109523func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
109524	c.ctx_ = ctx
109525	return c
109526}
109527
109528// Header returns an http.Header that can be modified by the caller to
109529// add HTTP headers to the request.
109530func (c *NodeTypesListCall) Header() http.Header {
109531	if c.header_ == nil {
109532		c.header_ = make(http.Header)
109533	}
109534	return c.header_
109535}
109536
109537func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
109538	reqHeaders := make(http.Header)
109539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
109540	for k, v := range c.header_ {
109541		reqHeaders[k] = v
109542	}
109543	reqHeaders.Set("User-Agent", c.s.userAgent())
109544	if c.ifNoneMatch_ != "" {
109545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109546	}
109547	var body io.Reader = nil
109548	c.urlParams_.Set("alt", alt)
109549	c.urlParams_.Set("prettyPrint", "false")
109550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes")
109551	urls += "?" + c.urlParams_.Encode()
109552	req, err := http.NewRequest("GET", urls, body)
109553	if err != nil {
109554		return nil, err
109555	}
109556	req.Header = reqHeaders
109557	googleapi.Expand(req.URL, map[string]string{
109558		"project": c.project,
109559		"zone":    c.zone,
109560	})
109561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109562}
109563
109564// Do executes the "compute.nodeTypes.list" call.
109565// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
109566// status code is an error. Response headers are in either
109567// *NodeTypeList.ServerResponse.Header or (if a response was returned at
109568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109569// to check whether the returned error was because
109570// http.StatusNotModified was returned.
109571func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
109572	gensupport.SetOptions(c.urlParams_, opts...)
109573	res, err := c.doRequest("json")
109574	if res != nil && res.StatusCode == http.StatusNotModified {
109575		if res.Body != nil {
109576			res.Body.Close()
109577		}
109578		return nil, &googleapi.Error{
109579			Code:   res.StatusCode,
109580			Header: res.Header,
109581		}
109582	}
109583	if err != nil {
109584		return nil, err
109585	}
109586	defer googleapi.CloseBody(res)
109587	if err := googleapi.CheckResponse(res); err != nil {
109588		return nil, err
109589	}
109590	ret := &NodeTypeList{
109591		ServerResponse: googleapi.ServerResponse{
109592			Header:         res.Header,
109593			HTTPStatusCode: res.StatusCode,
109594		},
109595	}
109596	target := &ret
109597	if err := gensupport.DecodeResponse(target, res); err != nil {
109598		return nil, err
109599	}
109600	return ret, nil
109601	// {
109602	//   "description": "Retrieves a list of node types available to the specified project.",
109603	//   "flatPath": "projects/{project}/zones/{zone}/nodeTypes",
109604	//   "httpMethod": "GET",
109605	//   "id": "compute.nodeTypes.list",
109606	//   "parameterOrder": [
109607	//     "project",
109608	//     "zone"
109609	//   ],
109610	//   "parameters": {
109611	//     "filter": {
109612	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109613	//       "location": "query",
109614	//       "type": "string"
109615	//     },
109616	//     "maxResults": {
109617	//       "default": "500",
109618	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109619	//       "format": "uint32",
109620	//       "location": "query",
109621	//       "minimum": "0",
109622	//       "type": "integer"
109623	//     },
109624	//     "orderBy": {
109625	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
109626	//       "location": "query",
109627	//       "type": "string"
109628	//     },
109629	//     "pageToken": {
109630	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109631	//       "location": "query",
109632	//       "type": "string"
109633	//     },
109634	//     "project": {
109635	//       "description": "Project ID for this request.",
109636	//       "location": "path",
109637	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109638	//       "required": true,
109639	//       "type": "string"
109640	//     },
109641	//     "returnPartialSuccess": {
109642	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109643	//       "location": "query",
109644	//       "type": "boolean"
109645	//     },
109646	//     "zone": {
109647	//       "description": "The name of the zone for this request.",
109648	//       "location": "path",
109649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109650	//       "required": true,
109651	//       "type": "string"
109652	//     }
109653	//   },
109654	//   "path": "projects/{project}/zones/{zone}/nodeTypes",
109655	//   "response": {
109656	//     "$ref": "NodeTypeList"
109657	//   },
109658	//   "scopes": [
109659	//     "https://www.googleapis.com/auth/cloud-platform",
109660	//     "https://www.googleapis.com/auth/compute",
109661	//     "https://www.googleapis.com/auth/compute.readonly"
109662	//   ]
109663	// }
109664
109665}
109666
109667// Pages invokes f for each page of results.
109668// A non-nil error returned from f will halt the iteration.
109669// The provided context supersedes any context provided to the Context method.
109670func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
109671	c.ctx_ = ctx
109672	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109673	for {
109674		x, err := c.Do()
109675		if err != nil {
109676			return err
109677		}
109678		if err := f(x); err != nil {
109679			return err
109680		}
109681		if x.NextPageToken == "" {
109682			return nil
109683		}
109684		c.PageToken(x.NextPageToken)
109685	}
109686}
109687
109688// method id "compute.packetMirrorings.aggregatedList":
109689
109690type PacketMirroringsAggregatedListCall struct {
109691	s            *Service
109692	project      string
109693	urlParams_   gensupport.URLParams
109694	ifNoneMatch_ string
109695	ctx_         context.Context
109696	header_      http.Header
109697}
109698
109699// AggregatedList: Retrieves an aggregated list of packetMirrorings.
109700//
109701// - project: Project ID for this request.
109702func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
109703	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109704	c.project = project
109705	return c
109706}
109707
109708// Filter sets the optional parameter "filter": A filter expression that
109709// filters resources listed in the response. The expression must specify
109710// the field name, a comparison operator, and the value that you want to
109711// use for filtering. The value must be a string, a number, or a
109712// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109713// `<`. For example, if you are filtering Compute Engine instances, you
109714// can exclude instances named `example-instance` by specifying `name !=
109715// example-instance`. You can also filter nested fields. For example,
109716// you could specify `scheduling.automaticRestart = false` to include
109717// instances only if they are not scheduled for automatic restarts. You
109718// can use filtering on nested fields to filter based on resource
109719// labels. To filter on multiple expressions, provide each separate
109720// expression within parentheses. For example: ```
109721// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
109722// ``` By default, each expression is an `AND` expression. However, you
109723// can include `AND` and `OR` expressions explicitly. For example: ```
109724// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
109725// AND (scheduling.automaticRestart = true) ```
109726func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
109727	c.urlParams_.Set("filter", filter)
109728	return c
109729}
109730
109731// IncludeAllScopes sets the optional parameter "includeAllScopes":
109732// Indicates whether every visible scope for each scope type (zone,
109733// region, global) should be included in the response. For new resource
109734// types added after this field, the flag has no effect as new resource
109735// types will always include every visible scope for each scope type in
109736// response. For resource types which predate this field, if this flag
109737// is omitted or false, only scopes of the scope types where the
109738// resource type is expected to be found will be included.
109739func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
109740	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
109741	return c
109742}
109743
109744// MaxResults sets the optional parameter "maxResults": The maximum
109745// number of results per page that should be returned. If the number of
109746// available results is larger than `maxResults`, Compute Engine returns
109747// a `nextPageToken` that can be used to get the next page of results in
109748// subsequent list requests. Acceptable values are `0` to `500`,
109749// inclusive. (Default: `500`)
109750func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
109751	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109752	return c
109753}
109754
109755// OrderBy sets the optional parameter "orderBy": Sorts list results by
109756// a certain order. By default, results are returned in alphanumerical
109757// order based on the resource name. You can also sort results in
109758// descending order based on the creation timestamp using
109759// `orderBy="creationTimestamp desc". This sorts results based on the
109760// `creationTimestamp` field in reverse chronological order (newest
109761// result first). Use this to sort resources like operations so that the
109762// newest operation is returned first. Currently, only sorting by `name`
109763// or `creationTimestamp desc` is supported.
109764func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
109765	c.urlParams_.Set("orderBy", orderBy)
109766	return c
109767}
109768
109769// PageToken sets the optional parameter "pageToken": Specifies a page
109770// token to use. Set `pageToken` to the `nextPageToken` returned by a
109771// previous list request to get the next page of results.
109772func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
109773	c.urlParams_.Set("pageToken", pageToken)
109774	return c
109775}
109776
109777// ReturnPartialSuccess sets the optional parameter
109778// "returnPartialSuccess": Opt-in for partial success behavior which
109779// provides partial results in case of failure. The default value is
109780// false.
109781func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
109782	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109783	return c
109784}
109785
109786// Fields allows partial responses to be retrieved. See
109787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109788// for more information.
109789func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
109790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109791	return c
109792}
109793
109794// IfNoneMatch sets the optional parameter which makes the operation
109795// fail if the object's ETag matches the given value. This is useful for
109796// getting updates only after the object has changed since the last
109797// request. Use googleapi.IsNotModified to check whether the response
109798// error from Do is the result of In-None-Match.
109799func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
109800	c.ifNoneMatch_ = entityTag
109801	return c
109802}
109803
109804// Context sets the context to be used in this call's Do method. Any
109805// pending HTTP request will be aborted if the provided context is
109806// canceled.
109807func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
109808	c.ctx_ = ctx
109809	return c
109810}
109811
109812// Header returns an http.Header that can be modified by the caller to
109813// add HTTP headers to the request.
109814func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
109815	if c.header_ == nil {
109816		c.header_ = make(http.Header)
109817	}
109818	return c.header_
109819}
109820
109821func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
109822	reqHeaders := make(http.Header)
109823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
109824	for k, v := range c.header_ {
109825		reqHeaders[k] = v
109826	}
109827	reqHeaders.Set("User-Agent", c.s.userAgent())
109828	if c.ifNoneMatch_ != "" {
109829		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109830	}
109831	var body io.Reader = nil
109832	c.urlParams_.Set("alt", alt)
109833	c.urlParams_.Set("prettyPrint", "false")
109834	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings")
109835	urls += "?" + c.urlParams_.Encode()
109836	req, err := http.NewRequest("GET", urls, body)
109837	if err != nil {
109838		return nil, err
109839	}
109840	req.Header = reqHeaders
109841	googleapi.Expand(req.URL, map[string]string{
109842		"project": c.project,
109843	})
109844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109845}
109846
109847// Do executes the "compute.packetMirrorings.aggregatedList" call.
109848// Exactly one of *PacketMirroringAggregatedList or error will be
109849// non-nil. Any non-2xx status code is an error. Response headers are in
109850// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
109851// response was returned at all) in error.(*googleapi.Error).Header. Use
109852// googleapi.IsNotModified to check whether the returned error was
109853// because http.StatusNotModified was returned.
109854func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
109855	gensupport.SetOptions(c.urlParams_, opts...)
109856	res, err := c.doRequest("json")
109857	if res != nil && res.StatusCode == http.StatusNotModified {
109858		if res.Body != nil {
109859			res.Body.Close()
109860		}
109861		return nil, &googleapi.Error{
109862			Code:   res.StatusCode,
109863			Header: res.Header,
109864		}
109865	}
109866	if err != nil {
109867		return nil, err
109868	}
109869	defer googleapi.CloseBody(res)
109870	if err := googleapi.CheckResponse(res); err != nil {
109871		return nil, err
109872	}
109873	ret := &PacketMirroringAggregatedList{
109874		ServerResponse: googleapi.ServerResponse{
109875			Header:         res.Header,
109876			HTTPStatusCode: res.StatusCode,
109877		},
109878	}
109879	target := &ret
109880	if err := gensupport.DecodeResponse(target, res); err != nil {
109881		return nil, err
109882	}
109883	return ret, nil
109884	// {
109885	//   "description": "Retrieves an aggregated list of packetMirrorings.",
109886	//   "flatPath": "projects/{project}/aggregated/packetMirrorings",
109887	//   "httpMethod": "GET",
109888	//   "id": "compute.packetMirrorings.aggregatedList",
109889	//   "parameterOrder": [
109890	//     "project"
109891	//   ],
109892	//   "parameters": {
109893	//     "filter": {
109894	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109895	//       "location": "query",
109896	//       "type": "string"
109897	//     },
109898	//     "includeAllScopes": {
109899	//       "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.",
109900	//       "location": "query",
109901	//       "type": "boolean"
109902	//     },
109903	//     "maxResults": {
109904	//       "default": "500",
109905	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109906	//       "format": "uint32",
109907	//       "location": "query",
109908	//       "minimum": "0",
109909	//       "type": "integer"
109910	//     },
109911	//     "orderBy": {
109912	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
109913	//       "location": "query",
109914	//       "type": "string"
109915	//     },
109916	//     "pageToken": {
109917	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109918	//       "location": "query",
109919	//       "type": "string"
109920	//     },
109921	//     "project": {
109922	//       "description": "Project ID for this request.",
109923	//       "location": "path",
109924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109925	//       "required": true,
109926	//       "type": "string"
109927	//     },
109928	//     "returnPartialSuccess": {
109929	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109930	//       "location": "query",
109931	//       "type": "boolean"
109932	//     }
109933	//   },
109934	//   "path": "projects/{project}/aggregated/packetMirrorings",
109935	//   "response": {
109936	//     "$ref": "PacketMirroringAggregatedList"
109937	//   },
109938	//   "scopes": [
109939	//     "https://www.googleapis.com/auth/cloud-platform",
109940	//     "https://www.googleapis.com/auth/compute",
109941	//     "https://www.googleapis.com/auth/compute.readonly"
109942	//   ]
109943	// }
109944
109945}
109946
109947// Pages invokes f for each page of results.
109948// A non-nil error returned from f will halt the iteration.
109949// The provided context supersedes any context provided to the Context method.
109950func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
109951	c.ctx_ = ctx
109952	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109953	for {
109954		x, err := c.Do()
109955		if err != nil {
109956			return err
109957		}
109958		if err := f(x); err != nil {
109959			return err
109960		}
109961		if x.NextPageToken == "" {
109962			return nil
109963		}
109964		c.PageToken(x.NextPageToken)
109965	}
109966}
109967
109968// method id "compute.packetMirrorings.delete":
109969
109970type PacketMirroringsDeleteCall struct {
109971	s               *Service
109972	project         string
109973	region          string
109974	packetMirroring string
109975	urlParams_      gensupport.URLParams
109976	ctx_            context.Context
109977	header_         http.Header
109978}
109979
109980// Delete: Deletes the specified PacketMirroring resource.
109981//
109982// - packetMirroring: Name of the PacketMirroring resource to delete.
109983// - project: Project ID for this request.
109984// - region: Name of the region for this request.
109985func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
109986	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109987	c.project = project
109988	c.region = region
109989	c.packetMirroring = packetMirroring
109990	return c
109991}
109992
109993// RequestId sets the optional parameter "requestId": An optional
109994// request ID to identify requests. Specify a unique request ID so that
109995// if you must retry your request, the server will know to ignore the
109996// request if it has already been completed. For example, consider a
109997// situation where you make an initial request and the request times
109998// out. If you make the request again with the same request ID, the
109999// server can check if original operation with the same request ID was
110000// received, and if so, will ignore the second request. This prevents
110001// clients from accidentally creating duplicate commitments. The request
110002// ID must be a valid UUID with the exception that zero UUID is not
110003// supported ( 00000000-0000-0000-0000-000000000000).
110004func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
110005	c.urlParams_.Set("requestId", requestId)
110006	return c
110007}
110008
110009// Fields allows partial responses to be retrieved. See
110010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110011// for more information.
110012func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
110013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110014	return c
110015}
110016
110017// Context sets the context to be used in this call's Do method. Any
110018// pending HTTP request will be aborted if the provided context is
110019// canceled.
110020func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
110021	c.ctx_ = ctx
110022	return c
110023}
110024
110025// Header returns an http.Header that can be modified by the caller to
110026// add HTTP headers to the request.
110027func (c *PacketMirroringsDeleteCall) Header() http.Header {
110028	if c.header_ == nil {
110029		c.header_ = make(http.Header)
110030	}
110031	return c.header_
110032}
110033
110034func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
110035	reqHeaders := make(http.Header)
110036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
110037	for k, v := range c.header_ {
110038		reqHeaders[k] = v
110039	}
110040	reqHeaders.Set("User-Agent", c.s.userAgent())
110041	var body io.Reader = nil
110042	c.urlParams_.Set("alt", alt)
110043	c.urlParams_.Set("prettyPrint", "false")
110044	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
110045	urls += "?" + c.urlParams_.Encode()
110046	req, err := http.NewRequest("DELETE", urls, body)
110047	if err != nil {
110048		return nil, err
110049	}
110050	req.Header = reqHeaders
110051	googleapi.Expand(req.URL, map[string]string{
110052		"project":         c.project,
110053		"region":          c.region,
110054		"packetMirroring": c.packetMirroring,
110055	})
110056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110057}
110058
110059// Do executes the "compute.packetMirrorings.delete" call.
110060// Exactly one of *Operation or error will be non-nil. Any non-2xx
110061// status code is an error. Response headers are in either
110062// *Operation.ServerResponse.Header or (if a response was returned at
110063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110064// to check whether the returned error was because
110065// http.StatusNotModified was returned.
110066func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110067	gensupport.SetOptions(c.urlParams_, opts...)
110068	res, err := c.doRequest("json")
110069	if res != nil && res.StatusCode == http.StatusNotModified {
110070		if res.Body != nil {
110071			res.Body.Close()
110072		}
110073		return nil, &googleapi.Error{
110074			Code:   res.StatusCode,
110075			Header: res.Header,
110076		}
110077	}
110078	if err != nil {
110079		return nil, err
110080	}
110081	defer googleapi.CloseBody(res)
110082	if err := googleapi.CheckResponse(res); err != nil {
110083		return nil, err
110084	}
110085	ret := &Operation{
110086		ServerResponse: googleapi.ServerResponse{
110087			Header:         res.Header,
110088			HTTPStatusCode: res.StatusCode,
110089		},
110090	}
110091	target := &ret
110092	if err := gensupport.DecodeResponse(target, res); err != nil {
110093		return nil, err
110094	}
110095	return ret, nil
110096	// {
110097	//   "description": "Deletes the specified PacketMirroring resource.",
110098	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110099	//   "httpMethod": "DELETE",
110100	//   "id": "compute.packetMirrorings.delete",
110101	//   "parameterOrder": [
110102	//     "project",
110103	//     "region",
110104	//     "packetMirroring"
110105	//   ],
110106	//   "parameters": {
110107	//     "packetMirroring": {
110108	//       "description": "Name of the PacketMirroring resource to delete.",
110109	//       "location": "path",
110110	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110111	//       "required": true,
110112	//       "type": "string"
110113	//     },
110114	//     "project": {
110115	//       "description": "Project ID for this request.",
110116	//       "location": "path",
110117	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110118	//       "required": true,
110119	//       "type": "string"
110120	//     },
110121	//     "region": {
110122	//       "description": "Name of the region for this request.",
110123	//       "location": "path",
110124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110125	//       "required": true,
110126	//       "type": "string"
110127	//     },
110128	//     "requestId": {
110129	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
110130	//       "location": "query",
110131	//       "type": "string"
110132	//     }
110133	//   },
110134	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110135	//   "response": {
110136	//     "$ref": "Operation"
110137	//   },
110138	//   "scopes": [
110139	//     "https://www.googleapis.com/auth/cloud-platform",
110140	//     "https://www.googleapis.com/auth/compute"
110141	//   ]
110142	// }
110143
110144}
110145
110146// method id "compute.packetMirrorings.get":
110147
110148type PacketMirroringsGetCall struct {
110149	s               *Service
110150	project         string
110151	region          string
110152	packetMirroring string
110153	urlParams_      gensupport.URLParams
110154	ifNoneMatch_    string
110155	ctx_            context.Context
110156	header_         http.Header
110157}
110158
110159// Get: Returns the specified PacketMirroring resource.
110160//
110161// - packetMirroring: Name of the PacketMirroring resource to return.
110162// - project: Project ID for this request.
110163// - region: Name of the region for this request.
110164func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
110165	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110166	c.project = project
110167	c.region = region
110168	c.packetMirroring = packetMirroring
110169	return c
110170}
110171
110172// Fields allows partial responses to be retrieved. See
110173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110174// for more information.
110175func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
110176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110177	return c
110178}
110179
110180// IfNoneMatch sets the optional parameter which makes the operation
110181// fail if the object's ETag matches the given value. This is useful for
110182// getting updates only after the object has changed since the last
110183// request. Use googleapi.IsNotModified to check whether the response
110184// error from Do is the result of In-None-Match.
110185func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
110186	c.ifNoneMatch_ = entityTag
110187	return c
110188}
110189
110190// Context sets the context to be used in this call's Do method. Any
110191// pending HTTP request will be aborted if the provided context is
110192// canceled.
110193func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
110194	c.ctx_ = ctx
110195	return c
110196}
110197
110198// Header returns an http.Header that can be modified by the caller to
110199// add HTTP headers to the request.
110200func (c *PacketMirroringsGetCall) Header() http.Header {
110201	if c.header_ == nil {
110202		c.header_ = make(http.Header)
110203	}
110204	return c.header_
110205}
110206
110207func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
110208	reqHeaders := make(http.Header)
110209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
110210	for k, v := range c.header_ {
110211		reqHeaders[k] = v
110212	}
110213	reqHeaders.Set("User-Agent", c.s.userAgent())
110214	if c.ifNoneMatch_ != "" {
110215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110216	}
110217	var body io.Reader = nil
110218	c.urlParams_.Set("alt", alt)
110219	c.urlParams_.Set("prettyPrint", "false")
110220	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
110221	urls += "?" + c.urlParams_.Encode()
110222	req, err := http.NewRequest("GET", urls, body)
110223	if err != nil {
110224		return nil, err
110225	}
110226	req.Header = reqHeaders
110227	googleapi.Expand(req.URL, map[string]string{
110228		"project":         c.project,
110229		"region":          c.region,
110230		"packetMirroring": c.packetMirroring,
110231	})
110232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110233}
110234
110235// Do executes the "compute.packetMirrorings.get" call.
110236// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
110237// status code is an error. Response headers are in either
110238// *PacketMirroring.ServerResponse.Header or (if a response was returned
110239// at all) in error.(*googleapi.Error).Header. Use
110240// googleapi.IsNotModified to check whether the returned error was
110241// because http.StatusNotModified was returned.
110242func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
110243	gensupport.SetOptions(c.urlParams_, opts...)
110244	res, err := c.doRequest("json")
110245	if res != nil && res.StatusCode == http.StatusNotModified {
110246		if res.Body != nil {
110247			res.Body.Close()
110248		}
110249		return nil, &googleapi.Error{
110250			Code:   res.StatusCode,
110251			Header: res.Header,
110252		}
110253	}
110254	if err != nil {
110255		return nil, err
110256	}
110257	defer googleapi.CloseBody(res)
110258	if err := googleapi.CheckResponse(res); err != nil {
110259		return nil, err
110260	}
110261	ret := &PacketMirroring{
110262		ServerResponse: googleapi.ServerResponse{
110263			Header:         res.Header,
110264			HTTPStatusCode: res.StatusCode,
110265		},
110266	}
110267	target := &ret
110268	if err := gensupport.DecodeResponse(target, res); err != nil {
110269		return nil, err
110270	}
110271	return ret, nil
110272	// {
110273	//   "description": "Returns the specified PacketMirroring resource.",
110274	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110275	//   "httpMethod": "GET",
110276	//   "id": "compute.packetMirrorings.get",
110277	//   "parameterOrder": [
110278	//     "project",
110279	//     "region",
110280	//     "packetMirroring"
110281	//   ],
110282	//   "parameters": {
110283	//     "packetMirroring": {
110284	//       "description": "Name of the PacketMirroring resource to return.",
110285	//       "location": "path",
110286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110287	//       "required": true,
110288	//       "type": "string"
110289	//     },
110290	//     "project": {
110291	//       "description": "Project ID for this request.",
110292	//       "location": "path",
110293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110294	//       "required": true,
110295	//       "type": "string"
110296	//     },
110297	//     "region": {
110298	//       "description": "Name of the region for this request.",
110299	//       "location": "path",
110300	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110301	//       "required": true,
110302	//       "type": "string"
110303	//     }
110304	//   },
110305	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110306	//   "response": {
110307	//     "$ref": "PacketMirroring"
110308	//   },
110309	//   "scopes": [
110310	//     "https://www.googleapis.com/auth/cloud-platform",
110311	//     "https://www.googleapis.com/auth/compute",
110312	//     "https://www.googleapis.com/auth/compute.readonly"
110313	//   ]
110314	// }
110315
110316}
110317
110318// method id "compute.packetMirrorings.insert":
110319
110320type PacketMirroringsInsertCall struct {
110321	s               *Service
110322	project         string
110323	region          string
110324	packetmirroring *PacketMirroring
110325	urlParams_      gensupport.URLParams
110326	ctx_            context.Context
110327	header_         http.Header
110328}
110329
110330// Insert: Creates a PacketMirroring resource in the specified project
110331// and region using the data included in the request.
110332//
110333// - project: Project ID for this request.
110334// - region: Name of the region for this request.
110335func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
110336	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110337	c.project = project
110338	c.region = region
110339	c.packetmirroring = packetmirroring
110340	return c
110341}
110342
110343// RequestId sets the optional parameter "requestId": An optional
110344// request ID to identify requests. Specify a unique request ID so that
110345// if you must retry your request, the server will know to ignore the
110346// request if it has already been completed. For example, consider a
110347// situation where you make an initial request and the request times
110348// out. If you make the request again with the same request ID, the
110349// server can check if original operation with the same request ID was
110350// received, and if so, will ignore the second request. This prevents
110351// clients from accidentally creating duplicate commitments. The request
110352// ID must be a valid UUID with the exception that zero UUID is not
110353// supported ( 00000000-0000-0000-0000-000000000000).
110354func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
110355	c.urlParams_.Set("requestId", requestId)
110356	return c
110357}
110358
110359// Fields allows partial responses to be retrieved. See
110360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110361// for more information.
110362func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
110363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110364	return c
110365}
110366
110367// Context sets the context to be used in this call's Do method. Any
110368// pending HTTP request will be aborted if the provided context is
110369// canceled.
110370func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
110371	c.ctx_ = ctx
110372	return c
110373}
110374
110375// Header returns an http.Header that can be modified by the caller to
110376// add HTTP headers to the request.
110377func (c *PacketMirroringsInsertCall) Header() http.Header {
110378	if c.header_ == nil {
110379		c.header_ = make(http.Header)
110380	}
110381	return c.header_
110382}
110383
110384func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
110385	reqHeaders := make(http.Header)
110386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
110387	for k, v := range c.header_ {
110388		reqHeaders[k] = v
110389	}
110390	reqHeaders.Set("User-Agent", c.s.userAgent())
110391	var body io.Reader = nil
110392	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
110393	if err != nil {
110394		return nil, err
110395	}
110396	reqHeaders.Set("Content-Type", "application/json")
110397	c.urlParams_.Set("alt", alt)
110398	c.urlParams_.Set("prettyPrint", "false")
110399	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
110400	urls += "?" + c.urlParams_.Encode()
110401	req, err := http.NewRequest("POST", urls, body)
110402	if err != nil {
110403		return nil, err
110404	}
110405	req.Header = reqHeaders
110406	googleapi.Expand(req.URL, map[string]string{
110407		"project": c.project,
110408		"region":  c.region,
110409	})
110410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110411}
110412
110413// Do executes the "compute.packetMirrorings.insert" call.
110414// Exactly one of *Operation or error will be non-nil. Any non-2xx
110415// status code is an error. Response headers are in either
110416// *Operation.ServerResponse.Header or (if a response was returned at
110417// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110418// to check whether the returned error was because
110419// http.StatusNotModified was returned.
110420func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110421	gensupport.SetOptions(c.urlParams_, opts...)
110422	res, err := c.doRequest("json")
110423	if res != nil && res.StatusCode == http.StatusNotModified {
110424		if res.Body != nil {
110425			res.Body.Close()
110426		}
110427		return nil, &googleapi.Error{
110428			Code:   res.StatusCode,
110429			Header: res.Header,
110430		}
110431	}
110432	if err != nil {
110433		return nil, err
110434	}
110435	defer googleapi.CloseBody(res)
110436	if err := googleapi.CheckResponse(res); err != nil {
110437		return nil, err
110438	}
110439	ret := &Operation{
110440		ServerResponse: googleapi.ServerResponse{
110441			Header:         res.Header,
110442			HTTPStatusCode: res.StatusCode,
110443		},
110444	}
110445	target := &ret
110446	if err := gensupport.DecodeResponse(target, res); err != nil {
110447		return nil, err
110448	}
110449	return ret, nil
110450	// {
110451	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
110452	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
110453	//   "httpMethod": "POST",
110454	//   "id": "compute.packetMirrorings.insert",
110455	//   "parameterOrder": [
110456	//     "project",
110457	//     "region"
110458	//   ],
110459	//   "parameters": {
110460	//     "project": {
110461	//       "description": "Project ID for this request.",
110462	//       "location": "path",
110463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110464	//       "required": true,
110465	//       "type": "string"
110466	//     },
110467	//     "region": {
110468	//       "description": "Name of the region for this request.",
110469	//       "location": "path",
110470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110471	//       "required": true,
110472	//       "type": "string"
110473	//     },
110474	//     "requestId": {
110475	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
110476	//       "location": "query",
110477	//       "type": "string"
110478	//     }
110479	//   },
110480	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
110481	//   "request": {
110482	//     "$ref": "PacketMirroring"
110483	//   },
110484	//   "response": {
110485	//     "$ref": "Operation"
110486	//   },
110487	//   "scopes": [
110488	//     "https://www.googleapis.com/auth/cloud-platform",
110489	//     "https://www.googleapis.com/auth/compute"
110490	//   ]
110491	// }
110492
110493}
110494
110495// method id "compute.packetMirrorings.list":
110496
110497type PacketMirroringsListCall struct {
110498	s            *Service
110499	project      string
110500	region       string
110501	urlParams_   gensupport.URLParams
110502	ifNoneMatch_ string
110503	ctx_         context.Context
110504	header_      http.Header
110505}
110506
110507// List: Retrieves a list of PacketMirroring resources available to the
110508// specified project and region.
110509//
110510// - project: Project ID for this request.
110511// - region: Name of the region for this request.
110512func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
110513	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110514	c.project = project
110515	c.region = region
110516	return c
110517}
110518
110519// Filter sets the optional parameter "filter": A filter expression that
110520// filters resources listed in the response. The expression must specify
110521// the field name, a comparison operator, and the value that you want to
110522// use for filtering. The value must be a string, a number, or a
110523// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110524// `<`. For example, if you are filtering Compute Engine instances, you
110525// can exclude instances named `example-instance` by specifying `name !=
110526// example-instance`. You can also filter nested fields. For example,
110527// you could specify `scheduling.automaticRestart = false` to include
110528// instances only if they are not scheduled for automatic restarts. You
110529// can use filtering on nested fields to filter based on resource
110530// labels. To filter on multiple expressions, provide each separate
110531// expression within parentheses. For example: ```
110532// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
110533// ``` By default, each expression is an `AND` expression. However, you
110534// can include `AND` and `OR` expressions explicitly. For example: ```
110535// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
110536// AND (scheduling.automaticRestart = true) ```
110537func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
110538	c.urlParams_.Set("filter", filter)
110539	return c
110540}
110541
110542// MaxResults sets the optional parameter "maxResults": The maximum
110543// number of results per page that should be returned. If the number of
110544// available results is larger than `maxResults`, Compute Engine returns
110545// a `nextPageToken` that can be used to get the next page of results in
110546// subsequent list requests. Acceptable values are `0` to `500`,
110547// inclusive. (Default: `500`)
110548func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
110549	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110550	return c
110551}
110552
110553// OrderBy sets the optional parameter "orderBy": Sorts list results by
110554// a certain order. By default, results are returned in alphanumerical
110555// order based on the resource name. You can also sort results in
110556// descending order based on the creation timestamp using
110557// `orderBy="creationTimestamp desc". This sorts results based on the
110558// `creationTimestamp` field in reverse chronological order (newest
110559// result first). Use this to sort resources like operations so that the
110560// newest operation is returned first. Currently, only sorting by `name`
110561// or `creationTimestamp desc` is supported.
110562func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
110563	c.urlParams_.Set("orderBy", orderBy)
110564	return c
110565}
110566
110567// PageToken sets the optional parameter "pageToken": Specifies a page
110568// token to use. Set `pageToken` to the `nextPageToken` returned by a
110569// previous list request to get the next page of results.
110570func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
110571	c.urlParams_.Set("pageToken", pageToken)
110572	return c
110573}
110574
110575// ReturnPartialSuccess sets the optional parameter
110576// "returnPartialSuccess": Opt-in for partial success behavior which
110577// provides partial results in case of failure. The default value is
110578// false.
110579func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
110580	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110581	return c
110582}
110583
110584// Fields allows partial responses to be retrieved. See
110585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110586// for more information.
110587func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
110588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110589	return c
110590}
110591
110592// IfNoneMatch sets the optional parameter which makes the operation
110593// fail if the object's ETag matches the given value. This is useful for
110594// getting updates only after the object has changed since the last
110595// request. Use googleapi.IsNotModified to check whether the response
110596// error from Do is the result of In-None-Match.
110597func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
110598	c.ifNoneMatch_ = entityTag
110599	return c
110600}
110601
110602// Context sets the context to be used in this call's Do method. Any
110603// pending HTTP request will be aborted if the provided context is
110604// canceled.
110605func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
110606	c.ctx_ = ctx
110607	return c
110608}
110609
110610// Header returns an http.Header that can be modified by the caller to
110611// add HTTP headers to the request.
110612func (c *PacketMirroringsListCall) Header() http.Header {
110613	if c.header_ == nil {
110614		c.header_ = make(http.Header)
110615	}
110616	return c.header_
110617}
110618
110619func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
110620	reqHeaders := make(http.Header)
110621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
110622	for k, v := range c.header_ {
110623		reqHeaders[k] = v
110624	}
110625	reqHeaders.Set("User-Agent", c.s.userAgent())
110626	if c.ifNoneMatch_ != "" {
110627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110628	}
110629	var body io.Reader = nil
110630	c.urlParams_.Set("alt", alt)
110631	c.urlParams_.Set("prettyPrint", "false")
110632	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
110633	urls += "?" + c.urlParams_.Encode()
110634	req, err := http.NewRequest("GET", urls, body)
110635	if err != nil {
110636		return nil, err
110637	}
110638	req.Header = reqHeaders
110639	googleapi.Expand(req.URL, map[string]string{
110640		"project": c.project,
110641		"region":  c.region,
110642	})
110643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110644}
110645
110646// Do executes the "compute.packetMirrorings.list" call.
110647// Exactly one of *PacketMirroringList or error will be non-nil. Any
110648// non-2xx status code is an error. Response headers are in either
110649// *PacketMirroringList.ServerResponse.Header or (if a response was
110650// returned at all) in error.(*googleapi.Error).Header. Use
110651// googleapi.IsNotModified to check whether the returned error was
110652// because http.StatusNotModified was returned.
110653func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
110654	gensupport.SetOptions(c.urlParams_, opts...)
110655	res, err := c.doRequest("json")
110656	if res != nil && res.StatusCode == http.StatusNotModified {
110657		if res.Body != nil {
110658			res.Body.Close()
110659		}
110660		return nil, &googleapi.Error{
110661			Code:   res.StatusCode,
110662			Header: res.Header,
110663		}
110664	}
110665	if err != nil {
110666		return nil, err
110667	}
110668	defer googleapi.CloseBody(res)
110669	if err := googleapi.CheckResponse(res); err != nil {
110670		return nil, err
110671	}
110672	ret := &PacketMirroringList{
110673		ServerResponse: googleapi.ServerResponse{
110674			Header:         res.Header,
110675			HTTPStatusCode: res.StatusCode,
110676		},
110677	}
110678	target := &ret
110679	if err := gensupport.DecodeResponse(target, res); err != nil {
110680		return nil, err
110681	}
110682	return ret, nil
110683	// {
110684	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
110685	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
110686	//   "httpMethod": "GET",
110687	//   "id": "compute.packetMirrorings.list",
110688	//   "parameterOrder": [
110689	//     "project",
110690	//     "region"
110691	//   ],
110692	//   "parameters": {
110693	//     "filter": {
110694	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110695	//       "location": "query",
110696	//       "type": "string"
110697	//     },
110698	//     "maxResults": {
110699	//       "default": "500",
110700	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110701	//       "format": "uint32",
110702	//       "location": "query",
110703	//       "minimum": "0",
110704	//       "type": "integer"
110705	//     },
110706	//     "orderBy": {
110707	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
110708	//       "location": "query",
110709	//       "type": "string"
110710	//     },
110711	//     "pageToken": {
110712	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110713	//       "location": "query",
110714	//       "type": "string"
110715	//     },
110716	//     "project": {
110717	//       "description": "Project ID for this request.",
110718	//       "location": "path",
110719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110720	//       "required": true,
110721	//       "type": "string"
110722	//     },
110723	//     "region": {
110724	//       "description": "Name of the region for this request.",
110725	//       "location": "path",
110726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110727	//       "required": true,
110728	//       "type": "string"
110729	//     },
110730	//     "returnPartialSuccess": {
110731	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110732	//       "location": "query",
110733	//       "type": "boolean"
110734	//     }
110735	//   },
110736	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
110737	//   "response": {
110738	//     "$ref": "PacketMirroringList"
110739	//   },
110740	//   "scopes": [
110741	//     "https://www.googleapis.com/auth/cloud-platform",
110742	//     "https://www.googleapis.com/auth/compute",
110743	//     "https://www.googleapis.com/auth/compute.readonly"
110744	//   ]
110745	// }
110746
110747}
110748
110749// Pages invokes f for each page of results.
110750// A non-nil error returned from f will halt the iteration.
110751// The provided context supersedes any context provided to the Context method.
110752func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
110753	c.ctx_ = ctx
110754	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110755	for {
110756		x, err := c.Do()
110757		if err != nil {
110758			return err
110759		}
110760		if err := f(x); err != nil {
110761			return err
110762		}
110763		if x.NextPageToken == "" {
110764			return nil
110765		}
110766		c.PageToken(x.NextPageToken)
110767	}
110768}
110769
110770// method id "compute.packetMirrorings.patch":
110771
110772type PacketMirroringsPatchCall struct {
110773	s               *Service
110774	project         string
110775	region          string
110776	packetMirroring string
110777	packetmirroring *PacketMirroring
110778	urlParams_      gensupport.URLParams
110779	ctx_            context.Context
110780	header_         http.Header
110781}
110782
110783// Patch: Patches the specified PacketMirroring resource with the data
110784// included in the request. This method supports PATCH semantics and
110785// uses JSON merge patch format and processing rules.
110786//
110787// - packetMirroring: Name of the PacketMirroring resource to patch.
110788// - project: Project ID for this request.
110789// - region: Name of the region for this request.
110790func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
110791	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110792	c.project = project
110793	c.region = region
110794	c.packetMirroring = packetMirroring
110795	c.packetmirroring = packetmirroring
110796	return c
110797}
110798
110799// RequestId sets the optional parameter "requestId": An optional
110800// request ID to identify requests. Specify a unique request ID so that
110801// if you must retry your request, the server will know to ignore the
110802// request if it has already been completed. For example, consider a
110803// situation where you make an initial request and the request times
110804// out. If you make the request again with the same request ID, the
110805// server can check if original operation with the same request ID was
110806// received, and if so, will ignore the second request. This prevents
110807// clients from accidentally creating duplicate commitments. The request
110808// ID must be a valid UUID with the exception that zero UUID is not
110809// supported ( 00000000-0000-0000-0000-000000000000).
110810func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
110811	c.urlParams_.Set("requestId", requestId)
110812	return c
110813}
110814
110815// Fields allows partial responses to be retrieved. See
110816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110817// for more information.
110818func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
110819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110820	return c
110821}
110822
110823// Context sets the context to be used in this call's Do method. Any
110824// pending HTTP request will be aborted if the provided context is
110825// canceled.
110826func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
110827	c.ctx_ = ctx
110828	return c
110829}
110830
110831// Header returns an http.Header that can be modified by the caller to
110832// add HTTP headers to the request.
110833func (c *PacketMirroringsPatchCall) Header() http.Header {
110834	if c.header_ == nil {
110835		c.header_ = make(http.Header)
110836	}
110837	return c.header_
110838}
110839
110840func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
110841	reqHeaders := make(http.Header)
110842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
110843	for k, v := range c.header_ {
110844		reqHeaders[k] = v
110845	}
110846	reqHeaders.Set("User-Agent", c.s.userAgent())
110847	var body io.Reader = nil
110848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
110849	if err != nil {
110850		return nil, err
110851	}
110852	reqHeaders.Set("Content-Type", "application/json")
110853	c.urlParams_.Set("alt", alt)
110854	c.urlParams_.Set("prettyPrint", "false")
110855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
110856	urls += "?" + c.urlParams_.Encode()
110857	req, err := http.NewRequest("PATCH", urls, body)
110858	if err != nil {
110859		return nil, err
110860	}
110861	req.Header = reqHeaders
110862	googleapi.Expand(req.URL, map[string]string{
110863		"project":         c.project,
110864		"region":          c.region,
110865		"packetMirroring": c.packetMirroring,
110866	})
110867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110868}
110869
110870// Do executes the "compute.packetMirrorings.patch" call.
110871// Exactly one of *Operation or error will be non-nil. Any non-2xx
110872// status code is an error. Response headers are in either
110873// *Operation.ServerResponse.Header or (if a response was returned at
110874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110875// to check whether the returned error was because
110876// http.StatusNotModified was returned.
110877func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110878	gensupport.SetOptions(c.urlParams_, opts...)
110879	res, err := c.doRequest("json")
110880	if res != nil && res.StatusCode == http.StatusNotModified {
110881		if res.Body != nil {
110882			res.Body.Close()
110883		}
110884		return nil, &googleapi.Error{
110885			Code:   res.StatusCode,
110886			Header: res.Header,
110887		}
110888	}
110889	if err != nil {
110890		return nil, err
110891	}
110892	defer googleapi.CloseBody(res)
110893	if err := googleapi.CheckResponse(res); err != nil {
110894		return nil, err
110895	}
110896	ret := &Operation{
110897		ServerResponse: googleapi.ServerResponse{
110898			Header:         res.Header,
110899			HTTPStatusCode: res.StatusCode,
110900		},
110901	}
110902	target := &ret
110903	if err := gensupport.DecodeResponse(target, res); err != nil {
110904		return nil, err
110905	}
110906	return ret, nil
110907	// {
110908	//   "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.",
110909	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110910	//   "httpMethod": "PATCH",
110911	//   "id": "compute.packetMirrorings.patch",
110912	//   "parameterOrder": [
110913	//     "project",
110914	//     "region",
110915	//     "packetMirroring"
110916	//   ],
110917	//   "parameters": {
110918	//     "packetMirroring": {
110919	//       "description": "Name of the PacketMirroring resource to patch.",
110920	//       "location": "path",
110921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110922	//       "required": true,
110923	//       "type": "string"
110924	//     },
110925	//     "project": {
110926	//       "description": "Project ID for this request.",
110927	//       "location": "path",
110928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110929	//       "required": true,
110930	//       "type": "string"
110931	//     },
110932	//     "region": {
110933	//       "description": "Name of the region for this request.",
110934	//       "location": "path",
110935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110936	//       "required": true,
110937	//       "type": "string"
110938	//     },
110939	//     "requestId": {
110940	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
110941	//       "location": "query",
110942	//       "type": "string"
110943	//     }
110944	//   },
110945	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110946	//   "request": {
110947	//     "$ref": "PacketMirroring"
110948	//   },
110949	//   "response": {
110950	//     "$ref": "Operation"
110951	//   },
110952	//   "scopes": [
110953	//     "https://www.googleapis.com/auth/cloud-platform",
110954	//     "https://www.googleapis.com/auth/compute"
110955	//   ]
110956	// }
110957
110958}
110959
110960// method id "compute.packetMirrorings.testIamPermissions":
110961
110962type PacketMirroringsTestIamPermissionsCall struct {
110963	s                      *Service
110964	project                string
110965	region                 string
110966	resource               string
110967	testpermissionsrequest *TestPermissionsRequest
110968	urlParams_             gensupport.URLParams
110969	ctx_                   context.Context
110970	header_                http.Header
110971}
110972
110973// TestIamPermissions: Returns permissions that a caller has on the
110974// specified resource.
110975//
110976// - project: Project ID for this request.
110977// - region: The name of the region for this request.
110978// - resource: Name or id of the resource for this request.
110979func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
110980	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110981	c.project = project
110982	c.region = region
110983	c.resource = resource
110984	c.testpermissionsrequest = testpermissionsrequest
110985	return c
110986}
110987
110988// Fields allows partial responses to be retrieved. See
110989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110990// for more information.
110991func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
110992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110993	return c
110994}
110995
110996// Context sets the context to be used in this call's Do method. Any
110997// pending HTTP request will be aborted if the provided context is
110998// canceled.
110999func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
111000	c.ctx_ = ctx
111001	return c
111002}
111003
111004// Header returns an http.Header that can be modified by the caller to
111005// add HTTP headers to the request.
111006func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
111007	if c.header_ == nil {
111008		c.header_ = make(http.Header)
111009	}
111010	return c.header_
111011}
111012
111013func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
111014	reqHeaders := make(http.Header)
111015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111016	for k, v := range c.header_ {
111017		reqHeaders[k] = v
111018	}
111019	reqHeaders.Set("User-Agent", c.s.userAgent())
111020	var body io.Reader = nil
111021	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
111022	if err != nil {
111023		return nil, err
111024	}
111025	reqHeaders.Set("Content-Type", "application/json")
111026	c.urlParams_.Set("alt", alt)
111027	c.urlParams_.Set("prettyPrint", "false")
111028	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
111029	urls += "?" + c.urlParams_.Encode()
111030	req, err := http.NewRequest("POST", urls, body)
111031	if err != nil {
111032		return nil, err
111033	}
111034	req.Header = reqHeaders
111035	googleapi.Expand(req.URL, map[string]string{
111036		"project":  c.project,
111037		"region":   c.region,
111038		"resource": c.resource,
111039	})
111040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111041}
111042
111043// Do executes the "compute.packetMirrorings.testIamPermissions" call.
111044// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
111045// non-2xx status code is an error. Response headers are in either
111046// *TestPermissionsResponse.ServerResponse.Header or (if a response was
111047// returned at all) in error.(*googleapi.Error).Header. Use
111048// googleapi.IsNotModified to check whether the returned error was
111049// because http.StatusNotModified was returned.
111050func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
111051	gensupport.SetOptions(c.urlParams_, opts...)
111052	res, err := c.doRequest("json")
111053	if res != nil && res.StatusCode == http.StatusNotModified {
111054		if res.Body != nil {
111055			res.Body.Close()
111056		}
111057		return nil, &googleapi.Error{
111058			Code:   res.StatusCode,
111059			Header: res.Header,
111060		}
111061	}
111062	if err != nil {
111063		return nil, err
111064	}
111065	defer googleapi.CloseBody(res)
111066	if err := googleapi.CheckResponse(res); err != nil {
111067		return nil, err
111068	}
111069	ret := &TestPermissionsResponse{
111070		ServerResponse: googleapi.ServerResponse{
111071			Header:         res.Header,
111072			HTTPStatusCode: res.StatusCode,
111073		},
111074	}
111075	target := &ret
111076	if err := gensupport.DecodeResponse(target, res); err != nil {
111077		return nil, err
111078	}
111079	return ret, nil
111080	// {
111081	//   "description": "Returns permissions that a caller has on the specified resource.",
111082	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
111083	//   "httpMethod": "POST",
111084	//   "id": "compute.packetMirrorings.testIamPermissions",
111085	//   "parameterOrder": [
111086	//     "project",
111087	//     "region",
111088	//     "resource"
111089	//   ],
111090	//   "parameters": {
111091	//     "project": {
111092	//       "description": "Project ID for this request.",
111093	//       "location": "path",
111094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111095	//       "required": true,
111096	//       "type": "string"
111097	//     },
111098	//     "region": {
111099	//       "description": "The name of the region for this request.",
111100	//       "location": "path",
111101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111102	//       "required": true,
111103	//       "type": "string"
111104	//     },
111105	//     "resource": {
111106	//       "description": "Name or id of the resource for this request.",
111107	//       "location": "path",
111108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111109	//       "required": true,
111110	//       "type": "string"
111111	//     }
111112	//   },
111113	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
111114	//   "request": {
111115	//     "$ref": "TestPermissionsRequest"
111116	//   },
111117	//   "response": {
111118	//     "$ref": "TestPermissionsResponse"
111119	//   },
111120	//   "scopes": [
111121	//     "https://www.googleapis.com/auth/cloud-platform",
111122	//     "https://www.googleapis.com/auth/compute",
111123	//     "https://www.googleapis.com/auth/compute.readonly"
111124	//   ]
111125	// }
111126
111127}
111128
111129// method id "compute.projects.disableXpnHost":
111130
111131type ProjectsDisableXpnHostCall struct {
111132	s          *Service
111133	project    string
111134	urlParams_ gensupport.URLParams
111135	ctx_       context.Context
111136	header_    http.Header
111137}
111138
111139// DisableXpnHost: Disable this project as a shared VPC host project.
111140//
111141// - project: Project ID for this request.
111142func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
111143	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111144	c.project = project
111145	return c
111146}
111147
111148// RequestId sets the optional parameter "requestId": An optional
111149// request ID to identify requests. Specify a unique request ID so that
111150// if you must retry your request, the server will know to ignore the
111151// request if it has already been completed. For example, consider a
111152// situation where you make an initial request and the request times
111153// out. If you make the request again with the same request ID, the
111154// server can check if original operation with the same request ID was
111155// received, and if so, will ignore the second request. This prevents
111156// clients from accidentally creating duplicate commitments. The request
111157// ID must be a valid UUID with the exception that zero UUID is not
111158// supported ( 00000000-0000-0000-0000-000000000000).
111159func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
111160	c.urlParams_.Set("requestId", requestId)
111161	return c
111162}
111163
111164// Fields allows partial responses to be retrieved. See
111165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111166// for more information.
111167func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
111168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111169	return c
111170}
111171
111172// Context sets the context to be used in this call's Do method. Any
111173// pending HTTP request will be aborted if the provided context is
111174// canceled.
111175func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
111176	c.ctx_ = ctx
111177	return c
111178}
111179
111180// Header returns an http.Header that can be modified by the caller to
111181// add HTTP headers to the request.
111182func (c *ProjectsDisableXpnHostCall) Header() http.Header {
111183	if c.header_ == nil {
111184		c.header_ = make(http.Header)
111185	}
111186	return c.header_
111187}
111188
111189func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
111190	reqHeaders := make(http.Header)
111191	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111192	for k, v := range c.header_ {
111193		reqHeaders[k] = v
111194	}
111195	reqHeaders.Set("User-Agent", c.s.userAgent())
111196	var body io.Reader = nil
111197	c.urlParams_.Set("alt", alt)
111198	c.urlParams_.Set("prettyPrint", "false")
111199	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost")
111200	urls += "?" + c.urlParams_.Encode()
111201	req, err := http.NewRequest("POST", urls, body)
111202	if err != nil {
111203		return nil, err
111204	}
111205	req.Header = reqHeaders
111206	googleapi.Expand(req.URL, map[string]string{
111207		"project": c.project,
111208	})
111209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111210}
111211
111212// Do executes the "compute.projects.disableXpnHost" call.
111213// Exactly one of *Operation or error will be non-nil. Any non-2xx
111214// status code is an error. Response headers are in either
111215// *Operation.ServerResponse.Header or (if a response was returned at
111216// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111217// to check whether the returned error was because
111218// http.StatusNotModified was returned.
111219func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111220	gensupport.SetOptions(c.urlParams_, opts...)
111221	res, err := c.doRequest("json")
111222	if res != nil && res.StatusCode == http.StatusNotModified {
111223		if res.Body != nil {
111224			res.Body.Close()
111225		}
111226		return nil, &googleapi.Error{
111227			Code:   res.StatusCode,
111228			Header: res.Header,
111229		}
111230	}
111231	if err != nil {
111232		return nil, err
111233	}
111234	defer googleapi.CloseBody(res)
111235	if err := googleapi.CheckResponse(res); err != nil {
111236		return nil, err
111237	}
111238	ret := &Operation{
111239		ServerResponse: googleapi.ServerResponse{
111240			Header:         res.Header,
111241			HTTPStatusCode: res.StatusCode,
111242		},
111243	}
111244	target := &ret
111245	if err := gensupport.DecodeResponse(target, res); err != nil {
111246		return nil, err
111247	}
111248	return ret, nil
111249	// {
111250	//   "description": "Disable this project as a shared VPC host project.",
111251	//   "flatPath": "projects/{project}/disableXpnHost",
111252	//   "httpMethod": "POST",
111253	//   "id": "compute.projects.disableXpnHost",
111254	//   "parameterOrder": [
111255	//     "project"
111256	//   ],
111257	//   "parameters": {
111258	//     "project": {
111259	//       "description": "Project ID for this request.",
111260	//       "location": "path",
111261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111262	//       "required": true,
111263	//       "type": "string"
111264	//     },
111265	//     "requestId": {
111266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111267	//       "location": "query",
111268	//       "type": "string"
111269	//     }
111270	//   },
111271	//   "path": "projects/{project}/disableXpnHost",
111272	//   "response": {
111273	//     "$ref": "Operation"
111274	//   },
111275	//   "scopes": [
111276	//     "https://www.googleapis.com/auth/cloud-platform",
111277	//     "https://www.googleapis.com/auth/compute"
111278	//   ]
111279	// }
111280
111281}
111282
111283// method id "compute.projects.disableXpnResource":
111284
111285type ProjectsDisableXpnResourceCall struct {
111286	s                                 *Service
111287	project                           string
111288	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
111289	urlParams_                        gensupport.URLParams
111290	ctx_                              context.Context
111291	header_                           http.Header
111292}
111293
111294// DisableXpnResource: Disable a service resource (also known as service
111295// project) associated with this host project.
111296//
111297// - project: Project ID for this request.
111298func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
111299	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111300	c.project = project
111301	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
111302	return c
111303}
111304
111305// RequestId sets the optional parameter "requestId": An optional
111306// request ID to identify requests. Specify a unique request ID so that
111307// if you must retry your request, the server will know to ignore the
111308// request if it has already been completed. For example, consider a
111309// situation where you make an initial request and the request times
111310// out. If you make the request again with the same request ID, the
111311// server can check if original operation with the same request ID was
111312// received, and if so, will ignore the second request. This prevents
111313// clients from accidentally creating duplicate commitments. The request
111314// ID must be a valid UUID with the exception that zero UUID is not
111315// supported ( 00000000-0000-0000-0000-000000000000).
111316func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
111317	c.urlParams_.Set("requestId", requestId)
111318	return c
111319}
111320
111321// Fields allows partial responses to be retrieved. See
111322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111323// for more information.
111324func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
111325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111326	return c
111327}
111328
111329// Context sets the context to be used in this call's Do method. Any
111330// pending HTTP request will be aborted if the provided context is
111331// canceled.
111332func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
111333	c.ctx_ = ctx
111334	return c
111335}
111336
111337// Header returns an http.Header that can be modified by the caller to
111338// add HTTP headers to the request.
111339func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
111340	if c.header_ == nil {
111341		c.header_ = make(http.Header)
111342	}
111343	return c.header_
111344}
111345
111346func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
111347	reqHeaders := make(http.Header)
111348	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111349	for k, v := range c.header_ {
111350		reqHeaders[k] = v
111351	}
111352	reqHeaders.Set("User-Agent", c.s.userAgent())
111353	var body io.Reader = nil
111354	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
111355	if err != nil {
111356		return nil, err
111357	}
111358	reqHeaders.Set("Content-Type", "application/json")
111359	c.urlParams_.Set("alt", alt)
111360	c.urlParams_.Set("prettyPrint", "false")
111361	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource")
111362	urls += "?" + c.urlParams_.Encode()
111363	req, err := http.NewRequest("POST", urls, body)
111364	if err != nil {
111365		return nil, err
111366	}
111367	req.Header = reqHeaders
111368	googleapi.Expand(req.URL, map[string]string{
111369		"project": c.project,
111370	})
111371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111372}
111373
111374// Do executes the "compute.projects.disableXpnResource" call.
111375// Exactly one of *Operation or error will be non-nil. Any non-2xx
111376// status code is an error. Response headers are in either
111377// *Operation.ServerResponse.Header or (if a response was returned at
111378// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111379// to check whether the returned error was because
111380// http.StatusNotModified was returned.
111381func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111382	gensupport.SetOptions(c.urlParams_, opts...)
111383	res, err := c.doRequest("json")
111384	if res != nil && res.StatusCode == http.StatusNotModified {
111385		if res.Body != nil {
111386			res.Body.Close()
111387		}
111388		return nil, &googleapi.Error{
111389			Code:   res.StatusCode,
111390			Header: res.Header,
111391		}
111392	}
111393	if err != nil {
111394		return nil, err
111395	}
111396	defer googleapi.CloseBody(res)
111397	if err := googleapi.CheckResponse(res); err != nil {
111398		return nil, err
111399	}
111400	ret := &Operation{
111401		ServerResponse: googleapi.ServerResponse{
111402			Header:         res.Header,
111403			HTTPStatusCode: res.StatusCode,
111404		},
111405	}
111406	target := &ret
111407	if err := gensupport.DecodeResponse(target, res); err != nil {
111408		return nil, err
111409	}
111410	return ret, nil
111411	// {
111412	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
111413	//   "flatPath": "projects/{project}/disableXpnResource",
111414	//   "httpMethod": "POST",
111415	//   "id": "compute.projects.disableXpnResource",
111416	//   "parameterOrder": [
111417	//     "project"
111418	//   ],
111419	//   "parameters": {
111420	//     "project": {
111421	//       "description": "Project ID for this request.",
111422	//       "location": "path",
111423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111424	//       "required": true,
111425	//       "type": "string"
111426	//     },
111427	//     "requestId": {
111428	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111429	//       "location": "query",
111430	//       "type": "string"
111431	//     }
111432	//   },
111433	//   "path": "projects/{project}/disableXpnResource",
111434	//   "request": {
111435	//     "$ref": "ProjectsDisableXpnResourceRequest"
111436	//   },
111437	//   "response": {
111438	//     "$ref": "Operation"
111439	//   },
111440	//   "scopes": [
111441	//     "https://www.googleapis.com/auth/cloud-platform",
111442	//     "https://www.googleapis.com/auth/compute"
111443	//   ]
111444	// }
111445
111446}
111447
111448// method id "compute.projects.enableXpnHost":
111449
111450type ProjectsEnableXpnHostCall struct {
111451	s          *Service
111452	project    string
111453	urlParams_ gensupport.URLParams
111454	ctx_       context.Context
111455	header_    http.Header
111456}
111457
111458// EnableXpnHost: Enable this project as a shared VPC host project.
111459//
111460// - project: Project ID for this request.
111461func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
111462	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111463	c.project = project
111464	return c
111465}
111466
111467// RequestId sets the optional parameter "requestId": An optional
111468// request ID to identify requests. Specify a unique request ID so that
111469// if you must retry your request, the server will know to ignore the
111470// request if it has already been completed. For example, consider a
111471// situation where you make an initial request and the request times
111472// out. If you make the request again with the same request ID, the
111473// server can check if original operation with the same request ID was
111474// received, and if so, will ignore the second request. This prevents
111475// clients from accidentally creating duplicate commitments. The request
111476// ID must be a valid UUID with the exception that zero UUID is not
111477// supported ( 00000000-0000-0000-0000-000000000000).
111478func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
111479	c.urlParams_.Set("requestId", requestId)
111480	return c
111481}
111482
111483// Fields allows partial responses to be retrieved. See
111484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111485// for more information.
111486func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
111487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111488	return c
111489}
111490
111491// Context sets the context to be used in this call's Do method. Any
111492// pending HTTP request will be aborted if the provided context is
111493// canceled.
111494func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
111495	c.ctx_ = ctx
111496	return c
111497}
111498
111499// Header returns an http.Header that can be modified by the caller to
111500// add HTTP headers to the request.
111501func (c *ProjectsEnableXpnHostCall) Header() http.Header {
111502	if c.header_ == nil {
111503		c.header_ = make(http.Header)
111504	}
111505	return c.header_
111506}
111507
111508func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
111509	reqHeaders := make(http.Header)
111510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111511	for k, v := range c.header_ {
111512		reqHeaders[k] = v
111513	}
111514	reqHeaders.Set("User-Agent", c.s.userAgent())
111515	var body io.Reader = nil
111516	c.urlParams_.Set("alt", alt)
111517	c.urlParams_.Set("prettyPrint", "false")
111518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost")
111519	urls += "?" + c.urlParams_.Encode()
111520	req, err := http.NewRequest("POST", urls, body)
111521	if err != nil {
111522		return nil, err
111523	}
111524	req.Header = reqHeaders
111525	googleapi.Expand(req.URL, map[string]string{
111526		"project": c.project,
111527	})
111528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111529}
111530
111531// Do executes the "compute.projects.enableXpnHost" call.
111532// Exactly one of *Operation or error will be non-nil. Any non-2xx
111533// status code is an error. Response headers are in either
111534// *Operation.ServerResponse.Header or (if a response was returned at
111535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111536// to check whether the returned error was because
111537// http.StatusNotModified was returned.
111538func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111539	gensupport.SetOptions(c.urlParams_, opts...)
111540	res, err := c.doRequest("json")
111541	if res != nil && res.StatusCode == http.StatusNotModified {
111542		if res.Body != nil {
111543			res.Body.Close()
111544		}
111545		return nil, &googleapi.Error{
111546			Code:   res.StatusCode,
111547			Header: res.Header,
111548		}
111549	}
111550	if err != nil {
111551		return nil, err
111552	}
111553	defer googleapi.CloseBody(res)
111554	if err := googleapi.CheckResponse(res); err != nil {
111555		return nil, err
111556	}
111557	ret := &Operation{
111558		ServerResponse: googleapi.ServerResponse{
111559			Header:         res.Header,
111560			HTTPStatusCode: res.StatusCode,
111561		},
111562	}
111563	target := &ret
111564	if err := gensupport.DecodeResponse(target, res); err != nil {
111565		return nil, err
111566	}
111567	return ret, nil
111568	// {
111569	//   "description": "Enable this project as a shared VPC host project.",
111570	//   "flatPath": "projects/{project}/enableXpnHost",
111571	//   "httpMethod": "POST",
111572	//   "id": "compute.projects.enableXpnHost",
111573	//   "parameterOrder": [
111574	//     "project"
111575	//   ],
111576	//   "parameters": {
111577	//     "project": {
111578	//       "description": "Project ID for this request.",
111579	//       "location": "path",
111580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111581	//       "required": true,
111582	//       "type": "string"
111583	//     },
111584	//     "requestId": {
111585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111586	//       "location": "query",
111587	//       "type": "string"
111588	//     }
111589	//   },
111590	//   "path": "projects/{project}/enableXpnHost",
111591	//   "response": {
111592	//     "$ref": "Operation"
111593	//   },
111594	//   "scopes": [
111595	//     "https://www.googleapis.com/auth/cloud-platform",
111596	//     "https://www.googleapis.com/auth/compute"
111597	//   ]
111598	// }
111599
111600}
111601
111602// method id "compute.projects.enableXpnResource":
111603
111604type ProjectsEnableXpnResourceCall struct {
111605	s                                *Service
111606	project                          string
111607	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
111608	urlParams_                       gensupport.URLParams
111609	ctx_                             context.Context
111610	header_                          http.Header
111611}
111612
111613// EnableXpnResource: Enable service resource (a.k.a service project)
111614// for a host project, so that subnets in the host project can be used
111615// by instances in the service project.
111616//
111617// - project: Project ID for this request.
111618func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
111619	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111620	c.project = project
111621	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
111622	return c
111623}
111624
111625// RequestId sets the optional parameter "requestId": An optional
111626// request ID to identify requests. Specify a unique request ID so that
111627// if you must retry your request, the server will know to ignore the
111628// request if it has already been completed. For example, consider a
111629// situation where you make an initial request and the request times
111630// out. If you make the request again with the same request ID, the
111631// server can check if original operation with the same request ID was
111632// received, and if so, will ignore the second request. This prevents
111633// clients from accidentally creating duplicate commitments. The request
111634// ID must be a valid UUID with the exception that zero UUID is not
111635// supported ( 00000000-0000-0000-0000-000000000000).
111636func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
111637	c.urlParams_.Set("requestId", requestId)
111638	return c
111639}
111640
111641// Fields allows partial responses to be retrieved. See
111642// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111643// for more information.
111644func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
111645	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111646	return c
111647}
111648
111649// Context sets the context to be used in this call's Do method. Any
111650// pending HTTP request will be aborted if the provided context is
111651// canceled.
111652func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
111653	c.ctx_ = ctx
111654	return c
111655}
111656
111657// Header returns an http.Header that can be modified by the caller to
111658// add HTTP headers to the request.
111659func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
111660	if c.header_ == nil {
111661		c.header_ = make(http.Header)
111662	}
111663	return c.header_
111664}
111665
111666func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
111667	reqHeaders := make(http.Header)
111668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111669	for k, v := range c.header_ {
111670		reqHeaders[k] = v
111671	}
111672	reqHeaders.Set("User-Agent", c.s.userAgent())
111673	var body io.Reader = nil
111674	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
111675	if err != nil {
111676		return nil, err
111677	}
111678	reqHeaders.Set("Content-Type", "application/json")
111679	c.urlParams_.Set("alt", alt)
111680	c.urlParams_.Set("prettyPrint", "false")
111681	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource")
111682	urls += "?" + c.urlParams_.Encode()
111683	req, err := http.NewRequest("POST", urls, body)
111684	if err != nil {
111685		return nil, err
111686	}
111687	req.Header = reqHeaders
111688	googleapi.Expand(req.URL, map[string]string{
111689		"project": c.project,
111690	})
111691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111692}
111693
111694// Do executes the "compute.projects.enableXpnResource" call.
111695// Exactly one of *Operation or error will be non-nil. Any non-2xx
111696// status code is an error. Response headers are in either
111697// *Operation.ServerResponse.Header or (if a response was returned at
111698// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111699// to check whether the returned error was because
111700// http.StatusNotModified was returned.
111701func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111702	gensupport.SetOptions(c.urlParams_, opts...)
111703	res, err := c.doRequest("json")
111704	if res != nil && res.StatusCode == http.StatusNotModified {
111705		if res.Body != nil {
111706			res.Body.Close()
111707		}
111708		return nil, &googleapi.Error{
111709			Code:   res.StatusCode,
111710			Header: res.Header,
111711		}
111712	}
111713	if err != nil {
111714		return nil, err
111715	}
111716	defer googleapi.CloseBody(res)
111717	if err := googleapi.CheckResponse(res); err != nil {
111718		return nil, err
111719	}
111720	ret := &Operation{
111721		ServerResponse: googleapi.ServerResponse{
111722			Header:         res.Header,
111723			HTTPStatusCode: res.StatusCode,
111724		},
111725	}
111726	target := &ret
111727	if err := gensupport.DecodeResponse(target, res); err != nil {
111728		return nil, err
111729	}
111730	return ret, nil
111731	// {
111732	//   "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.",
111733	//   "flatPath": "projects/{project}/enableXpnResource",
111734	//   "httpMethod": "POST",
111735	//   "id": "compute.projects.enableXpnResource",
111736	//   "parameterOrder": [
111737	//     "project"
111738	//   ],
111739	//   "parameters": {
111740	//     "project": {
111741	//       "description": "Project ID for this request.",
111742	//       "location": "path",
111743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111744	//       "required": true,
111745	//       "type": "string"
111746	//     },
111747	//     "requestId": {
111748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111749	//       "location": "query",
111750	//       "type": "string"
111751	//     }
111752	//   },
111753	//   "path": "projects/{project}/enableXpnResource",
111754	//   "request": {
111755	//     "$ref": "ProjectsEnableXpnResourceRequest"
111756	//   },
111757	//   "response": {
111758	//     "$ref": "Operation"
111759	//   },
111760	//   "scopes": [
111761	//     "https://www.googleapis.com/auth/cloud-platform",
111762	//     "https://www.googleapis.com/auth/compute"
111763	//   ]
111764	// }
111765
111766}
111767
111768// method id "compute.projects.get":
111769
111770type ProjectsGetCall struct {
111771	s            *Service
111772	project      string
111773	urlParams_   gensupport.URLParams
111774	ifNoneMatch_ string
111775	ctx_         context.Context
111776	header_      http.Header
111777}
111778
111779// Get: Returns the specified Project resource.
111780//
111781// - project: Project ID for this request.
111782func (r *ProjectsService) Get(project string) *ProjectsGetCall {
111783	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111784	c.project = project
111785	return c
111786}
111787
111788// Fields allows partial responses to be retrieved. See
111789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111790// for more information.
111791func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
111792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111793	return c
111794}
111795
111796// IfNoneMatch sets the optional parameter which makes the operation
111797// fail if the object's ETag matches the given value. This is useful for
111798// getting updates only after the object has changed since the last
111799// request. Use googleapi.IsNotModified to check whether the response
111800// error from Do is the result of In-None-Match.
111801func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
111802	c.ifNoneMatch_ = entityTag
111803	return c
111804}
111805
111806// Context sets the context to be used in this call's Do method. Any
111807// pending HTTP request will be aborted if the provided context is
111808// canceled.
111809func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
111810	c.ctx_ = ctx
111811	return c
111812}
111813
111814// Header returns an http.Header that can be modified by the caller to
111815// add HTTP headers to the request.
111816func (c *ProjectsGetCall) Header() http.Header {
111817	if c.header_ == nil {
111818		c.header_ = make(http.Header)
111819	}
111820	return c.header_
111821}
111822
111823func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
111824	reqHeaders := make(http.Header)
111825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111826	for k, v := range c.header_ {
111827		reqHeaders[k] = v
111828	}
111829	reqHeaders.Set("User-Agent", c.s.userAgent())
111830	if c.ifNoneMatch_ != "" {
111831		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111832	}
111833	var body io.Reader = nil
111834	c.urlParams_.Set("alt", alt)
111835	c.urlParams_.Set("prettyPrint", "false")
111836	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}")
111837	urls += "?" + c.urlParams_.Encode()
111838	req, err := http.NewRequest("GET", urls, body)
111839	if err != nil {
111840		return nil, err
111841	}
111842	req.Header = reqHeaders
111843	googleapi.Expand(req.URL, map[string]string{
111844		"project": c.project,
111845	})
111846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111847}
111848
111849// Do executes the "compute.projects.get" call.
111850// Exactly one of *Project or error will be non-nil. Any non-2xx status
111851// code is an error. Response headers are in either
111852// *Project.ServerResponse.Header or (if a response was returned at all)
111853// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
111854// check whether the returned error was because http.StatusNotModified
111855// was returned.
111856func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
111857	gensupport.SetOptions(c.urlParams_, opts...)
111858	res, err := c.doRequest("json")
111859	if res != nil && res.StatusCode == http.StatusNotModified {
111860		if res.Body != nil {
111861			res.Body.Close()
111862		}
111863		return nil, &googleapi.Error{
111864			Code:   res.StatusCode,
111865			Header: res.Header,
111866		}
111867	}
111868	if err != nil {
111869		return nil, err
111870	}
111871	defer googleapi.CloseBody(res)
111872	if err := googleapi.CheckResponse(res); err != nil {
111873		return nil, err
111874	}
111875	ret := &Project{
111876		ServerResponse: googleapi.ServerResponse{
111877			Header:         res.Header,
111878			HTTPStatusCode: res.StatusCode,
111879		},
111880	}
111881	target := &ret
111882	if err := gensupport.DecodeResponse(target, res); err != nil {
111883		return nil, err
111884	}
111885	return ret, nil
111886	// {
111887	//   "description": "Returns the specified Project resource.",
111888	//   "flatPath": "projects/{project}",
111889	//   "httpMethod": "GET",
111890	//   "id": "compute.projects.get",
111891	//   "parameterOrder": [
111892	//     "project"
111893	//   ],
111894	//   "parameters": {
111895	//     "project": {
111896	//       "description": "Project ID for this request.",
111897	//       "location": "path",
111898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111899	//       "required": true,
111900	//       "type": "string"
111901	//     }
111902	//   },
111903	//   "path": "projects/{project}",
111904	//   "response": {
111905	//     "$ref": "Project"
111906	//   },
111907	//   "scopes": [
111908	//     "https://www.googleapis.com/auth/cloud-platform",
111909	//     "https://www.googleapis.com/auth/compute",
111910	//     "https://www.googleapis.com/auth/compute.readonly"
111911	//   ]
111912	// }
111913
111914}
111915
111916// method id "compute.projects.getXpnHost":
111917
111918type ProjectsGetXpnHostCall struct {
111919	s            *Service
111920	project      string
111921	urlParams_   gensupport.URLParams
111922	ifNoneMatch_ string
111923	ctx_         context.Context
111924	header_      http.Header
111925}
111926
111927// GetXpnHost: Gets the shared VPC host project that this project links
111928// to. May be empty if no link exists.
111929//
111930// - project: Project ID for this request.
111931func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
111932	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111933	c.project = project
111934	return c
111935}
111936
111937// Fields allows partial responses to be retrieved. See
111938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111939// for more information.
111940func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
111941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111942	return c
111943}
111944
111945// IfNoneMatch sets the optional parameter which makes the operation
111946// fail if the object's ETag matches the given value. This is useful for
111947// getting updates only after the object has changed since the last
111948// request. Use googleapi.IsNotModified to check whether the response
111949// error from Do is the result of In-None-Match.
111950func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
111951	c.ifNoneMatch_ = entityTag
111952	return c
111953}
111954
111955// Context sets the context to be used in this call's Do method. Any
111956// pending HTTP request will be aborted if the provided context is
111957// canceled.
111958func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
111959	c.ctx_ = ctx
111960	return c
111961}
111962
111963// Header returns an http.Header that can be modified by the caller to
111964// add HTTP headers to the request.
111965func (c *ProjectsGetXpnHostCall) Header() http.Header {
111966	if c.header_ == nil {
111967		c.header_ = make(http.Header)
111968	}
111969	return c.header_
111970}
111971
111972func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
111973	reqHeaders := make(http.Header)
111974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
111975	for k, v := range c.header_ {
111976		reqHeaders[k] = v
111977	}
111978	reqHeaders.Set("User-Agent", c.s.userAgent())
111979	if c.ifNoneMatch_ != "" {
111980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111981	}
111982	var body io.Reader = nil
111983	c.urlParams_.Set("alt", alt)
111984	c.urlParams_.Set("prettyPrint", "false")
111985	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost")
111986	urls += "?" + c.urlParams_.Encode()
111987	req, err := http.NewRequest("GET", urls, body)
111988	if err != nil {
111989		return nil, err
111990	}
111991	req.Header = reqHeaders
111992	googleapi.Expand(req.URL, map[string]string{
111993		"project": c.project,
111994	})
111995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111996}
111997
111998// Do executes the "compute.projects.getXpnHost" call.
111999// Exactly one of *Project or error will be non-nil. Any non-2xx status
112000// code is an error. Response headers are in either
112001// *Project.ServerResponse.Header or (if a response was returned at all)
112002// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112003// check whether the returned error was because http.StatusNotModified
112004// was returned.
112005func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
112006	gensupport.SetOptions(c.urlParams_, opts...)
112007	res, err := c.doRequest("json")
112008	if res != nil && res.StatusCode == http.StatusNotModified {
112009		if res.Body != nil {
112010			res.Body.Close()
112011		}
112012		return nil, &googleapi.Error{
112013			Code:   res.StatusCode,
112014			Header: res.Header,
112015		}
112016	}
112017	if err != nil {
112018		return nil, err
112019	}
112020	defer googleapi.CloseBody(res)
112021	if err := googleapi.CheckResponse(res); err != nil {
112022		return nil, err
112023	}
112024	ret := &Project{
112025		ServerResponse: googleapi.ServerResponse{
112026			Header:         res.Header,
112027			HTTPStatusCode: res.StatusCode,
112028		},
112029	}
112030	target := &ret
112031	if err := gensupport.DecodeResponse(target, res); err != nil {
112032		return nil, err
112033	}
112034	return ret, nil
112035	// {
112036	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
112037	//   "flatPath": "projects/{project}/getXpnHost",
112038	//   "httpMethod": "GET",
112039	//   "id": "compute.projects.getXpnHost",
112040	//   "parameterOrder": [
112041	//     "project"
112042	//   ],
112043	//   "parameters": {
112044	//     "project": {
112045	//       "description": "Project ID for this request.",
112046	//       "location": "path",
112047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112048	//       "required": true,
112049	//       "type": "string"
112050	//     }
112051	//   },
112052	//   "path": "projects/{project}/getXpnHost",
112053	//   "response": {
112054	//     "$ref": "Project"
112055	//   },
112056	//   "scopes": [
112057	//     "https://www.googleapis.com/auth/cloud-platform",
112058	//     "https://www.googleapis.com/auth/compute"
112059	//   ]
112060	// }
112061
112062}
112063
112064// method id "compute.projects.getXpnResources":
112065
112066type ProjectsGetXpnResourcesCall struct {
112067	s            *Service
112068	project      string
112069	urlParams_   gensupport.URLParams
112070	ifNoneMatch_ string
112071	ctx_         context.Context
112072	header_      http.Header
112073}
112074
112075// GetXpnResources: Gets service resources (a.k.a service project)
112076// associated with this host project.
112077//
112078// - project: Project ID for this request.
112079func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
112080	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112081	c.project = project
112082	return c
112083}
112084
112085// Filter sets the optional parameter "filter": A filter expression that
112086// filters resources listed in the response. The expression must specify
112087// the field name, a comparison operator, and the value that you want to
112088// use for filtering. The value must be a string, a number, or a
112089// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112090// `<`. For example, if you are filtering Compute Engine instances, you
112091// can exclude instances named `example-instance` by specifying `name !=
112092// example-instance`. You can also filter nested fields. For example,
112093// you could specify `scheduling.automaticRestart = false` to include
112094// instances only if they are not scheduled for automatic restarts. You
112095// can use filtering on nested fields to filter based on resource
112096// labels. To filter on multiple expressions, provide each separate
112097// expression within parentheses. For example: ```
112098// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
112099// ``` By default, each expression is an `AND` expression. However, you
112100// can include `AND` and `OR` expressions explicitly. For example: ```
112101// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
112102// AND (scheduling.automaticRestart = true) ```
112103func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
112104	c.urlParams_.Set("filter", filter)
112105	return c
112106}
112107
112108// MaxResults sets the optional parameter "maxResults": The maximum
112109// number of results per page that should be returned. If the number of
112110// available results is larger than `maxResults`, Compute Engine returns
112111// a `nextPageToken` that can be used to get the next page of results in
112112// subsequent list requests. Acceptable values are `0` to `500`,
112113// inclusive. (Default: `500`)
112114func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
112115	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112116	return c
112117}
112118
112119// OrderBy sets the optional parameter "orderBy": Sorts list results by
112120// a certain order. By default, results are returned in alphanumerical
112121// order based on the resource name. You can also sort results in
112122// descending order based on the creation timestamp using
112123// `orderBy="creationTimestamp desc". This sorts results based on the
112124// `creationTimestamp` field in reverse chronological order (newest
112125// result first). Use this to sort resources like operations so that the
112126// newest operation is returned first. Currently, only sorting by `name`
112127// or `creationTimestamp desc` is supported.
112128func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
112129	c.urlParams_.Set("orderBy", orderBy)
112130	return c
112131}
112132
112133// PageToken sets the optional parameter "pageToken": Specifies a page
112134// token to use. Set `pageToken` to the `nextPageToken` returned by a
112135// previous list request to get the next page of results.
112136func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
112137	c.urlParams_.Set("pageToken", pageToken)
112138	return c
112139}
112140
112141// ReturnPartialSuccess sets the optional parameter
112142// "returnPartialSuccess": Opt-in for partial success behavior which
112143// provides partial results in case of failure. The default value is
112144// false.
112145func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall {
112146	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112147	return c
112148}
112149
112150// Fields allows partial responses to be retrieved. See
112151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112152// for more information.
112153func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
112154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112155	return c
112156}
112157
112158// IfNoneMatch sets the optional parameter which makes the operation
112159// fail if the object's ETag matches the given value. This is useful for
112160// getting updates only after the object has changed since the last
112161// request. Use googleapi.IsNotModified to check whether the response
112162// error from Do is the result of In-None-Match.
112163func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
112164	c.ifNoneMatch_ = entityTag
112165	return c
112166}
112167
112168// Context sets the context to be used in this call's Do method. Any
112169// pending HTTP request will be aborted if the provided context is
112170// canceled.
112171func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
112172	c.ctx_ = ctx
112173	return c
112174}
112175
112176// Header returns an http.Header that can be modified by the caller to
112177// add HTTP headers to the request.
112178func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
112179	if c.header_ == nil {
112180		c.header_ = make(http.Header)
112181	}
112182	return c.header_
112183}
112184
112185func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
112186	reqHeaders := make(http.Header)
112187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
112188	for k, v := range c.header_ {
112189		reqHeaders[k] = v
112190	}
112191	reqHeaders.Set("User-Agent", c.s.userAgent())
112192	if c.ifNoneMatch_ != "" {
112193		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112194	}
112195	var body io.Reader = nil
112196	c.urlParams_.Set("alt", alt)
112197	c.urlParams_.Set("prettyPrint", "false")
112198	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources")
112199	urls += "?" + c.urlParams_.Encode()
112200	req, err := http.NewRequest("GET", urls, body)
112201	if err != nil {
112202		return nil, err
112203	}
112204	req.Header = reqHeaders
112205	googleapi.Expand(req.URL, map[string]string{
112206		"project": c.project,
112207	})
112208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112209}
112210
112211// Do executes the "compute.projects.getXpnResources" call.
112212// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
112213// non-2xx status code is an error. Response headers are in either
112214// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
112215// returned at all) in error.(*googleapi.Error).Header. Use
112216// googleapi.IsNotModified to check whether the returned error was
112217// because http.StatusNotModified was returned.
112218func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
112219	gensupport.SetOptions(c.urlParams_, opts...)
112220	res, err := c.doRequest("json")
112221	if res != nil && res.StatusCode == http.StatusNotModified {
112222		if res.Body != nil {
112223			res.Body.Close()
112224		}
112225		return nil, &googleapi.Error{
112226			Code:   res.StatusCode,
112227			Header: res.Header,
112228		}
112229	}
112230	if err != nil {
112231		return nil, err
112232	}
112233	defer googleapi.CloseBody(res)
112234	if err := googleapi.CheckResponse(res); err != nil {
112235		return nil, err
112236	}
112237	ret := &ProjectsGetXpnResources{
112238		ServerResponse: googleapi.ServerResponse{
112239			Header:         res.Header,
112240			HTTPStatusCode: res.StatusCode,
112241		},
112242	}
112243	target := &ret
112244	if err := gensupport.DecodeResponse(target, res); err != nil {
112245		return nil, err
112246	}
112247	return ret, nil
112248	// {
112249	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
112250	//   "flatPath": "projects/{project}/getXpnResources",
112251	//   "httpMethod": "GET",
112252	//   "id": "compute.projects.getXpnResources",
112253	//   "parameterOrder": [
112254	//     "project"
112255	//   ],
112256	//   "parameters": {
112257	//     "filter": {
112258	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112259	//       "location": "query",
112260	//       "type": "string"
112261	//     },
112262	//     "maxResults": {
112263	//       "default": "500",
112264	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112265	//       "format": "uint32",
112266	//       "location": "query",
112267	//       "minimum": "0",
112268	//       "type": "integer"
112269	//     },
112270	//     "orderBy": {
112271	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
112272	//       "location": "query",
112273	//       "type": "string"
112274	//     },
112275	//     "pageToken": {
112276	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112277	//       "location": "query",
112278	//       "type": "string"
112279	//     },
112280	//     "project": {
112281	//       "description": "Project ID for this request.",
112282	//       "location": "path",
112283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112284	//       "required": true,
112285	//       "type": "string"
112286	//     },
112287	//     "returnPartialSuccess": {
112288	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112289	//       "location": "query",
112290	//       "type": "boolean"
112291	//     }
112292	//   },
112293	//   "path": "projects/{project}/getXpnResources",
112294	//   "response": {
112295	//     "$ref": "ProjectsGetXpnResources"
112296	//   },
112297	//   "scopes": [
112298	//     "https://www.googleapis.com/auth/cloud-platform",
112299	//     "https://www.googleapis.com/auth/compute"
112300	//   ]
112301	// }
112302
112303}
112304
112305// Pages invokes f for each page of results.
112306// A non-nil error returned from f will halt the iteration.
112307// The provided context supersedes any context provided to the Context method.
112308func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
112309	c.ctx_ = ctx
112310	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112311	for {
112312		x, err := c.Do()
112313		if err != nil {
112314			return err
112315		}
112316		if err := f(x); err != nil {
112317			return err
112318		}
112319		if x.NextPageToken == "" {
112320			return nil
112321		}
112322		c.PageToken(x.NextPageToken)
112323	}
112324}
112325
112326// method id "compute.projects.listXpnHosts":
112327
112328type ProjectsListXpnHostsCall struct {
112329	s                           *Service
112330	project                     string
112331	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
112332	urlParams_                  gensupport.URLParams
112333	ctx_                        context.Context
112334	header_                     http.Header
112335}
112336
112337// ListXpnHosts: Lists all shared VPC host projects visible to the user
112338// in an organization.
112339//
112340// - project: Project ID for this request.
112341func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
112342	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112343	c.project = project
112344	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
112345	return c
112346}
112347
112348// Filter sets the optional parameter "filter": A filter expression that
112349// filters resources listed in the response. The expression must specify
112350// the field name, a comparison operator, and the value that you want to
112351// use for filtering. The value must be a string, a number, or a
112352// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112353// `<`. For example, if you are filtering Compute Engine instances, you
112354// can exclude instances named `example-instance` by specifying `name !=
112355// example-instance`. You can also filter nested fields. For example,
112356// you could specify `scheduling.automaticRestart = false` to include
112357// instances only if they are not scheduled for automatic restarts. You
112358// can use filtering on nested fields to filter based on resource
112359// labels. To filter on multiple expressions, provide each separate
112360// expression within parentheses. For example: ```
112361// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
112362// ``` By default, each expression is an `AND` expression. However, you
112363// can include `AND` and `OR` expressions explicitly. For example: ```
112364// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
112365// AND (scheduling.automaticRestart = true) ```
112366func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
112367	c.urlParams_.Set("filter", filter)
112368	return c
112369}
112370
112371// MaxResults sets the optional parameter "maxResults": The maximum
112372// number of results per page that should be returned. If the number of
112373// available results is larger than `maxResults`, Compute Engine returns
112374// a `nextPageToken` that can be used to get the next page of results in
112375// subsequent list requests. Acceptable values are `0` to `500`,
112376// inclusive. (Default: `500`)
112377func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
112378	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112379	return c
112380}
112381
112382// OrderBy sets the optional parameter "orderBy": Sorts list results by
112383// a certain order. By default, results are returned in alphanumerical
112384// order based on the resource name. You can also sort results in
112385// descending order based on the creation timestamp using
112386// `orderBy="creationTimestamp desc". This sorts results based on the
112387// `creationTimestamp` field in reverse chronological order (newest
112388// result first). Use this to sort resources like operations so that the
112389// newest operation is returned first. Currently, only sorting by `name`
112390// or `creationTimestamp desc` is supported.
112391func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
112392	c.urlParams_.Set("orderBy", orderBy)
112393	return c
112394}
112395
112396// PageToken sets the optional parameter "pageToken": Specifies a page
112397// token to use. Set `pageToken` to the `nextPageToken` returned by a
112398// previous list request to get the next page of results.
112399func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
112400	c.urlParams_.Set("pageToken", pageToken)
112401	return c
112402}
112403
112404// ReturnPartialSuccess sets the optional parameter
112405// "returnPartialSuccess": Opt-in for partial success behavior which
112406// provides partial results in case of failure. The default value is
112407// false.
112408func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall {
112409	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112410	return c
112411}
112412
112413// Fields allows partial responses to be retrieved. See
112414// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112415// for more information.
112416func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
112417	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112418	return c
112419}
112420
112421// Context sets the context to be used in this call's Do method. Any
112422// pending HTTP request will be aborted if the provided context is
112423// canceled.
112424func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
112425	c.ctx_ = ctx
112426	return c
112427}
112428
112429// Header returns an http.Header that can be modified by the caller to
112430// add HTTP headers to the request.
112431func (c *ProjectsListXpnHostsCall) Header() http.Header {
112432	if c.header_ == nil {
112433		c.header_ = make(http.Header)
112434	}
112435	return c.header_
112436}
112437
112438func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
112439	reqHeaders := make(http.Header)
112440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
112441	for k, v := range c.header_ {
112442		reqHeaders[k] = v
112443	}
112444	reqHeaders.Set("User-Agent", c.s.userAgent())
112445	var body io.Reader = nil
112446	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
112447	if err != nil {
112448		return nil, err
112449	}
112450	reqHeaders.Set("Content-Type", "application/json")
112451	c.urlParams_.Set("alt", alt)
112452	c.urlParams_.Set("prettyPrint", "false")
112453	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts")
112454	urls += "?" + c.urlParams_.Encode()
112455	req, err := http.NewRequest("POST", urls, body)
112456	if err != nil {
112457		return nil, err
112458	}
112459	req.Header = reqHeaders
112460	googleapi.Expand(req.URL, map[string]string{
112461		"project": c.project,
112462	})
112463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112464}
112465
112466// Do executes the "compute.projects.listXpnHosts" call.
112467// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
112468// status code is an error. Response headers are in either
112469// *XpnHostList.ServerResponse.Header or (if a response was returned at
112470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112471// to check whether the returned error was because
112472// http.StatusNotModified was returned.
112473func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
112474	gensupport.SetOptions(c.urlParams_, opts...)
112475	res, err := c.doRequest("json")
112476	if res != nil && res.StatusCode == http.StatusNotModified {
112477		if res.Body != nil {
112478			res.Body.Close()
112479		}
112480		return nil, &googleapi.Error{
112481			Code:   res.StatusCode,
112482			Header: res.Header,
112483		}
112484	}
112485	if err != nil {
112486		return nil, err
112487	}
112488	defer googleapi.CloseBody(res)
112489	if err := googleapi.CheckResponse(res); err != nil {
112490		return nil, err
112491	}
112492	ret := &XpnHostList{
112493		ServerResponse: googleapi.ServerResponse{
112494			Header:         res.Header,
112495			HTTPStatusCode: res.StatusCode,
112496		},
112497	}
112498	target := &ret
112499	if err := gensupport.DecodeResponse(target, res); err != nil {
112500		return nil, err
112501	}
112502	return ret, nil
112503	// {
112504	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
112505	//   "flatPath": "projects/{project}/listXpnHosts",
112506	//   "httpMethod": "POST",
112507	//   "id": "compute.projects.listXpnHosts",
112508	//   "parameterOrder": [
112509	//     "project"
112510	//   ],
112511	//   "parameters": {
112512	//     "filter": {
112513	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112514	//       "location": "query",
112515	//       "type": "string"
112516	//     },
112517	//     "maxResults": {
112518	//       "default": "500",
112519	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112520	//       "format": "uint32",
112521	//       "location": "query",
112522	//       "minimum": "0",
112523	//       "type": "integer"
112524	//     },
112525	//     "orderBy": {
112526	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
112527	//       "location": "query",
112528	//       "type": "string"
112529	//     },
112530	//     "pageToken": {
112531	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112532	//       "location": "query",
112533	//       "type": "string"
112534	//     },
112535	//     "project": {
112536	//       "description": "Project ID for this request.",
112537	//       "location": "path",
112538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112539	//       "required": true,
112540	//       "type": "string"
112541	//     },
112542	//     "returnPartialSuccess": {
112543	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112544	//       "location": "query",
112545	//       "type": "boolean"
112546	//     }
112547	//   },
112548	//   "path": "projects/{project}/listXpnHosts",
112549	//   "request": {
112550	//     "$ref": "ProjectsListXpnHostsRequest"
112551	//   },
112552	//   "response": {
112553	//     "$ref": "XpnHostList"
112554	//   },
112555	//   "scopes": [
112556	//     "https://www.googleapis.com/auth/cloud-platform",
112557	//     "https://www.googleapis.com/auth/compute"
112558	//   ]
112559	// }
112560
112561}
112562
112563// Pages invokes f for each page of results.
112564// A non-nil error returned from f will halt the iteration.
112565// The provided context supersedes any context provided to the Context method.
112566func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
112567	c.ctx_ = ctx
112568	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112569	for {
112570		x, err := c.Do()
112571		if err != nil {
112572			return err
112573		}
112574		if err := f(x); err != nil {
112575			return err
112576		}
112577		if x.NextPageToken == "" {
112578			return nil
112579		}
112580		c.PageToken(x.NextPageToken)
112581	}
112582}
112583
112584// method id "compute.projects.moveDisk":
112585
112586type ProjectsMoveDiskCall struct {
112587	s               *Service
112588	project         string
112589	diskmoverequest *DiskMoveRequest
112590	urlParams_      gensupport.URLParams
112591	ctx_            context.Context
112592	header_         http.Header
112593}
112594
112595// MoveDisk: Moves a persistent disk from one zone to another.
112596//
112597// - project: Project ID for this request.
112598func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
112599	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112600	c.project = project
112601	c.diskmoverequest = diskmoverequest
112602	return c
112603}
112604
112605// RequestId sets the optional parameter "requestId": An optional
112606// request ID to identify requests. Specify a unique request ID so that
112607// if you must retry your request, the server will know to ignore the
112608// request if it has already been completed. For example, consider a
112609// situation where you make an initial request and the request times
112610// out. If you make the request again with the same request ID, the
112611// server can check if original operation with the same request ID was
112612// received, and if so, will ignore the second request. This prevents
112613// clients from accidentally creating duplicate commitments. The request
112614// ID must be a valid UUID with the exception that zero UUID is not
112615// supported ( 00000000-0000-0000-0000-000000000000).
112616func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
112617	c.urlParams_.Set("requestId", requestId)
112618	return c
112619}
112620
112621// Fields allows partial responses to be retrieved. See
112622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112623// for more information.
112624func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
112625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112626	return c
112627}
112628
112629// Context sets the context to be used in this call's Do method. Any
112630// pending HTTP request will be aborted if the provided context is
112631// canceled.
112632func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
112633	c.ctx_ = ctx
112634	return c
112635}
112636
112637// Header returns an http.Header that can be modified by the caller to
112638// add HTTP headers to the request.
112639func (c *ProjectsMoveDiskCall) Header() http.Header {
112640	if c.header_ == nil {
112641		c.header_ = make(http.Header)
112642	}
112643	return c.header_
112644}
112645
112646func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
112647	reqHeaders := make(http.Header)
112648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
112649	for k, v := range c.header_ {
112650		reqHeaders[k] = v
112651	}
112652	reqHeaders.Set("User-Agent", c.s.userAgent())
112653	var body io.Reader = nil
112654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
112655	if err != nil {
112656		return nil, err
112657	}
112658	reqHeaders.Set("Content-Type", "application/json")
112659	c.urlParams_.Set("alt", alt)
112660	c.urlParams_.Set("prettyPrint", "false")
112661	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk")
112662	urls += "?" + c.urlParams_.Encode()
112663	req, err := http.NewRequest("POST", urls, body)
112664	if err != nil {
112665		return nil, err
112666	}
112667	req.Header = reqHeaders
112668	googleapi.Expand(req.URL, map[string]string{
112669		"project": c.project,
112670	})
112671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112672}
112673
112674// Do executes the "compute.projects.moveDisk" call.
112675// Exactly one of *Operation or error will be non-nil. Any non-2xx
112676// status code is an error. Response headers are in either
112677// *Operation.ServerResponse.Header or (if a response was returned at
112678// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112679// to check whether the returned error was because
112680// http.StatusNotModified was returned.
112681func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112682	gensupport.SetOptions(c.urlParams_, opts...)
112683	res, err := c.doRequest("json")
112684	if res != nil && res.StatusCode == http.StatusNotModified {
112685		if res.Body != nil {
112686			res.Body.Close()
112687		}
112688		return nil, &googleapi.Error{
112689			Code:   res.StatusCode,
112690			Header: res.Header,
112691		}
112692	}
112693	if err != nil {
112694		return nil, err
112695	}
112696	defer googleapi.CloseBody(res)
112697	if err := googleapi.CheckResponse(res); err != nil {
112698		return nil, err
112699	}
112700	ret := &Operation{
112701		ServerResponse: googleapi.ServerResponse{
112702			Header:         res.Header,
112703			HTTPStatusCode: res.StatusCode,
112704		},
112705	}
112706	target := &ret
112707	if err := gensupport.DecodeResponse(target, res); err != nil {
112708		return nil, err
112709	}
112710	return ret, nil
112711	// {
112712	//   "description": "Moves a persistent disk from one zone to another.",
112713	//   "flatPath": "projects/{project}/moveDisk",
112714	//   "httpMethod": "POST",
112715	//   "id": "compute.projects.moveDisk",
112716	//   "parameterOrder": [
112717	//     "project"
112718	//   ],
112719	//   "parameters": {
112720	//     "project": {
112721	//       "description": "Project ID for this request.",
112722	//       "location": "path",
112723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112724	//       "required": true,
112725	//       "type": "string"
112726	//     },
112727	//     "requestId": {
112728	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
112729	//       "location": "query",
112730	//       "type": "string"
112731	//     }
112732	//   },
112733	//   "path": "projects/{project}/moveDisk",
112734	//   "request": {
112735	//     "$ref": "DiskMoveRequest"
112736	//   },
112737	//   "response": {
112738	//     "$ref": "Operation"
112739	//   },
112740	//   "scopes": [
112741	//     "https://www.googleapis.com/auth/cloud-platform",
112742	//     "https://www.googleapis.com/auth/compute"
112743	//   ]
112744	// }
112745
112746}
112747
112748// method id "compute.projects.moveInstance":
112749
112750type ProjectsMoveInstanceCall struct {
112751	s                   *Service
112752	project             string
112753	instancemoverequest *InstanceMoveRequest
112754	urlParams_          gensupport.URLParams
112755	ctx_                context.Context
112756	header_             http.Header
112757}
112758
112759// MoveInstance: Moves an instance and its attached persistent disks
112760// from one zone to another.
112761//
112762// - project: Project ID for this request.
112763func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
112764	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112765	c.project = project
112766	c.instancemoverequest = instancemoverequest
112767	return c
112768}
112769
112770// RequestId sets the optional parameter "requestId": An optional
112771// request ID to identify requests. Specify a unique request ID so that
112772// if you must retry your request, the server will know to ignore the
112773// request if it has already been completed. For example, consider a
112774// situation where you make an initial request and the request times
112775// out. If you make the request again with the same request ID, the
112776// server can check if original operation with the same request ID was
112777// received, and if so, will ignore the second request. This prevents
112778// clients from accidentally creating duplicate commitments. The request
112779// ID must be a valid UUID with the exception that zero UUID is not
112780// supported ( 00000000-0000-0000-0000-000000000000).
112781func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
112782	c.urlParams_.Set("requestId", requestId)
112783	return c
112784}
112785
112786// Fields allows partial responses to be retrieved. See
112787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112788// for more information.
112789func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
112790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112791	return c
112792}
112793
112794// Context sets the context to be used in this call's Do method. Any
112795// pending HTTP request will be aborted if the provided context is
112796// canceled.
112797func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
112798	c.ctx_ = ctx
112799	return c
112800}
112801
112802// Header returns an http.Header that can be modified by the caller to
112803// add HTTP headers to the request.
112804func (c *ProjectsMoveInstanceCall) Header() http.Header {
112805	if c.header_ == nil {
112806		c.header_ = make(http.Header)
112807	}
112808	return c.header_
112809}
112810
112811func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
112812	reqHeaders := make(http.Header)
112813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
112814	for k, v := range c.header_ {
112815		reqHeaders[k] = v
112816	}
112817	reqHeaders.Set("User-Agent", c.s.userAgent())
112818	var body io.Reader = nil
112819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
112820	if err != nil {
112821		return nil, err
112822	}
112823	reqHeaders.Set("Content-Type", "application/json")
112824	c.urlParams_.Set("alt", alt)
112825	c.urlParams_.Set("prettyPrint", "false")
112826	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance")
112827	urls += "?" + c.urlParams_.Encode()
112828	req, err := http.NewRequest("POST", urls, body)
112829	if err != nil {
112830		return nil, err
112831	}
112832	req.Header = reqHeaders
112833	googleapi.Expand(req.URL, map[string]string{
112834		"project": c.project,
112835	})
112836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112837}
112838
112839// Do executes the "compute.projects.moveInstance" call.
112840// Exactly one of *Operation or error will be non-nil. Any non-2xx
112841// status code is an error. Response headers are in either
112842// *Operation.ServerResponse.Header or (if a response was returned at
112843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112844// to check whether the returned error was because
112845// http.StatusNotModified was returned.
112846func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112847	gensupport.SetOptions(c.urlParams_, opts...)
112848	res, err := c.doRequest("json")
112849	if res != nil && res.StatusCode == http.StatusNotModified {
112850		if res.Body != nil {
112851			res.Body.Close()
112852		}
112853		return nil, &googleapi.Error{
112854			Code:   res.StatusCode,
112855			Header: res.Header,
112856		}
112857	}
112858	if err != nil {
112859		return nil, err
112860	}
112861	defer googleapi.CloseBody(res)
112862	if err := googleapi.CheckResponse(res); err != nil {
112863		return nil, err
112864	}
112865	ret := &Operation{
112866		ServerResponse: googleapi.ServerResponse{
112867			Header:         res.Header,
112868			HTTPStatusCode: res.StatusCode,
112869		},
112870	}
112871	target := &ret
112872	if err := gensupport.DecodeResponse(target, res); err != nil {
112873		return nil, err
112874	}
112875	return ret, nil
112876	// {
112877	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
112878	//   "flatPath": "projects/{project}/moveInstance",
112879	//   "httpMethod": "POST",
112880	//   "id": "compute.projects.moveInstance",
112881	//   "parameterOrder": [
112882	//     "project"
112883	//   ],
112884	//   "parameters": {
112885	//     "project": {
112886	//       "description": "Project ID for this request.",
112887	//       "location": "path",
112888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112889	//       "required": true,
112890	//       "type": "string"
112891	//     },
112892	//     "requestId": {
112893	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
112894	//       "location": "query",
112895	//       "type": "string"
112896	//     }
112897	//   },
112898	//   "path": "projects/{project}/moveInstance",
112899	//   "request": {
112900	//     "$ref": "InstanceMoveRequest"
112901	//   },
112902	//   "response": {
112903	//     "$ref": "Operation"
112904	//   },
112905	//   "scopes": [
112906	//     "https://www.googleapis.com/auth/cloud-platform",
112907	//     "https://www.googleapis.com/auth/compute"
112908	//   ]
112909	// }
112910
112911}
112912
112913// method id "compute.projects.setCommonInstanceMetadata":
112914
112915type ProjectsSetCommonInstanceMetadataCall struct {
112916	s          *Service
112917	project    string
112918	metadata   *Metadata
112919	urlParams_ gensupport.URLParams
112920	ctx_       context.Context
112921	header_    http.Header
112922}
112923
112924// SetCommonInstanceMetadata: Sets metadata common to all instances
112925// within the specified project using the data included in the request.
112926//
112927// - project: Project ID for this request.
112928func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
112929	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112930	c.project = project
112931	c.metadata = metadata
112932	return c
112933}
112934
112935// RequestId sets the optional parameter "requestId": An optional
112936// request ID to identify requests. Specify a unique request ID so that
112937// if you must retry your request, the server will know to ignore the
112938// request if it has already been completed. For example, consider a
112939// situation where you make an initial request and the request times
112940// out. If you make the request again with the same request ID, the
112941// server can check if original operation with the same request ID was
112942// received, and if so, will ignore the second request. This prevents
112943// clients from accidentally creating duplicate commitments. The request
112944// ID must be a valid UUID with the exception that zero UUID is not
112945// supported ( 00000000-0000-0000-0000-000000000000).
112946func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
112947	c.urlParams_.Set("requestId", requestId)
112948	return c
112949}
112950
112951// Fields allows partial responses to be retrieved. See
112952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112953// for more information.
112954func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
112955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112956	return c
112957}
112958
112959// Context sets the context to be used in this call's Do method. Any
112960// pending HTTP request will be aborted if the provided context is
112961// canceled.
112962func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
112963	c.ctx_ = ctx
112964	return c
112965}
112966
112967// Header returns an http.Header that can be modified by the caller to
112968// add HTTP headers to the request.
112969func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
112970	if c.header_ == nil {
112971		c.header_ = make(http.Header)
112972	}
112973	return c.header_
112974}
112975
112976func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
112977	reqHeaders := make(http.Header)
112978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
112979	for k, v := range c.header_ {
112980		reqHeaders[k] = v
112981	}
112982	reqHeaders.Set("User-Agent", c.s.userAgent())
112983	var body io.Reader = nil
112984	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
112985	if err != nil {
112986		return nil, err
112987	}
112988	reqHeaders.Set("Content-Type", "application/json")
112989	c.urlParams_.Set("alt", alt)
112990	c.urlParams_.Set("prettyPrint", "false")
112991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata")
112992	urls += "?" + c.urlParams_.Encode()
112993	req, err := http.NewRequest("POST", urls, body)
112994	if err != nil {
112995		return nil, err
112996	}
112997	req.Header = reqHeaders
112998	googleapi.Expand(req.URL, map[string]string{
112999		"project": c.project,
113000	})
113001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113002}
113003
113004// Do executes the "compute.projects.setCommonInstanceMetadata" call.
113005// Exactly one of *Operation or error will be non-nil. Any non-2xx
113006// status code is an error. Response headers are in either
113007// *Operation.ServerResponse.Header or (if a response was returned at
113008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113009// to check whether the returned error was because
113010// http.StatusNotModified was returned.
113011func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113012	gensupport.SetOptions(c.urlParams_, opts...)
113013	res, err := c.doRequest("json")
113014	if res != nil && res.StatusCode == http.StatusNotModified {
113015		if res.Body != nil {
113016			res.Body.Close()
113017		}
113018		return nil, &googleapi.Error{
113019			Code:   res.StatusCode,
113020			Header: res.Header,
113021		}
113022	}
113023	if err != nil {
113024		return nil, err
113025	}
113026	defer googleapi.CloseBody(res)
113027	if err := googleapi.CheckResponse(res); err != nil {
113028		return nil, err
113029	}
113030	ret := &Operation{
113031		ServerResponse: googleapi.ServerResponse{
113032			Header:         res.Header,
113033			HTTPStatusCode: res.StatusCode,
113034		},
113035	}
113036	target := &ret
113037	if err := gensupport.DecodeResponse(target, res); err != nil {
113038		return nil, err
113039	}
113040	return ret, nil
113041	// {
113042	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
113043	//   "flatPath": "projects/{project}/setCommonInstanceMetadata",
113044	//   "httpMethod": "POST",
113045	//   "id": "compute.projects.setCommonInstanceMetadata",
113046	//   "parameterOrder": [
113047	//     "project"
113048	//   ],
113049	//   "parameters": {
113050	//     "project": {
113051	//       "description": "Project ID for this request.",
113052	//       "location": "path",
113053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113054	//       "required": true,
113055	//       "type": "string"
113056	//     },
113057	//     "requestId": {
113058	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113059	//       "location": "query",
113060	//       "type": "string"
113061	//     }
113062	//   },
113063	//   "path": "projects/{project}/setCommonInstanceMetadata",
113064	//   "request": {
113065	//     "$ref": "Metadata"
113066	//   },
113067	//   "response": {
113068	//     "$ref": "Operation"
113069	//   },
113070	//   "scopes": [
113071	//     "https://www.googleapis.com/auth/cloud-platform",
113072	//     "https://www.googleapis.com/auth/compute"
113073	//   ]
113074	// }
113075
113076}
113077
113078// method id "compute.projects.setDefaultNetworkTier":
113079
113080type ProjectsSetDefaultNetworkTierCall struct {
113081	s                                    *Service
113082	project                              string
113083	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
113084	urlParams_                           gensupport.URLParams
113085	ctx_                                 context.Context
113086	header_                              http.Header
113087}
113088
113089// SetDefaultNetworkTier: Sets the default network tier of the project.
113090// The default network tier is used when an
113091// address/forwardingRule/instance is created without specifying the
113092// network tier field.
113093//
113094// - project: Project ID for this request.
113095func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
113096	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113097	c.project = project
113098	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
113099	return c
113100}
113101
113102// RequestId sets the optional parameter "requestId": An optional
113103// request ID to identify requests. Specify a unique request ID so that
113104// if you must retry your request, the server will know to ignore the
113105// request if it has already been completed. For example, consider a
113106// situation where you make an initial request and the request times
113107// out. If you make the request again with the same request ID, the
113108// server can check if original operation with the same request ID was
113109// received, and if so, will ignore the second request. This prevents
113110// clients from accidentally creating duplicate commitments. The request
113111// ID must be a valid UUID with the exception that zero UUID is not
113112// supported ( 00000000-0000-0000-0000-000000000000).
113113func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
113114	c.urlParams_.Set("requestId", requestId)
113115	return c
113116}
113117
113118// Fields allows partial responses to be retrieved. See
113119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113120// for more information.
113121func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
113122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113123	return c
113124}
113125
113126// Context sets the context to be used in this call's Do method. Any
113127// pending HTTP request will be aborted if the provided context is
113128// canceled.
113129func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
113130	c.ctx_ = ctx
113131	return c
113132}
113133
113134// Header returns an http.Header that can be modified by the caller to
113135// add HTTP headers to the request.
113136func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
113137	if c.header_ == nil {
113138		c.header_ = make(http.Header)
113139	}
113140	return c.header_
113141}
113142
113143func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
113144	reqHeaders := make(http.Header)
113145	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
113146	for k, v := range c.header_ {
113147		reqHeaders[k] = v
113148	}
113149	reqHeaders.Set("User-Agent", c.s.userAgent())
113150	var body io.Reader = nil
113151	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
113152	if err != nil {
113153		return nil, err
113154	}
113155	reqHeaders.Set("Content-Type", "application/json")
113156	c.urlParams_.Set("alt", alt)
113157	c.urlParams_.Set("prettyPrint", "false")
113158	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier")
113159	urls += "?" + c.urlParams_.Encode()
113160	req, err := http.NewRequest("POST", urls, body)
113161	if err != nil {
113162		return nil, err
113163	}
113164	req.Header = reqHeaders
113165	googleapi.Expand(req.URL, map[string]string{
113166		"project": c.project,
113167	})
113168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113169}
113170
113171// Do executes the "compute.projects.setDefaultNetworkTier" call.
113172// Exactly one of *Operation or error will be non-nil. Any non-2xx
113173// status code is an error. Response headers are in either
113174// *Operation.ServerResponse.Header or (if a response was returned at
113175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113176// to check whether the returned error was because
113177// http.StatusNotModified was returned.
113178func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113179	gensupport.SetOptions(c.urlParams_, opts...)
113180	res, err := c.doRequest("json")
113181	if res != nil && res.StatusCode == http.StatusNotModified {
113182		if res.Body != nil {
113183			res.Body.Close()
113184		}
113185		return nil, &googleapi.Error{
113186			Code:   res.StatusCode,
113187			Header: res.Header,
113188		}
113189	}
113190	if err != nil {
113191		return nil, err
113192	}
113193	defer googleapi.CloseBody(res)
113194	if err := googleapi.CheckResponse(res); err != nil {
113195		return nil, err
113196	}
113197	ret := &Operation{
113198		ServerResponse: googleapi.ServerResponse{
113199			Header:         res.Header,
113200			HTTPStatusCode: res.StatusCode,
113201		},
113202	}
113203	target := &ret
113204	if err := gensupport.DecodeResponse(target, res); err != nil {
113205		return nil, err
113206	}
113207	return ret, nil
113208	// {
113209	//   "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.",
113210	//   "flatPath": "projects/{project}/setDefaultNetworkTier",
113211	//   "httpMethod": "POST",
113212	//   "id": "compute.projects.setDefaultNetworkTier",
113213	//   "parameterOrder": [
113214	//     "project"
113215	//   ],
113216	//   "parameters": {
113217	//     "project": {
113218	//       "description": "Project ID for this request.",
113219	//       "location": "path",
113220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113221	//       "required": true,
113222	//       "type": "string"
113223	//     },
113224	//     "requestId": {
113225	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113226	//       "location": "query",
113227	//       "type": "string"
113228	//     }
113229	//   },
113230	//   "path": "projects/{project}/setDefaultNetworkTier",
113231	//   "request": {
113232	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
113233	//   },
113234	//   "response": {
113235	//     "$ref": "Operation"
113236	//   },
113237	//   "scopes": [
113238	//     "https://www.googleapis.com/auth/cloud-platform",
113239	//     "https://www.googleapis.com/auth/compute"
113240	//   ]
113241	// }
113242
113243}
113244
113245// method id "compute.projects.setUsageExportBucket":
113246
113247type ProjectsSetUsageExportBucketCall struct {
113248	s                   *Service
113249	project             string
113250	usageexportlocation *UsageExportLocation
113251	urlParams_          gensupport.URLParams
113252	ctx_                context.Context
113253	header_             http.Header
113254}
113255
113256// SetUsageExportBucket: Enables the usage export feature and sets the
113257// usage export bucket where reports are stored. If you provide an empty
113258// request body using this method, the usage export feature will be
113259// disabled.
113260//
113261// - project: Project ID for this request.
113262func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
113263	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113264	c.project = project
113265	c.usageexportlocation = usageexportlocation
113266	return c
113267}
113268
113269// RequestId sets the optional parameter "requestId": An optional
113270// request ID to identify requests. Specify a unique request ID so that
113271// if you must retry your request, the server will know to ignore the
113272// request if it has already been completed. For example, consider a
113273// situation where you make an initial request and the request times
113274// out. If you make the request again with the same request ID, the
113275// server can check if original operation with the same request ID was
113276// received, and if so, will ignore the second request. This prevents
113277// clients from accidentally creating duplicate commitments. The request
113278// ID must be a valid UUID with the exception that zero UUID is not
113279// supported ( 00000000-0000-0000-0000-000000000000).
113280func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
113281	c.urlParams_.Set("requestId", requestId)
113282	return c
113283}
113284
113285// Fields allows partial responses to be retrieved. See
113286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113287// for more information.
113288func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
113289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113290	return c
113291}
113292
113293// Context sets the context to be used in this call's Do method. Any
113294// pending HTTP request will be aborted if the provided context is
113295// canceled.
113296func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
113297	c.ctx_ = ctx
113298	return c
113299}
113300
113301// Header returns an http.Header that can be modified by the caller to
113302// add HTTP headers to the request.
113303func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
113304	if c.header_ == nil {
113305		c.header_ = make(http.Header)
113306	}
113307	return c.header_
113308}
113309
113310func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
113311	reqHeaders := make(http.Header)
113312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
113313	for k, v := range c.header_ {
113314		reqHeaders[k] = v
113315	}
113316	reqHeaders.Set("User-Agent", c.s.userAgent())
113317	var body io.Reader = nil
113318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
113319	if err != nil {
113320		return nil, err
113321	}
113322	reqHeaders.Set("Content-Type", "application/json")
113323	c.urlParams_.Set("alt", alt)
113324	c.urlParams_.Set("prettyPrint", "false")
113325	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket")
113326	urls += "?" + c.urlParams_.Encode()
113327	req, err := http.NewRequest("POST", urls, body)
113328	if err != nil {
113329		return nil, err
113330	}
113331	req.Header = reqHeaders
113332	googleapi.Expand(req.URL, map[string]string{
113333		"project": c.project,
113334	})
113335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113336}
113337
113338// Do executes the "compute.projects.setUsageExportBucket" call.
113339// Exactly one of *Operation or error will be non-nil. Any non-2xx
113340// status code is an error. Response headers are in either
113341// *Operation.ServerResponse.Header or (if a response was returned at
113342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113343// to check whether the returned error was because
113344// http.StatusNotModified was returned.
113345func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113346	gensupport.SetOptions(c.urlParams_, opts...)
113347	res, err := c.doRequest("json")
113348	if res != nil && res.StatusCode == http.StatusNotModified {
113349		if res.Body != nil {
113350			res.Body.Close()
113351		}
113352		return nil, &googleapi.Error{
113353			Code:   res.StatusCode,
113354			Header: res.Header,
113355		}
113356	}
113357	if err != nil {
113358		return nil, err
113359	}
113360	defer googleapi.CloseBody(res)
113361	if err := googleapi.CheckResponse(res); err != nil {
113362		return nil, err
113363	}
113364	ret := &Operation{
113365		ServerResponse: googleapi.ServerResponse{
113366			Header:         res.Header,
113367			HTTPStatusCode: res.StatusCode,
113368		},
113369	}
113370	target := &ret
113371	if err := gensupport.DecodeResponse(target, res); err != nil {
113372		return nil, err
113373	}
113374	return ret, nil
113375	// {
113376	//   "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.",
113377	//   "flatPath": "projects/{project}/setUsageExportBucket",
113378	//   "httpMethod": "POST",
113379	//   "id": "compute.projects.setUsageExportBucket",
113380	//   "parameterOrder": [
113381	//     "project"
113382	//   ],
113383	//   "parameters": {
113384	//     "project": {
113385	//       "description": "Project ID for this request.",
113386	//       "location": "path",
113387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113388	//       "required": true,
113389	//       "type": "string"
113390	//     },
113391	//     "requestId": {
113392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113393	//       "location": "query",
113394	//       "type": "string"
113395	//     }
113396	//   },
113397	//   "path": "projects/{project}/setUsageExportBucket",
113398	//   "request": {
113399	//     "$ref": "UsageExportLocation"
113400	//   },
113401	//   "response": {
113402	//     "$ref": "Operation"
113403	//   },
113404	//   "scopes": [
113405	//     "https://www.googleapis.com/auth/cloud-platform",
113406	//     "https://www.googleapis.com/auth/compute",
113407	//     "https://www.googleapis.com/auth/devstorage.full_control",
113408	//     "https://www.googleapis.com/auth/devstorage.read_only",
113409	//     "https://www.googleapis.com/auth/devstorage.read_write"
113410	//   ]
113411	// }
113412
113413}
113414
113415// method id "compute.publicAdvertisedPrefixes.delete":
113416
113417type PublicAdvertisedPrefixesDeleteCall struct {
113418	s                      *Service
113419	project                string
113420	publicAdvertisedPrefix string
113421	urlParams_             gensupport.URLParams
113422	ctx_                   context.Context
113423	header_                http.Header
113424}
113425
113426// Delete: Deletes the specified PublicAdvertisedPrefix
113427//
113428// - project: Project ID for this request.
113429// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
113430//   to delete.
113431func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
113432	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113433	c.project = project
113434	c.publicAdvertisedPrefix = publicAdvertisedPrefix
113435	return c
113436}
113437
113438// RequestId sets the optional parameter "requestId": An optional
113439// request ID to identify requests. Specify a unique request ID so that
113440// if you must retry your request, the server will know to ignore the
113441// request if it has already been completed. For example, consider a
113442// situation where you make an initial request and the request times
113443// out. If you make the request again with the same request ID, the
113444// server can check if original operation with the same request ID was
113445// received, and if so, will ignore the second request. This prevents
113446// clients from accidentally creating duplicate commitments. The request
113447// ID must be a valid UUID with the exception that zero UUID is not
113448// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
113449// MixerMutationRequestBuilder
113450func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
113451	c.urlParams_.Set("requestId", requestId)
113452	return c
113453}
113454
113455// Fields allows partial responses to be retrieved. See
113456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113457// for more information.
113458func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
113459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113460	return c
113461}
113462
113463// Context sets the context to be used in this call's Do method. Any
113464// pending HTTP request will be aborted if the provided context is
113465// canceled.
113466func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
113467	c.ctx_ = ctx
113468	return c
113469}
113470
113471// Header returns an http.Header that can be modified by the caller to
113472// add HTTP headers to the request.
113473func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
113474	if c.header_ == nil {
113475		c.header_ = make(http.Header)
113476	}
113477	return c.header_
113478}
113479
113480func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
113481	reqHeaders := make(http.Header)
113482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
113483	for k, v := range c.header_ {
113484		reqHeaders[k] = v
113485	}
113486	reqHeaders.Set("User-Agent", c.s.userAgent())
113487	var body io.Reader = nil
113488	c.urlParams_.Set("alt", alt)
113489	c.urlParams_.Set("prettyPrint", "false")
113490	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
113491	urls += "?" + c.urlParams_.Encode()
113492	req, err := http.NewRequest("DELETE", urls, body)
113493	if err != nil {
113494		return nil, err
113495	}
113496	req.Header = reqHeaders
113497	googleapi.Expand(req.URL, map[string]string{
113498		"project":                c.project,
113499		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
113500	})
113501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113502}
113503
113504// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
113505// Exactly one of *Operation or error will be non-nil. Any non-2xx
113506// status code is an error. Response headers are in either
113507// *Operation.ServerResponse.Header or (if a response was returned at
113508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113509// to check whether the returned error was because
113510// http.StatusNotModified was returned.
113511func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113512	gensupport.SetOptions(c.urlParams_, opts...)
113513	res, err := c.doRequest("json")
113514	if res != nil && res.StatusCode == http.StatusNotModified {
113515		if res.Body != nil {
113516			res.Body.Close()
113517		}
113518		return nil, &googleapi.Error{
113519			Code:   res.StatusCode,
113520			Header: res.Header,
113521		}
113522	}
113523	if err != nil {
113524		return nil, err
113525	}
113526	defer googleapi.CloseBody(res)
113527	if err := googleapi.CheckResponse(res); err != nil {
113528		return nil, err
113529	}
113530	ret := &Operation{
113531		ServerResponse: googleapi.ServerResponse{
113532			Header:         res.Header,
113533			HTTPStatusCode: res.StatusCode,
113534		},
113535	}
113536	target := &ret
113537	if err := gensupport.DecodeResponse(target, res); err != nil {
113538		return nil, err
113539	}
113540	return ret, nil
113541	// {
113542	//   "description": "Deletes the specified PublicAdvertisedPrefix",
113543	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113544	//   "httpMethod": "DELETE",
113545	//   "id": "compute.publicAdvertisedPrefixes.delete",
113546	//   "parameterOrder": [
113547	//     "project",
113548	//     "publicAdvertisedPrefix"
113549	//   ],
113550	//   "parameters": {
113551	//     "project": {
113552	//       "description": "Project ID for this request.",
113553	//       "location": "path",
113554	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113555	//       "required": true,
113556	//       "type": "string"
113557	//     },
113558	//     "publicAdvertisedPrefix": {
113559	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
113560	//       "location": "path",
113561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113562	//       "required": true,
113563	//       "type": "string"
113564	//     },
113565	//     "requestId": {
113566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
113567	//       "location": "query",
113568	//       "type": "string"
113569	//     }
113570	//   },
113571	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113572	//   "response": {
113573	//     "$ref": "Operation"
113574	//   },
113575	//   "scopes": [
113576	//     "https://www.googleapis.com/auth/cloud-platform",
113577	//     "https://www.googleapis.com/auth/compute"
113578	//   ]
113579	// }
113580
113581}
113582
113583// method id "compute.publicAdvertisedPrefixes.get":
113584
113585type PublicAdvertisedPrefixesGetCall struct {
113586	s                      *Service
113587	project                string
113588	publicAdvertisedPrefix string
113589	urlParams_             gensupport.URLParams
113590	ifNoneMatch_           string
113591	ctx_                   context.Context
113592	header_                http.Header
113593}
113594
113595// Get: Returns the specified PublicAdvertisedPrefix resource.
113596//
113597// - project: Project ID for this request.
113598// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
113599//   to return.
113600func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
113601	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113602	c.project = project
113603	c.publicAdvertisedPrefix = publicAdvertisedPrefix
113604	return c
113605}
113606
113607// Fields allows partial responses to be retrieved. See
113608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113609// for more information.
113610func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
113611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113612	return c
113613}
113614
113615// IfNoneMatch sets the optional parameter which makes the operation
113616// fail if the object's ETag matches the given value. This is useful for
113617// getting updates only after the object has changed since the last
113618// request. Use googleapi.IsNotModified to check whether the response
113619// error from Do is the result of In-None-Match.
113620func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
113621	c.ifNoneMatch_ = entityTag
113622	return c
113623}
113624
113625// Context sets the context to be used in this call's Do method. Any
113626// pending HTTP request will be aborted if the provided context is
113627// canceled.
113628func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
113629	c.ctx_ = ctx
113630	return c
113631}
113632
113633// Header returns an http.Header that can be modified by the caller to
113634// add HTTP headers to the request.
113635func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
113636	if c.header_ == nil {
113637		c.header_ = make(http.Header)
113638	}
113639	return c.header_
113640}
113641
113642func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
113643	reqHeaders := make(http.Header)
113644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
113645	for k, v := range c.header_ {
113646		reqHeaders[k] = v
113647	}
113648	reqHeaders.Set("User-Agent", c.s.userAgent())
113649	if c.ifNoneMatch_ != "" {
113650		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113651	}
113652	var body io.Reader = nil
113653	c.urlParams_.Set("alt", alt)
113654	c.urlParams_.Set("prettyPrint", "false")
113655	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
113656	urls += "?" + c.urlParams_.Encode()
113657	req, err := http.NewRequest("GET", urls, body)
113658	if err != nil {
113659		return nil, err
113660	}
113661	req.Header = reqHeaders
113662	googleapi.Expand(req.URL, map[string]string{
113663		"project":                c.project,
113664		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
113665	})
113666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113667}
113668
113669// Do executes the "compute.publicAdvertisedPrefixes.get" call.
113670// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
113671// non-2xx status code is an error. Response headers are in either
113672// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
113673// returned at all) in error.(*googleapi.Error).Header. Use
113674// googleapi.IsNotModified to check whether the returned error was
113675// because http.StatusNotModified was returned.
113676func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
113677	gensupport.SetOptions(c.urlParams_, opts...)
113678	res, err := c.doRequest("json")
113679	if res != nil && res.StatusCode == http.StatusNotModified {
113680		if res.Body != nil {
113681			res.Body.Close()
113682		}
113683		return nil, &googleapi.Error{
113684			Code:   res.StatusCode,
113685			Header: res.Header,
113686		}
113687	}
113688	if err != nil {
113689		return nil, err
113690	}
113691	defer googleapi.CloseBody(res)
113692	if err := googleapi.CheckResponse(res); err != nil {
113693		return nil, err
113694	}
113695	ret := &PublicAdvertisedPrefix{
113696		ServerResponse: googleapi.ServerResponse{
113697			Header:         res.Header,
113698			HTTPStatusCode: res.StatusCode,
113699		},
113700	}
113701	target := &ret
113702	if err := gensupport.DecodeResponse(target, res); err != nil {
113703		return nil, err
113704	}
113705	return ret, nil
113706	// {
113707	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
113708	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113709	//   "httpMethod": "GET",
113710	//   "id": "compute.publicAdvertisedPrefixes.get",
113711	//   "parameterOrder": [
113712	//     "project",
113713	//     "publicAdvertisedPrefix"
113714	//   ],
113715	//   "parameters": {
113716	//     "project": {
113717	//       "description": "Project ID for this request.",
113718	//       "location": "path",
113719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113720	//       "required": true,
113721	//       "type": "string"
113722	//     },
113723	//     "publicAdvertisedPrefix": {
113724	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
113725	//       "location": "path",
113726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113727	//       "required": true,
113728	//       "type": "string"
113729	//     }
113730	//   },
113731	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113732	//   "response": {
113733	//     "$ref": "PublicAdvertisedPrefix"
113734	//   },
113735	//   "scopes": [
113736	//     "https://www.googleapis.com/auth/cloud-platform",
113737	//     "https://www.googleapis.com/auth/compute",
113738	//     "https://www.googleapis.com/auth/compute.readonly"
113739	//   ]
113740	// }
113741
113742}
113743
113744// method id "compute.publicAdvertisedPrefixes.insert":
113745
113746type PublicAdvertisedPrefixesInsertCall struct {
113747	s                      *Service
113748	project                string
113749	publicadvertisedprefix *PublicAdvertisedPrefix
113750	urlParams_             gensupport.URLParams
113751	ctx_                   context.Context
113752	header_                http.Header
113753}
113754
113755// Insert: Creates a PublicAdvertisedPrefix in the specified project
113756// using the parameters that are included in the request.
113757//
113758// - project: Project ID for this request.
113759func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
113760	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113761	c.project = project
113762	c.publicadvertisedprefix = publicadvertisedprefix
113763	return c
113764}
113765
113766// RequestId sets the optional parameter "requestId": An optional
113767// request ID to identify requests. Specify a unique request ID so that
113768// if you must retry your request, the server will know to ignore the
113769// request if it has already been completed. For example, consider a
113770// situation where you make an initial request and the request times
113771// out. If you make the request again with the same request ID, the
113772// server can check if original operation with the same request ID was
113773// received, and if so, will ignore the second request. This prevents
113774// clients from accidentally creating duplicate commitments. The request
113775// ID must be a valid UUID with the exception that zero UUID is not
113776// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
113777// MixerMutationRequestBuilder
113778func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
113779	c.urlParams_.Set("requestId", requestId)
113780	return c
113781}
113782
113783// Fields allows partial responses to be retrieved. See
113784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113785// for more information.
113786func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
113787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113788	return c
113789}
113790
113791// Context sets the context to be used in this call's Do method. Any
113792// pending HTTP request will be aborted if the provided context is
113793// canceled.
113794func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
113795	c.ctx_ = ctx
113796	return c
113797}
113798
113799// Header returns an http.Header that can be modified by the caller to
113800// add HTTP headers to the request.
113801func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
113802	if c.header_ == nil {
113803		c.header_ = make(http.Header)
113804	}
113805	return c.header_
113806}
113807
113808func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
113809	reqHeaders := make(http.Header)
113810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
113811	for k, v := range c.header_ {
113812		reqHeaders[k] = v
113813	}
113814	reqHeaders.Set("User-Agent", c.s.userAgent())
113815	var body io.Reader = nil
113816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
113817	if err != nil {
113818		return nil, err
113819	}
113820	reqHeaders.Set("Content-Type", "application/json")
113821	c.urlParams_.Set("alt", alt)
113822	c.urlParams_.Set("prettyPrint", "false")
113823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
113824	urls += "?" + c.urlParams_.Encode()
113825	req, err := http.NewRequest("POST", urls, body)
113826	if err != nil {
113827		return nil, err
113828	}
113829	req.Header = reqHeaders
113830	googleapi.Expand(req.URL, map[string]string{
113831		"project": c.project,
113832	})
113833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113834}
113835
113836// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
113837// Exactly one of *Operation or error will be non-nil. Any non-2xx
113838// status code is an error. Response headers are in either
113839// *Operation.ServerResponse.Header or (if a response was returned at
113840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113841// to check whether the returned error was because
113842// http.StatusNotModified was returned.
113843func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113844	gensupport.SetOptions(c.urlParams_, opts...)
113845	res, err := c.doRequest("json")
113846	if res != nil && res.StatusCode == http.StatusNotModified {
113847		if res.Body != nil {
113848			res.Body.Close()
113849		}
113850		return nil, &googleapi.Error{
113851			Code:   res.StatusCode,
113852			Header: res.Header,
113853		}
113854	}
113855	if err != nil {
113856		return nil, err
113857	}
113858	defer googleapi.CloseBody(res)
113859	if err := googleapi.CheckResponse(res); err != nil {
113860		return nil, err
113861	}
113862	ret := &Operation{
113863		ServerResponse: googleapi.ServerResponse{
113864			Header:         res.Header,
113865			HTTPStatusCode: res.StatusCode,
113866		},
113867	}
113868	target := &ret
113869	if err := gensupport.DecodeResponse(target, res); err != nil {
113870		return nil, err
113871	}
113872	return ret, nil
113873	// {
113874	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
113875	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
113876	//   "httpMethod": "POST",
113877	//   "id": "compute.publicAdvertisedPrefixes.insert",
113878	//   "parameterOrder": [
113879	//     "project"
113880	//   ],
113881	//   "parameters": {
113882	//     "project": {
113883	//       "description": "Project ID for this request.",
113884	//       "location": "path",
113885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113886	//       "required": true,
113887	//       "type": "string"
113888	//     },
113889	//     "requestId": {
113890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
113891	//       "location": "query",
113892	//       "type": "string"
113893	//     }
113894	//   },
113895	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
113896	//   "request": {
113897	//     "$ref": "PublicAdvertisedPrefix"
113898	//   },
113899	//   "response": {
113900	//     "$ref": "Operation"
113901	//   },
113902	//   "scopes": [
113903	//     "https://www.googleapis.com/auth/cloud-platform",
113904	//     "https://www.googleapis.com/auth/compute"
113905	//   ]
113906	// }
113907
113908}
113909
113910// method id "compute.publicAdvertisedPrefixes.list":
113911
113912type PublicAdvertisedPrefixesListCall struct {
113913	s            *Service
113914	project      string
113915	urlParams_   gensupport.URLParams
113916	ifNoneMatch_ string
113917	ctx_         context.Context
113918	header_      http.Header
113919}
113920
113921// List: Lists the PublicAdvertisedPrefixes for a project.
113922//
113923// - project: Project ID for this request.
113924func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
113925	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113926	c.project = project
113927	return c
113928}
113929
113930// Filter sets the optional parameter "filter": A filter expression that
113931// filters resources listed in the response. The expression must specify
113932// the field name, a comparison operator, and the value that you want to
113933// use for filtering. The value must be a string, a number, or a
113934// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113935// `<`. For example, if you are filtering Compute Engine instances, you
113936// can exclude instances named `example-instance` by specifying `name !=
113937// example-instance`. You can also filter nested fields. For example,
113938// you could specify `scheduling.automaticRestart = false` to include
113939// instances only if they are not scheduled for automatic restarts. You
113940// can use filtering on nested fields to filter based on resource
113941// labels. To filter on multiple expressions, provide each separate
113942// expression within parentheses. For example: ```
113943// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
113944// ``` By default, each expression is an `AND` expression. However, you
113945// can include `AND` and `OR` expressions explicitly. For example: ```
113946// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
113947// AND (scheduling.automaticRestart = true) ```
113948func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
113949	c.urlParams_.Set("filter", filter)
113950	return c
113951}
113952
113953// MaxResults sets the optional parameter "maxResults": The maximum
113954// number of results per page that should be returned. If the number of
113955// available results is larger than `maxResults`, Compute Engine returns
113956// a `nextPageToken` that can be used to get the next page of results in
113957// subsequent list requests. Acceptable values are `0` to `500`,
113958// inclusive. (Default: `500`)
113959func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
113960	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113961	return c
113962}
113963
113964// OrderBy sets the optional parameter "orderBy": Sorts list results by
113965// a certain order. By default, results are returned in alphanumerical
113966// order based on the resource name. You can also sort results in
113967// descending order based on the creation timestamp using
113968// `orderBy="creationTimestamp desc". This sorts results based on the
113969// `creationTimestamp` field in reverse chronological order (newest
113970// result first). Use this to sort resources like operations so that the
113971// newest operation is returned first. Currently, only sorting by `name`
113972// or `creationTimestamp desc` is supported.
113973func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
113974	c.urlParams_.Set("orderBy", orderBy)
113975	return c
113976}
113977
113978// PageToken sets the optional parameter "pageToken": Specifies a page
113979// token to use. Set `pageToken` to the `nextPageToken` returned by a
113980// previous list request to get the next page of results.
113981func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
113982	c.urlParams_.Set("pageToken", pageToken)
113983	return c
113984}
113985
113986// ReturnPartialSuccess sets the optional parameter
113987// "returnPartialSuccess": Opt-in for partial success behavior which
113988// provides partial results in case of failure. The default value is
113989// false.
113990func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
113991	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113992	return c
113993}
113994
113995// Fields allows partial responses to be retrieved. See
113996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113997// for more information.
113998func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
113999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114000	return c
114001}
114002
114003// IfNoneMatch sets the optional parameter which makes the operation
114004// fail if the object's ETag matches the given value. This is useful for
114005// getting updates only after the object has changed since the last
114006// request. Use googleapi.IsNotModified to check whether the response
114007// error from Do is the result of In-None-Match.
114008func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
114009	c.ifNoneMatch_ = entityTag
114010	return c
114011}
114012
114013// Context sets the context to be used in this call's Do method. Any
114014// pending HTTP request will be aborted if the provided context is
114015// canceled.
114016func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
114017	c.ctx_ = ctx
114018	return c
114019}
114020
114021// Header returns an http.Header that can be modified by the caller to
114022// add HTTP headers to the request.
114023func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
114024	if c.header_ == nil {
114025		c.header_ = make(http.Header)
114026	}
114027	return c.header_
114028}
114029
114030func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
114031	reqHeaders := make(http.Header)
114032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
114033	for k, v := range c.header_ {
114034		reqHeaders[k] = v
114035	}
114036	reqHeaders.Set("User-Agent", c.s.userAgent())
114037	if c.ifNoneMatch_ != "" {
114038		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114039	}
114040	var body io.Reader = nil
114041	c.urlParams_.Set("alt", alt)
114042	c.urlParams_.Set("prettyPrint", "false")
114043	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
114044	urls += "?" + c.urlParams_.Encode()
114045	req, err := http.NewRequest("GET", urls, body)
114046	if err != nil {
114047		return nil, err
114048	}
114049	req.Header = reqHeaders
114050	googleapi.Expand(req.URL, map[string]string{
114051		"project": c.project,
114052	})
114053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114054}
114055
114056// Do executes the "compute.publicAdvertisedPrefixes.list" call.
114057// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
114058// Any non-2xx status code is an error. Response headers are in either
114059// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
114060// was returned at all) in error.(*googleapi.Error).Header. Use
114061// googleapi.IsNotModified to check whether the returned error was
114062// because http.StatusNotModified was returned.
114063func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
114064	gensupport.SetOptions(c.urlParams_, opts...)
114065	res, err := c.doRequest("json")
114066	if res != nil && res.StatusCode == http.StatusNotModified {
114067		if res.Body != nil {
114068			res.Body.Close()
114069		}
114070		return nil, &googleapi.Error{
114071			Code:   res.StatusCode,
114072			Header: res.Header,
114073		}
114074	}
114075	if err != nil {
114076		return nil, err
114077	}
114078	defer googleapi.CloseBody(res)
114079	if err := googleapi.CheckResponse(res); err != nil {
114080		return nil, err
114081	}
114082	ret := &PublicAdvertisedPrefixList{
114083		ServerResponse: googleapi.ServerResponse{
114084			Header:         res.Header,
114085			HTTPStatusCode: res.StatusCode,
114086		},
114087	}
114088	target := &ret
114089	if err := gensupport.DecodeResponse(target, res); err != nil {
114090		return nil, err
114091	}
114092	return ret, nil
114093	// {
114094	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
114095	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
114096	//   "httpMethod": "GET",
114097	//   "id": "compute.publicAdvertisedPrefixes.list",
114098	//   "parameterOrder": [
114099	//     "project"
114100	//   ],
114101	//   "parameters": {
114102	//     "filter": {
114103	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114104	//       "location": "query",
114105	//       "type": "string"
114106	//     },
114107	//     "maxResults": {
114108	//       "default": "500",
114109	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114110	//       "format": "uint32",
114111	//       "location": "query",
114112	//       "minimum": "0",
114113	//       "type": "integer"
114114	//     },
114115	//     "orderBy": {
114116	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
114117	//       "location": "query",
114118	//       "type": "string"
114119	//     },
114120	//     "pageToken": {
114121	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114122	//       "location": "query",
114123	//       "type": "string"
114124	//     },
114125	//     "project": {
114126	//       "description": "Project ID for this request.",
114127	//       "location": "path",
114128	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114129	//       "required": true,
114130	//       "type": "string"
114131	//     },
114132	//     "returnPartialSuccess": {
114133	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114134	//       "location": "query",
114135	//       "type": "boolean"
114136	//     }
114137	//   },
114138	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
114139	//   "response": {
114140	//     "$ref": "PublicAdvertisedPrefixList"
114141	//   },
114142	//   "scopes": [
114143	//     "https://www.googleapis.com/auth/cloud-platform",
114144	//     "https://www.googleapis.com/auth/compute",
114145	//     "https://www.googleapis.com/auth/compute.readonly"
114146	//   ]
114147	// }
114148
114149}
114150
114151// Pages invokes f for each page of results.
114152// A non-nil error returned from f will halt the iteration.
114153// The provided context supersedes any context provided to the Context method.
114154func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
114155	c.ctx_ = ctx
114156	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114157	for {
114158		x, err := c.Do()
114159		if err != nil {
114160			return err
114161		}
114162		if err := f(x); err != nil {
114163			return err
114164		}
114165		if x.NextPageToken == "" {
114166			return nil
114167		}
114168		c.PageToken(x.NextPageToken)
114169	}
114170}
114171
114172// method id "compute.publicAdvertisedPrefixes.patch":
114173
114174type PublicAdvertisedPrefixesPatchCall struct {
114175	s                      *Service
114176	project                string
114177	publicAdvertisedPrefix string
114178	publicadvertisedprefix *PublicAdvertisedPrefix
114179	urlParams_             gensupport.URLParams
114180	ctx_                   context.Context
114181	header_                http.Header
114182}
114183
114184// Patch: Patches the specified Router resource with the data included
114185// in the request. This method supports PATCH semantics and uses JSON
114186// merge patch format and processing rules.
114187//
114188// - project: Project ID for this request.
114189// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
114190//   to patch.
114191func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
114192	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114193	c.project = project
114194	c.publicAdvertisedPrefix = publicAdvertisedPrefix
114195	c.publicadvertisedprefix = publicadvertisedprefix
114196	return c
114197}
114198
114199// RequestId sets the optional parameter "requestId": An optional
114200// request ID to identify requests. Specify a unique request ID so that
114201// if you must retry your request, the server will know to ignore the
114202// request if it has already been completed. For example, consider a
114203// situation where you make an initial request and the request times
114204// out. If you make the request again with the same request ID, the
114205// server can check if original operation with the same request ID was
114206// received, and if so, will ignore the second request. This prevents
114207// clients from accidentally creating duplicate commitments. The request
114208// ID must be a valid UUID with the exception that zero UUID is not
114209// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
114210// MixerMutationRequestBuilder
114211func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
114212	c.urlParams_.Set("requestId", requestId)
114213	return c
114214}
114215
114216// Fields allows partial responses to be retrieved. See
114217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114218// for more information.
114219func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
114220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114221	return c
114222}
114223
114224// Context sets the context to be used in this call's Do method. Any
114225// pending HTTP request will be aborted if the provided context is
114226// canceled.
114227func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
114228	c.ctx_ = ctx
114229	return c
114230}
114231
114232// Header returns an http.Header that can be modified by the caller to
114233// add HTTP headers to the request.
114234func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
114235	if c.header_ == nil {
114236		c.header_ = make(http.Header)
114237	}
114238	return c.header_
114239}
114240
114241func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
114242	reqHeaders := make(http.Header)
114243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
114244	for k, v := range c.header_ {
114245		reqHeaders[k] = v
114246	}
114247	reqHeaders.Set("User-Agent", c.s.userAgent())
114248	var body io.Reader = nil
114249	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
114250	if err != nil {
114251		return nil, err
114252	}
114253	reqHeaders.Set("Content-Type", "application/json")
114254	c.urlParams_.Set("alt", alt)
114255	c.urlParams_.Set("prettyPrint", "false")
114256	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
114257	urls += "?" + c.urlParams_.Encode()
114258	req, err := http.NewRequest("PATCH", urls, body)
114259	if err != nil {
114260		return nil, err
114261	}
114262	req.Header = reqHeaders
114263	googleapi.Expand(req.URL, map[string]string{
114264		"project":                c.project,
114265		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
114266	})
114267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114268}
114269
114270// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
114271// Exactly one of *Operation or error will be non-nil. Any non-2xx
114272// status code is an error. Response headers are in either
114273// *Operation.ServerResponse.Header or (if a response was returned at
114274// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114275// to check whether the returned error was because
114276// http.StatusNotModified was returned.
114277func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114278	gensupport.SetOptions(c.urlParams_, opts...)
114279	res, err := c.doRequest("json")
114280	if res != nil && res.StatusCode == http.StatusNotModified {
114281		if res.Body != nil {
114282			res.Body.Close()
114283		}
114284		return nil, &googleapi.Error{
114285			Code:   res.StatusCode,
114286			Header: res.Header,
114287		}
114288	}
114289	if err != nil {
114290		return nil, err
114291	}
114292	defer googleapi.CloseBody(res)
114293	if err := googleapi.CheckResponse(res); err != nil {
114294		return nil, err
114295	}
114296	ret := &Operation{
114297		ServerResponse: googleapi.ServerResponse{
114298			Header:         res.Header,
114299			HTTPStatusCode: res.StatusCode,
114300		},
114301	}
114302	target := &ret
114303	if err := gensupport.DecodeResponse(target, res); err != nil {
114304		return nil, err
114305	}
114306	return ret, nil
114307	// {
114308	//   "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.",
114309	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114310	//   "httpMethod": "PATCH",
114311	//   "id": "compute.publicAdvertisedPrefixes.patch",
114312	//   "parameterOrder": [
114313	//     "project",
114314	//     "publicAdvertisedPrefix"
114315	//   ],
114316	//   "parameters": {
114317	//     "project": {
114318	//       "description": "Project ID for this request.",
114319	//       "location": "path",
114320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114321	//       "required": true,
114322	//       "type": "string"
114323	//     },
114324	//     "publicAdvertisedPrefix": {
114325	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
114326	//       "location": "path",
114327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114328	//       "required": true,
114329	//       "type": "string"
114330	//     },
114331	//     "requestId": {
114332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
114333	//       "location": "query",
114334	//       "type": "string"
114335	//     }
114336	//   },
114337	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114338	//   "request": {
114339	//     "$ref": "PublicAdvertisedPrefix"
114340	//   },
114341	//   "response": {
114342	//     "$ref": "Operation"
114343	//   },
114344	//   "scopes": [
114345	//     "https://www.googleapis.com/auth/cloud-platform",
114346	//     "https://www.googleapis.com/auth/compute"
114347	//   ]
114348	// }
114349
114350}
114351
114352// method id "compute.publicDelegatedPrefixes.aggregatedList":
114353
114354type PublicDelegatedPrefixesAggregatedListCall struct {
114355	s            *Service
114356	project      string
114357	urlParams_   gensupport.URLParams
114358	ifNoneMatch_ string
114359	ctx_         context.Context
114360	header_      http.Header
114361}
114362
114363// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
114364// the specific project across all scopes.
114365//
114366// - project: Name of the project scoping this request.
114367func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
114368	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114369	c.project = project
114370	return c
114371}
114372
114373// Filter sets the optional parameter "filter": A filter expression that
114374// filters resources listed in the response. The expression must specify
114375// the field name, a comparison operator, and the value that you want to
114376// use for filtering. The value must be a string, a number, or a
114377// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114378// `<`. For example, if you are filtering Compute Engine instances, you
114379// can exclude instances named `example-instance` by specifying `name !=
114380// example-instance`. You can also filter nested fields. For example,
114381// you could specify `scheduling.automaticRestart = false` to include
114382// instances only if they are not scheduled for automatic restarts. You
114383// can use filtering on nested fields to filter based on resource
114384// labels. To filter on multiple expressions, provide each separate
114385// expression within parentheses. For example: ```
114386// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
114387// ``` By default, each expression is an `AND` expression. However, you
114388// can include `AND` and `OR` expressions explicitly. For example: ```
114389// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
114390// AND (scheduling.automaticRestart = true) ```
114391func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
114392	c.urlParams_.Set("filter", filter)
114393	return c
114394}
114395
114396// IncludeAllScopes sets the optional parameter "includeAllScopes":
114397// Indicates whether every visible scope for each scope type (zone,
114398// region, global) should be included in the response. For new resource
114399// types added after this field, the flag has no effect as new resource
114400// types will always include every visible scope for each scope type in
114401// response. For resource types which predate this field, if this flag
114402// is omitted or false, only scopes of the scope types where the
114403// resource type is expected to be found will be included.
114404func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
114405	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
114406	return c
114407}
114408
114409// MaxResults sets the optional parameter "maxResults": The maximum
114410// number of results per page that should be returned. If the number of
114411// available results is larger than `maxResults`, Compute Engine returns
114412// a `nextPageToken` that can be used to get the next page of results in
114413// subsequent list requests. Acceptable values are `0` to `500`,
114414// inclusive. (Default: `500`)
114415func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
114416	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114417	return c
114418}
114419
114420// OrderBy sets the optional parameter "orderBy": Sorts list results by
114421// a certain order. By default, results are returned in alphanumerical
114422// order based on the resource name. You can also sort results in
114423// descending order based on the creation timestamp using
114424// `orderBy="creationTimestamp desc". This sorts results based on the
114425// `creationTimestamp` field in reverse chronological order (newest
114426// result first). Use this to sort resources like operations so that the
114427// newest operation is returned first. Currently, only sorting by `name`
114428// or `creationTimestamp desc` is supported.
114429func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
114430	c.urlParams_.Set("orderBy", orderBy)
114431	return c
114432}
114433
114434// PageToken sets the optional parameter "pageToken": Specifies a page
114435// token to use. Set `pageToken` to the `nextPageToken` returned by a
114436// previous list request to get the next page of results.
114437func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
114438	c.urlParams_.Set("pageToken", pageToken)
114439	return c
114440}
114441
114442// ReturnPartialSuccess sets the optional parameter
114443// "returnPartialSuccess": Opt-in for partial success behavior which
114444// provides partial results in case of failure. The default value is
114445// false.
114446func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
114447	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114448	return c
114449}
114450
114451// Fields allows partial responses to be retrieved. See
114452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114453// for more information.
114454func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
114455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114456	return c
114457}
114458
114459// IfNoneMatch sets the optional parameter which makes the operation
114460// fail if the object's ETag matches the given value. This is useful for
114461// getting updates only after the object has changed since the last
114462// request. Use googleapi.IsNotModified to check whether the response
114463// error from Do is the result of In-None-Match.
114464func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
114465	c.ifNoneMatch_ = entityTag
114466	return c
114467}
114468
114469// Context sets the context to be used in this call's Do method. Any
114470// pending HTTP request will be aborted if the provided context is
114471// canceled.
114472func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
114473	c.ctx_ = ctx
114474	return c
114475}
114476
114477// Header returns an http.Header that can be modified by the caller to
114478// add HTTP headers to the request.
114479func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
114480	if c.header_ == nil {
114481		c.header_ = make(http.Header)
114482	}
114483	return c.header_
114484}
114485
114486func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
114487	reqHeaders := make(http.Header)
114488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
114489	for k, v := range c.header_ {
114490		reqHeaders[k] = v
114491	}
114492	reqHeaders.Set("User-Agent", c.s.userAgent())
114493	if c.ifNoneMatch_ != "" {
114494		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114495	}
114496	var body io.Reader = nil
114497	c.urlParams_.Set("alt", alt)
114498	c.urlParams_.Set("prettyPrint", "false")
114499	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes")
114500	urls += "?" + c.urlParams_.Encode()
114501	req, err := http.NewRequest("GET", urls, body)
114502	if err != nil {
114503		return nil, err
114504	}
114505	req.Header = reqHeaders
114506	googleapi.Expand(req.URL, map[string]string{
114507		"project": c.project,
114508	})
114509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114510}
114511
114512// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
114513// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
114514// non-nil. Any non-2xx status code is an error. Response headers are in
114515// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
114516// (if a response was returned at all) in
114517// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114518// whether the returned error was because http.StatusNotModified was
114519// returned.
114520func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
114521	gensupport.SetOptions(c.urlParams_, opts...)
114522	res, err := c.doRequest("json")
114523	if res != nil && res.StatusCode == http.StatusNotModified {
114524		if res.Body != nil {
114525			res.Body.Close()
114526		}
114527		return nil, &googleapi.Error{
114528			Code:   res.StatusCode,
114529			Header: res.Header,
114530		}
114531	}
114532	if err != nil {
114533		return nil, err
114534	}
114535	defer googleapi.CloseBody(res)
114536	if err := googleapi.CheckResponse(res); err != nil {
114537		return nil, err
114538	}
114539	ret := &PublicDelegatedPrefixAggregatedList{
114540		ServerResponse: googleapi.ServerResponse{
114541			Header:         res.Header,
114542			HTTPStatusCode: res.StatusCode,
114543		},
114544	}
114545	target := &ret
114546	if err := gensupport.DecodeResponse(target, res); err != nil {
114547		return nil, err
114548	}
114549	return ret, nil
114550	// {
114551	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
114552	//   "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes",
114553	//   "httpMethod": "GET",
114554	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
114555	//   "parameterOrder": [
114556	//     "project"
114557	//   ],
114558	//   "parameters": {
114559	//     "filter": {
114560	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114561	//       "location": "query",
114562	//       "type": "string"
114563	//     },
114564	//     "includeAllScopes": {
114565	//       "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.",
114566	//       "location": "query",
114567	//       "type": "boolean"
114568	//     },
114569	//     "maxResults": {
114570	//       "default": "500",
114571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114572	//       "format": "uint32",
114573	//       "location": "query",
114574	//       "minimum": "0",
114575	//       "type": "integer"
114576	//     },
114577	//     "orderBy": {
114578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
114579	//       "location": "query",
114580	//       "type": "string"
114581	//     },
114582	//     "pageToken": {
114583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114584	//       "location": "query",
114585	//       "type": "string"
114586	//     },
114587	//     "project": {
114588	//       "description": "Name of the project scoping this request.",
114589	//       "location": "path",
114590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114591	//       "required": true,
114592	//       "type": "string"
114593	//     },
114594	//     "returnPartialSuccess": {
114595	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114596	//       "location": "query",
114597	//       "type": "boolean"
114598	//     }
114599	//   },
114600	//   "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
114601	//   "response": {
114602	//     "$ref": "PublicDelegatedPrefixAggregatedList"
114603	//   },
114604	//   "scopes": [
114605	//     "https://www.googleapis.com/auth/cloud-platform",
114606	//     "https://www.googleapis.com/auth/compute",
114607	//     "https://www.googleapis.com/auth/compute.readonly"
114608	//   ]
114609	// }
114610
114611}
114612
114613// Pages invokes f for each page of results.
114614// A non-nil error returned from f will halt the iteration.
114615// The provided context supersedes any context provided to the Context method.
114616func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
114617	c.ctx_ = ctx
114618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114619	for {
114620		x, err := c.Do()
114621		if err != nil {
114622			return err
114623		}
114624		if err := f(x); err != nil {
114625			return err
114626		}
114627		if x.NextPageToken == "" {
114628			return nil
114629		}
114630		c.PageToken(x.NextPageToken)
114631	}
114632}
114633
114634// method id "compute.publicDelegatedPrefixes.delete":
114635
114636type PublicDelegatedPrefixesDeleteCall struct {
114637	s                     *Service
114638	project               string
114639	region                string
114640	publicDelegatedPrefix string
114641	urlParams_            gensupport.URLParams
114642	ctx_                  context.Context
114643	header_               http.Header
114644}
114645
114646// Delete: Deletes the specified PublicDelegatedPrefix in the given
114647// region.
114648//
114649// - project: Project ID for this request.
114650// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
114651//   to delete.
114652// - region: Name of the region of this request.
114653func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
114654	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114655	c.project = project
114656	c.region = region
114657	c.publicDelegatedPrefix = publicDelegatedPrefix
114658	return c
114659}
114660
114661// RequestId sets the optional parameter "requestId": An optional
114662// request ID to identify requests. Specify a unique request ID so that
114663// if you must retry your request, the server will know to ignore the
114664// request if it has already been completed. For example, consider a
114665// situation where you make an initial request and the request times
114666// out. If you make the request again with the same request ID, the
114667// server can check if original operation with the same request ID was
114668// received, and if so, will ignore the second request. This prevents
114669// clients from accidentally creating duplicate commitments. The request
114670// ID must be a valid UUID with the exception that zero UUID is not
114671// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
114672// MixerMutationRequestBuilder
114673func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
114674	c.urlParams_.Set("requestId", requestId)
114675	return c
114676}
114677
114678// Fields allows partial responses to be retrieved. See
114679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114680// for more information.
114681func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
114682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114683	return c
114684}
114685
114686// Context sets the context to be used in this call's Do method. Any
114687// pending HTTP request will be aborted if the provided context is
114688// canceled.
114689func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
114690	c.ctx_ = ctx
114691	return c
114692}
114693
114694// Header returns an http.Header that can be modified by the caller to
114695// add HTTP headers to the request.
114696func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
114697	if c.header_ == nil {
114698		c.header_ = make(http.Header)
114699	}
114700	return c.header_
114701}
114702
114703func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
114704	reqHeaders := make(http.Header)
114705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
114706	for k, v := range c.header_ {
114707		reqHeaders[k] = v
114708	}
114709	reqHeaders.Set("User-Agent", c.s.userAgent())
114710	var body io.Reader = nil
114711	c.urlParams_.Set("alt", alt)
114712	c.urlParams_.Set("prettyPrint", "false")
114713	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
114714	urls += "?" + c.urlParams_.Encode()
114715	req, err := http.NewRequest("DELETE", urls, body)
114716	if err != nil {
114717		return nil, err
114718	}
114719	req.Header = reqHeaders
114720	googleapi.Expand(req.URL, map[string]string{
114721		"project":               c.project,
114722		"region":                c.region,
114723		"publicDelegatedPrefix": c.publicDelegatedPrefix,
114724	})
114725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114726}
114727
114728// Do executes the "compute.publicDelegatedPrefixes.delete" call.
114729// Exactly one of *Operation or error will be non-nil. Any non-2xx
114730// status code is an error. Response headers are in either
114731// *Operation.ServerResponse.Header or (if a response was returned at
114732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114733// to check whether the returned error was because
114734// http.StatusNotModified was returned.
114735func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114736	gensupport.SetOptions(c.urlParams_, opts...)
114737	res, err := c.doRequest("json")
114738	if res != nil && res.StatusCode == http.StatusNotModified {
114739		if res.Body != nil {
114740			res.Body.Close()
114741		}
114742		return nil, &googleapi.Error{
114743			Code:   res.StatusCode,
114744			Header: res.Header,
114745		}
114746	}
114747	if err != nil {
114748		return nil, err
114749	}
114750	defer googleapi.CloseBody(res)
114751	if err := googleapi.CheckResponse(res); err != nil {
114752		return nil, err
114753	}
114754	ret := &Operation{
114755		ServerResponse: googleapi.ServerResponse{
114756			Header:         res.Header,
114757			HTTPStatusCode: res.StatusCode,
114758		},
114759	}
114760	target := &ret
114761	if err := gensupport.DecodeResponse(target, res); err != nil {
114762		return nil, err
114763	}
114764	return ret, nil
114765	// {
114766	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
114767	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
114768	//   "httpMethod": "DELETE",
114769	//   "id": "compute.publicDelegatedPrefixes.delete",
114770	//   "parameterOrder": [
114771	//     "project",
114772	//     "region",
114773	//     "publicDelegatedPrefix"
114774	//   ],
114775	//   "parameters": {
114776	//     "project": {
114777	//       "description": "Project ID for this request.",
114778	//       "location": "path",
114779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114780	//       "required": true,
114781	//       "type": "string"
114782	//     },
114783	//     "publicDelegatedPrefix": {
114784	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
114785	//       "location": "path",
114786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114787	//       "required": true,
114788	//       "type": "string"
114789	//     },
114790	//     "region": {
114791	//       "description": "Name of the region of this request.",
114792	//       "location": "path",
114793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114794	//       "required": true,
114795	//       "type": "string"
114796	//     },
114797	//     "requestId": {
114798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
114799	//       "location": "query",
114800	//       "type": "string"
114801	//     }
114802	//   },
114803	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
114804	//   "response": {
114805	//     "$ref": "Operation"
114806	//   },
114807	//   "scopes": [
114808	//     "https://www.googleapis.com/auth/cloud-platform",
114809	//     "https://www.googleapis.com/auth/compute"
114810	//   ]
114811	// }
114812
114813}
114814
114815// method id "compute.publicDelegatedPrefixes.get":
114816
114817type PublicDelegatedPrefixesGetCall struct {
114818	s                     *Service
114819	project               string
114820	region                string
114821	publicDelegatedPrefix string
114822	urlParams_            gensupport.URLParams
114823	ifNoneMatch_          string
114824	ctx_                  context.Context
114825	header_               http.Header
114826}
114827
114828// Get: Returns the specified PublicDelegatedPrefix resource in the
114829// given region.
114830//
114831// - project: Project ID for this request.
114832// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
114833//   to return.
114834// - region: Name of the region of this request.
114835func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
114836	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114837	c.project = project
114838	c.region = region
114839	c.publicDelegatedPrefix = publicDelegatedPrefix
114840	return c
114841}
114842
114843// Fields allows partial responses to be retrieved. See
114844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114845// for more information.
114846func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
114847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114848	return c
114849}
114850
114851// IfNoneMatch sets the optional parameter which makes the operation
114852// fail if the object's ETag matches the given value. This is useful for
114853// getting updates only after the object has changed since the last
114854// request. Use googleapi.IsNotModified to check whether the response
114855// error from Do is the result of In-None-Match.
114856func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
114857	c.ifNoneMatch_ = entityTag
114858	return c
114859}
114860
114861// Context sets the context to be used in this call's Do method. Any
114862// pending HTTP request will be aborted if the provided context is
114863// canceled.
114864func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
114865	c.ctx_ = ctx
114866	return c
114867}
114868
114869// Header returns an http.Header that can be modified by the caller to
114870// add HTTP headers to the request.
114871func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
114872	if c.header_ == nil {
114873		c.header_ = make(http.Header)
114874	}
114875	return c.header_
114876}
114877
114878func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
114879	reqHeaders := make(http.Header)
114880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
114881	for k, v := range c.header_ {
114882		reqHeaders[k] = v
114883	}
114884	reqHeaders.Set("User-Agent", c.s.userAgent())
114885	if c.ifNoneMatch_ != "" {
114886		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114887	}
114888	var body io.Reader = nil
114889	c.urlParams_.Set("alt", alt)
114890	c.urlParams_.Set("prettyPrint", "false")
114891	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
114892	urls += "?" + c.urlParams_.Encode()
114893	req, err := http.NewRequest("GET", urls, body)
114894	if err != nil {
114895		return nil, err
114896	}
114897	req.Header = reqHeaders
114898	googleapi.Expand(req.URL, map[string]string{
114899		"project":               c.project,
114900		"region":                c.region,
114901		"publicDelegatedPrefix": c.publicDelegatedPrefix,
114902	})
114903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114904}
114905
114906// Do executes the "compute.publicDelegatedPrefixes.get" call.
114907// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
114908// non-2xx status code is an error. Response headers are in either
114909// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
114910// returned at all) in error.(*googleapi.Error).Header. Use
114911// googleapi.IsNotModified to check whether the returned error was
114912// because http.StatusNotModified was returned.
114913func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
114914	gensupport.SetOptions(c.urlParams_, opts...)
114915	res, err := c.doRequest("json")
114916	if res != nil && res.StatusCode == http.StatusNotModified {
114917		if res.Body != nil {
114918			res.Body.Close()
114919		}
114920		return nil, &googleapi.Error{
114921			Code:   res.StatusCode,
114922			Header: res.Header,
114923		}
114924	}
114925	if err != nil {
114926		return nil, err
114927	}
114928	defer googleapi.CloseBody(res)
114929	if err := googleapi.CheckResponse(res); err != nil {
114930		return nil, err
114931	}
114932	ret := &PublicDelegatedPrefix{
114933		ServerResponse: googleapi.ServerResponse{
114934			Header:         res.Header,
114935			HTTPStatusCode: res.StatusCode,
114936		},
114937	}
114938	target := &ret
114939	if err := gensupport.DecodeResponse(target, res); err != nil {
114940		return nil, err
114941	}
114942	return ret, nil
114943	// {
114944	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
114945	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
114946	//   "httpMethod": "GET",
114947	//   "id": "compute.publicDelegatedPrefixes.get",
114948	//   "parameterOrder": [
114949	//     "project",
114950	//     "region",
114951	//     "publicDelegatedPrefix"
114952	//   ],
114953	//   "parameters": {
114954	//     "project": {
114955	//       "description": "Project ID for this request.",
114956	//       "location": "path",
114957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114958	//       "required": true,
114959	//       "type": "string"
114960	//     },
114961	//     "publicDelegatedPrefix": {
114962	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
114963	//       "location": "path",
114964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114965	//       "required": true,
114966	//       "type": "string"
114967	//     },
114968	//     "region": {
114969	//       "description": "Name of the region of this request.",
114970	//       "location": "path",
114971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114972	//       "required": true,
114973	//       "type": "string"
114974	//     }
114975	//   },
114976	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
114977	//   "response": {
114978	//     "$ref": "PublicDelegatedPrefix"
114979	//   },
114980	//   "scopes": [
114981	//     "https://www.googleapis.com/auth/cloud-platform",
114982	//     "https://www.googleapis.com/auth/compute",
114983	//     "https://www.googleapis.com/auth/compute.readonly"
114984	//   ]
114985	// }
114986
114987}
114988
114989// method id "compute.publicDelegatedPrefixes.insert":
114990
114991type PublicDelegatedPrefixesInsertCall struct {
114992	s                     *Service
114993	project               string
114994	region                string
114995	publicdelegatedprefix *PublicDelegatedPrefix
114996	urlParams_            gensupport.URLParams
114997	ctx_                  context.Context
114998	header_               http.Header
114999}
115000
115001// Insert: Creates a PublicDelegatedPrefix in the specified project in
115002// the given region using the parameters that are included in the
115003// request.
115004//
115005// - project: Project ID for this request.
115006// - region: Name of the region of this request.
115007func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
115008	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115009	c.project = project
115010	c.region = region
115011	c.publicdelegatedprefix = publicdelegatedprefix
115012	return c
115013}
115014
115015// RequestId sets the optional parameter "requestId": An optional
115016// request ID to identify requests. Specify a unique request ID so that
115017// if you must retry your request, the server will know to ignore the
115018// request if it has already been completed. For example, consider a
115019// situation where you make an initial request and the request times
115020// out. If you make the request again with the same request ID, the
115021// server can check if original operation with the same request ID was
115022// received, and if so, will ignore the second request. This prevents
115023// clients from accidentally creating duplicate commitments. The request
115024// ID must be a valid UUID with the exception that zero UUID is not
115025// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
115026// MixerMutationRequestBuilder
115027func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
115028	c.urlParams_.Set("requestId", requestId)
115029	return c
115030}
115031
115032// Fields allows partial responses to be retrieved. See
115033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115034// for more information.
115035func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
115036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115037	return c
115038}
115039
115040// Context sets the context to be used in this call's Do method. Any
115041// pending HTTP request will be aborted if the provided context is
115042// canceled.
115043func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
115044	c.ctx_ = ctx
115045	return c
115046}
115047
115048// Header returns an http.Header that can be modified by the caller to
115049// add HTTP headers to the request.
115050func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
115051	if c.header_ == nil {
115052		c.header_ = make(http.Header)
115053	}
115054	return c.header_
115055}
115056
115057func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
115058	reqHeaders := make(http.Header)
115059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
115060	for k, v := range c.header_ {
115061		reqHeaders[k] = v
115062	}
115063	reqHeaders.Set("User-Agent", c.s.userAgent())
115064	var body io.Reader = nil
115065	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
115066	if err != nil {
115067		return nil, err
115068	}
115069	reqHeaders.Set("Content-Type", "application/json")
115070	c.urlParams_.Set("alt", alt)
115071	c.urlParams_.Set("prettyPrint", "false")
115072	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
115073	urls += "?" + c.urlParams_.Encode()
115074	req, err := http.NewRequest("POST", urls, body)
115075	if err != nil {
115076		return nil, err
115077	}
115078	req.Header = reqHeaders
115079	googleapi.Expand(req.URL, map[string]string{
115080		"project": c.project,
115081		"region":  c.region,
115082	})
115083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115084}
115085
115086// Do executes the "compute.publicDelegatedPrefixes.insert" call.
115087// Exactly one of *Operation or error will be non-nil. Any non-2xx
115088// status code is an error. Response headers are in either
115089// *Operation.ServerResponse.Header or (if a response was returned at
115090// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115091// to check whether the returned error was because
115092// http.StatusNotModified was returned.
115093func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115094	gensupport.SetOptions(c.urlParams_, opts...)
115095	res, err := c.doRequest("json")
115096	if res != nil && res.StatusCode == http.StatusNotModified {
115097		if res.Body != nil {
115098			res.Body.Close()
115099		}
115100		return nil, &googleapi.Error{
115101			Code:   res.StatusCode,
115102			Header: res.Header,
115103		}
115104	}
115105	if err != nil {
115106		return nil, err
115107	}
115108	defer googleapi.CloseBody(res)
115109	if err := googleapi.CheckResponse(res); err != nil {
115110		return nil, err
115111	}
115112	ret := &Operation{
115113		ServerResponse: googleapi.ServerResponse{
115114			Header:         res.Header,
115115			HTTPStatusCode: res.StatusCode,
115116		},
115117	}
115118	target := &ret
115119	if err := gensupport.DecodeResponse(target, res); err != nil {
115120		return nil, err
115121	}
115122	return ret, nil
115123	// {
115124	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
115125	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115126	//   "httpMethod": "POST",
115127	//   "id": "compute.publicDelegatedPrefixes.insert",
115128	//   "parameterOrder": [
115129	//     "project",
115130	//     "region"
115131	//   ],
115132	//   "parameters": {
115133	//     "project": {
115134	//       "description": "Project ID for this request.",
115135	//       "location": "path",
115136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115137	//       "required": true,
115138	//       "type": "string"
115139	//     },
115140	//     "region": {
115141	//       "description": "Name of the region of this request.",
115142	//       "location": "path",
115143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115144	//       "required": true,
115145	//       "type": "string"
115146	//     },
115147	//     "requestId": {
115148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
115149	//       "location": "query",
115150	//       "type": "string"
115151	//     }
115152	//   },
115153	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115154	//   "request": {
115155	//     "$ref": "PublicDelegatedPrefix"
115156	//   },
115157	//   "response": {
115158	//     "$ref": "Operation"
115159	//   },
115160	//   "scopes": [
115161	//     "https://www.googleapis.com/auth/cloud-platform",
115162	//     "https://www.googleapis.com/auth/compute"
115163	//   ]
115164	// }
115165
115166}
115167
115168// method id "compute.publicDelegatedPrefixes.list":
115169
115170type PublicDelegatedPrefixesListCall struct {
115171	s            *Service
115172	project      string
115173	region       string
115174	urlParams_   gensupport.URLParams
115175	ifNoneMatch_ string
115176	ctx_         context.Context
115177	header_      http.Header
115178}
115179
115180// List: Lists the PublicDelegatedPrefixes for a project in the given
115181// region.
115182//
115183// - project: Project ID for this request.
115184// - region: Name of the region of this request.
115185func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
115186	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115187	c.project = project
115188	c.region = region
115189	return c
115190}
115191
115192// Filter sets the optional parameter "filter": A filter expression that
115193// filters resources listed in the response. The expression must specify
115194// the field name, a comparison operator, and the value that you want to
115195// use for filtering. The value must be a string, a number, or a
115196// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115197// `<`. For example, if you are filtering Compute Engine instances, you
115198// can exclude instances named `example-instance` by specifying `name !=
115199// example-instance`. You can also filter nested fields. For example,
115200// you could specify `scheduling.automaticRestart = false` to include
115201// instances only if they are not scheduled for automatic restarts. You
115202// can use filtering on nested fields to filter based on resource
115203// labels. To filter on multiple expressions, provide each separate
115204// expression within parentheses. For example: ```
115205// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
115206// ``` By default, each expression is an `AND` expression. However, you
115207// can include `AND` and `OR` expressions explicitly. For example: ```
115208// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
115209// AND (scheduling.automaticRestart = true) ```
115210func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
115211	c.urlParams_.Set("filter", filter)
115212	return c
115213}
115214
115215// MaxResults sets the optional parameter "maxResults": The maximum
115216// number of results per page that should be returned. If the number of
115217// available results is larger than `maxResults`, Compute Engine returns
115218// a `nextPageToken` that can be used to get the next page of results in
115219// subsequent list requests. Acceptable values are `0` to `500`,
115220// inclusive. (Default: `500`)
115221func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
115222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115223	return c
115224}
115225
115226// OrderBy sets the optional parameter "orderBy": Sorts list results by
115227// a certain order. By default, results are returned in alphanumerical
115228// order based on the resource name. You can also sort results in
115229// descending order based on the creation timestamp using
115230// `orderBy="creationTimestamp desc". This sorts results based on the
115231// `creationTimestamp` field in reverse chronological order (newest
115232// result first). Use this to sort resources like operations so that the
115233// newest operation is returned first. Currently, only sorting by `name`
115234// or `creationTimestamp desc` is supported.
115235func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
115236	c.urlParams_.Set("orderBy", orderBy)
115237	return c
115238}
115239
115240// PageToken sets the optional parameter "pageToken": Specifies a page
115241// token to use. Set `pageToken` to the `nextPageToken` returned by a
115242// previous list request to get the next page of results.
115243func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
115244	c.urlParams_.Set("pageToken", pageToken)
115245	return c
115246}
115247
115248// ReturnPartialSuccess sets the optional parameter
115249// "returnPartialSuccess": Opt-in for partial success behavior which
115250// provides partial results in case of failure. The default value is
115251// false.
115252func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
115253	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115254	return c
115255}
115256
115257// Fields allows partial responses to be retrieved. See
115258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115259// for more information.
115260func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
115261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115262	return c
115263}
115264
115265// IfNoneMatch sets the optional parameter which makes the operation
115266// fail if the object's ETag matches the given value. This is useful for
115267// getting updates only after the object has changed since the last
115268// request. Use googleapi.IsNotModified to check whether the response
115269// error from Do is the result of In-None-Match.
115270func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
115271	c.ifNoneMatch_ = entityTag
115272	return c
115273}
115274
115275// Context sets the context to be used in this call's Do method. Any
115276// pending HTTP request will be aborted if the provided context is
115277// canceled.
115278func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
115279	c.ctx_ = ctx
115280	return c
115281}
115282
115283// Header returns an http.Header that can be modified by the caller to
115284// add HTTP headers to the request.
115285func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
115286	if c.header_ == nil {
115287		c.header_ = make(http.Header)
115288	}
115289	return c.header_
115290}
115291
115292func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
115293	reqHeaders := make(http.Header)
115294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
115295	for k, v := range c.header_ {
115296		reqHeaders[k] = v
115297	}
115298	reqHeaders.Set("User-Agent", c.s.userAgent())
115299	if c.ifNoneMatch_ != "" {
115300		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115301	}
115302	var body io.Reader = nil
115303	c.urlParams_.Set("alt", alt)
115304	c.urlParams_.Set("prettyPrint", "false")
115305	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
115306	urls += "?" + c.urlParams_.Encode()
115307	req, err := http.NewRequest("GET", urls, body)
115308	if err != nil {
115309		return nil, err
115310	}
115311	req.Header = reqHeaders
115312	googleapi.Expand(req.URL, map[string]string{
115313		"project": c.project,
115314		"region":  c.region,
115315	})
115316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115317}
115318
115319// Do executes the "compute.publicDelegatedPrefixes.list" call.
115320// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
115321// Any non-2xx status code is an error. Response headers are in either
115322// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
115323// was returned at all) in error.(*googleapi.Error).Header. Use
115324// googleapi.IsNotModified to check whether the returned error was
115325// because http.StatusNotModified was returned.
115326func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
115327	gensupport.SetOptions(c.urlParams_, opts...)
115328	res, err := c.doRequest("json")
115329	if res != nil && res.StatusCode == http.StatusNotModified {
115330		if res.Body != nil {
115331			res.Body.Close()
115332		}
115333		return nil, &googleapi.Error{
115334			Code:   res.StatusCode,
115335			Header: res.Header,
115336		}
115337	}
115338	if err != nil {
115339		return nil, err
115340	}
115341	defer googleapi.CloseBody(res)
115342	if err := googleapi.CheckResponse(res); err != nil {
115343		return nil, err
115344	}
115345	ret := &PublicDelegatedPrefixList{
115346		ServerResponse: googleapi.ServerResponse{
115347			Header:         res.Header,
115348			HTTPStatusCode: res.StatusCode,
115349		},
115350	}
115351	target := &ret
115352	if err := gensupport.DecodeResponse(target, res); err != nil {
115353		return nil, err
115354	}
115355	return ret, nil
115356	// {
115357	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
115358	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115359	//   "httpMethod": "GET",
115360	//   "id": "compute.publicDelegatedPrefixes.list",
115361	//   "parameterOrder": [
115362	//     "project",
115363	//     "region"
115364	//   ],
115365	//   "parameters": {
115366	//     "filter": {
115367	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115368	//       "location": "query",
115369	//       "type": "string"
115370	//     },
115371	//     "maxResults": {
115372	//       "default": "500",
115373	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115374	//       "format": "uint32",
115375	//       "location": "query",
115376	//       "minimum": "0",
115377	//       "type": "integer"
115378	//     },
115379	//     "orderBy": {
115380	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
115381	//       "location": "query",
115382	//       "type": "string"
115383	//     },
115384	//     "pageToken": {
115385	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115386	//       "location": "query",
115387	//       "type": "string"
115388	//     },
115389	//     "project": {
115390	//       "description": "Project ID for this request.",
115391	//       "location": "path",
115392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115393	//       "required": true,
115394	//       "type": "string"
115395	//     },
115396	//     "region": {
115397	//       "description": "Name of the region of this request.",
115398	//       "location": "path",
115399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115400	//       "required": true,
115401	//       "type": "string"
115402	//     },
115403	//     "returnPartialSuccess": {
115404	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115405	//       "location": "query",
115406	//       "type": "boolean"
115407	//     }
115408	//   },
115409	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115410	//   "response": {
115411	//     "$ref": "PublicDelegatedPrefixList"
115412	//   },
115413	//   "scopes": [
115414	//     "https://www.googleapis.com/auth/cloud-platform",
115415	//     "https://www.googleapis.com/auth/compute",
115416	//     "https://www.googleapis.com/auth/compute.readonly"
115417	//   ]
115418	// }
115419
115420}
115421
115422// Pages invokes f for each page of results.
115423// A non-nil error returned from f will halt the iteration.
115424// The provided context supersedes any context provided to the Context method.
115425func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
115426	c.ctx_ = ctx
115427	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115428	for {
115429		x, err := c.Do()
115430		if err != nil {
115431			return err
115432		}
115433		if err := f(x); err != nil {
115434			return err
115435		}
115436		if x.NextPageToken == "" {
115437			return nil
115438		}
115439		c.PageToken(x.NextPageToken)
115440	}
115441}
115442
115443// method id "compute.publicDelegatedPrefixes.patch":
115444
115445type PublicDelegatedPrefixesPatchCall struct {
115446	s                     *Service
115447	project               string
115448	region                string
115449	publicDelegatedPrefix string
115450	publicdelegatedprefix *PublicDelegatedPrefix
115451	urlParams_            gensupport.URLParams
115452	ctx_                  context.Context
115453	header_               http.Header
115454}
115455
115456// Patch: Patches the specified PublicDelegatedPrefix resource with the
115457// data included in the request. This method supports PATCH semantics
115458// and uses JSON merge patch format and processing rules.
115459//
115460// - project: Project ID for this request.
115461// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
115462//   to patch.
115463// - region: Name of the region for this request.
115464func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
115465	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115466	c.project = project
115467	c.region = region
115468	c.publicDelegatedPrefix = publicDelegatedPrefix
115469	c.publicdelegatedprefix = publicdelegatedprefix
115470	return c
115471}
115472
115473// RequestId sets the optional parameter "requestId": An optional
115474// request ID to identify requests. Specify a unique request ID so that
115475// if you must retry your request, the server will know to ignore the
115476// request if it has already been completed. For example, consider a
115477// situation where you make an initial request and the request times
115478// out. If you make the request again with the same request ID, the
115479// server can check if original operation with the same request ID was
115480// received, and if so, will ignore the second request. This prevents
115481// clients from accidentally creating duplicate commitments. The request
115482// ID must be a valid UUID with the exception that zero UUID is not
115483// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
115484// MixerMutationRequestBuilder
115485func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
115486	c.urlParams_.Set("requestId", requestId)
115487	return c
115488}
115489
115490// Fields allows partial responses to be retrieved. See
115491// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115492// for more information.
115493func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
115494	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115495	return c
115496}
115497
115498// Context sets the context to be used in this call's Do method. Any
115499// pending HTTP request will be aborted if the provided context is
115500// canceled.
115501func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
115502	c.ctx_ = ctx
115503	return c
115504}
115505
115506// Header returns an http.Header that can be modified by the caller to
115507// add HTTP headers to the request.
115508func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
115509	if c.header_ == nil {
115510		c.header_ = make(http.Header)
115511	}
115512	return c.header_
115513}
115514
115515func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
115516	reqHeaders := make(http.Header)
115517	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
115518	for k, v := range c.header_ {
115519		reqHeaders[k] = v
115520	}
115521	reqHeaders.Set("User-Agent", c.s.userAgent())
115522	var body io.Reader = nil
115523	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
115524	if err != nil {
115525		return nil, err
115526	}
115527	reqHeaders.Set("Content-Type", "application/json")
115528	c.urlParams_.Set("alt", alt)
115529	c.urlParams_.Set("prettyPrint", "false")
115530	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
115531	urls += "?" + c.urlParams_.Encode()
115532	req, err := http.NewRequest("PATCH", urls, body)
115533	if err != nil {
115534		return nil, err
115535	}
115536	req.Header = reqHeaders
115537	googleapi.Expand(req.URL, map[string]string{
115538		"project":               c.project,
115539		"region":                c.region,
115540		"publicDelegatedPrefix": c.publicDelegatedPrefix,
115541	})
115542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115543}
115544
115545// Do executes the "compute.publicDelegatedPrefixes.patch" call.
115546// Exactly one of *Operation or error will be non-nil. Any non-2xx
115547// status code is an error. Response headers are in either
115548// *Operation.ServerResponse.Header or (if a response was returned at
115549// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115550// to check whether the returned error was because
115551// http.StatusNotModified was returned.
115552func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115553	gensupport.SetOptions(c.urlParams_, opts...)
115554	res, err := c.doRequest("json")
115555	if res != nil && res.StatusCode == http.StatusNotModified {
115556		if res.Body != nil {
115557			res.Body.Close()
115558		}
115559		return nil, &googleapi.Error{
115560			Code:   res.StatusCode,
115561			Header: res.Header,
115562		}
115563	}
115564	if err != nil {
115565		return nil, err
115566	}
115567	defer googleapi.CloseBody(res)
115568	if err := googleapi.CheckResponse(res); err != nil {
115569		return nil, err
115570	}
115571	ret := &Operation{
115572		ServerResponse: googleapi.ServerResponse{
115573			Header:         res.Header,
115574			HTTPStatusCode: res.StatusCode,
115575		},
115576	}
115577	target := &ret
115578	if err := gensupport.DecodeResponse(target, res); err != nil {
115579		return nil, err
115580	}
115581	return ret, nil
115582	// {
115583	//   "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.",
115584	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115585	//   "httpMethod": "PATCH",
115586	//   "id": "compute.publicDelegatedPrefixes.patch",
115587	//   "parameterOrder": [
115588	//     "project",
115589	//     "region",
115590	//     "publicDelegatedPrefix"
115591	//   ],
115592	//   "parameters": {
115593	//     "project": {
115594	//       "description": "Project ID for this request.",
115595	//       "location": "path",
115596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115597	//       "required": true,
115598	//       "type": "string"
115599	//     },
115600	//     "publicDelegatedPrefix": {
115601	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
115602	//       "location": "path",
115603	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115604	//       "required": true,
115605	//       "type": "string"
115606	//     },
115607	//     "region": {
115608	//       "description": "Name of the region for this request.",
115609	//       "location": "path",
115610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115611	//       "required": true,
115612	//       "type": "string"
115613	//     },
115614	//     "requestId": {
115615	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
115616	//       "location": "query",
115617	//       "type": "string"
115618	//     }
115619	//   },
115620	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115621	//   "request": {
115622	//     "$ref": "PublicDelegatedPrefix"
115623	//   },
115624	//   "response": {
115625	//     "$ref": "Operation"
115626	//   },
115627	//   "scopes": [
115628	//     "https://www.googleapis.com/auth/cloud-platform",
115629	//     "https://www.googleapis.com/auth/compute"
115630	//   ]
115631	// }
115632
115633}
115634
115635// method id "compute.regionAutoscalers.delete":
115636
115637type RegionAutoscalersDeleteCall struct {
115638	s          *Service
115639	project    string
115640	region     string
115641	autoscaler string
115642	urlParams_ gensupport.URLParams
115643	ctx_       context.Context
115644	header_    http.Header
115645}
115646
115647// Delete: Deletes the specified autoscaler.
115648//
115649// - autoscaler: Name of the autoscaler to delete.
115650// - project: Project ID for this request.
115651// - region: Name of the region scoping this request.
115652func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
115653	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115654	c.project = project
115655	c.region = region
115656	c.autoscaler = autoscaler
115657	return c
115658}
115659
115660// RequestId sets the optional parameter "requestId": An optional
115661// request ID to identify requests. Specify a unique request ID so that
115662// if you must retry your request, the server will know to ignore the
115663// request if it has already been completed. For example, consider a
115664// situation where you make an initial request and the request times
115665// out. If you make the request again with the same request ID, the
115666// server can check if original operation with the same request ID was
115667// received, and if so, will ignore the second request. This prevents
115668// clients from accidentally creating duplicate commitments. The request
115669// ID must be a valid UUID with the exception that zero UUID is not
115670// supported ( 00000000-0000-0000-0000-000000000000).
115671func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
115672	c.urlParams_.Set("requestId", requestId)
115673	return c
115674}
115675
115676// Fields allows partial responses to be retrieved. See
115677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115678// for more information.
115679func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
115680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115681	return c
115682}
115683
115684// Context sets the context to be used in this call's Do method. Any
115685// pending HTTP request will be aborted if the provided context is
115686// canceled.
115687func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
115688	c.ctx_ = ctx
115689	return c
115690}
115691
115692// Header returns an http.Header that can be modified by the caller to
115693// add HTTP headers to the request.
115694func (c *RegionAutoscalersDeleteCall) Header() http.Header {
115695	if c.header_ == nil {
115696		c.header_ = make(http.Header)
115697	}
115698	return c.header_
115699}
115700
115701func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
115702	reqHeaders := make(http.Header)
115703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
115704	for k, v := range c.header_ {
115705		reqHeaders[k] = v
115706	}
115707	reqHeaders.Set("User-Agent", c.s.userAgent())
115708	var body io.Reader = nil
115709	c.urlParams_.Set("alt", alt)
115710	c.urlParams_.Set("prettyPrint", "false")
115711	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
115712	urls += "?" + c.urlParams_.Encode()
115713	req, err := http.NewRequest("DELETE", urls, body)
115714	if err != nil {
115715		return nil, err
115716	}
115717	req.Header = reqHeaders
115718	googleapi.Expand(req.URL, map[string]string{
115719		"project":    c.project,
115720		"region":     c.region,
115721		"autoscaler": c.autoscaler,
115722	})
115723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115724}
115725
115726// Do executes the "compute.regionAutoscalers.delete" call.
115727// Exactly one of *Operation or error will be non-nil. Any non-2xx
115728// status code is an error. Response headers are in either
115729// *Operation.ServerResponse.Header or (if a response was returned at
115730// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115731// to check whether the returned error was because
115732// http.StatusNotModified was returned.
115733func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115734	gensupport.SetOptions(c.urlParams_, opts...)
115735	res, err := c.doRequest("json")
115736	if res != nil && res.StatusCode == http.StatusNotModified {
115737		if res.Body != nil {
115738			res.Body.Close()
115739		}
115740		return nil, &googleapi.Error{
115741			Code:   res.StatusCode,
115742			Header: res.Header,
115743		}
115744	}
115745	if err != nil {
115746		return nil, err
115747	}
115748	defer googleapi.CloseBody(res)
115749	if err := googleapi.CheckResponse(res); err != nil {
115750		return nil, err
115751	}
115752	ret := &Operation{
115753		ServerResponse: googleapi.ServerResponse{
115754			Header:         res.Header,
115755			HTTPStatusCode: res.StatusCode,
115756		},
115757	}
115758	target := &ret
115759	if err := gensupport.DecodeResponse(target, res); err != nil {
115760		return nil, err
115761	}
115762	return ret, nil
115763	// {
115764	//   "description": "Deletes the specified autoscaler.",
115765	//   "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
115766	//   "httpMethod": "DELETE",
115767	//   "id": "compute.regionAutoscalers.delete",
115768	//   "parameterOrder": [
115769	//     "project",
115770	//     "region",
115771	//     "autoscaler"
115772	//   ],
115773	//   "parameters": {
115774	//     "autoscaler": {
115775	//       "description": "Name of the autoscaler to delete.",
115776	//       "location": "path",
115777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115778	//       "required": true,
115779	//       "type": "string"
115780	//     },
115781	//     "project": {
115782	//       "description": "Project ID for this request.",
115783	//       "location": "path",
115784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115785	//       "required": true,
115786	//       "type": "string"
115787	//     },
115788	//     "region": {
115789	//       "description": "Name of the region scoping this request.",
115790	//       "location": "path",
115791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115792	//       "required": true,
115793	//       "type": "string"
115794	//     },
115795	//     "requestId": {
115796	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
115797	//       "location": "query",
115798	//       "type": "string"
115799	//     }
115800	//   },
115801	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
115802	//   "response": {
115803	//     "$ref": "Operation"
115804	//   },
115805	//   "scopes": [
115806	//     "https://www.googleapis.com/auth/cloud-platform",
115807	//     "https://www.googleapis.com/auth/compute"
115808	//   ]
115809	// }
115810
115811}
115812
115813// method id "compute.regionAutoscalers.get":
115814
115815type RegionAutoscalersGetCall struct {
115816	s            *Service
115817	project      string
115818	region       string
115819	autoscaler   string
115820	urlParams_   gensupport.URLParams
115821	ifNoneMatch_ string
115822	ctx_         context.Context
115823	header_      http.Header
115824}
115825
115826// Get: Returns the specified autoscaler.
115827//
115828// - autoscaler: Name of the autoscaler to return.
115829// - project: Project ID for this request.
115830// - region: Name of the region scoping this request.
115831func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
115832	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115833	c.project = project
115834	c.region = region
115835	c.autoscaler = autoscaler
115836	return c
115837}
115838
115839// Fields allows partial responses to be retrieved. See
115840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115841// for more information.
115842func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
115843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115844	return c
115845}
115846
115847// IfNoneMatch sets the optional parameter which makes the operation
115848// fail if the object's ETag matches the given value. This is useful for
115849// getting updates only after the object has changed since the last
115850// request. Use googleapi.IsNotModified to check whether the response
115851// error from Do is the result of In-None-Match.
115852func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
115853	c.ifNoneMatch_ = entityTag
115854	return c
115855}
115856
115857// Context sets the context to be used in this call's Do method. Any
115858// pending HTTP request will be aborted if the provided context is
115859// canceled.
115860func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
115861	c.ctx_ = ctx
115862	return c
115863}
115864
115865// Header returns an http.Header that can be modified by the caller to
115866// add HTTP headers to the request.
115867func (c *RegionAutoscalersGetCall) Header() http.Header {
115868	if c.header_ == nil {
115869		c.header_ = make(http.Header)
115870	}
115871	return c.header_
115872}
115873
115874func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
115875	reqHeaders := make(http.Header)
115876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
115877	for k, v := range c.header_ {
115878		reqHeaders[k] = v
115879	}
115880	reqHeaders.Set("User-Agent", c.s.userAgent())
115881	if c.ifNoneMatch_ != "" {
115882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115883	}
115884	var body io.Reader = nil
115885	c.urlParams_.Set("alt", alt)
115886	c.urlParams_.Set("prettyPrint", "false")
115887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
115888	urls += "?" + c.urlParams_.Encode()
115889	req, err := http.NewRequest("GET", urls, body)
115890	if err != nil {
115891		return nil, err
115892	}
115893	req.Header = reqHeaders
115894	googleapi.Expand(req.URL, map[string]string{
115895		"project":    c.project,
115896		"region":     c.region,
115897		"autoscaler": c.autoscaler,
115898	})
115899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115900}
115901
115902// Do executes the "compute.regionAutoscalers.get" call.
115903// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
115904// status code is an error. Response headers are in either
115905// *Autoscaler.ServerResponse.Header or (if a response was returned at
115906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115907// to check whether the returned error was because
115908// http.StatusNotModified was returned.
115909func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
115910	gensupport.SetOptions(c.urlParams_, opts...)
115911	res, err := c.doRequest("json")
115912	if res != nil && res.StatusCode == http.StatusNotModified {
115913		if res.Body != nil {
115914			res.Body.Close()
115915		}
115916		return nil, &googleapi.Error{
115917			Code:   res.StatusCode,
115918			Header: res.Header,
115919		}
115920	}
115921	if err != nil {
115922		return nil, err
115923	}
115924	defer googleapi.CloseBody(res)
115925	if err := googleapi.CheckResponse(res); err != nil {
115926		return nil, err
115927	}
115928	ret := &Autoscaler{
115929		ServerResponse: googleapi.ServerResponse{
115930			Header:         res.Header,
115931			HTTPStatusCode: res.StatusCode,
115932		},
115933	}
115934	target := &ret
115935	if err := gensupport.DecodeResponse(target, res); err != nil {
115936		return nil, err
115937	}
115938	return ret, nil
115939	// {
115940	//   "description": "Returns the specified autoscaler.",
115941	//   "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
115942	//   "httpMethod": "GET",
115943	//   "id": "compute.regionAutoscalers.get",
115944	//   "parameterOrder": [
115945	//     "project",
115946	//     "region",
115947	//     "autoscaler"
115948	//   ],
115949	//   "parameters": {
115950	//     "autoscaler": {
115951	//       "description": "Name of the autoscaler to return.",
115952	//       "location": "path",
115953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115954	//       "required": true,
115955	//       "type": "string"
115956	//     },
115957	//     "project": {
115958	//       "description": "Project ID for this request.",
115959	//       "location": "path",
115960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115961	//       "required": true,
115962	//       "type": "string"
115963	//     },
115964	//     "region": {
115965	//       "description": "Name of the region scoping this request.",
115966	//       "location": "path",
115967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115968	//       "required": true,
115969	//       "type": "string"
115970	//     }
115971	//   },
115972	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
115973	//   "response": {
115974	//     "$ref": "Autoscaler"
115975	//   },
115976	//   "scopes": [
115977	//     "https://www.googleapis.com/auth/cloud-platform",
115978	//     "https://www.googleapis.com/auth/compute",
115979	//     "https://www.googleapis.com/auth/compute.readonly"
115980	//   ]
115981	// }
115982
115983}
115984
115985// method id "compute.regionAutoscalers.insert":
115986
115987type RegionAutoscalersInsertCall struct {
115988	s          *Service
115989	project    string
115990	region     string
115991	autoscaler *Autoscaler
115992	urlParams_ gensupport.URLParams
115993	ctx_       context.Context
115994	header_    http.Header
115995}
115996
115997// Insert: Creates an autoscaler in the specified project using the data
115998// included in the request.
115999//
116000// - project: Project ID for this request.
116001// - region: Name of the region scoping this request.
116002func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
116003	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116004	c.project = project
116005	c.region = region
116006	c.autoscaler = autoscaler
116007	return c
116008}
116009
116010// RequestId sets the optional parameter "requestId": An optional
116011// request ID to identify requests. Specify a unique request ID so that
116012// if you must retry your request, the server will know to ignore the
116013// request if it has already been completed. For example, consider a
116014// situation where you make an initial request and the request times
116015// out. If you make the request again with the same request ID, the
116016// server can check if original operation with the same request ID was
116017// received, and if so, will ignore the second request. This prevents
116018// clients from accidentally creating duplicate commitments. The request
116019// ID must be a valid UUID with the exception that zero UUID is not
116020// supported ( 00000000-0000-0000-0000-000000000000).
116021func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
116022	c.urlParams_.Set("requestId", requestId)
116023	return c
116024}
116025
116026// Fields allows partial responses to be retrieved. See
116027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116028// for more information.
116029func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
116030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116031	return c
116032}
116033
116034// Context sets the context to be used in this call's Do method. Any
116035// pending HTTP request will be aborted if the provided context is
116036// canceled.
116037func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
116038	c.ctx_ = ctx
116039	return c
116040}
116041
116042// Header returns an http.Header that can be modified by the caller to
116043// add HTTP headers to the request.
116044func (c *RegionAutoscalersInsertCall) Header() http.Header {
116045	if c.header_ == nil {
116046		c.header_ = make(http.Header)
116047	}
116048	return c.header_
116049}
116050
116051func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
116052	reqHeaders := make(http.Header)
116053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
116054	for k, v := range c.header_ {
116055		reqHeaders[k] = v
116056	}
116057	reqHeaders.Set("User-Agent", c.s.userAgent())
116058	var body io.Reader = nil
116059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
116060	if err != nil {
116061		return nil, err
116062	}
116063	reqHeaders.Set("Content-Type", "application/json")
116064	c.urlParams_.Set("alt", alt)
116065	c.urlParams_.Set("prettyPrint", "false")
116066	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116067	urls += "?" + c.urlParams_.Encode()
116068	req, err := http.NewRequest("POST", urls, body)
116069	if err != nil {
116070		return nil, err
116071	}
116072	req.Header = reqHeaders
116073	googleapi.Expand(req.URL, map[string]string{
116074		"project": c.project,
116075		"region":  c.region,
116076	})
116077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116078}
116079
116080// Do executes the "compute.regionAutoscalers.insert" call.
116081// Exactly one of *Operation or error will be non-nil. Any non-2xx
116082// status code is an error. Response headers are in either
116083// *Operation.ServerResponse.Header or (if a response was returned at
116084// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116085// to check whether the returned error was because
116086// http.StatusNotModified was returned.
116087func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116088	gensupport.SetOptions(c.urlParams_, opts...)
116089	res, err := c.doRequest("json")
116090	if res != nil && res.StatusCode == http.StatusNotModified {
116091		if res.Body != nil {
116092			res.Body.Close()
116093		}
116094		return nil, &googleapi.Error{
116095			Code:   res.StatusCode,
116096			Header: res.Header,
116097		}
116098	}
116099	if err != nil {
116100		return nil, err
116101	}
116102	defer googleapi.CloseBody(res)
116103	if err := googleapi.CheckResponse(res); err != nil {
116104		return nil, err
116105	}
116106	ret := &Operation{
116107		ServerResponse: googleapi.ServerResponse{
116108			Header:         res.Header,
116109			HTTPStatusCode: res.StatusCode,
116110		},
116111	}
116112	target := &ret
116113	if err := gensupport.DecodeResponse(target, res); err != nil {
116114		return nil, err
116115	}
116116	return ret, nil
116117	// {
116118	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
116119	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116120	//   "httpMethod": "POST",
116121	//   "id": "compute.regionAutoscalers.insert",
116122	//   "parameterOrder": [
116123	//     "project",
116124	//     "region"
116125	//   ],
116126	//   "parameters": {
116127	//     "project": {
116128	//       "description": "Project ID for this request.",
116129	//       "location": "path",
116130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116131	//       "required": true,
116132	//       "type": "string"
116133	//     },
116134	//     "region": {
116135	//       "description": "Name of the region scoping this request.",
116136	//       "location": "path",
116137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116138	//       "required": true,
116139	//       "type": "string"
116140	//     },
116141	//     "requestId": {
116142	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116143	//       "location": "query",
116144	//       "type": "string"
116145	//     }
116146	//   },
116147	//   "path": "projects/{project}/regions/{region}/autoscalers",
116148	//   "request": {
116149	//     "$ref": "Autoscaler"
116150	//   },
116151	//   "response": {
116152	//     "$ref": "Operation"
116153	//   },
116154	//   "scopes": [
116155	//     "https://www.googleapis.com/auth/cloud-platform",
116156	//     "https://www.googleapis.com/auth/compute"
116157	//   ]
116158	// }
116159
116160}
116161
116162// method id "compute.regionAutoscalers.list":
116163
116164type RegionAutoscalersListCall struct {
116165	s            *Service
116166	project      string
116167	region       string
116168	urlParams_   gensupport.URLParams
116169	ifNoneMatch_ string
116170	ctx_         context.Context
116171	header_      http.Header
116172}
116173
116174// List: Retrieves a list of autoscalers contained within the specified
116175// region.
116176//
116177// - project: Project ID for this request.
116178// - region: Name of the region scoping this request.
116179func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
116180	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116181	c.project = project
116182	c.region = region
116183	return c
116184}
116185
116186// Filter sets the optional parameter "filter": A filter expression that
116187// filters resources listed in the response. The expression must specify
116188// the field name, a comparison operator, and the value that you want to
116189// use for filtering. The value must be a string, a number, or a
116190// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116191// `<`. For example, if you are filtering Compute Engine instances, you
116192// can exclude instances named `example-instance` by specifying `name !=
116193// example-instance`. You can also filter nested fields. For example,
116194// you could specify `scheduling.automaticRestart = false` to include
116195// instances only if they are not scheduled for automatic restarts. You
116196// can use filtering on nested fields to filter based on resource
116197// labels. To filter on multiple expressions, provide each separate
116198// expression within parentheses. For example: ```
116199// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
116200// ``` By default, each expression is an `AND` expression. However, you
116201// can include `AND` and `OR` expressions explicitly. For example: ```
116202// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
116203// AND (scheduling.automaticRestart = true) ```
116204func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
116205	c.urlParams_.Set("filter", filter)
116206	return c
116207}
116208
116209// MaxResults sets the optional parameter "maxResults": The maximum
116210// number of results per page that should be returned. If the number of
116211// available results is larger than `maxResults`, Compute Engine returns
116212// a `nextPageToken` that can be used to get the next page of results in
116213// subsequent list requests. Acceptable values are `0` to `500`,
116214// inclusive. (Default: `500`)
116215func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
116216	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116217	return c
116218}
116219
116220// OrderBy sets the optional parameter "orderBy": Sorts list results by
116221// a certain order. By default, results are returned in alphanumerical
116222// order based on the resource name. You can also sort results in
116223// descending order based on the creation timestamp using
116224// `orderBy="creationTimestamp desc". This sorts results based on the
116225// `creationTimestamp` field in reverse chronological order (newest
116226// result first). Use this to sort resources like operations so that the
116227// newest operation is returned first. Currently, only sorting by `name`
116228// or `creationTimestamp desc` is supported.
116229func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
116230	c.urlParams_.Set("orderBy", orderBy)
116231	return c
116232}
116233
116234// PageToken sets the optional parameter "pageToken": Specifies a page
116235// token to use. Set `pageToken` to the `nextPageToken` returned by a
116236// previous list request to get the next page of results.
116237func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
116238	c.urlParams_.Set("pageToken", pageToken)
116239	return c
116240}
116241
116242// ReturnPartialSuccess sets the optional parameter
116243// "returnPartialSuccess": Opt-in for partial success behavior which
116244// provides partial results in case of failure. The default value is
116245// false.
116246func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
116247	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116248	return c
116249}
116250
116251// Fields allows partial responses to be retrieved. See
116252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116253// for more information.
116254func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
116255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116256	return c
116257}
116258
116259// IfNoneMatch sets the optional parameter which makes the operation
116260// fail if the object's ETag matches the given value. This is useful for
116261// getting updates only after the object has changed since the last
116262// request. Use googleapi.IsNotModified to check whether the response
116263// error from Do is the result of In-None-Match.
116264func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
116265	c.ifNoneMatch_ = entityTag
116266	return c
116267}
116268
116269// Context sets the context to be used in this call's Do method. Any
116270// pending HTTP request will be aborted if the provided context is
116271// canceled.
116272func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
116273	c.ctx_ = ctx
116274	return c
116275}
116276
116277// Header returns an http.Header that can be modified by the caller to
116278// add HTTP headers to the request.
116279func (c *RegionAutoscalersListCall) Header() http.Header {
116280	if c.header_ == nil {
116281		c.header_ = make(http.Header)
116282	}
116283	return c.header_
116284}
116285
116286func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
116287	reqHeaders := make(http.Header)
116288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
116289	for k, v := range c.header_ {
116290		reqHeaders[k] = v
116291	}
116292	reqHeaders.Set("User-Agent", c.s.userAgent())
116293	if c.ifNoneMatch_ != "" {
116294		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116295	}
116296	var body io.Reader = nil
116297	c.urlParams_.Set("alt", alt)
116298	c.urlParams_.Set("prettyPrint", "false")
116299	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116300	urls += "?" + c.urlParams_.Encode()
116301	req, err := http.NewRequest("GET", urls, body)
116302	if err != nil {
116303		return nil, err
116304	}
116305	req.Header = reqHeaders
116306	googleapi.Expand(req.URL, map[string]string{
116307		"project": c.project,
116308		"region":  c.region,
116309	})
116310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116311}
116312
116313// Do executes the "compute.regionAutoscalers.list" call.
116314// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
116315// non-2xx status code is an error. Response headers are in either
116316// *RegionAutoscalerList.ServerResponse.Header or (if a response was
116317// returned at all) in error.(*googleapi.Error).Header. Use
116318// googleapi.IsNotModified to check whether the returned error was
116319// because http.StatusNotModified was returned.
116320func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
116321	gensupport.SetOptions(c.urlParams_, opts...)
116322	res, err := c.doRequest("json")
116323	if res != nil && res.StatusCode == http.StatusNotModified {
116324		if res.Body != nil {
116325			res.Body.Close()
116326		}
116327		return nil, &googleapi.Error{
116328			Code:   res.StatusCode,
116329			Header: res.Header,
116330		}
116331	}
116332	if err != nil {
116333		return nil, err
116334	}
116335	defer googleapi.CloseBody(res)
116336	if err := googleapi.CheckResponse(res); err != nil {
116337		return nil, err
116338	}
116339	ret := &RegionAutoscalerList{
116340		ServerResponse: googleapi.ServerResponse{
116341			Header:         res.Header,
116342			HTTPStatusCode: res.StatusCode,
116343		},
116344	}
116345	target := &ret
116346	if err := gensupport.DecodeResponse(target, res); err != nil {
116347		return nil, err
116348	}
116349	return ret, nil
116350	// {
116351	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
116352	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116353	//   "httpMethod": "GET",
116354	//   "id": "compute.regionAutoscalers.list",
116355	//   "parameterOrder": [
116356	//     "project",
116357	//     "region"
116358	//   ],
116359	//   "parameters": {
116360	//     "filter": {
116361	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
116362	//       "location": "query",
116363	//       "type": "string"
116364	//     },
116365	//     "maxResults": {
116366	//       "default": "500",
116367	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
116368	//       "format": "uint32",
116369	//       "location": "query",
116370	//       "minimum": "0",
116371	//       "type": "integer"
116372	//     },
116373	//     "orderBy": {
116374	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
116375	//       "location": "query",
116376	//       "type": "string"
116377	//     },
116378	//     "pageToken": {
116379	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
116380	//       "location": "query",
116381	//       "type": "string"
116382	//     },
116383	//     "project": {
116384	//       "description": "Project ID for this request.",
116385	//       "location": "path",
116386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116387	//       "required": true,
116388	//       "type": "string"
116389	//     },
116390	//     "region": {
116391	//       "description": "Name of the region scoping this request.",
116392	//       "location": "path",
116393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116394	//       "required": true,
116395	//       "type": "string"
116396	//     },
116397	//     "returnPartialSuccess": {
116398	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
116399	//       "location": "query",
116400	//       "type": "boolean"
116401	//     }
116402	//   },
116403	//   "path": "projects/{project}/regions/{region}/autoscalers",
116404	//   "response": {
116405	//     "$ref": "RegionAutoscalerList"
116406	//   },
116407	//   "scopes": [
116408	//     "https://www.googleapis.com/auth/cloud-platform",
116409	//     "https://www.googleapis.com/auth/compute",
116410	//     "https://www.googleapis.com/auth/compute.readonly"
116411	//   ]
116412	// }
116413
116414}
116415
116416// Pages invokes f for each page of results.
116417// A non-nil error returned from f will halt the iteration.
116418// The provided context supersedes any context provided to the Context method.
116419func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
116420	c.ctx_ = ctx
116421	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116422	for {
116423		x, err := c.Do()
116424		if err != nil {
116425			return err
116426		}
116427		if err := f(x); err != nil {
116428			return err
116429		}
116430		if x.NextPageToken == "" {
116431			return nil
116432		}
116433		c.PageToken(x.NextPageToken)
116434	}
116435}
116436
116437// method id "compute.regionAutoscalers.patch":
116438
116439type RegionAutoscalersPatchCall struct {
116440	s          *Service
116441	project    string
116442	region     string
116443	autoscaler *Autoscaler
116444	urlParams_ gensupport.URLParams
116445	ctx_       context.Context
116446	header_    http.Header
116447}
116448
116449// Patch: Updates an autoscaler in the specified project using the data
116450// included in the request. This method supports PATCH semantics and
116451// uses the JSON merge patch format and processing rules.
116452//
116453// - project: Project ID for this request.
116454// - region: Name of the region scoping this request.
116455func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
116456	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116457	c.project = project
116458	c.region = region
116459	c.autoscaler = autoscaler
116460	return c
116461}
116462
116463// Autoscaler sets the optional parameter "autoscaler": Name of the
116464// autoscaler to patch.
116465func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
116466	c.urlParams_.Set("autoscaler", autoscaler)
116467	return c
116468}
116469
116470// RequestId sets the optional parameter "requestId": An optional
116471// request ID to identify requests. Specify a unique request ID so that
116472// if you must retry your request, the server will know to ignore the
116473// request if it has already been completed. For example, consider a
116474// situation where you make an initial request and the request times
116475// out. If you make the request again with the same request ID, the
116476// server can check if original operation with the same request ID was
116477// received, and if so, will ignore the second request. This prevents
116478// clients from accidentally creating duplicate commitments. The request
116479// ID must be a valid UUID with the exception that zero UUID is not
116480// supported ( 00000000-0000-0000-0000-000000000000).
116481func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
116482	c.urlParams_.Set("requestId", requestId)
116483	return c
116484}
116485
116486// Fields allows partial responses to be retrieved. See
116487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116488// for more information.
116489func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
116490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116491	return c
116492}
116493
116494// Context sets the context to be used in this call's Do method. Any
116495// pending HTTP request will be aborted if the provided context is
116496// canceled.
116497func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
116498	c.ctx_ = ctx
116499	return c
116500}
116501
116502// Header returns an http.Header that can be modified by the caller to
116503// add HTTP headers to the request.
116504func (c *RegionAutoscalersPatchCall) Header() http.Header {
116505	if c.header_ == nil {
116506		c.header_ = make(http.Header)
116507	}
116508	return c.header_
116509}
116510
116511func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
116512	reqHeaders := make(http.Header)
116513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
116514	for k, v := range c.header_ {
116515		reqHeaders[k] = v
116516	}
116517	reqHeaders.Set("User-Agent", c.s.userAgent())
116518	var body io.Reader = nil
116519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
116520	if err != nil {
116521		return nil, err
116522	}
116523	reqHeaders.Set("Content-Type", "application/json")
116524	c.urlParams_.Set("alt", alt)
116525	c.urlParams_.Set("prettyPrint", "false")
116526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116527	urls += "?" + c.urlParams_.Encode()
116528	req, err := http.NewRequest("PATCH", urls, body)
116529	if err != nil {
116530		return nil, err
116531	}
116532	req.Header = reqHeaders
116533	googleapi.Expand(req.URL, map[string]string{
116534		"project": c.project,
116535		"region":  c.region,
116536	})
116537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116538}
116539
116540// Do executes the "compute.regionAutoscalers.patch" call.
116541// Exactly one of *Operation or error will be non-nil. Any non-2xx
116542// status code is an error. Response headers are in either
116543// *Operation.ServerResponse.Header or (if a response was returned at
116544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116545// to check whether the returned error was because
116546// http.StatusNotModified was returned.
116547func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116548	gensupport.SetOptions(c.urlParams_, opts...)
116549	res, err := c.doRequest("json")
116550	if res != nil && res.StatusCode == http.StatusNotModified {
116551		if res.Body != nil {
116552			res.Body.Close()
116553		}
116554		return nil, &googleapi.Error{
116555			Code:   res.StatusCode,
116556			Header: res.Header,
116557		}
116558	}
116559	if err != nil {
116560		return nil, err
116561	}
116562	defer googleapi.CloseBody(res)
116563	if err := googleapi.CheckResponse(res); err != nil {
116564		return nil, err
116565	}
116566	ret := &Operation{
116567		ServerResponse: googleapi.ServerResponse{
116568			Header:         res.Header,
116569			HTTPStatusCode: res.StatusCode,
116570		},
116571	}
116572	target := &ret
116573	if err := gensupport.DecodeResponse(target, res); err != nil {
116574		return nil, err
116575	}
116576	return ret, nil
116577	// {
116578	//   "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.",
116579	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116580	//   "httpMethod": "PATCH",
116581	//   "id": "compute.regionAutoscalers.patch",
116582	//   "parameterOrder": [
116583	//     "project",
116584	//     "region"
116585	//   ],
116586	//   "parameters": {
116587	//     "autoscaler": {
116588	//       "description": "Name of the autoscaler to patch.",
116589	//       "location": "query",
116590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116591	//       "type": "string"
116592	//     },
116593	//     "project": {
116594	//       "description": "Project ID for this request.",
116595	//       "location": "path",
116596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116597	//       "required": true,
116598	//       "type": "string"
116599	//     },
116600	//     "region": {
116601	//       "description": "Name of the region scoping this request.",
116602	//       "location": "path",
116603	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116604	//       "required": true,
116605	//       "type": "string"
116606	//     },
116607	//     "requestId": {
116608	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116609	//       "location": "query",
116610	//       "type": "string"
116611	//     }
116612	//   },
116613	//   "path": "projects/{project}/regions/{region}/autoscalers",
116614	//   "request": {
116615	//     "$ref": "Autoscaler"
116616	//   },
116617	//   "response": {
116618	//     "$ref": "Operation"
116619	//   },
116620	//   "scopes": [
116621	//     "https://www.googleapis.com/auth/cloud-platform",
116622	//     "https://www.googleapis.com/auth/compute"
116623	//   ]
116624	// }
116625
116626}
116627
116628// method id "compute.regionAutoscalers.update":
116629
116630type RegionAutoscalersUpdateCall struct {
116631	s          *Service
116632	project    string
116633	region     string
116634	autoscaler *Autoscaler
116635	urlParams_ gensupport.URLParams
116636	ctx_       context.Context
116637	header_    http.Header
116638}
116639
116640// Update: Updates an autoscaler in the specified project using the data
116641// included in the request.
116642//
116643// - project: Project ID for this request.
116644// - region: Name of the region scoping this request.
116645func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
116646	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116647	c.project = project
116648	c.region = region
116649	c.autoscaler = autoscaler
116650	return c
116651}
116652
116653// Autoscaler sets the optional parameter "autoscaler": Name of the
116654// autoscaler to update.
116655func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
116656	c.urlParams_.Set("autoscaler", autoscaler)
116657	return c
116658}
116659
116660// RequestId sets the optional parameter "requestId": An optional
116661// request ID to identify requests. Specify a unique request ID so that
116662// if you must retry your request, the server will know to ignore the
116663// request if it has already been completed. For example, consider a
116664// situation where you make an initial request and the request times
116665// out. If you make the request again with the same request ID, the
116666// server can check if original operation with the same request ID was
116667// received, and if so, will ignore the second request. This prevents
116668// clients from accidentally creating duplicate commitments. The request
116669// ID must be a valid UUID with the exception that zero UUID is not
116670// supported ( 00000000-0000-0000-0000-000000000000).
116671func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
116672	c.urlParams_.Set("requestId", requestId)
116673	return c
116674}
116675
116676// Fields allows partial responses to be retrieved. See
116677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116678// for more information.
116679func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
116680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116681	return c
116682}
116683
116684// Context sets the context to be used in this call's Do method. Any
116685// pending HTTP request will be aborted if the provided context is
116686// canceled.
116687func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
116688	c.ctx_ = ctx
116689	return c
116690}
116691
116692// Header returns an http.Header that can be modified by the caller to
116693// add HTTP headers to the request.
116694func (c *RegionAutoscalersUpdateCall) Header() http.Header {
116695	if c.header_ == nil {
116696		c.header_ = make(http.Header)
116697	}
116698	return c.header_
116699}
116700
116701func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
116702	reqHeaders := make(http.Header)
116703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
116704	for k, v := range c.header_ {
116705		reqHeaders[k] = v
116706	}
116707	reqHeaders.Set("User-Agent", c.s.userAgent())
116708	var body io.Reader = nil
116709	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
116710	if err != nil {
116711		return nil, err
116712	}
116713	reqHeaders.Set("Content-Type", "application/json")
116714	c.urlParams_.Set("alt", alt)
116715	c.urlParams_.Set("prettyPrint", "false")
116716	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116717	urls += "?" + c.urlParams_.Encode()
116718	req, err := http.NewRequest("PUT", urls, body)
116719	if err != nil {
116720		return nil, err
116721	}
116722	req.Header = reqHeaders
116723	googleapi.Expand(req.URL, map[string]string{
116724		"project": c.project,
116725		"region":  c.region,
116726	})
116727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116728}
116729
116730// Do executes the "compute.regionAutoscalers.update" call.
116731// Exactly one of *Operation or error will be non-nil. Any non-2xx
116732// status code is an error. Response headers are in either
116733// *Operation.ServerResponse.Header or (if a response was returned at
116734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116735// to check whether the returned error was because
116736// http.StatusNotModified was returned.
116737func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116738	gensupport.SetOptions(c.urlParams_, opts...)
116739	res, err := c.doRequest("json")
116740	if res != nil && res.StatusCode == http.StatusNotModified {
116741		if res.Body != nil {
116742			res.Body.Close()
116743		}
116744		return nil, &googleapi.Error{
116745			Code:   res.StatusCode,
116746			Header: res.Header,
116747		}
116748	}
116749	if err != nil {
116750		return nil, err
116751	}
116752	defer googleapi.CloseBody(res)
116753	if err := googleapi.CheckResponse(res); err != nil {
116754		return nil, err
116755	}
116756	ret := &Operation{
116757		ServerResponse: googleapi.ServerResponse{
116758			Header:         res.Header,
116759			HTTPStatusCode: res.StatusCode,
116760		},
116761	}
116762	target := &ret
116763	if err := gensupport.DecodeResponse(target, res); err != nil {
116764		return nil, err
116765	}
116766	return ret, nil
116767	// {
116768	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
116769	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116770	//   "httpMethod": "PUT",
116771	//   "id": "compute.regionAutoscalers.update",
116772	//   "parameterOrder": [
116773	//     "project",
116774	//     "region"
116775	//   ],
116776	//   "parameters": {
116777	//     "autoscaler": {
116778	//       "description": "Name of the autoscaler to update.",
116779	//       "location": "query",
116780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116781	//       "type": "string"
116782	//     },
116783	//     "project": {
116784	//       "description": "Project ID for this request.",
116785	//       "location": "path",
116786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116787	//       "required": true,
116788	//       "type": "string"
116789	//     },
116790	//     "region": {
116791	//       "description": "Name of the region scoping this request.",
116792	//       "location": "path",
116793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116794	//       "required": true,
116795	//       "type": "string"
116796	//     },
116797	//     "requestId": {
116798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116799	//       "location": "query",
116800	//       "type": "string"
116801	//     }
116802	//   },
116803	//   "path": "projects/{project}/regions/{region}/autoscalers",
116804	//   "request": {
116805	//     "$ref": "Autoscaler"
116806	//   },
116807	//   "response": {
116808	//     "$ref": "Operation"
116809	//   },
116810	//   "scopes": [
116811	//     "https://www.googleapis.com/auth/cloud-platform",
116812	//     "https://www.googleapis.com/auth/compute"
116813	//   ]
116814	// }
116815
116816}
116817
116818// method id "compute.regionBackendServices.delete":
116819
116820type RegionBackendServicesDeleteCall struct {
116821	s              *Service
116822	project        string
116823	region         string
116824	backendService string
116825	urlParams_     gensupport.URLParams
116826	ctx_           context.Context
116827	header_        http.Header
116828}
116829
116830// Delete: Deletes the specified regional BackendService resource.
116831//
116832// - backendService: Name of the BackendService resource to delete.
116833// - project: Project ID for this request.
116834// - region: Name of the region scoping this request.
116835func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
116836	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116837	c.project = project
116838	c.region = region
116839	c.backendService = backendService
116840	return c
116841}
116842
116843// RequestId sets the optional parameter "requestId": An optional
116844// request ID to identify requests. Specify a unique request ID so that
116845// if you must retry your request, the server will know to ignore the
116846// request if it has already been completed. For example, consider a
116847// situation where you make an initial request and the request times
116848// out. If you make the request again with the same request ID, the
116849// server can check if original operation with the same request ID was
116850// received, and if so, will ignore the second request. This prevents
116851// clients from accidentally creating duplicate commitments. The request
116852// ID must be a valid UUID with the exception that zero UUID is not
116853// supported ( 00000000-0000-0000-0000-000000000000).
116854func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
116855	c.urlParams_.Set("requestId", requestId)
116856	return c
116857}
116858
116859// Fields allows partial responses to be retrieved. See
116860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116861// for more information.
116862func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
116863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116864	return c
116865}
116866
116867// Context sets the context to be used in this call's Do method. Any
116868// pending HTTP request will be aborted if the provided context is
116869// canceled.
116870func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
116871	c.ctx_ = ctx
116872	return c
116873}
116874
116875// Header returns an http.Header that can be modified by the caller to
116876// add HTTP headers to the request.
116877func (c *RegionBackendServicesDeleteCall) Header() http.Header {
116878	if c.header_ == nil {
116879		c.header_ = make(http.Header)
116880	}
116881	return c.header_
116882}
116883
116884func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
116885	reqHeaders := make(http.Header)
116886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
116887	for k, v := range c.header_ {
116888		reqHeaders[k] = v
116889	}
116890	reqHeaders.Set("User-Agent", c.s.userAgent())
116891	var body io.Reader = nil
116892	c.urlParams_.Set("alt", alt)
116893	c.urlParams_.Set("prettyPrint", "false")
116894	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
116895	urls += "?" + c.urlParams_.Encode()
116896	req, err := http.NewRequest("DELETE", urls, body)
116897	if err != nil {
116898		return nil, err
116899	}
116900	req.Header = reqHeaders
116901	googleapi.Expand(req.URL, map[string]string{
116902		"project":        c.project,
116903		"region":         c.region,
116904		"backendService": c.backendService,
116905	})
116906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116907}
116908
116909// Do executes the "compute.regionBackendServices.delete" call.
116910// Exactly one of *Operation or error will be non-nil. Any non-2xx
116911// status code is an error. Response headers are in either
116912// *Operation.ServerResponse.Header or (if a response was returned at
116913// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116914// to check whether the returned error was because
116915// http.StatusNotModified was returned.
116916func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116917	gensupport.SetOptions(c.urlParams_, opts...)
116918	res, err := c.doRequest("json")
116919	if res != nil && res.StatusCode == http.StatusNotModified {
116920		if res.Body != nil {
116921			res.Body.Close()
116922		}
116923		return nil, &googleapi.Error{
116924			Code:   res.StatusCode,
116925			Header: res.Header,
116926		}
116927	}
116928	if err != nil {
116929		return nil, err
116930	}
116931	defer googleapi.CloseBody(res)
116932	if err := googleapi.CheckResponse(res); err != nil {
116933		return nil, err
116934	}
116935	ret := &Operation{
116936		ServerResponse: googleapi.ServerResponse{
116937			Header:         res.Header,
116938			HTTPStatusCode: res.StatusCode,
116939		},
116940	}
116941	target := &ret
116942	if err := gensupport.DecodeResponse(target, res); err != nil {
116943		return nil, err
116944	}
116945	return ret, nil
116946	// {
116947	//   "description": "Deletes the specified regional BackendService resource.",
116948	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
116949	//   "httpMethod": "DELETE",
116950	//   "id": "compute.regionBackendServices.delete",
116951	//   "parameterOrder": [
116952	//     "project",
116953	//     "region",
116954	//     "backendService"
116955	//   ],
116956	//   "parameters": {
116957	//     "backendService": {
116958	//       "description": "Name of the BackendService resource to delete.",
116959	//       "location": "path",
116960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116961	//       "required": true,
116962	//       "type": "string"
116963	//     },
116964	//     "project": {
116965	//       "description": "Project ID for this request.",
116966	//       "location": "path",
116967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116968	//       "required": true,
116969	//       "type": "string"
116970	//     },
116971	//     "region": {
116972	//       "description": "Name of the region scoping this request.",
116973	//       "location": "path",
116974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116975	//       "required": true,
116976	//       "type": "string"
116977	//     },
116978	//     "requestId": {
116979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116980	//       "location": "query",
116981	//       "type": "string"
116982	//     }
116983	//   },
116984	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
116985	//   "response": {
116986	//     "$ref": "Operation"
116987	//   },
116988	//   "scopes": [
116989	//     "https://www.googleapis.com/auth/cloud-platform",
116990	//     "https://www.googleapis.com/auth/compute"
116991	//   ]
116992	// }
116993
116994}
116995
116996// method id "compute.regionBackendServices.get":
116997
116998type RegionBackendServicesGetCall struct {
116999	s              *Service
117000	project        string
117001	region         string
117002	backendService string
117003	urlParams_     gensupport.URLParams
117004	ifNoneMatch_   string
117005	ctx_           context.Context
117006	header_        http.Header
117007}
117008
117009// Get: Returns the specified regional BackendService resource.
117010//
117011// - backendService: Name of the BackendService resource to return.
117012// - project: Project ID for this request.
117013// - region: Name of the region scoping this request.
117014func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
117015	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117016	c.project = project
117017	c.region = region
117018	c.backendService = backendService
117019	return c
117020}
117021
117022// Fields allows partial responses to be retrieved. See
117023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117024// for more information.
117025func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
117026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117027	return c
117028}
117029
117030// IfNoneMatch sets the optional parameter which makes the operation
117031// fail if the object's ETag matches the given value. This is useful for
117032// getting updates only after the object has changed since the last
117033// request. Use googleapi.IsNotModified to check whether the response
117034// error from Do is the result of In-None-Match.
117035func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
117036	c.ifNoneMatch_ = entityTag
117037	return c
117038}
117039
117040// Context sets the context to be used in this call's Do method. Any
117041// pending HTTP request will be aborted if the provided context is
117042// canceled.
117043func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
117044	c.ctx_ = ctx
117045	return c
117046}
117047
117048// Header returns an http.Header that can be modified by the caller to
117049// add HTTP headers to the request.
117050func (c *RegionBackendServicesGetCall) Header() http.Header {
117051	if c.header_ == nil {
117052		c.header_ = make(http.Header)
117053	}
117054	return c.header_
117055}
117056
117057func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
117058	reqHeaders := make(http.Header)
117059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
117060	for k, v := range c.header_ {
117061		reqHeaders[k] = v
117062	}
117063	reqHeaders.Set("User-Agent", c.s.userAgent())
117064	if c.ifNoneMatch_ != "" {
117065		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117066	}
117067	var body io.Reader = nil
117068	c.urlParams_.Set("alt", alt)
117069	c.urlParams_.Set("prettyPrint", "false")
117070	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
117071	urls += "?" + c.urlParams_.Encode()
117072	req, err := http.NewRequest("GET", urls, body)
117073	if err != nil {
117074		return nil, err
117075	}
117076	req.Header = reqHeaders
117077	googleapi.Expand(req.URL, map[string]string{
117078		"project":        c.project,
117079		"region":         c.region,
117080		"backendService": c.backendService,
117081	})
117082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117083}
117084
117085// Do executes the "compute.regionBackendServices.get" call.
117086// Exactly one of *BackendService or error will be non-nil. Any non-2xx
117087// status code is an error. Response headers are in either
117088// *BackendService.ServerResponse.Header or (if a response was returned
117089// at all) in error.(*googleapi.Error).Header. Use
117090// googleapi.IsNotModified to check whether the returned error was
117091// because http.StatusNotModified was returned.
117092func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
117093	gensupport.SetOptions(c.urlParams_, opts...)
117094	res, err := c.doRequest("json")
117095	if res != nil && res.StatusCode == http.StatusNotModified {
117096		if res.Body != nil {
117097			res.Body.Close()
117098		}
117099		return nil, &googleapi.Error{
117100			Code:   res.StatusCode,
117101			Header: res.Header,
117102		}
117103	}
117104	if err != nil {
117105		return nil, err
117106	}
117107	defer googleapi.CloseBody(res)
117108	if err := googleapi.CheckResponse(res); err != nil {
117109		return nil, err
117110	}
117111	ret := &BackendService{
117112		ServerResponse: googleapi.ServerResponse{
117113			Header:         res.Header,
117114			HTTPStatusCode: res.StatusCode,
117115		},
117116	}
117117	target := &ret
117118	if err := gensupport.DecodeResponse(target, res); err != nil {
117119		return nil, err
117120	}
117121	return ret, nil
117122	// {
117123	//   "description": "Returns the specified regional BackendService resource.",
117124	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
117125	//   "httpMethod": "GET",
117126	//   "id": "compute.regionBackendServices.get",
117127	//   "parameterOrder": [
117128	//     "project",
117129	//     "region",
117130	//     "backendService"
117131	//   ],
117132	//   "parameters": {
117133	//     "backendService": {
117134	//       "description": "Name of the BackendService resource to return.",
117135	//       "location": "path",
117136	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117137	//       "required": true,
117138	//       "type": "string"
117139	//     },
117140	//     "project": {
117141	//       "description": "Project ID for this request.",
117142	//       "location": "path",
117143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117144	//       "required": true,
117145	//       "type": "string"
117146	//     },
117147	//     "region": {
117148	//       "description": "Name of the region scoping this request.",
117149	//       "location": "path",
117150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117151	//       "required": true,
117152	//       "type": "string"
117153	//     }
117154	//   },
117155	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
117156	//   "response": {
117157	//     "$ref": "BackendService"
117158	//   },
117159	//   "scopes": [
117160	//     "https://www.googleapis.com/auth/cloud-platform",
117161	//     "https://www.googleapis.com/auth/compute",
117162	//     "https://www.googleapis.com/auth/compute.readonly"
117163	//   ]
117164	// }
117165
117166}
117167
117168// method id "compute.regionBackendServices.getHealth":
117169
117170type RegionBackendServicesGetHealthCall struct {
117171	s                      *Service
117172	project                string
117173	region                 string
117174	backendService         string
117175	resourcegroupreference *ResourceGroupReference
117176	urlParams_             gensupport.URLParams
117177	ctx_                   context.Context
117178	header_                http.Header
117179}
117180
117181// GetHealth: Gets the most recent health check results for this
117182// regional BackendService.
117183//
117184// - backendService: Name of the BackendService resource for which to
117185//   get health.
117186// - project: .
117187// - region: Name of the region scoping this request.
117188func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
117189	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117190	c.project = project
117191	c.region = region
117192	c.backendService = backendService
117193	c.resourcegroupreference = resourcegroupreference
117194	return c
117195}
117196
117197// Fields allows partial responses to be retrieved. See
117198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117199// for more information.
117200func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
117201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117202	return c
117203}
117204
117205// Context sets the context to be used in this call's Do method. Any
117206// pending HTTP request will be aborted if the provided context is
117207// canceled.
117208func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
117209	c.ctx_ = ctx
117210	return c
117211}
117212
117213// Header returns an http.Header that can be modified by the caller to
117214// add HTTP headers to the request.
117215func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
117216	if c.header_ == nil {
117217		c.header_ = make(http.Header)
117218	}
117219	return c.header_
117220}
117221
117222func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
117223	reqHeaders := make(http.Header)
117224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
117225	for k, v := range c.header_ {
117226		reqHeaders[k] = v
117227	}
117228	reqHeaders.Set("User-Agent", c.s.userAgent())
117229	var body io.Reader = nil
117230	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
117231	if err != nil {
117232		return nil, err
117233	}
117234	reqHeaders.Set("Content-Type", "application/json")
117235	c.urlParams_.Set("alt", alt)
117236	c.urlParams_.Set("prettyPrint", "false")
117237	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth")
117238	urls += "?" + c.urlParams_.Encode()
117239	req, err := http.NewRequest("POST", urls, body)
117240	if err != nil {
117241		return nil, err
117242	}
117243	req.Header = reqHeaders
117244	googleapi.Expand(req.URL, map[string]string{
117245		"project":        c.project,
117246		"region":         c.region,
117247		"backendService": c.backendService,
117248	})
117249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117250}
117251
117252// Do executes the "compute.regionBackendServices.getHealth" call.
117253// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
117254// Any non-2xx status code is an error. Response headers are in either
117255// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
117256// was returned at all) in error.(*googleapi.Error).Header. Use
117257// googleapi.IsNotModified to check whether the returned error was
117258// because http.StatusNotModified was returned.
117259func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
117260	gensupport.SetOptions(c.urlParams_, opts...)
117261	res, err := c.doRequest("json")
117262	if res != nil && res.StatusCode == http.StatusNotModified {
117263		if res.Body != nil {
117264			res.Body.Close()
117265		}
117266		return nil, &googleapi.Error{
117267			Code:   res.StatusCode,
117268			Header: res.Header,
117269		}
117270	}
117271	if err != nil {
117272		return nil, err
117273	}
117274	defer googleapi.CloseBody(res)
117275	if err := googleapi.CheckResponse(res); err != nil {
117276		return nil, err
117277	}
117278	ret := &BackendServiceGroupHealth{
117279		ServerResponse: googleapi.ServerResponse{
117280			Header:         res.Header,
117281			HTTPStatusCode: res.StatusCode,
117282		},
117283	}
117284	target := &ret
117285	if err := gensupport.DecodeResponse(target, res); err != nil {
117286		return nil, err
117287	}
117288	return ret, nil
117289	// {
117290	//   "description": "Gets the most recent health check results for this regional BackendService.",
117291	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
117292	//   "httpMethod": "POST",
117293	//   "id": "compute.regionBackendServices.getHealth",
117294	//   "parameterOrder": [
117295	//     "project",
117296	//     "region",
117297	//     "backendService"
117298	//   ],
117299	//   "parameters": {
117300	//     "backendService": {
117301	//       "description": "Name of the BackendService resource for which to get health.",
117302	//       "location": "path",
117303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117304	//       "required": true,
117305	//       "type": "string"
117306	//     },
117307	//     "project": {
117308	//       "location": "path",
117309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117310	//       "required": true,
117311	//       "type": "string"
117312	//     },
117313	//     "region": {
117314	//       "description": "Name of the region scoping this request.",
117315	//       "location": "path",
117316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117317	//       "required": true,
117318	//       "type": "string"
117319	//     }
117320	//   },
117321	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
117322	//   "request": {
117323	//     "$ref": "ResourceGroupReference"
117324	//   },
117325	//   "response": {
117326	//     "$ref": "BackendServiceGroupHealth"
117327	//   },
117328	//   "scopes": [
117329	//     "https://www.googleapis.com/auth/cloud-platform",
117330	//     "https://www.googleapis.com/auth/compute",
117331	//     "https://www.googleapis.com/auth/compute.readonly"
117332	//   ]
117333	// }
117334
117335}
117336
117337// method id "compute.regionBackendServices.insert":
117338
117339type RegionBackendServicesInsertCall struct {
117340	s              *Service
117341	project        string
117342	region         string
117343	backendservice *BackendService
117344	urlParams_     gensupport.URLParams
117345	ctx_           context.Context
117346	header_        http.Header
117347}
117348
117349// Insert: Creates a regional BackendService resource in the specified
117350// project using the data included in the request. For more information,
117351// see Backend services overview.
117352//
117353// - project: Project ID for this request.
117354// - region: Name of the region scoping this request.
117355func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
117356	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117357	c.project = project
117358	c.region = region
117359	c.backendservice = backendservice
117360	return c
117361}
117362
117363// RequestId sets the optional parameter "requestId": An optional
117364// request ID to identify requests. Specify a unique request ID so that
117365// if you must retry your request, the server will know to ignore the
117366// request if it has already been completed. For example, consider a
117367// situation where you make an initial request and the request times
117368// out. If you make the request again with the same request ID, the
117369// server can check if original operation with the same request ID was
117370// received, and if so, will ignore the second request. This prevents
117371// clients from accidentally creating duplicate commitments. The request
117372// ID must be a valid UUID with the exception that zero UUID is not
117373// supported ( 00000000-0000-0000-0000-000000000000).
117374func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
117375	c.urlParams_.Set("requestId", requestId)
117376	return c
117377}
117378
117379// Fields allows partial responses to be retrieved. See
117380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117381// for more information.
117382func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
117383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117384	return c
117385}
117386
117387// Context sets the context to be used in this call's Do method. Any
117388// pending HTTP request will be aborted if the provided context is
117389// canceled.
117390func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
117391	c.ctx_ = ctx
117392	return c
117393}
117394
117395// Header returns an http.Header that can be modified by the caller to
117396// add HTTP headers to the request.
117397func (c *RegionBackendServicesInsertCall) Header() http.Header {
117398	if c.header_ == nil {
117399		c.header_ = make(http.Header)
117400	}
117401	return c.header_
117402}
117403
117404func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
117405	reqHeaders := make(http.Header)
117406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
117407	for k, v := range c.header_ {
117408		reqHeaders[k] = v
117409	}
117410	reqHeaders.Set("User-Agent", c.s.userAgent())
117411	var body io.Reader = nil
117412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
117413	if err != nil {
117414		return nil, err
117415	}
117416	reqHeaders.Set("Content-Type", "application/json")
117417	c.urlParams_.Set("alt", alt)
117418	c.urlParams_.Set("prettyPrint", "false")
117419	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
117420	urls += "?" + c.urlParams_.Encode()
117421	req, err := http.NewRequest("POST", urls, body)
117422	if err != nil {
117423		return nil, err
117424	}
117425	req.Header = reqHeaders
117426	googleapi.Expand(req.URL, map[string]string{
117427		"project": c.project,
117428		"region":  c.region,
117429	})
117430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117431}
117432
117433// Do executes the "compute.regionBackendServices.insert" call.
117434// Exactly one of *Operation or error will be non-nil. Any non-2xx
117435// status code is an error. Response headers are in either
117436// *Operation.ServerResponse.Header or (if a response was returned at
117437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117438// to check whether the returned error was because
117439// http.StatusNotModified was returned.
117440func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117441	gensupport.SetOptions(c.urlParams_, opts...)
117442	res, err := c.doRequest("json")
117443	if res != nil && res.StatusCode == http.StatusNotModified {
117444		if res.Body != nil {
117445			res.Body.Close()
117446		}
117447		return nil, &googleapi.Error{
117448			Code:   res.StatusCode,
117449			Header: res.Header,
117450		}
117451	}
117452	if err != nil {
117453		return nil, err
117454	}
117455	defer googleapi.CloseBody(res)
117456	if err := googleapi.CheckResponse(res); err != nil {
117457		return nil, err
117458	}
117459	ret := &Operation{
117460		ServerResponse: googleapi.ServerResponse{
117461			Header:         res.Header,
117462			HTTPStatusCode: res.StatusCode,
117463		},
117464	}
117465	target := &ret
117466	if err := gensupport.DecodeResponse(target, res); err != nil {
117467		return nil, err
117468	}
117469	return ret, nil
117470	// {
117471	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.",
117472	//   "flatPath": "projects/{project}/regions/{region}/backendServices",
117473	//   "httpMethod": "POST",
117474	//   "id": "compute.regionBackendServices.insert",
117475	//   "parameterOrder": [
117476	//     "project",
117477	//     "region"
117478	//   ],
117479	//   "parameters": {
117480	//     "project": {
117481	//       "description": "Project ID for this request.",
117482	//       "location": "path",
117483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117484	//       "required": true,
117485	//       "type": "string"
117486	//     },
117487	//     "region": {
117488	//       "description": "Name of the region scoping this request.",
117489	//       "location": "path",
117490	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117491	//       "required": true,
117492	//       "type": "string"
117493	//     },
117494	//     "requestId": {
117495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117496	//       "location": "query",
117497	//       "type": "string"
117498	//     }
117499	//   },
117500	//   "path": "projects/{project}/regions/{region}/backendServices",
117501	//   "request": {
117502	//     "$ref": "BackendService"
117503	//   },
117504	//   "response": {
117505	//     "$ref": "Operation"
117506	//   },
117507	//   "scopes": [
117508	//     "https://www.googleapis.com/auth/cloud-platform",
117509	//     "https://www.googleapis.com/auth/compute"
117510	//   ]
117511	// }
117512
117513}
117514
117515// method id "compute.regionBackendServices.list":
117516
117517type RegionBackendServicesListCall struct {
117518	s            *Service
117519	project      string
117520	region       string
117521	urlParams_   gensupport.URLParams
117522	ifNoneMatch_ string
117523	ctx_         context.Context
117524	header_      http.Header
117525}
117526
117527// List: Retrieves the list of regional BackendService resources
117528// available to the specified project in the given region.
117529//
117530// - project: Project ID for this request.
117531// - region: Name of the region scoping this request.
117532func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
117533	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117534	c.project = project
117535	c.region = region
117536	return c
117537}
117538
117539// Filter sets the optional parameter "filter": A filter expression that
117540// filters resources listed in the response. The expression must specify
117541// the field name, a comparison operator, and the value that you want to
117542// use for filtering. The value must be a string, a number, or a
117543// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117544// `<`. For example, if you are filtering Compute Engine instances, you
117545// can exclude instances named `example-instance` by specifying `name !=
117546// example-instance`. You can also filter nested fields. For example,
117547// you could specify `scheduling.automaticRestart = false` to include
117548// instances only if they are not scheduled for automatic restarts. You
117549// can use filtering on nested fields to filter based on resource
117550// labels. To filter on multiple expressions, provide each separate
117551// expression within parentheses. For example: ```
117552// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
117553// ``` By default, each expression is an `AND` expression. However, you
117554// can include `AND` and `OR` expressions explicitly. For example: ```
117555// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
117556// AND (scheduling.automaticRestart = true) ```
117557func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
117558	c.urlParams_.Set("filter", filter)
117559	return c
117560}
117561
117562// MaxResults sets the optional parameter "maxResults": The maximum
117563// number of results per page that should be returned. If the number of
117564// available results is larger than `maxResults`, Compute Engine returns
117565// a `nextPageToken` that can be used to get the next page of results in
117566// subsequent list requests. Acceptable values are `0` to `500`,
117567// inclusive. (Default: `500`)
117568func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
117569	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117570	return c
117571}
117572
117573// OrderBy sets the optional parameter "orderBy": Sorts list results by
117574// a certain order. By default, results are returned in alphanumerical
117575// order based on the resource name. You can also sort results in
117576// descending order based on the creation timestamp using
117577// `orderBy="creationTimestamp desc". This sorts results based on the
117578// `creationTimestamp` field in reverse chronological order (newest
117579// result first). Use this to sort resources like operations so that the
117580// newest operation is returned first. Currently, only sorting by `name`
117581// or `creationTimestamp desc` is supported.
117582func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
117583	c.urlParams_.Set("orderBy", orderBy)
117584	return c
117585}
117586
117587// PageToken sets the optional parameter "pageToken": Specifies a page
117588// token to use. Set `pageToken` to the `nextPageToken` returned by a
117589// previous list request to get the next page of results.
117590func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
117591	c.urlParams_.Set("pageToken", pageToken)
117592	return c
117593}
117594
117595// ReturnPartialSuccess sets the optional parameter
117596// "returnPartialSuccess": Opt-in for partial success behavior which
117597// provides partial results in case of failure. The default value is
117598// false.
117599func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
117600	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
117601	return c
117602}
117603
117604// Fields allows partial responses to be retrieved. See
117605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117606// for more information.
117607func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
117608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117609	return c
117610}
117611
117612// IfNoneMatch sets the optional parameter which makes the operation
117613// fail if the object's ETag matches the given value. This is useful for
117614// getting updates only after the object has changed since the last
117615// request. Use googleapi.IsNotModified to check whether the response
117616// error from Do is the result of In-None-Match.
117617func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
117618	c.ifNoneMatch_ = entityTag
117619	return c
117620}
117621
117622// Context sets the context to be used in this call's Do method. Any
117623// pending HTTP request will be aborted if the provided context is
117624// canceled.
117625func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
117626	c.ctx_ = ctx
117627	return c
117628}
117629
117630// Header returns an http.Header that can be modified by the caller to
117631// add HTTP headers to the request.
117632func (c *RegionBackendServicesListCall) Header() http.Header {
117633	if c.header_ == nil {
117634		c.header_ = make(http.Header)
117635	}
117636	return c.header_
117637}
117638
117639func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
117640	reqHeaders := make(http.Header)
117641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
117642	for k, v := range c.header_ {
117643		reqHeaders[k] = v
117644	}
117645	reqHeaders.Set("User-Agent", c.s.userAgent())
117646	if c.ifNoneMatch_ != "" {
117647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117648	}
117649	var body io.Reader = nil
117650	c.urlParams_.Set("alt", alt)
117651	c.urlParams_.Set("prettyPrint", "false")
117652	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
117653	urls += "?" + c.urlParams_.Encode()
117654	req, err := http.NewRequest("GET", urls, body)
117655	if err != nil {
117656		return nil, err
117657	}
117658	req.Header = reqHeaders
117659	googleapi.Expand(req.URL, map[string]string{
117660		"project": c.project,
117661		"region":  c.region,
117662	})
117663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117664}
117665
117666// Do executes the "compute.regionBackendServices.list" call.
117667// Exactly one of *BackendServiceList or error will be non-nil. Any
117668// non-2xx status code is an error. Response headers are in either
117669// *BackendServiceList.ServerResponse.Header or (if a response was
117670// returned at all) in error.(*googleapi.Error).Header. Use
117671// googleapi.IsNotModified to check whether the returned error was
117672// because http.StatusNotModified was returned.
117673func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
117674	gensupport.SetOptions(c.urlParams_, opts...)
117675	res, err := c.doRequest("json")
117676	if res != nil && res.StatusCode == http.StatusNotModified {
117677		if res.Body != nil {
117678			res.Body.Close()
117679		}
117680		return nil, &googleapi.Error{
117681			Code:   res.StatusCode,
117682			Header: res.Header,
117683		}
117684	}
117685	if err != nil {
117686		return nil, err
117687	}
117688	defer googleapi.CloseBody(res)
117689	if err := googleapi.CheckResponse(res); err != nil {
117690		return nil, err
117691	}
117692	ret := &BackendServiceList{
117693		ServerResponse: googleapi.ServerResponse{
117694			Header:         res.Header,
117695			HTTPStatusCode: res.StatusCode,
117696		},
117697	}
117698	target := &ret
117699	if err := gensupport.DecodeResponse(target, res); err != nil {
117700		return nil, err
117701	}
117702	return ret, nil
117703	// {
117704	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
117705	//   "flatPath": "projects/{project}/regions/{region}/backendServices",
117706	//   "httpMethod": "GET",
117707	//   "id": "compute.regionBackendServices.list",
117708	//   "parameterOrder": [
117709	//     "project",
117710	//     "region"
117711	//   ],
117712	//   "parameters": {
117713	//     "filter": {
117714	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117715	//       "location": "query",
117716	//       "type": "string"
117717	//     },
117718	//     "maxResults": {
117719	//       "default": "500",
117720	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117721	//       "format": "uint32",
117722	//       "location": "query",
117723	//       "minimum": "0",
117724	//       "type": "integer"
117725	//     },
117726	//     "orderBy": {
117727	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
117728	//       "location": "query",
117729	//       "type": "string"
117730	//     },
117731	//     "pageToken": {
117732	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117733	//       "location": "query",
117734	//       "type": "string"
117735	//     },
117736	//     "project": {
117737	//       "description": "Project ID for this request.",
117738	//       "location": "path",
117739	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117740	//       "required": true,
117741	//       "type": "string"
117742	//     },
117743	//     "region": {
117744	//       "description": "Name of the region scoping this request.",
117745	//       "location": "path",
117746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117747	//       "required": true,
117748	//       "type": "string"
117749	//     },
117750	//     "returnPartialSuccess": {
117751	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
117752	//       "location": "query",
117753	//       "type": "boolean"
117754	//     }
117755	//   },
117756	//   "path": "projects/{project}/regions/{region}/backendServices",
117757	//   "response": {
117758	//     "$ref": "BackendServiceList"
117759	//   },
117760	//   "scopes": [
117761	//     "https://www.googleapis.com/auth/cloud-platform",
117762	//     "https://www.googleapis.com/auth/compute",
117763	//     "https://www.googleapis.com/auth/compute.readonly"
117764	//   ]
117765	// }
117766
117767}
117768
117769// Pages invokes f for each page of results.
117770// A non-nil error returned from f will halt the iteration.
117771// The provided context supersedes any context provided to the Context method.
117772func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
117773	c.ctx_ = ctx
117774	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117775	for {
117776		x, err := c.Do()
117777		if err != nil {
117778			return err
117779		}
117780		if err := f(x); err != nil {
117781			return err
117782		}
117783		if x.NextPageToken == "" {
117784			return nil
117785		}
117786		c.PageToken(x.NextPageToken)
117787	}
117788}
117789
117790// method id "compute.regionBackendServices.patch":
117791
117792type RegionBackendServicesPatchCall struct {
117793	s              *Service
117794	project        string
117795	region         string
117796	backendService string
117797	backendservice *BackendService
117798	urlParams_     gensupport.URLParams
117799	ctx_           context.Context
117800	header_        http.Header
117801}
117802
117803// Patch: Updates the specified regional BackendService resource with
117804// the data included in the request. For more information, see
117805// Understanding backend services This method supports PATCH semantics
117806// and uses the JSON merge patch format and processing rules.
117807//
117808// - backendService: Name of the BackendService resource to patch.
117809// - project: Project ID for this request.
117810// - region: Name of the region scoping this request.
117811func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
117812	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117813	c.project = project
117814	c.region = region
117815	c.backendService = backendService
117816	c.backendservice = backendservice
117817	return c
117818}
117819
117820// RequestId sets the optional parameter "requestId": An optional
117821// request ID to identify requests. Specify a unique request ID so that
117822// if you must retry your request, the server will know to ignore the
117823// request if it has already been completed. For example, consider a
117824// situation where you make an initial request and the request times
117825// out. If you make the request again with the same request ID, the
117826// server can check if original operation with the same request ID was
117827// received, and if so, will ignore the second request. This prevents
117828// clients from accidentally creating duplicate commitments. The request
117829// ID must be a valid UUID with the exception that zero UUID is not
117830// supported ( 00000000-0000-0000-0000-000000000000).
117831func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
117832	c.urlParams_.Set("requestId", requestId)
117833	return c
117834}
117835
117836// Fields allows partial responses to be retrieved. See
117837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117838// for more information.
117839func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
117840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117841	return c
117842}
117843
117844// Context sets the context to be used in this call's Do method. Any
117845// pending HTTP request will be aborted if the provided context is
117846// canceled.
117847func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
117848	c.ctx_ = ctx
117849	return c
117850}
117851
117852// Header returns an http.Header that can be modified by the caller to
117853// add HTTP headers to the request.
117854func (c *RegionBackendServicesPatchCall) Header() http.Header {
117855	if c.header_ == nil {
117856		c.header_ = make(http.Header)
117857	}
117858	return c.header_
117859}
117860
117861func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
117862	reqHeaders := make(http.Header)
117863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
117864	for k, v := range c.header_ {
117865		reqHeaders[k] = v
117866	}
117867	reqHeaders.Set("User-Agent", c.s.userAgent())
117868	var body io.Reader = nil
117869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
117870	if err != nil {
117871		return nil, err
117872	}
117873	reqHeaders.Set("Content-Type", "application/json")
117874	c.urlParams_.Set("alt", alt)
117875	c.urlParams_.Set("prettyPrint", "false")
117876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
117877	urls += "?" + c.urlParams_.Encode()
117878	req, err := http.NewRequest("PATCH", urls, body)
117879	if err != nil {
117880		return nil, err
117881	}
117882	req.Header = reqHeaders
117883	googleapi.Expand(req.URL, map[string]string{
117884		"project":        c.project,
117885		"region":         c.region,
117886		"backendService": c.backendService,
117887	})
117888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117889}
117890
117891// Do executes the "compute.regionBackendServices.patch" call.
117892// Exactly one of *Operation or error will be non-nil. Any non-2xx
117893// status code is an error. Response headers are in either
117894// *Operation.ServerResponse.Header or (if a response was returned at
117895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117896// to check whether the returned error was because
117897// http.StatusNotModified was returned.
117898func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117899	gensupport.SetOptions(c.urlParams_, opts...)
117900	res, err := c.doRequest("json")
117901	if res != nil && res.StatusCode == http.StatusNotModified {
117902		if res.Body != nil {
117903			res.Body.Close()
117904		}
117905		return nil, &googleapi.Error{
117906			Code:   res.StatusCode,
117907			Header: res.Header,
117908		}
117909	}
117910	if err != nil {
117911		return nil, err
117912	}
117913	defer googleapi.CloseBody(res)
117914	if err := googleapi.CheckResponse(res); err != nil {
117915		return nil, err
117916	}
117917	ret := &Operation{
117918		ServerResponse: googleapi.ServerResponse{
117919			Header:         res.Header,
117920			HTTPStatusCode: res.StatusCode,
117921		},
117922	}
117923	target := &ret
117924	if err := gensupport.DecodeResponse(target, res); err != nil {
117925		return nil, err
117926	}
117927	return ret, nil
117928	// {
117929	//   "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.",
117930	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
117931	//   "httpMethod": "PATCH",
117932	//   "id": "compute.regionBackendServices.patch",
117933	//   "parameterOrder": [
117934	//     "project",
117935	//     "region",
117936	//     "backendService"
117937	//   ],
117938	//   "parameters": {
117939	//     "backendService": {
117940	//       "description": "Name of the BackendService resource to patch.",
117941	//       "location": "path",
117942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117943	//       "required": true,
117944	//       "type": "string"
117945	//     },
117946	//     "project": {
117947	//       "description": "Project ID for this request.",
117948	//       "location": "path",
117949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117950	//       "required": true,
117951	//       "type": "string"
117952	//     },
117953	//     "region": {
117954	//       "description": "Name of the region scoping this request.",
117955	//       "location": "path",
117956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117957	//       "required": true,
117958	//       "type": "string"
117959	//     },
117960	//     "requestId": {
117961	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117962	//       "location": "query",
117963	//       "type": "string"
117964	//     }
117965	//   },
117966	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
117967	//   "request": {
117968	//     "$ref": "BackendService"
117969	//   },
117970	//   "response": {
117971	//     "$ref": "Operation"
117972	//   },
117973	//   "scopes": [
117974	//     "https://www.googleapis.com/auth/cloud-platform",
117975	//     "https://www.googleapis.com/auth/compute"
117976	//   ]
117977	// }
117978
117979}
117980
117981// method id "compute.regionBackendServices.update":
117982
117983type RegionBackendServicesUpdateCall struct {
117984	s              *Service
117985	project        string
117986	region         string
117987	backendService string
117988	backendservice *BackendService
117989	urlParams_     gensupport.URLParams
117990	ctx_           context.Context
117991	header_        http.Header
117992}
117993
117994// Update: Updates the specified regional BackendService resource with
117995// the data included in the request. For more information, see Backend
117996// services overview .
117997//
117998// - backendService: Name of the BackendService resource to update.
117999// - project: Project ID for this request.
118000// - region: Name of the region scoping this request.
118001func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
118002	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118003	c.project = project
118004	c.region = region
118005	c.backendService = backendService
118006	c.backendservice = backendservice
118007	return c
118008}
118009
118010// RequestId sets the optional parameter "requestId": An optional
118011// request ID to identify requests. Specify a unique request ID so that
118012// if you must retry your request, the server will know to ignore the
118013// request if it has already been completed. For example, consider a
118014// situation where you make an initial request and the request times
118015// out. If you make the request again with the same request ID, the
118016// server can check if original operation with the same request ID was
118017// received, and if so, will ignore the second request. This prevents
118018// clients from accidentally creating duplicate commitments. The request
118019// ID must be a valid UUID with the exception that zero UUID is not
118020// supported ( 00000000-0000-0000-0000-000000000000).
118021func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
118022	c.urlParams_.Set("requestId", requestId)
118023	return c
118024}
118025
118026// Fields allows partial responses to be retrieved. See
118027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118028// for more information.
118029func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
118030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118031	return c
118032}
118033
118034// Context sets the context to be used in this call's Do method. Any
118035// pending HTTP request will be aborted if the provided context is
118036// canceled.
118037func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
118038	c.ctx_ = ctx
118039	return c
118040}
118041
118042// Header returns an http.Header that can be modified by the caller to
118043// add HTTP headers to the request.
118044func (c *RegionBackendServicesUpdateCall) Header() http.Header {
118045	if c.header_ == nil {
118046		c.header_ = make(http.Header)
118047	}
118048	return c.header_
118049}
118050
118051func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
118052	reqHeaders := make(http.Header)
118053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
118054	for k, v := range c.header_ {
118055		reqHeaders[k] = v
118056	}
118057	reqHeaders.Set("User-Agent", c.s.userAgent())
118058	var body io.Reader = nil
118059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
118060	if err != nil {
118061		return nil, err
118062	}
118063	reqHeaders.Set("Content-Type", "application/json")
118064	c.urlParams_.Set("alt", alt)
118065	c.urlParams_.Set("prettyPrint", "false")
118066	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
118067	urls += "?" + c.urlParams_.Encode()
118068	req, err := http.NewRequest("PUT", urls, body)
118069	if err != nil {
118070		return nil, err
118071	}
118072	req.Header = reqHeaders
118073	googleapi.Expand(req.URL, map[string]string{
118074		"project":        c.project,
118075		"region":         c.region,
118076		"backendService": c.backendService,
118077	})
118078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118079}
118080
118081// Do executes the "compute.regionBackendServices.update" call.
118082// Exactly one of *Operation or error will be non-nil. Any non-2xx
118083// status code is an error. Response headers are in either
118084// *Operation.ServerResponse.Header or (if a response was returned at
118085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118086// to check whether the returned error was because
118087// http.StatusNotModified was returned.
118088func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118089	gensupport.SetOptions(c.urlParams_, opts...)
118090	res, err := c.doRequest("json")
118091	if res != nil && res.StatusCode == http.StatusNotModified {
118092		if res.Body != nil {
118093			res.Body.Close()
118094		}
118095		return nil, &googleapi.Error{
118096			Code:   res.StatusCode,
118097			Header: res.Header,
118098		}
118099	}
118100	if err != nil {
118101		return nil, err
118102	}
118103	defer googleapi.CloseBody(res)
118104	if err := googleapi.CheckResponse(res); err != nil {
118105		return nil, err
118106	}
118107	ret := &Operation{
118108		ServerResponse: googleapi.ServerResponse{
118109			Header:         res.Header,
118110			HTTPStatusCode: res.StatusCode,
118111		},
118112	}
118113	target := &ret
118114	if err := gensupport.DecodeResponse(target, res); err != nil {
118115		return nil, err
118116	}
118117	return ret, nil
118118	// {
118119	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .",
118120	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
118121	//   "httpMethod": "PUT",
118122	//   "id": "compute.regionBackendServices.update",
118123	//   "parameterOrder": [
118124	//     "project",
118125	//     "region",
118126	//     "backendService"
118127	//   ],
118128	//   "parameters": {
118129	//     "backendService": {
118130	//       "description": "Name of the BackendService resource to update.",
118131	//       "location": "path",
118132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118133	//       "required": true,
118134	//       "type": "string"
118135	//     },
118136	//     "project": {
118137	//       "description": "Project ID for this request.",
118138	//       "location": "path",
118139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118140	//       "required": true,
118141	//       "type": "string"
118142	//     },
118143	//     "region": {
118144	//       "description": "Name of the region scoping this request.",
118145	//       "location": "path",
118146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118147	//       "required": true,
118148	//       "type": "string"
118149	//     },
118150	//     "requestId": {
118151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
118152	//       "location": "query",
118153	//       "type": "string"
118154	//     }
118155	//   },
118156	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
118157	//   "request": {
118158	//     "$ref": "BackendService"
118159	//   },
118160	//   "response": {
118161	//     "$ref": "Operation"
118162	//   },
118163	//   "scopes": [
118164	//     "https://www.googleapis.com/auth/cloud-platform",
118165	//     "https://www.googleapis.com/auth/compute"
118166	//   ]
118167	// }
118168
118169}
118170
118171// method id "compute.regionCommitments.aggregatedList":
118172
118173type RegionCommitmentsAggregatedListCall struct {
118174	s            *Service
118175	project      string
118176	urlParams_   gensupport.URLParams
118177	ifNoneMatch_ string
118178	ctx_         context.Context
118179	header_      http.Header
118180}
118181
118182// AggregatedList: Retrieves an aggregated list of commitments by
118183// region.
118184//
118185// - project: Project ID for this request.
118186func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
118187	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118188	c.project = project
118189	return c
118190}
118191
118192// Filter sets the optional parameter "filter": A filter expression that
118193// filters resources listed in the response. The expression must specify
118194// the field name, a comparison operator, and the value that you want to
118195// use for filtering. The value must be a string, a number, or a
118196// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118197// `<`. For example, if you are filtering Compute Engine instances, you
118198// can exclude instances named `example-instance` by specifying `name !=
118199// example-instance`. You can also filter nested fields. For example,
118200// you could specify `scheduling.automaticRestart = false` to include
118201// instances only if they are not scheduled for automatic restarts. You
118202// can use filtering on nested fields to filter based on resource
118203// labels. To filter on multiple expressions, provide each separate
118204// expression within parentheses. For example: ```
118205// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
118206// ``` By default, each expression is an `AND` expression. However, you
118207// can include `AND` and `OR` expressions explicitly. For example: ```
118208// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
118209// AND (scheduling.automaticRestart = true) ```
118210func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
118211	c.urlParams_.Set("filter", filter)
118212	return c
118213}
118214
118215// IncludeAllScopes sets the optional parameter "includeAllScopes":
118216// Indicates whether every visible scope for each scope type (zone,
118217// region, global) should be included in the response. For new resource
118218// types added after this field, the flag has no effect as new resource
118219// types will always include every visible scope for each scope type in
118220// response. For resource types which predate this field, if this flag
118221// is omitted or false, only scopes of the scope types where the
118222// resource type is expected to be found will be included.
118223func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
118224	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
118225	return c
118226}
118227
118228// MaxResults sets the optional parameter "maxResults": The maximum
118229// number of results per page that should be returned. If the number of
118230// available results is larger than `maxResults`, Compute Engine returns
118231// a `nextPageToken` that can be used to get the next page of results in
118232// subsequent list requests. Acceptable values are `0` to `500`,
118233// inclusive. (Default: `500`)
118234func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
118235	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118236	return c
118237}
118238
118239// OrderBy sets the optional parameter "orderBy": Sorts list results by
118240// a certain order. By default, results are returned in alphanumerical
118241// order based on the resource name. You can also sort results in
118242// descending order based on the creation timestamp using
118243// `orderBy="creationTimestamp desc". This sorts results based on the
118244// `creationTimestamp` field in reverse chronological order (newest
118245// result first). Use this to sort resources like operations so that the
118246// newest operation is returned first. Currently, only sorting by `name`
118247// or `creationTimestamp desc` is supported.
118248func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
118249	c.urlParams_.Set("orderBy", orderBy)
118250	return c
118251}
118252
118253// PageToken sets the optional parameter "pageToken": Specifies a page
118254// token to use. Set `pageToken` to the `nextPageToken` returned by a
118255// previous list request to get the next page of results.
118256func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
118257	c.urlParams_.Set("pageToken", pageToken)
118258	return c
118259}
118260
118261// ReturnPartialSuccess sets the optional parameter
118262// "returnPartialSuccess": Opt-in for partial success behavior which
118263// provides partial results in case of failure. The default value is
118264// false.
118265func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
118266	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
118267	return c
118268}
118269
118270// Fields allows partial responses to be retrieved. See
118271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118272// for more information.
118273func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
118274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118275	return c
118276}
118277
118278// IfNoneMatch sets the optional parameter which makes the operation
118279// fail if the object's ETag matches the given value. This is useful for
118280// getting updates only after the object has changed since the last
118281// request. Use googleapi.IsNotModified to check whether the response
118282// error from Do is the result of In-None-Match.
118283func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
118284	c.ifNoneMatch_ = entityTag
118285	return c
118286}
118287
118288// Context sets the context to be used in this call's Do method. Any
118289// pending HTTP request will be aborted if the provided context is
118290// canceled.
118291func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
118292	c.ctx_ = ctx
118293	return c
118294}
118295
118296// Header returns an http.Header that can be modified by the caller to
118297// add HTTP headers to the request.
118298func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
118299	if c.header_ == nil {
118300		c.header_ = make(http.Header)
118301	}
118302	return c.header_
118303}
118304
118305func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
118306	reqHeaders := make(http.Header)
118307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
118308	for k, v := range c.header_ {
118309		reqHeaders[k] = v
118310	}
118311	reqHeaders.Set("User-Agent", c.s.userAgent())
118312	if c.ifNoneMatch_ != "" {
118313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118314	}
118315	var body io.Reader = nil
118316	c.urlParams_.Set("alt", alt)
118317	c.urlParams_.Set("prettyPrint", "false")
118318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments")
118319	urls += "?" + c.urlParams_.Encode()
118320	req, err := http.NewRequest("GET", urls, body)
118321	if err != nil {
118322		return nil, err
118323	}
118324	req.Header = reqHeaders
118325	googleapi.Expand(req.URL, map[string]string{
118326		"project": c.project,
118327	})
118328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118329}
118330
118331// Do executes the "compute.regionCommitments.aggregatedList" call.
118332// Exactly one of *CommitmentAggregatedList or error will be non-nil.
118333// Any non-2xx status code is an error. Response headers are in either
118334// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
118335// returned at all) in error.(*googleapi.Error).Header. Use
118336// googleapi.IsNotModified to check whether the returned error was
118337// because http.StatusNotModified was returned.
118338func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
118339	gensupport.SetOptions(c.urlParams_, opts...)
118340	res, err := c.doRequest("json")
118341	if res != nil && res.StatusCode == http.StatusNotModified {
118342		if res.Body != nil {
118343			res.Body.Close()
118344		}
118345		return nil, &googleapi.Error{
118346			Code:   res.StatusCode,
118347			Header: res.Header,
118348		}
118349	}
118350	if err != nil {
118351		return nil, err
118352	}
118353	defer googleapi.CloseBody(res)
118354	if err := googleapi.CheckResponse(res); err != nil {
118355		return nil, err
118356	}
118357	ret := &CommitmentAggregatedList{
118358		ServerResponse: googleapi.ServerResponse{
118359			Header:         res.Header,
118360			HTTPStatusCode: res.StatusCode,
118361		},
118362	}
118363	target := &ret
118364	if err := gensupport.DecodeResponse(target, res); err != nil {
118365		return nil, err
118366	}
118367	return ret, nil
118368	// {
118369	//   "description": "Retrieves an aggregated list of commitments by region.",
118370	//   "flatPath": "projects/{project}/aggregated/commitments",
118371	//   "httpMethod": "GET",
118372	//   "id": "compute.regionCommitments.aggregatedList",
118373	//   "parameterOrder": [
118374	//     "project"
118375	//   ],
118376	//   "parameters": {
118377	//     "filter": {
118378	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118379	//       "location": "query",
118380	//       "type": "string"
118381	//     },
118382	//     "includeAllScopes": {
118383	//       "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.",
118384	//       "location": "query",
118385	//       "type": "boolean"
118386	//     },
118387	//     "maxResults": {
118388	//       "default": "500",
118389	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118390	//       "format": "uint32",
118391	//       "location": "query",
118392	//       "minimum": "0",
118393	//       "type": "integer"
118394	//     },
118395	//     "orderBy": {
118396	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
118397	//       "location": "query",
118398	//       "type": "string"
118399	//     },
118400	//     "pageToken": {
118401	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118402	//       "location": "query",
118403	//       "type": "string"
118404	//     },
118405	//     "project": {
118406	//       "description": "Project ID for this request.",
118407	//       "location": "path",
118408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118409	//       "required": true,
118410	//       "type": "string"
118411	//     },
118412	//     "returnPartialSuccess": {
118413	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
118414	//       "location": "query",
118415	//       "type": "boolean"
118416	//     }
118417	//   },
118418	//   "path": "projects/{project}/aggregated/commitments",
118419	//   "response": {
118420	//     "$ref": "CommitmentAggregatedList"
118421	//   },
118422	//   "scopes": [
118423	//     "https://www.googleapis.com/auth/cloud-platform",
118424	//     "https://www.googleapis.com/auth/compute",
118425	//     "https://www.googleapis.com/auth/compute.readonly"
118426	//   ]
118427	// }
118428
118429}
118430
118431// Pages invokes f for each page of results.
118432// A non-nil error returned from f will halt the iteration.
118433// The provided context supersedes any context provided to the Context method.
118434func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
118435	c.ctx_ = ctx
118436	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118437	for {
118438		x, err := c.Do()
118439		if err != nil {
118440			return err
118441		}
118442		if err := f(x); err != nil {
118443			return err
118444		}
118445		if x.NextPageToken == "" {
118446			return nil
118447		}
118448		c.PageToken(x.NextPageToken)
118449	}
118450}
118451
118452// method id "compute.regionCommitments.get":
118453
118454type RegionCommitmentsGetCall struct {
118455	s            *Service
118456	project      string
118457	region       string
118458	commitment   string
118459	urlParams_   gensupport.URLParams
118460	ifNoneMatch_ string
118461	ctx_         context.Context
118462	header_      http.Header
118463}
118464
118465// Get: Returns the specified commitment resource. Gets a list of
118466// available commitments by making a list() request.
118467//
118468// - commitment: Name of the commitment to return.
118469// - project: Project ID for this request.
118470// - region: Name of the region for this request.
118471func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
118472	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118473	c.project = project
118474	c.region = region
118475	c.commitment = commitment
118476	return c
118477}
118478
118479// Fields allows partial responses to be retrieved. See
118480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118481// for more information.
118482func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
118483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118484	return c
118485}
118486
118487// IfNoneMatch sets the optional parameter which makes the operation
118488// fail if the object's ETag matches the given value. This is useful for
118489// getting updates only after the object has changed since the last
118490// request. Use googleapi.IsNotModified to check whether the response
118491// error from Do is the result of In-None-Match.
118492func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
118493	c.ifNoneMatch_ = entityTag
118494	return c
118495}
118496
118497// Context sets the context to be used in this call's Do method. Any
118498// pending HTTP request will be aborted if the provided context is
118499// canceled.
118500func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
118501	c.ctx_ = ctx
118502	return c
118503}
118504
118505// Header returns an http.Header that can be modified by the caller to
118506// add HTTP headers to the request.
118507func (c *RegionCommitmentsGetCall) Header() http.Header {
118508	if c.header_ == nil {
118509		c.header_ = make(http.Header)
118510	}
118511	return c.header_
118512}
118513
118514func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
118515	reqHeaders := make(http.Header)
118516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
118517	for k, v := range c.header_ {
118518		reqHeaders[k] = v
118519	}
118520	reqHeaders.Set("User-Agent", c.s.userAgent())
118521	if c.ifNoneMatch_ != "" {
118522		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118523	}
118524	var body io.Reader = nil
118525	c.urlParams_.Set("alt", alt)
118526	c.urlParams_.Set("prettyPrint", "false")
118527	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}")
118528	urls += "?" + c.urlParams_.Encode()
118529	req, err := http.NewRequest("GET", urls, body)
118530	if err != nil {
118531		return nil, err
118532	}
118533	req.Header = reqHeaders
118534	googleapi.Expand(req.URL, map[string]string{
118535		"project":    c.project,
118536		"region":     c.region,
118537		"commitment": c.commitment,
118538	})
118539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118540}
118541
118542// Do executes the "compute.regionCommitments.get" call.
118543// Exactly one of *Commitment or error will be non-nil. Any non-2xx
118544// status code is an error. Response headers are in either
118545// *Commitment.ServerResponse.Header or (if a response was returned at
118546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118547// to check whether the returned error was because
118548// http.StatusNotModified was returned.
118549func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
118550	gensupport.SetOptions(c.urlParams_, opts...)
118551	res, err := c.doRequest("json")
118552	if res != nil && res.StatusCode == http.StatusNotModified {
118553		if res.Body != nil {
118554			res.Body.Close()
118555		}
118556		return nil, &googleapi.Error{
118557			Code:   res.StatusCode,
118558			Header: res.Header,
118559		}
118560	}
118561	if err != nil {
118562		return nil, err
118563	}
118564	defer googleapi.CloseBody(res)
118565	if err := googleapi.CheckResponse(res); err != nil {
118566		return nil, err
118567	}
118568	ret := &Commitment{
118569		ServerResponse: googleapi.ServerResponse{
118570			Header:         res.Header,
118571			HTTPStatusCode: res.StatusCode,
118572		},
118573	}
118574	target := &ret
118575	if err := gensupport.DecodeResponse(target, res); err != nil {
118576		return nil, err
118577	}
118578	return ret, nil
118579	// {
118580	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
118581	//   "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}",
118582	//   "httpMethod": "GET",
118583	//   "id": "compute.regionCommitments.get",
118584	//   "parameterOrder": [
118585	//     "project",
118586	//     "region",
118587	//     "commitment"
118588	//   ],
118589	//   "parameters": {
118590	//     "commitment": {
118591	//       "description": "Name of the commitment to return.",
118592	//       "location": "path",
118593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118594	//       "required": true,
118595	//       "type": "string"
118596	//     },
118597	//     "project": {
118598	//       "description": "Project ID for this request.",
118599	//       "location": "path",
118600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118601	//       "required": true,
118602	//       "type": "string"
118603	//     },
118604	//     "region": {
118605	//       "description": "Name of the region for this request.",
118606	//       "location": "path",
118607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118608	//       "required": true,
118609	//       "type": "string"
118610	//     }
118611	//   },
118612	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}",
118613	//   "response": {
118614	//     "$ref": "Commitment"
118615	//   },
118616	//   "scopes": [
118617	//     "https://www.googleapis.com/auth/cloud-platform",
118618	//     "https://www.googleapis.com/auth/compute",
118619	//     "https://www.googleapis.com/auth/compute.readonly"
118620	//   ]
118621	// }
118622
118623}
118624
118625// method id "compute.regionCommitments.insert":
118626
118627type RegionCommitmentsInsertCall struct {
118628	s          *Service
118629	project    string
118630	region     string
118631	commitment *Commitment
118632	urlParams_ gensupport.URLParams
118633	ctx_       context.Context
118634	header_    http.Header
118635}
118636
118637// Insert: Creates a commitment in the specified project using the data
118638// included in the request.
118639//
118640// - project: Project ID for this request.
118641// - region: Name of the region for this request.
118642func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
118643	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118644	c.project = project
118645	c.region = region
118646	c.commitment = commitment
118647	return c
118648}
118649
118650// RequestId sets the optional parameter "requestId": An optional
118651// request ID to identify requests. Specify a unique request ID so that
118652// if you must retry your request, the server will know to ignore the
118653// request if it has already been completed. For example, consider a
118654// situation where you make an initial request and the request times
118655// out. If you make the request again with the same request ID, the
118656// server can check if original operation with the same request ID was
118657// received, and if so, will ignore the second request. This prevents
118658// clients from accidentally creating duplicate commitments. The request
118659// ID must be a valid UUID with the exception that zero UUID is not
118660// supported ( 00000000-0000-0000-0000-000000000000).
118661func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
118662	c.urlParams_.Set("requestId", requestId)
118663	return c
118664}
118665
118666// Fields allows partial responses to be retrieved. See
118667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118668// for more information.
118669func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
118670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118671	return c
118672}
118673
118674// Context sets the context to be used in this call's Do method. Any
118675// pending HTTP request will be aborted if the provided context is
118676// canceled.
118677func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
118678	c.ctx_ = ctx
118679	return c
118680}
118681
118682// Header returns an http.Header that can be modified by the caller to
118683// add HTTP headers to the request.
118684func (c *RegionCommitmentsInsertCall) Header() http.Header {
118685	if c.header_ == nil {
118686		c.header_ = make(http.Header)
118687	}
118688	return c.header_
118689}
118690
118691func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
118692	reqHeaders := make(http.Header)
118693	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
118694	for k, v := range c.header_ {
118695		reqHeaders[k] = v
118696	}
118697	reqHeaders.Set("User-Agent", c.s.userAgent())
118698	var body io.Reader = nil
118699	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
118700	if err != nil {
118701		return nil, err
118702	}
118703	reqHeaders.Set("Content-Type", "application/json")
118704	c.urlParams_.Set("alt", alt)
118705	c.urlParams_.Set("prettyPrint", "false")
118706	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
118707	urls += "?" + c.urlParams_.Encode()
118708	req, err := http.NewRequest("POST", urls, body)
118709	if err != nil {
118710		return nil, err
118711	}
118712	req.Header = reqHeaders
118713	googleapi.Expand(req.URL, map[string]string{
118714		"project": c.project,
118715		"region":  c.region,
118716	})
118717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118718}
118719
118720// Do executes the "compute.regionCommitments.insert" call.
118721// Exactly one of *Operation or error will be non-nil. Any non-2xx
118722// status code is an error. Response headers are in either
118723// *Operation.ServerResponse.Header or (if a response was returned at
118724// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118725// to check whether the returned error was because
118726// http.StatusNotModified was returned.
118727func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118728	gensupport.SetOptions(c.urlParams_, opts...)
118729	res, err := c.doRequest("json")
118730	if res != nil && res.StatusCode == http.StatusNotModified {
118731		if res.Body != nil {
118732			res.Body.Close()
118733		}
118734		return nil, &googleapi.Error{
118735			Code:   res.StatusCode,
118736			Header: res.Header,
118737		}
118738	}
118739	if err != nil {
118740		return nil, err
118741	}
118742	defer googleapi.CloseBody(res)
118743	if err := googleapi.CheckResponse(res); err != nil {
118744		return nil, err
118745	}
118746	ret := &Operation{
118747		ServerResponse: googleapi.ServerResponse{
118748			Header:         res.Header,
118749			HTTPStatusCode: res.StatusCode,
118750		},
118751	}
118752	target := &ret
118753	if err := gensupport.DecodeResponse(target, res); err != nil {
118754		return nil, err
118755	}
118756	return ret, nil
118757	// {
118758	//   "description": "Creates a commitment in the specified project using the data included in the request.",
118759	//   "flatPath": "projects/{project}/regions/{region}/commitments",
118760	//   "httpMethod": "POST",
118761	//   "id": "compute.regionCommitments.insert",
118762	//   "parameterOrder": [
118763	//     "project",
118764	//     "region"
118765	//   ],
118766	//   "parameters": {
118767	//     "project": {
118768	//       "description": "Project ID for this request.",
118769	//       "location": "path",
118770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118771	//       "required": true,
118772	//       "type": "string"
118773	//     },
118774	//     "region": {
118775	//       "description": "Name of the region for this request.",
118776	//       "location": "path",
118777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118778	//       "required": true,
118779	//       "type": "string"
118780	//     },
118781	//     "requestId": {
118782	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
118783	//       "location": "query",
118784	//       "type": "string"
118785	//     }
118786	//   },
118787	//   "path": "projects/{project}/regions/{region}/commitments",
118788	//   "request": {
118789	//     "$ref": "Commitment"
118790	//   },
118791	//   "response": {
118792	//     "$ref": "Operation"
118793	//   },
118794	//   "scopes": [
118795	//     "https://www.googleapis.com/auth/cloud-platform",
118796	//     "https://www.googleapis.com/auth/compute"
118797	//   ]
118798	// }
118799
118800}
118801
118802// method id "compute.regionCommitments.list":
118803
118804type RegionCommitmentsListCall struct {
118805	s            *Service
118806	project      string
118807	region       string
118808	urlParams_   gensupport.URLParams
118809	ifNoneMatch_ string
118810	ctx_         context.Context
118811	header_      http.Header
118812}
118813
118814// List: Retrieves a list of commitments contained within the specified
118815// region.
118816//
118817// - project: Project ID for this request.
118818// - region: Name of the region for this request.
118819func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
118820	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118821	c.project = project
118822	c.region = region
118823	return c
118824}
118825
118826// Filter sets the optional parameter "filter": A filter expression that
118827// filters resources listed in the response. The expression must specify
118828// the field name, a comparison operator, and the value that you want to
118829// use for filtering. The value must be a string, a number, or a
118830// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118831// `<`. For example, if you are filtering Compute Engine instances, you
118832// can exclude instances named `example-instance` by specifying `name !=
118833// example-instance`. You can also filter nested fields. For example,
118834// you could specify `scheduling.automaticRestart = false` to include
118835// instances only if they are not scheduled for automatic restarts. You
118836// can use filtering on nested fields to filter based on resource
118837// labels. To filter on multiple expressions, provide each separate
118838// expression within parentheses. For example: ```
118839// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
118840// ``` By default, each expression is an `AND` expression. However, you
118841// can include `AND` and `OR` expressions explicitly. For example: ```
118842// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
118843// AND (scheduling.automaticRestart = true) ```
118844func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
118845	c.urlParams_.Set("filter", filter)
118846	return c
118847}
118848
118849// MaxResults sets the optional parameter "maxResults": The maximum
118850// number of results per page that should be returned. If the number of
118851// available results is larger than `maxResults`, Compute Engine returns
118852// a `nextPageToken` that can be used to get the next page of results in
118853// subsequent list requests. Acceptable values are `0` to `500`,
118854// inclusive. (Default: `500`)
118855func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
118856	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118857	return c
118858}
118859
118860// OrderBy sets the optional parameter "orderBy": Sorts list results by
118861// a certain order. By default, results are returned in alphanumerical
118862// order based on the resource name. You can also sort results in
118863// descending order based on the creation timestamp using
118864// `orderBy="creationTimestamp desc". This sorts results based on the
118865// `creationTimestamp` field in reverse chronological order (newest
118866// result first). Use this to sort resources like operations so that the
118867// newest operation is returned first. Currently, only sorting by `name`
118868// or `creationTimestamp desc` is supported.
118869func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
118870	c.urlParams_.Set("orderBy", orderBy)
118871	return c
118872}
118873
118874// PageToken sets the optional parameter "pageToken": Specifies a page
118875// token to use. Set `pageToken` to the `nextPageToken` returned by a
118876// previous list request to get the next page of results.
118877func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
118878	c.urlParams_.Set("pageToken", pageToken)
118879	return c
118880}
118881
118882// ReturnPartialSuccess sets the optional parameter
118883// "returnPartialSuccess": Opt-in for partial success behavior which
118884// provides partial results in case of failure. The default value is
118885// false.
118886func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
118887	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
118888	return c
118889}
118890
118891// Fields allows partial responses to be retrieved. See
118892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118893// for more information.
118894func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
118895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118896	return c
118897}
118898
118899// IfNoneMatch sets the optional parameter which makes the operation
118900// fail if the object's ETag matches the given value. This is useful for
118901// getting updates only after the object has changed since the last
118902// request. Use googleapi.IsNotModified to check whether the response
118903// error from Do is the result of In-None-Match.
118904func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
118905	c.ifNoneMatch_ = entityTag
118906	return c
118907}
118908
118909// Context sets the context to be used in this call's Do method. Any
118910// pending HTTP request will be aborted if the provided context is
118911// canceled.
118912func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
118913	c.ctx_ = ctx
118914	return c
118915}
118916
118917// Header returns an http.Header that can be modified by the caller to
118918// add HTTP headers to the request.
118919func (c *RegionCommitmentsListCall) Header() http.Header {
118920	if c.header_ == nil {
118921		c.header_ = make(http.Header)
118922	}
118923	return c.header_
118924}
118925
118926func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
118927	reqHeaders := make(http.Header)
118928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
118929	for k, v := range c.header_ {
118930		reqHeaders[k] = v
118931	}
118932	reqHeaders.Set("User-Agent", c.s.userAgent())
118933	if c.ifNoneMatch_ != "" {
118934		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118935	}
118936	var body io.Reader = nil
118937	c.urlParams_.Set("alt", alt)
118938	c.urlParams_.Set("prettyPrint", "false")
118939	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
118940	urls += "?" + c.urlParams_.Encode()
118941	req, err := http.NewRequest("GET", urls, body)
118942	if err != nil {
118943		return nil, err
118944	}
118945	req.Header = reqHeaders
118946	googleapi.Expand(req.URL, map[string]string{
118947		"project": c.project,
118948		"region":  c.region,
118949	})
118950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118951}
118952
118953// Do executes the "compute.regionCommitments.list" call.
118954// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
118955// status code is an error. Response headers are in either
118956// *CommitmentList.ServerResponse.Header or (if a response was returned
118957// at all) in error.(*googleapi.Error).Header. Use
118958// googleapi.IsNotModified to check whether the returned error was
118959// because http.StatusNotModified was returned.
118960func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
118961	gensupport.SetOptions(c.urlParams_, opts...)
118962	res, err := c.doRequest("json")
118963	if res != nil && res.StatusCode == http.StatusNotModified {
118964		if res.Body != nil {
118965			res.Body.Close()
118966		}
118967		return nil, &googleapi.Error{
118968			Code:   res.StatusCode,
118969			Header: res.Header,
118970		}
118971	}
118972	if err != nil {
118973		return nil, err
118974	}
118975	defer googleapi.CloseBody(res)
118976	if err := googleapi.CheckResponse(res); err != nil {
118977		return nil, err
118978	}
118979	ret := &CommitmentList{
118980		ServerResponse: googleapi.ServerResponse{
118981			Header:         res.Header,
118982			HTTPStatusCode: res.StatusCode,
118983		},
118984	}
118985	target := &ret
118986	if err := gensupport.DecodeResponse(target, res); err != nil {
118987		return nil, err
118988	}
118989	return ret, nil
118990	// {
118991	//   "description": "Retrieves a list of commitments contained within the specified region.",
118992	//   "flatPath": "projects/{project}/regions/{region}/commitments",
118993	//   "httpMethod": "GET",
118994	//   "id": "compute.regionCommitments.list",
118995	//   "parameterOrder": [
118996	//     "project",
118997	//     "region"
118998	//   ],
118999	//   "parameters": {
119000	//     "filter": {
119001	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119002	//       "location": "query",
119003	//       "type": "string"
119004	//     },
119005	//     "maxResults": {
119006	//       "default": "500",
119007	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119008	//       "format": "uint32",
119009	//       "location": "query",
119010	//       "minimum": "0",
119011	//       "type": "integer"
119012	//     },
119013	//     "orderBy": {
119014	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
119015	//       "location": "query",
119016	//       "type": "string"
119017	//     },
119018	//     "pageToken": {
119019	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119020	//       "location": "query",
119021	//       "type": "string"
119022	//     },
119023	//     "project": {
119024	//       "description": "Project ID for this request.",
119025	//       "location": "path",
119026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119027	//       "required": true,
119028	//       "type": "string"
119029	//     },
119030	//     "region": {
119031	//       "description": "Name of the region for this request.",
119032	//       "location": "path",
119033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119034	//       "required": true,
119035	//       "type": "string"
119036	//     },
119037	//     "returnPartialSuccess": {
119038	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119039	//       "location": "query",
119040	//       "type": "boolean"
119041	//     }
119042	//   },
119043	//   "path": "projects/{project}/regions/{region}/commitments",
119044	//   "response": {
119045	//     "$ref": "CommitmentList"
119046	//   },
119047	//   "scopes": [
119048	//     "https://www.googleapis.com/auth/cloud-platform",
119049	//     "https://www.googleapis.com/auth/compute",
119050	//     "https://www.googleapis.com/auth/compute.readonly"
119051	//   ]
119052	// }
119053
119054}
119055
119056// Pages invokes f for each page of results.
119057// A non-nil error returned from f will halt the iteration.
119058// The provided context supersedes any context provided to the Context method.
119059func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
119060	c.ctx_ = ctx
119061	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119062	for {
119063		x, err := c.Do()
119064		if err != nil {
119065			return err
119066		}
119067		if err := f(x); err != nil {
119068			return err
119069		}
119070		if x.NextPageToken == "" {
119071			return nil
119072		}
119073		c.PageToken(x.NextPageToken)
119074	}
119075}
119076
119077// method id "compute.regionDiskTypes.get":
119078
119079type RegionDiskTypesGetCall struct {
119080	s            *Service
119081	project      string
119082	region       string
119083	diskType     string
119084	urlParams_   gensupport.URLParams
119085	ifNoneMatch_ string
119086	ctx_         context.Context
119087	header_      http.Header
119088}
119089
119090// Get: Returns the specified regional disk type. Gets a list of
119091// available disk types by making a list() request.
119092//
119093// - diskType: Name of the disk type to return.
119094// - project: Project ID for this request.
119095// - region: The name of the region for this request.
119096func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
119097	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119098	c.project = project
119099	c.region = region
119100	c.diskType = diskType
119101	return c
119102}
119103
119104// Fields allows partial responses to be retrieved. See
119105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119106// for more information.
119107func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
119108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119109	return c
119110}
119111
119112// IfNoneMatch sets the optional parameter which makes the operation
119113// fail if the object's ETag matches the given value. This is useful for
119114// getting updates only after the object has changed since the last
119115// request. Use googleapi.IsNotModified to check whether the response
119116// error from Do is the result of In-None-Match.
119117func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
119118	c.ifNoneMatch_ = entityTag
119119	return c
119120}
119121
119122// Context sets the context to be used in this call's Do method. Any
119123// pending HTTP request will be aborted if the provided context is
119124// canceled.
119125func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
119126	c.ctx_ = ctx
119127	return c
119128}
119129
119130// Header returns an http.Header that can be modified by the caller to
119131// add HTTP headers to the request.
119132func (c *RegionDiskTypesGetCall) Header() http.Header {
119133	if c.header_ == nil {
119134		c.header_ = make(http.Header)
119135	}
119136	return c.header_
119137}
119138
119139func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
119140	reqHeaders := make(http.Header)
119141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
119142	for k, v := range c.header_ {
119143		reqHeaders[k] = v
119144	}
119145	reqHeaders.Set("User-Agent", c.s.userAgent())
119146	if c.ifNoneMatch_ != "" {
119147		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119148	}
119149	var body io.Reader = nil
119150	c.urlParams_.Set("alt", alt)
119151	c.urlParams_.Set("prettyPrint", "false")
119152	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}")
119153	urls += "?" + c.urlParams_.Encode()
119154	req, err := http.NewRequest("GET", urls, body)
119155	if err != nil {
119156		return nil, err
119157	}
119158	req.Header = reqHeaders
119159	googleapi.Expand(req.URL, map[string]string{
119160		"project":  c.project,
119161		"region":   c.region,
119162		"diskType": c.diskType,
119163	})
119164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119165}
119166
119167// Do executes the "compute.regionDiskTypes.get" call.
119168// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
119169// code is an error. Response headers are in either
119170// *DiskType.ServerResponse.Header or (if a response was returned at
119171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119172// to check whether the returned error was because
119173// http.StatusNotModified was returned.
119174func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
119175	gensupport.SetOptions(c.urlParams_, opts...)
119176	res, err := c.doRequest("json")
119177	if res != nil && res.StatusCode == http.StatusNotModified {
119178		if res.Body != nil {
119179			res.Body.Close()
119180		}
119181		return nil, &googleapi.Error{
119182			Code:   res.StatusCode,
119183			Header: res.Header,
119184		}
119185	}
119186	if err != nil {
119187		return nil, err
119188	}
119189	defer googleapi.CloseBody(res)
119190	if err := googleapi.CheckResponse(res); err != nil {
119191		return nil, err
119192	}
119193	ret := &DiskType{
119194		ServerResponse: googleapi.ServerResponse{
119195			Header:         res.Header,
119196			HTTPStatusCode: res.StatusCode,
119197		},
119198	}
119199	target := &ret
119200	if err := gensupport.DecodeResponse(target, res); err != nil {
119201		return nil, err
119202	}
119203	return ret, nil
119204	// {
119205	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
119206	//   "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}",
119207	//   "httpMethod": "GET",
119208	//   "id": "compute.regionDiskTypes.get",
119209	//   "parameterOrder": [
119210	//     "project",
119211	//     "region",
119212	//     "diskType"
119213	//   ],
119214	//   "parameters": {
119215	//     "diskType": {
119216	//       "description": "Name of the disk type to return.",
119217	//       "location": "path",
119218	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119219	//       "required": true,
119220	//       "type": "string"
119221	//     },
119222	//     "project": {
119223	//       "description": "Project ID for this request.",
119224	//       "location": "path",
119225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119226	//       "required": true,
119227	//       "type": "string"
119228	//     },
119229	//     "region": {
119230	//       "description": "The name of the region for this request.",
119231	//       "location": "path",
119232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119233	//       "required": true,
119234	//       "type": "string"
119235	//     }
119236	//   },
119237	//   "path": "projects/{project}/regions/{region}/diskTypes/{diskType}",
119238	//   "response": {
119239	//     "$ref": "DiskType"
119240	//   },
119241	//   "scopes": [
119242	//     "https://www.googleapis.com/auth/cloud-platform",
119243	//     "https://www.googleapis.com/auth/compute",
119244	//     "https://www.googleapis.com/auth/compute.readonly"
119245	//   ]
119246	// }
119247
119248}
119249
119250// method id "compute.regionDiskTypes.list":
119251
119252type RegionDiskTypesListCall struct {
119253	s            *Service
119254	project      string
119255	region       string
119256	urlParams_   gensupport.URLParams
119257	ifNoneMatch_ string
119258	ctx_         context.Context
119259	header_      http.Header
119260}
119261
119262// List: Retrieves a list of regional disk types available to the
119263// specified project.
119264//
119265// - project: Project ID for this request.
119266// - region: The name of the region for this request.
119267func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
119268	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119269	c.project = project
119270	c.region = region
119271	return c
119272}
119273
119274// Filter sets the optional parameter "filter": A filter expression that
119275// filters resources listed in the response. The expression must specify
119276// the field name, a comparison operator, and the value that you want to
119277// use for filtering. The value must be a string, a number, or a
119278// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119279// `<`. For example, if you are filtering Compute Engine instances, you
119280// can exclude instances named `example-instance` by specifying `name !=
119281// example-instance`. You can also filter nested fields. For example,
119282// you could specify `scheduling.automaticRestart = false` to include
119283// instances only if they are not scheduled for automatic restarts. You
119284// can use filtering on nested fields to filter based on resource
119285// labels. To filter on multiple expressions, provide each separate
119286// expression within parentheses. For example: ```
119287// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
119288// ``` By default, each expression is an `AND` expression. However, you
119289// can include `AND` and `OR` expressions explicitly. For example: ```
119290// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
119291// AND (scheduling.automaticRestart = true) ```
119292func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
119293	c.urlParams_.Set("filter", filter)
119294	return c
119295}
119296
119297// MaxResults sets the optional parameter "maxResults": The maximum
119298// number of results per page that should be returned. If the number of
119299// available results is larger than `maxResults`, Compute Engine returns
119300// a `nextPageToken` that can be used to get the next page of results in
119301// subsequent list requests. Acceptable values are `0` to `500`,
119302// inclusive. (Default: `500`)
119303func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
119304	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119305	return c
119306}
119307
119308// OrderBy sets the optional parameter "orderBy": Sorts list results by
119309// a certain order. By default, results are returned in alphanumerical
119310// order based on the resource name. You can also sort results in
119311// descending order based on the creation timestamp using
119312// `orderBy="creationTimestamp desc". This sorts results based on the
119313// `creationTimestamp` field in reverse chronological order (newest
119314// result first). Use this to sort resources like operations so that the
119315// newest operation is returned first. Currently, only sorting by `name`
119316// or `creationTimestamp desc` is supported.
119317func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
119318	c.urlParams_.Set("orderBy", orderBy)
119319	return c
119320}
119321
119322// PageToken sets the optional parameter "pageToken": Specifies a page
119323// token to use. Set `pageToken` to the `nextPageToken` returned by a
119324// previous list request to get the next page of results.
119325func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
119326	c.urlParams_.Set("pageToken", pageToken)
119327	return c
119328}
119329
119330// ReturnPartialSuccess sets the optional parameter
119331// "returnPartialSuccess": Opt-in for partial success behavior which
119332// provides partial results in case of failure. The default value is
119333// false.
119334func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
119335	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119336	return c
119337}
119338
119339// Fields allows partial responses to be retrieved. See
119340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119341// for more information.
119342func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
119343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119344	return c
119345}
119346
119347// IfNoneMatch sets the optional parameter which makes the operation
119348// fail if the object's ETag matches the given value. This is useful for
119349// getting updates only after the object has changed since the last
119350// request. Use googleapi.IsNotModified to check whether the response
119351// error from Do is the result of In-None-Match.
119352func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
119353	c.ifNoneMatch_ = entityTag
119354	return c
119355}
119356
119357// Context sets the context to be used in this call's Do method. Any
119358// pending HTTP request will be aborted if the provided context is
119359// canceled.
119360func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
119361	c.ctx_ = ctx
119362	return c
119363}
119364
119365// Header returns an http.Header that can be modified by the caller to
119366// add HTTP headers to the request.
119367func (c *RegionDiskTypesListCall) Header() http.Header {
119368	if c.header_ == nil {
119369		c.header_ = make(http.Header)
119370	}
119371	return c.header_
119372}
119373
119374func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
119375	reqHeaders := make(http.Header)
119376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
119377	for k, v := range c.header_ {
119378		reqHeaders[k] = v
119379	}
119380	reqHeaders.Set("User-Agent", c.s.userAgent())
119381	if c.ifNoneMatch_ != "" {
119382		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119383	}
119384	var body io.Reader = nil
119385	c.urlParams_.Set("alt", alt)
119386	c.urlParams_.Set("prettyPrint", "false")
119387	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes")
119388	urls += "?" + c.urlParams_.Encode()
119389	req, err := http.NewRequest("GET", urls, body)
119390	if err != nil {
119391		return nil, err
119392	}
119393	req.Header = reqHeaders
119394	googleapi.Expand(req.URL, map[string]string{
119395		"project": c.project,
119396		"region":  c.region,
119397	})
119398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119399}
119400
119401// Do executes the "compute.regionDiskTypes.list" call.
119402// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
119403// non-2xx status code is an error. Response headers are in either
119404// *RegionDiskTypeList.ServerResponse.Header or (if a response was
119405// returned at all) in error.(*googleapi.Error).Header. Use
119406// googleapi.IsNotModified to check whether the returned error was
119407// because http.StatusNotModified was returned.
119408func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
119409	gensupport.SetOptions(c.urlParams_, opts...)
119410	res, err := c.doRequest("json")
119411	if res != nil && res.StatusCode == http.StatusNotModified {
119412		if res.Body != nil {
119413			res.Body.Close()
119414		}
119415		return nil, &googleapi.Error{
119416			Code:   res.StatusCode,
119417			Header: res.Header,
119418		}
119419	}
119420	if err != nil {
119421		return nil, err
119422	}
119423	defer googleapi.CloseBody(res)
119424	if err := googleapi.CheckResponse(res); err != nil {
119425		return nil, err
119426	}
119427	ret := &RegionDiskTypeList{
119428		ServerResponse: googleapi.ServerResponse{
119429			Header:         res.Header,
119430			HTTPStatusCode: res.StatusCode,
119431		},
119432	}
119433	target := &ret
119434	if err := gensupport.DecodeResponse(target, res); err != nil {
119435		return nil, err
119436	}
119437	return ret, nil
119438	// {
119439	//   "description": "Retrieves a list of regional disk types available to the specified project.",
119440	//   "flatPath": "projects/{project}/regions/{region}/diskTypes",
119441	//   "httpMethod": "GET",
119442	//   "id": "compute.regionDiskTypes.list",
119443	//   "parameterOrder": [
119444	//     "project",
119445	//     "region"
119446	//   ],
119447	//   "parameters": {
119448	//     "filter": {
119449	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119450	//       "location": "query",
119451	//       "type": "string"
119452	//     },
119453	//     "maxResults": {
119454	//       "default": "500",
119455	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119456	//       "format": "uint32",
119457	//       "location": "query",
119458	//       "minimum": "0",
119459	//       "type": "integer"
119460	//     },
119461	//     "orderBy": {
119462	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
119463	//       "location": "query",
119464	//       "type": "string"
119465	//     },
119466	//     "pageToken": {
119467	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119468	//       "location": "query",
119469	//       "type": "string"
119470	//     },
119471	//     "project": {
119472	//       "description": "Project ID for this request.",
119473	//       "location": "path",
119474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119475	//       "required": true,
119476	//       "type": "string"
119477	//     },
119478	//     "region": {
119479	//       "description": "The name of the region for this request.",
119480	//       "location": "path",
119481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119482	//       "required": true,
119483	//       "type": "string"
119484	//     },
119485	//     "returnPartialSuccess": {
119486	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119487	//       "location": "query",
119488	//       "type": "boolean"
119489	//     }
119490	//   },
119491	//   "path": "projects/{project}/regions/{region}/diskTypes",
119492	//   "response": {
119493	//     "$ref": "RegionDiskTypeList"
119494	//   },
119495	//   "scopes": [
119496	//     "https://www.googleapis.com/auth/cloud-platform",
119497	//     "https://www.googleapis.com/auth/compute",
119498	//     "https://www.googleapis.com/auth/compute.readonly"
119499	//   ]
119500	// }
119501
119502}
119503
119504// Pages invokes f for each page of results.
119505// A non-nil error returned from f will halt the iteration.
119506// The provided context supersedes any context provided to the Context method.
119507func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
119508	c.ctx_ = ctx
119509	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119510	for {
119511		x, err := c.Do()
119512		if err != nil {
119513			return err
119514		}
119515		if err := f(x); err != nil {
119516			return err
119517		}
119518		if x.NextPageToken == "" {
119519			return nil
119520		}
119521		c.PageToken(x.NextPageToken)
119522	}
119523}
119524
119525// method id "compute.regionDisks.addResourcePolicies":
119526
119527type RegionDisksAddResourcePoliciesCall struct {
119528	s                                     *Service
119529	project                               string
119530	region                                string
119531	disk                                  string
119532	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
119533	urlParams_                            gensupport.URLParams
119534	ctx_                                  context.Context
119535	header_                               http.Header
119536}
119537
119538// AddResourcePolicies: Adds existing resource policies to a regional
119539// disk. You can only add one policy which will be applied to this disk
119540// for scheduling snapshot creation.
119541//
119542// - disk: The disk name for this request.
119543// - project: Project ID for this request.
119544// - region: The name of the region for this request.
119545func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
119546	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119547	c.project = project
119548	c.region = region
119549	c.disk = disk
119550	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
119551	return c
119552}
119553
119554// RequestId sets the optional parameter "requestId": An optional
119555// request ID to identify requests. Specify a unique request ID so that
119556// if you must retry your request, the server will know to ignore the
119557// request if it has already been completed. For example, consider a
119558// situation where you make an initial request and the request times
119559// out. If you make the request again with the same request ID, the
119560// server can check if original operation with the same request ID was
119561// received, and if so, will ignore the second request. This prevents
119562// clients from accidentally creating duplicate commitments. The request
119563// ID must be a valid UUID with the exception that zero UUID is not
119564// supported ( 00000000-0000-0000-0000-000000000000).
119565func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
119566	c.urlParams_.Set("requestId", requestId)
119567	return c
119568}
119569
119570// Fields allows partial responses to be retrieved. See
119571// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119572// for more information.
119573func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
119574	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119575	return c
119576}
119577
119578// Context sets the context to be used in this call's Do method. Any
119579// pending HTTP request will be aborted if the provided context is
119580// canceled.
119581func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
119582	c.ctx_ = ctx
119583	return c
119584}
119585
119586// Header returns an http.Header that can be modified by the caller to
119587// add HTTP headers to the request.
119588func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
119589	if c.header_ == nil {
119590		c.header_ = make(http.Header)
119591	}
119592	return c.header_
119593}
119594
119595func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
119596	reqHeaders := make(http.Header)
119597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
119598	for k, v := range c.header_ {
119599		reqHeaders[k] = v
119600	}
119601	reqHeaders.Set("User-Agent", c.s.userAgent())
119602	var body io.Reader = nil
119603	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
119604	if err != nil {
119605		return nil, err
119606	}
119607	reqHeaders.Set("Content-Type", "application/json")
119608	c.urlParams_.Set("alt", alt)
119609	c.urlParams_.Set("prettyPrint", "false")
119610	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies")
119611	urls += "?" + c.urlParams_.Encode()
119612	req, err := http.NewRequest("POST", urls, body)
119613	if err != nil {
119614		return nil, err
119615	}
119616	req.Header = reqHeaders
119617	googleapi.Expand(req.URL, map[string]string{
119618		"project": c.project,
119619		"region":  c.region,
119620		"disk":    c.disk,
119621	})
119622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119623}
119624
119625// Do executes the "compute.regionDisks.addResourcePolicies" call.
119626// Exactly one of *Operation or error will be non-nil. Any non-2xx
119627// status code is an error. Response headers are in either
119628// *Operation.ServerResponse.Header or (if a response was returned at
119629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119630// to check whether the returned error was because
119631// http.StatusNotModified was returned.
119632func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119633	gensupport.SetOptions(c.urlParams_, opts...)
119634	res, err := c.doRequest("json")
119635	if res != nil && res.StatusCode == http.StatusNotModified {
119636		if res.Body != nil {
119637			res.Body.Close()
119638		}
119639		return nil, &googleapi.Error{
119640			Code:   res.StatusCode,
119641			Header: res.Header,
119642		}
119643	}
119644	if err != nil {
119645		return nil, err
119646	}
119647	defer googleapi.CloseBody(res)
119648	if err := googleapi.CheckResponse(res); err != nil {
119649		return nil, err
119650	}
119651	ret := &Operation{
119652		ServerResponse: googleapi.ServerResponse{
119653			Header:         res.Header,
119654			HTTPStatusCode: res.StatusCode,
119655		},
119656	}
119657	target := &ret
119658	if err := gensupport.DecodeResponse(target, res); err != nil {
119659		return nil, err
119660	}
119661	return ret, nil
119662	// {
119663	//   "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.",
119664	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
119665	//   "httpMethod": "POST",
119666	//   "id": "compute.regionDisks.addResourcePolicies",
119667	//   "parameterOrder": [
119668	//     "project",
119669	//     "region",
119670	//     "disk"
119671	//   ],
119672	//   "parameters": {
119673	//     "disk": {
119674	//       "description": "The disk name for this request.",
119675	//       "location": "path",
119676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119677	//       "required": true,
119678	//       "type": "string"
119679	//     },
119680	//     "project": {
119681	//       "description": "Project ID for this request.",
119682	//       "location": "path",
119683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119684	//       "required": true,
119685	//       "type": "string"
119686	//     },
119687	//     "region": {
119688	//       "description": "The name of the region for this request.",
119689	//       "location": "path",
119690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119691	//       "required": true,
119692	//       "type": "string"
119693	//     },
119694	//     "requestId": {
119695	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
119696	//       "location": "query",
119697	//       "type": "string"
119698	//     }
119699	//   },
119700	//   "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
119701	//   "request": {
119702	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
119703	//   },
119704	//   "response": {
119705	//     "$ref": "Operation"
119706	//   },
119707	//   "scopes": [
119708	//     "https://www.googleapis.com/auth/cloud-platform",
119709	//     "https://www.googleapis.com/auth/compute"
119710	//   ]
119711	// }
119712
119713}
119714
119715// method id "compute.regionDisks.createSnapshot":
119716
119717type RegionDisksCreateSnapshotCall struct {
119718	s          *Service
119719	project    string
119720	region     string
119721	disk       string
119722	snapshot   *Snapshot
119723	urlParams_ gensupport.URLParams
119724	ctx_       context.Context
119725	header_    http.Header
119726}
119727
119728// CreateSnapshot: Creates a snapshot of this regional disk.
119729//
119730// - disk: Name of the regional persistent disk to snapshot.
119731// - project: Project ID for this request.
119732// - region: Name of the region for this request.
119733func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
119734	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119735	c.project = project
119736	c.region = region
119737	c.disk = disk
119738	c.snapshot = snapshot
119739	return c
119740}
119741
119742// RequestId sets the optional parameter "requestId": An optional
119743// request ID to identify requests. Specify a unique request ID so that
119744// if you must retry your request, the server will know to ignore the
119745// request if it has already been completed. For example, consider a
119746// situation where you make an initial request and the request times
119747// out. If you make the request again with the same request ID, the
119748// server can check if original operation with the same request ID was
119749// received, and if so, will ignore the second request. This prevents
119750// clients from accidentally creating duplicate commitments. The request
119751// ID must be a valid UUID with the exception that zero UUID is not
119752// supported ( 00000000-0000-0000-0000-000000000000).
119753func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
119754	c.urlParams_.Set("requestId", requestId)
119755	return c
119756}
119757
119758// Fields allows partial responses to be retrieved. See
119759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119760// for more information.
119761func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
119762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119763	return c
119764}
119765
119766// Context sets the context to be used in this call's Do method. Any
119767// pending HTTP request will be aborted if the provided context is
119768// canceled.
119769func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
119770	c.ctx_ = ctx
119771	return c
119772}
119773
119774// Header returns an http.Header that can be modified by the caller to
119775// add HTTP headers to the request.
119776func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
119777	if c.header_ == nil {
119778		c.header_ = make(http.Header)
119779	}
119780	return c.header_
119781}
119782
119783func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
119784	reqHeaders := make(http.Header)
119785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
119786	for k, v := range c.header_ {
119787		reqHeaders[k] = v
119788	}
119789	reqHeaders.Set("User-Agent", c.s.userAgent())
119790	var body io.Reader = nil
119791	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
119792	if err != nil {
119793		return nil, err
119794	}
119795	reqHeaders.Set("Content-Type", "application/json")
119796	c.urlParams_.Set("alt", alt)
119797	c.urlParams_.Set("prettyPrint", "false")
119798	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot")
119799	urls += "?" + c.urlParams_.Encode()
119800	req, err := http.NewRequest("POST", urls, body)
119801	if err != nil {
119802		return nil, err
119803	}
119804	req.Header = reqHeaders
119805	googleapi.Expand(req.URL, map[string]string{
119806		"project": c.project,
119807		"region":  c.region,
119808		"disk":    c.disk,
119809	})
119810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119811}
119812
119813// Do executes the "compute.regionDisks.createSnapshot" call.
119814// Exactly one of *Operation or error will be non-nil. Any non-2xx
119815// status code is an error. Response headers are in either
119816// *Operation.ServerResponse.Header or (if a response was returned at
119817// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119818// to check whether the returned error was because
119819// http.StatusNotModified was returned.
119820func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119821	gensupport.SetOptions(c.urlParams_, opts...)
119822	res, err := c.doRequest("json")
119823	if res != nil && res.StatusCode == http.StatusNotModified {
119824		if res.Body != nil {
119825			res.Body.Close()
119826		}
119827		return nil, &googleapi.Error{
119828			Code:   res.StatusCode,
119829			Header: res.Header,
119830		}
119831	}
119832	if err != nil {
119833		return nil, err
119834	}
119835	defer googleapi.CloseBody(res)
119836	if err := googleapi.CheckResponse(res); err != nil {
119837		return nil, err
119838	}
119839	ret := &Operation{
119840		ServerResponse: googleapi.ServerResponse{
119841			Header:         res.Header,
119842			HTTPStatusCode: res.StatusCode,
119843		},
119844	}
119845	target := &ret
119846	if err := gensupport.DecodeResponse(target, res); err != nil {
119847		return nil, err
119848	}
119849	return ret, nil
119850	// {
119851	//   "description": "Creates a snapshot of this regional disk.",
119852	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
119853	//   "httpMethod": "POST",
119854	//   "id": "compute.regionDisks.createSnapshot",
119855	//   "parameterOrder": [
119856	//     "project",
119857	//     "region",
119858	//     "disk"
119859	//   ],
119860	//   "parameters": {
119861	//     "disk": {
119862	//       "description": "Name of the regional persistent disk to snapshot.",
119863	//       "location": "path",
119864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119865	//       "required": true,
119866	//       "type": "string"
119867	//     },
119868	//     "project": {
119869	//       "description": "Project ID for this request.",
119870	//       "location": "path",
119871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119872	//       "required": true,
119873	//       "type": "string"
119874	//     },
119875	//     "region": {
119876	//       "description": "Name of the region for this request.",
119877	//       "location": "path",
119878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119879	//       "required": true,
119880	//       "type": "string"
119881	//     },
119882	//     "requestId": {
119883	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
119884	//       "location": "query",
119885	//       "type": "string"
119886	//     }
119887	//   },
119888	//   "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
119889	//   "request": {
119890	//     "$ref": "Snapshot"
119891	//   },
119892	//   "response": {
119893	//     "$ref": "Operation"
119894	//   },
119895	//   "scopes": [
119896	//     "https://www.googleapis.com/auth/cloud-platform",
119897	//     "https://www.googleapis.com/auth/compute"
119898	//   ]
119899	// }
119900
119901}
119902
119903// method id "compute.regionDisks.delete":
119904
119905type RegionDisksDeleteCall struct {
119906	s          *Service
119907	project    string
119908	region     string
119909	disk       string
119910	urlParams_ gensupport.URLParams
119911	ctx_       context.Context
119912	header_    http.Header
119913}
119914
119915// Delete: Deletes the specified regional persistent disk. Deleting a
119916// regional disk removes all the replicas of its data permanently and is
119917// irreversible. However, deleting a disk does not delete any snapshots
119918// previously made from the disk. You must separately delete snapshots.
119919//
119920// - disk: Name of the regional persistent disk to delete.
119921// - project: Project ID for this request.
119922// - region: Name of the region for this request.
119923func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
119924	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119925	c.project = project
119926	c.region = region
119927	c.disk = disk
119928	return c
119929}
119930
119931// RequestId sets the optional parameter "requestId": An optional
119932// request ID to identify requests. Specify a unique request ID so that
119933// if you must retry your request, the server will know to ignore the
119934// request if it has already been completed. For example, consider a
119935// situation where you make an initial request and the request times
119936// out. If you make the request again with the same request ID, the
119937// server can check if original operation with the same request ID was
119938// received, and if so, will ignore the second request. This prevents
119939// clients from accidentally creating duplicate commitments. The request
119940// ID must be a valid UUID with the exception that zero UUID is not
119941// supported ( 00000000-0000-0000-0000-000000000000).
119942func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
119943	c.urlParams_.Set("requestId", requestId)
119944	return c
119945}
119946
119947// Fields allows partial responses to be retrieved. See
119948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119949// for more information.
119950func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
119951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119952	return c
119953}
119954
119955// Context sets the context to be used in this call's Do method. Any
119956// pending HTTP request will be aborted if the provided context is
119957// canceled.
119958func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
119959	c.ctx_ = ctx
119960	return c
119961}
119962
119963// Header returns an http.Header that can be modified by the caller to
119964// add HTTP headers to the request.
119965func (c *RegionDisksDeleteCall) Header() http.Header {
119966	if c.header_ == nil {
119967		c.header_ = make(http.Header)
119968	}
119969	return c.header_
119970}
119971
119972func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
119973	reqHeaders := make(http.Header)
119974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
119975	for k, v := range c.header_ {
119976		reqHeaders[k] = v
119977	}
119978	reqHeaders.Set("User-Agent", c.s.userAgent())
119979	var body io.Reader = nil
119980	c.urlParams_.Set("alt", alt)
119981	c.urlParams_.Set("prettyPrint", "false")
119982	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
119983	urls += "?" + c.urlParams_.Encode()
119984	req, err := http.NewRequest("DELETE", urls, body)
119985	if err != nil {
119986		return nil, err
119987	}
119988	req.Header = reqHeaders
119989	googleapi.Expand(req.URL, map[string]string{
119990		"project": c.project,
119991		"region":  c.region,
119992		"disk":    c.disk,
119993	})
119994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119995}
119996
119997// Do executes the "compute.regionDisks.delete" call.
119998// Exactly one of *Operation or error will be non-nil. Any non-2xx
119999// status code is an error. Response headers are in either
120000// *Operation.ServerResponse.Header or (if a response was returned at
120001// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120002// to check whether the returned error was because
120003// http.StatusNotModified was returned.
120004func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120005	gensupport.SetOptions(c.urlParams_, opts...)
120006	res, err := c.doRequest("json")
120007	if res != nil && res.StatusCode == http.StatusNotModified {
120008		if res.Body != nil {
120009			res.Body.Close()
120010		}
120011		return nil, &googleapi.Error{
120012			Code:   res.StatusCode,
120013			Header: res.Header,
120014		}
120015	}
120016	if err != nil {
120017		return nil, err
120018	}
120019	defer googleapi.CloseBody(res)
120020	if err := googleapi.CheckResponse(res); err != nil {
120021		return nil, err
120022	}
120023	ret := &Operation{
120024		ServerResponse: googleapi.ServerResponse{
120025			Header:         res.Header,
120026			HTTPStatusCode: res.StatusCode,
120027		},
120028	}
120029	target := &ret
120030	if err := gensupport.DecodeResponse(target, res); err != nil {
120031		return nil, err
120032	}
120033	return ret, nil
120034	// {
120035	//   "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.",
120036	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
120037	//   "httpMethod": "DELETE",
120038	//   "id": "compute.regionDisks.delete",
120039	//   "parameterOrder": [
120040	//     "project",
120041	//     "region",
120042	//     "disk"
120043	//   ],
120044	//   "parameters": {
120045	//     "disk": {
120046	//       "description": "Name of the regional persistent disk to delete.",
120047	//       "location": "path",
120048	//       "required": true,
120049	//       "type": "string"
120050	//     },
120051	//     "project": {
120052	//       "description": "Project ID for this request.",
120053	//       "location": "path",
120054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120055	//       "required": true,
120056	//       "type": "string"
120057	//     },
120058	//     "region": {
120059	//       "description": "Name of the region for this request.",
120060	//       "location": "path",
120061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120062	//       "required": true,
120063	//       "type": "string"
120064	//     },
120065	//     "requestId": {
120066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120067	//       "location": "query",
120068	//       "type": "string"
120069	//     }
120070	//   },
120071	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
120072	//   "response": {
120073	//     "$ref": "Operation"
120074	//   },
120075	//   "scopes": [
120076	//     "https://www.googleapis.com/auth/cloud-platform",
120077	//     "https://www.googleapis.com/auth/compute"
120078	//   ]
120079	// }
120080
120081}
120082
120083// method id "compute.regionDisks.get":
120084
120085type RegionDisksGetCall struct {
120086	s            *Service
120087	project      string
120088	region       string
120089	disk         string
120090	urlParams_   gensupport.URLParams
120091	ifNoneMatch_ string
120092	ctx_         context.Context
120093	header_      http.Header
120094}
120095
120096// Get: Returns a specified regional persistent disk.
120097//
120098// - disk: Name of the regional persistent disk to return.
120099// - project: Project ID for this request.
120100// - region: Name of the region for this request.
120101func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
120102	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120103	c.project = project
120104	c.region = region
120105	c.disk = disk
120106	return c
120107}
120108
120109// Fields allows partial responses to be retrieved. See
120110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120111// for more information.
120112func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
120113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120114	return c
120115}
120116
120117// IfNoneMatch sets the optional parameter which makes the operation
120118// fail if the object's ETag matches the given value. This is useful for
120119// getting updates only after the object has changed since the last
120120// request. Use googleapi.IsNotModified to check whether the response
120121// error from Do is the result of In-None-Match.
120122func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
120123	c.ifNoneMatch_ = entityTag
120124	return c
120125}
120126
120127// Context sets the context to be used in this call's Do method. Any
120128// pending HTTP request will be aborted if the provided context is
120129// canceled.
120130func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
120131	c.ctx_ = ctx
120132	return c
120133}
120134
120135// Header returns an http.Header that can be modified by the caller to
120136// add HTTP headers to the request.
120137func (c *RegionDisksGetCall) Header() http.Header {
120138	if c.header_ == nil {
120139		c.header_ = make(http.Header)
120140	}
120141	return c.header_
120142}
120143
120144func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
120145	reqHeaders := make(http.Header)
120146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
120147	for k, v := range c.header_ {
120148		reqHeaders[k] = v
120149	}
120150	reqHeaders.Set("User-Agent", c.s.userAgent())
120151	if c.ifNoneMatch_ != "" {
120152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120153	}
120154	var body io.Reader = nil
120155	c.urlParams_.Set("alt", alt)
120156	c.urlParams_.Set("prettyPrint", "false")
120157	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
120158	urls += "?" + c.urlParams_.Encode()
120159	req, err := http.NewRequest("GET", urls, body)
120160	if err != nil {
120161		return nil, err
120162	}
120163	req.Header = reqHeaders
120164	googleapi.Expand(req.URL, map[string]string{
120165		"project": c.project,
120166		"region":  c.region,
120167		"disk":    c.disk,
120168	})
120169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120170}
120171
120172// Do executes the "compute.regionDisks.get" call.
120173// Exactly one of *Disk or error will be non-nil. Any non-2xx status
120174// code is an error. Response headers are in either
120175// *Disk.ServerResponse.Header or (if a response was returned at all) in
120176// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120177// whether the returned error was because http.StatusNotModified was
120178// returned.
120179func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
120180	gensupport.SetOptions(c.urlParams_, opts...)
120181	res, err := c.doRequest("json")
120182	if res != nil && res.StatusCode == http.StatusNotModified {
120183		if res.Body != nil {
120184			res.Body.Close()
120185		}
120186		return nil, &googleapi.Error{
120187			Code:   res.StatusCode,
120188			Header: res.Header,
120189		}
120190	}
120191	if err != nil {
120192		return nil, err
120193	}
120194	defer googleapi.CloseBody(res)
120195	if err := googleapi.CheckResponse(res); err != nil {
120196		return nil, err
120197	}
120198	ret := &Disk{
120199		ServerResponse: googleapi.ServerResponse{
120200			Header:         res.Header,
120201			HTTPStatusCode: res.StatusCode,
120202		},
120203	}
120204	target := &ret
120205	if err := gensupport.DecodeResponse(target, res); err != nil {
120206		return nil, err
120207	}
120208	return ret, nil
120209	// {
120210	//   "description": "Returns a specified regional persistent disk.",
120211	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
120212	//   "httpMethod": "GET",
120213	//   "id": "compute.regionDisks.get",
120214	//   "parameterOrder": [
120215	//     "project",
120216	//     "region",
120217	//     "disk"
120218	//   ],
120219	//   "parameters": {
120220	//     "disk": {
120221	//       "description": "Name of the regional persistent disk to return.",
120222	//       "location": "path",
120223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120224	//       "required": true,
120225	//       "type": "string"
120226	//     },
120227	//     "project": {
120228	//       "description": "Project ID for this request.",
120229	//       "location": "path",
120230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120231	//       "required": true,
120232	//       "type": "string"
120233	//     },
120234	//     "region": {
120235	//       "description": "Name of the region for this request.",
120236	//       "location": "path",
120237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120238	//       "required": true,
120239	//       "type": "string"
120240	//     }
120241	//   },
120242	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
120243	//   "response": {
120244	//     "$ref": "Disk"
120245	//   },
120246	//   "scopes": [
120247	//     "https://www.googleapis.com/auth/cloud-platform",
120248	//     "https://www.googleapis.com/auth/compute",
120249	//     "https://www.googleapis.com/auth/compute.readonly"
120250	//   ]
120251	// }
120252
120253}
120254
120255// method id "compute.regionDisks.getIamPolicy":
120256
120257type RegionDisksGetIamPolicyCall struct {
120258	s            *Service
120259	project      string
120260	region       string
120261	resource     string
120262	urlParams_   gensupport.URLParams
120263	ifNoneMatch_ string
120264	ctx_         context.Context
120265	header_      http.Header
120266}
120267
120268// GetIamPolicy: Gets the access control policy for a resource. May be
120269// empty if no such policy or resource exists.
120270//
120271// - project: Project ID for this request.
120272// - region: The name of the region for this request.
120273// - resource: Name or id of the resource for this request.
120274func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
120275	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120276	c.project = project
120277	c.region = region
120278	c.resource = resource
120279	return c
120280}
120281
120282// OptionsRequestedPolicyVersion sets the optional parameter
120283// "optionsRequestedPolicyVersion": Requested IAM Policy version.
120284func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
120285	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
120286	return c
120287}
120288
120289// Fields allows partial responses to be retrieved. See
120290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120291// for more information.
120292func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
120293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120294	return c
120295}
120296
120297// IfNoneMatch sets the optional parameter which makes the operation
120298// fail if the object's ETag matches the given value. This is useful for
120299// getting updates only after the object has changed since the last
120300// request. Use googleapi.IsNotModified to check whether the response
120301// error from Do is the result of In-None-Match.
120302func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
120303	c.ifNoneMatch_ = entityTag
120304	return c
120305}
120306
120307// Context sets the context to be used in this call's Do method. Any
120308// pending HTTP request will be aborted if the provided context is
120309// canceled.
120310func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
120311	c.ctx_ = ctx
120312	return c
120313}
120314
120315// Header returns an http.Header that can be modified by the caller to
120316// add HTTP headers to the request.
120317func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
120318	if c.header_ == nil {
120319		c.header_ = make(http.Header)
120320	}
120321	return c.header_
120322}
120323
120324func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
120325	reqHeaders := make(http.Header)
120326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
120327	for k, v := range c.header_ {
120328		reqHeaders[k] = v
120329	}
120330	reqHeaders.Set("User-Agent", c.s.userAgent())
120331	if c.ifNoneMatch_ != "" {
120332		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120333	}
120334	var body io.Reader = nil
120335	c.urlParams_.Set("alt", alt)
120336	c.urlParams_.Set("prettyPrint", "false")
120337	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy")
120338	urls += "?" + c.urlParams_.Encode()
120339	req, err := http.NewRequest("GET", urls, body)
120340	if err != nil {
120341		return nil, err
120342	}
120343	req.Header = reqHeaders
120344	googleapi.Expand(req.URL, map[string]string{
120345		"project":  c.project,
120346		"region":   c.region,
120347		"resource": c.resource,
120348	})
120349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120350}
120351
120352// Do executes the "compute.regionDisks.getIamPolicy" call.
120353// Exactly one of *Policy or error will be non-nil. Any non-2xx status
120354// code is an error. Response headers are in either
120355// *Policy.ServerResponse.Header or (if a response was returned at all)
120356// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
120357// check whether the returned error was because http.StatusNotModified
120358// was returned.
120359func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
120360	gensupport.SetOptions(c.urlParams_, opts...)
120361	res, err := c.doRequest("json")
120362	if res != nil && res.StatusCode == http.StatusNotModified {
120363		if res.Body != nil {
120364			res.Body.Close()
120365		}
120366		return nil, &googleapi.Error{
120367			Code:   res.StatusCode,
120368			Header: res.Header,
120369		}
120370	}
120371	if err != nil {
120372		return nil, err
120373	}
120374	defer googleapi.CloseBody(res)
120375	if err := googleapi.CheckResponse(res); err != nil {
120376		return nil, err
120377	}
120378	ret := &Policy{
120379		ServerResponse: googleapi.ServerResponse{
120380			Header:         res.Header,
120381			HTTPStatusCode: res.StatusCode,
120382		},
120383	}
120384	target := &ret
120385	if err := gensupport.DecodeResponse(target, res); err != nil {
120386		return nil, err
120387	}
120388	return ret, nil
120389	// {
120390	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
120391	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
120392	//   "httpMethod": "GET",
120393	//   "id": "compute.regionDisks.getIamPolicy",
120394	//   "parameterOrder": [
120395	//     "project",
120396	//     "region",
120397	//     "resource"
120398	//   ],
120399	//   "parameters": {
120400	//     "optionsRequestedPolicyVersion": {
120401	//       "description": "Requested IAM Policy version.",
120402	//       "format": "int32",
120403	//       "location": "query",
120404	//       "type": "integer"
120405	//     },
120406	//     "project": {
120407	//       "description": "Project ID for this request.",
120408	//       "location": "path",
120409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120410	//       "required": true,
120411	//       "type": "string"
120412	//     },
120413	//     "region": {
120414	//       "description": "The name of the region for this request.",
120415	//       "location": "path",
120416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120417	//       "required": true,
120418	//       "type": "string"
120419	//     },
120420	//     "resource": {
120421	//       "description": "Name or id of the resource for this request.",
120422	//       "location": "path",
120423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120424	//       "required": true,
120425	//       "type": "string"
120426	//     }
120427	//   },
120428	//   "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
120429	//   "response": {
120430	//     "$ref": "Policy"
120431	//   },
120432	//   "scopes": [
120433	//     "https://www.googleapis.com/auth/cloud-platform",
120434	//     "https://www.googleapis.com/auth/compute",
120435	//     "https://www.googleapis.com/auth/compute.readonly"
120436	//   ]
120437	// }
120438
120439}
120440
120441// method id "compute.regionDisks.insert":
120442
120443type RegionDisksInsertCall struct {
120444	s          *Service
120445	project    string
120446	region     string
120447	disk       *Disk
120448	urlParams_ gensupport.URLParams
120449	ctx_       context.Context
120450	header_    http.Header
120451}
120452
120453// Insert: Creates a persistent regional disk in the specified project
120454// using the data included in the request.
120455//
120456// - project: Project ID for this request.
120457// - region: Name of the region for this request.
120458func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
120459	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120460	c.project = project
120461	c.region = region
120462	c.disk = disk
120463	return c
120464}
120465
120466// RequestId sets the optional parameter "requestId": An optional
120467// request ID to identify requests. Specify a unique request ID so that
120468// if you must retry your request, the server will know to ignore the
120469// request if it has already been completed. For example, consider a
120470// situation where you make an initial request and the request times
120471// out. If you make the request again with the same request ID, the
120472// server can check if original operation with the same request ID was
120473// received, and if so, will ignore the second request. This prevents
120474// clients from accidentally creating duplicate commitments. The request
120475// ID must be a valid UUID with the exception that zero UUID is not
120476// supported ( 00000000-0000-0000-0000-000000000000).
120477func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
120478	c.urlParams_.Set("requestId", requestId)
120479	return c
120480}
120481
120482// SourceImage sets the optional parameter "sourceImage": Source image
120483// to restore onto a disk. This field is optional.
120484func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
120485	c.urlParams_.Set("sourceImage", sourceImage)
120486	return c
120487}
120488
120489// Fields allows partial responses to be retrieved. See
120490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120491// for more information.
120492func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
120493	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120494	return c
120495}
120496
120497// Context sets the context to be used in this call's Do method. Any
120498// pending HTTP request will be aborted if the provided context is
120499// canceled.
120500func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
120501	c.ctx_ = ctx
120502	return c
120503}
120504
120505// Header returns an http.Header that can be modified by the caller to
120506// add HTTP headers to the request.
120507func (c *RegionDisksInsertCall) Header() http.Header {
120508	if c.header_ == nil {
120509		c.header_ = make(http.Header)
120510	}
120511	return c.header_
120512}
120513
120514func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
120515	reqHeaders := make(http.Header)
120516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
120517	for k, v := range c.header_ {
120518		reqHeaders[k] = v
120519	}
120520	reqHeaders.Set("User-Agent", c.s.userAgent())
120521	var body io.Reader = nil
120522	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
120523	if err != nil {
120524		return nil, err
120525	}
120526	reqHeaders.Set("Content-Type", "application/json")
120527	c.urlParams_.Set("alt", alt)
120528	c.urlParams_.Set("prettyPrint", "false")
120529	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
120530	urls += "?" + c.urlParams_.Encode()
120531	req, err := http.NewRequest("POST", urls, body)
120532	if err != nil {
120533		return nil, err
120534	}
120535	req.Header = reqHeaders
120536	googleapi.Expand(req.URL, map[string]string{
120537		"project": c.project,
120538		"region":  c.region,
120539	})
120540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120541}
120542
120543// Do executes the "compute.regionDisks.insert" call.
120544// Exactly one of *Operation or error will be non-nil. Any non-2xx
120545// status code is an error. Response headers are in either
120546// *Operation.ServerResponse.Header or (if a response was returned at
120547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120548// to check whether the returned error was because
120549// http.StatusNotModified was returned.
120550func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120551	gensupport.SetOptions(c.urlParams_, opts...)
120552	res, err := c.doRequest("json")
120553	if res != nil && res.StatusCode == http.StatusNotModified {
120554		if res.Body != nil {
120555			res.Body.Close()
120556		}
120557		return nil, &googleapi.Error{
120558			Code:   res.StatusCode,
120559			Header: res.Header,
120560		}
120561	}
120562	if err != nil {
120563		return nil, err
120564	}
120565	defer googleapi.CloseBody(res)
120566	if err := googleapi.CheckResponse(res); err != nil {
120567		return nil, err
120568	}
120569	ret := &Operation{
120570		ServerResponse: googleapi.ServerResponse{
120571			Header:         res.Header,
120572			HTTPStatusCode: res.StatusCode,
120573		},
120574	}
120575	target := &ret
120576	if err := gensupport.DecodeResponse(target, res); err != nil {
120577		return nil, err
120578	}
120579	return ret, nil
120580	// {
120581	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
120582	//   "flatPath": "projects/{project}/regions/{region}/disks",
120583	//   "httpMethod": "POST",
120584	//   "id": "compute.regionDisks.insert",
120585	//   "parameterOrder": [
120586	//     "project",
120587	//     "region"
120588	//   ],
120589	//   "parameters": {
120590	//     "project": {
120591	//       "description": "Project ID for this request.",
120592	//       "location": "path",
120593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120594	//       "required": true,
120595	//       "type": "string"
120596	//     },
120597	//     "region": {
120598	//       "description": "Name of the region for this request.",
120599	//       "location": "path",
120600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120601	//       "required": true,
120602	//       "type": "string"
120603	//     },
120604	//     "requestId": {
120605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120606	//       "location": "query",
120607	//       "type": "string"
120608	//     },
120609	//     "sourceImage": {
120610	//       "description": "Source image to restore onto a disk. This field is optional.",
120611	//       "location": "query",
120612	//       "type": "string"
120613	//     }
120614	//   },
120615	//   "path": "projects/{project}/regions/{region}/disks",
120616	//   "request": {
120617	//     "$ref": "Disk"
120618	//   },
120619	//   "response": {
120620	//     "$ref": "Operation"
120621	//   },
120622	//   "scopes": [
120623	//     "https://www.googleapis.com/auth/cloud-platform",
120624	//     "https://www.googleapis.com/auth/compute"
120625	//   ]
120626	// }
120627
120628}
120629
120630// method id "compute.regionDisks.list":
120631
120632type RegionDisksListCall struct {
120633	s            *Service
120634	project      string
120635	region       string
120636	urlParams_   gensupport.URLParams
120637	ifNoneMatch_ string
120638	ctx_         context.Context
120639	header_      http.Header
120640}
120641
120642// List: Retrieves the list of persistent disks contained within the
120643// specified region.
120644//
120645// - project: Project ID for this request.
120646// - region: Name of the region for this request.
120647func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
120648	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120649	c.project = project
120650	c.region = region
120651	return c
120652}
120653
120654// Filter sets the optional parameter "filter": A filter expression that
120655// filters resources listed in the response. The expression must specify
120656// the field name, a comparison operator, and the value that you want to
120657// use for filtering. The value must be a string, a number, or a
120658// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120659// `<`. For example, if you are filtering Compute Engine instances, you
120660// can exclude instances named `example-instance` by specifying `name !=
120661// example-instance`. You can also filter nested fields. For example,
120662// you could specify `scheduling.automaticRestart = false` to include
120663// instances only if they are not scheduled for automatic restarts. You
120664// can use filtering on nested fields to filter based on resource
120665// labels. To filter on multiple expressions, provide each separate
120666// expression within parentheses. For example: ```
120667// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
120668// ``` By default, each expression is an `AND` expression. However, you
120669// can include `AND` and `OR` expressions explicitly. For example: ```
120670// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
120671// AND (scheduling.automaticRestart = true) ```
120672func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
120673	c.urlParams_.Set("filter", filter)
120674	return c
120675}
120676
120677// MaxResults sets the optional parameter "maxResults": The maximum
120678// number of results per page that should be returned. If the number of
120679// available results is larger than `maxResults`, Compute Engine returns
120680// a `nextPageToken` that can be used to get the next page of results in
120681// subsequent list requests. Acceptable values are `0` to `500`,
120682// inclusive. (Default: `500`)
120683func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
120684	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120685	return c
120686}
120687
120688// OrderBy sets the optional parameter "orderBy": Sorts list results by
120689// a certain order. By default, results are returned in alphanumerical
120690// order based on the resource name. You can also sort results in
120691// descending order based on the creation timestamp using
120692// `orderBy="creationTimestamp desc". This sorts results based on the
120693// `creationTimestamp` field in reverse chronological order (newest
120694// result first). Use this to sort resources like operations so that the
120695// newest operation is returned first. Currently, only sorting by `name`
120696// or `creationTimestamp desc` is supported.
120697func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
120698	c.urlParams_.Set("orderBy", orderBy)
120699	return c
120700}
120701
120702// PageToken sets the optional parameter "pageToken": Specifies a page
120703// token to use. Set `pageToken` to the `nextPageToken` returned by a
120704// previous list request to get the next page of results.
120705func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
120706	c.urlParams_.Set("pageToken", pageToken)
120707	return c
120708}
120709
120710// ReturnPartialSuccess sets the optional parameter
120711// "returnPartialSuccess": Opt-in for partial success behavior which
120712// provides partial results in case of failure. The default value is
120713// false.
120714func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
120715	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
120716	return c
120717}
120718
120719// Fields allows partial responses to be retrieved. See
120720// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120721// for more information.
120722func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
120723	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120724	return c
120725}
120726
120727// IfNoneMatch sets the optional parameter which makes the operation
120728// fail if the object's ETag matches the given value. This is useful for
120729// getting updates only after the object has changed since the last
120730// request. Use googleapi.IsNotModified to check whether the response
120731// error from Do is the result of In-None-Match.
120732func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
120733	c.ifNoneMatch_ = entityTag
120734	return c
120735}
120736
120737// Context sets the context to be used in this call's Do method. Any
120738// pending HTTP request will be aborted if the provided context is
120739// canceled.
120740func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
120741	c.ctx_ = ctx
120742	return c
120743}
120744
120745// Header returns an http.Header that can be modified by the caller to
120746// add HTTP headers to the request.
120747func (c *RegionDisksListCall) Header() http.Header {
120748	if c.header_ == nil {
120749		c.header_ = make(http.Header)
120750	}
120751	return c.header_
120752}
120753
120754func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
120755	reqHeaders := make(http.Header)
120756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
120757	for k, v := range c.header_ {
120758		reqHeaders[k] = v
120759	}
120760	reqHeaders.Set("User-Agent", c.s.userAgent())
120761	if c.ifNoneMatch_ != "" {
120762		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120763	}
120764	var body io.Reader = nil
120765	c.urlParams_.Set("alt", alt)
120766	c.urlParams_.Set("prettyPrint", "false")
120767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
120768	urls += "?" + c.urlParams_.Encode()
120769	req, err := http.NewRequest("GET", urls, body)
120770	if err != nil {
120771		return nil, err
120772	}
120773	req.Header = reqHeaders
120774	googleapi.Expand(req.URL, map[string]string{
120775		"project": c.project,
120776		"region":  c.region,
120777	})
120778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120779}
120780
120781// Do executes the "compute.regionDisks.list" call.
120782// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
120783// code is an error. Response headers are in either
120784// *DiskList.ServerResponse.Header or (if a response was returned at
120785// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120786// to check whether the returned error was because
120787// http.StatusNotModified was returned.
120788func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
120789	gensupport.SetOptions(c.urlParams_, opts...)
120790	res, err := c.doRequest("json")
120791	if res != nil && res.StatusCode == http.StatusNotModified {
120792		if res.Body != nil {
120793			res.Body.Close()
120794		}
120795		return nil, &googleapi.Error{
120796			Code:   res.StatusCode,
120797			Header: res.Header,
120798		}
120799	}
120800	if err != nil {
120801		return nil, err
120802	}
120803	defer googleapi.CloseBody(res)
120804	if err := googleapi.CheckResponse(res); err != nil {
120805		return nil, err
120806	}
120807	ret := &DiskList{
120808		ServerResponse: googleapi.ServerResponse{
120809			Header:         res.Header,
120810			HTTPStatusCode: res.StatusCode,
120811		},
120812	}
120813	target := &ret
120814	if err := gensupport.DecodeResponse(target, res); err != nil {
120815		return nil, err
120816	}
120817	return ret, nil
120818	// {
120819	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
120820	//   "flatPath": "projects/{project}/regions/{region}/disks",
120821	//   "httpMethod": "GET",
120822	//   "id": "compute.regionDisks.list",
120823	//   "parameterOrder": [
120824	//     "project",
120825	//     "region"
120826	//   ],
120827	//   "parameters": {
120828	//     "filter": {
120829	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120830	//       "location": "query",
120831	//       "type": "string"
120832	//     },
120833	//     "maxResults": {
120834	//       "default": "500",
120835	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120836	//       "format": "uint32",
120837	//       "location": "query",
120838	//       "minimum": "0",
120839	//       "type": "integer"
120840	//     },
120841	//     "orderBy": {
120842	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
120843	//       "location": "query",
120844	//       "type": "string"
120845	//     },
120846	//     "pageToken": {
120847	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120848	//       "location": "query",
120849	//       "type": "string"
120850	//     },
120851	//     "project": {
120852	//       "description": "Project ID for this request.",
120853	//       "location": "path",
120854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120855	//       "required": true,
120856	//       "type": "string"
120857	//     },
120858	//     "region": {
120859	//       "description": "Name of the region for this request.",
120860	//       "location": "path",
120861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120862	//       "required": true,
120863	//       "type": "string"
120864	//     },
120865	//     "returnPartialSuccess": {
120866	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
120867	//       "location": "query",
120868	//       "type": "boolean"
120869	//     }
120870	//   },
120871	//   "path": "projects/{project}/regions/{region}/disks",
120872	//   "response": {
120873	//     "$ref": "DiskList"
120874	//   },
120875	//   "scopes": [
120876	//     "https://www.googleapis.com/auth/cloud-platform",
120877	//     "https://www.googleapis.com/auth/compute",
120878	//     "https://www.googleapis.com/auth/compute.readonly"
120879	//   ]
120880	// }
120881
120882}
120883
120884// Pages invokes f for each page of results.
120885// A non-nil error returned from f will halt the iteration.
120886// The provided context supersedes any context provided to the Context method.
120887func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
120888	c.ctx_ = ctx
120889	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120890	for {
120891		x, err := c.Do()
120892		if err != nil {
120893			return err
120894		}
120895		if err := f(x); err != nil {
120896			return err
120897		}
120898		if x.NextPageToken == "" {
120899			return nil
120900		}
120901		c.PageToken(x.NextPageToken)
120902	}
120903}
120904
120905// method id "compute.regionDisks.removeResourcePolicies":
120906
120907type RegionDisksRemoveResourcePoliciesCall struct {
120908	s                                        *Service
120909	project                                  string
120910	region                                   string
120911	disk                                     string
120912	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
120913	urlParams_                               gensupport.URLParams
120914	ctx_                                     context.Context
120915	header_                                  http.Header
120916}
120917
120918// RemoveResourcePolicies: Removes resource policies from a regional
120919// disk.
120920//
120921// - disk: The disk name for this request.
120922// - project: Project ID for this request.
120923// - region: The name of the region for this request.
120924func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
120925	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120926	c.project = project
120927	c.region = region
120928	c.disk = disk
120929	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
120930	return c
120931}
120932
120933// RequestId sets the optional parameter "requestId": An optional
120934// request ID to identify requests. Specify a unique request ID so that
120935// if you must retry your request, the server will know to ignore the
120936// request if it has already been completed. For example, consider a
120937// situation where you make an initial request and the request times
120938// out. If you make the request again with the same request ID, the
120939// server can check if original operation with the same request ID was
120940// received, and if so, will ignore the second request. This prevents
120941// clients from accidentally creating duplicate commitments. The request
120942// ID must be a valid UUID with the exception that zero UUID is not
120943// supported ( 00000000-0000-0000-0000-000000000000).
120944func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
120945	c.urlParams_.Set("requestId", requestId)
120946	return c
120947}
120948
120949// Fields allows partial responses to be retrieved. See
120950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120951// for more information.
120952func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
120953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120954	return c
120955}
120956
120957// Context sets the context to be used in this call's Do method. Any
120958// pending HTTP request will be aborted if the provided context is
120959// canceled.
120960func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
120961	c.ctx_ = ctx
120962	return c
120963}
120964
120965// Header returns an http.Header that can be modified by the caller to
120966// add HTTP headers to the request.
120967func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
120968	if c.header_ == nil {
120969		c.header_ = make(http.Header)
120970	}
120971	return c.header_
120972}
120973
120974func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
120975	reqHeaders := make(http.Header)
120976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
120977	for k, v := range c.header_ {
120978		reqHeaders[k] = v
120979	}
120980	reqHeaders.Set("User-Agent", c.s.userAgent())
120981	var body io.Reader = nil
120982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
120983	if err != nil {
120984		return nil, err
120985	}
120986	reqHeaders.Set("Content-Type", "application/json")
120987	c.urlParams_.Set("alt", alt)
120988	c.urlParams_.Set("prettyPrint", "false")
120989	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
120990	urls += "?" + c.urlParams_.Encode()
120991	req, err := http.NewRequest("POST", urls, body)
120992	if err != nil {
120993		return nil, err
120994	}
120995	req.Header = reqHeaders
120996	googleapi.Expand(req.URL, map[string]string{
120997		"project": c.project,
120998		"region":  c.region,
120999		"disk":    c.disk,
121000	})
121001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121002}
121003
121004// Do executes the "compute.regionDisks.removeResourcePolicies" call.
121005// Exactly one of *Operation or error will be non-nil. Any non-2xx
121006// status code is an error. Response headers are in either
121007// *Operation.ServerResponse.Header or (if a response was returned at
121008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121009// to check whether the returned error was because
121010// http.StatusNotModified was returned.
121011func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121012	gensupport.SetOptions(c.urlParams_, opts...)
121013	res, err := c.doRequest("json")
121014	if res != nil && res.StatusCode == http.StatusNotModified {
121015		if res.Body != nil {
121016			res.Body.Close()
121017		}
121018		return nil, &googleapi.Error{
121019			Code:   res.StatusCode,
121020			Header: res.Header,
121021		}
121022	}
121023	if err != nil {
121024		return nil, err
121025	}
121026	defer googleapi.CloseBody(res)
121027	if err := googleapi.CheckResponse(res); err != nil {
121028		return nil, err
121029	}
121030	ret := &Operation{
121031		ServerResponse: googleapi.ServerResponse{
121032			Header:         res.Header,
121033			HTTPStatusCode: res.StatusCode,
121034		},
121035	}
121036	target := &ret
121037	if err := gensupport.DecodeResponse(target, res); err != nil {
121038		return nil, err
121039	}
121040	return ret, nil
121041	// {
121042	//   "description": "Removes resource policies from a regional disk.",
121043	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
121044	//   "httpMethod": "POST",
121045	//   "id": "compute.regionDisks.removeResourcePolicies",
121046	//   "parameterOrder": [
121047	//     "project",
121048	//     "region",
121049	//     "disk"
121050	//   ],
121051	//   "parameters": {
121052	//     "disk": {
121053	//       "description": "The disk name for this request.",
121054	//       "location": "path",
121055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121056	//       "required": true,
121057	//       "type": "string"
121058	//     },
121059	//     "project": {
121060	//       "description": "Project ID for this request.",
121061	//       "location": "path",
121062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121063	//       "required": true,
121064	//       "type": "string"
121065	//     },
121066	//     "region": {
121067	//       "description": "The name of the region for this request.",
121068	//       "location": "path",
121069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121070	//       "required": true,
121071	//       "type": "string"
121072	//     },
121073	//     "requestId": {
121074	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121075	//       "location": "query",
121076	//       "type": "string"
121077	//     }
121078	//   },
121079	//   "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
121080	//   "request": {
121081	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
121082	//   },
121083	//   "response": {
121084	//     "$ref": "Operation"
121085	//   },
121086	//   "scopes": [
121087	//     "https://www.googleapis.com/auth/cloud-platform",
121088	//     "https://www.googleapis.com/auth/compute"
121089	//   ]
121090	// }
121091
121092}
121093
121094// method id "compute.regionDisks.resize":
121095
121096type RegionDisksResizeCall struct {
121097	s                        *Service
121098	project                  string
121099	region                   string
121100	disk                     string
121101	regiondisksresizerequest *RegionDisksResizeRequest
121102	urlParams_               gensupport.URLParams
121103	ctx_                     context.Context
121104	header_                  http.Header
121105}
121106
121107// Resize: Resizes the specified regional persistent disk.
121108//
121109// - disk: Name of the regional persistent disk.
121110// - project: The project ID for this request.
121111// - region: Name of the region for this request.
121112func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
121113	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121114	c.project = project
121115	c.region = region
121116	c.disk = disk
121117	c.regiondisksresizerequest = regiondisksresizerequest
121118	return c
121119}
121120
121121// RequestId sets the optional parameter "requestId": An optional
121122// request ID to identify requests. Specify a unique request ID so that
121123// if you must retry your request, the server will know to ignore the
121124// request if it has already been completed. For example, consider a
121125// situation where you make an initial request and the request times
121126// out. If you make the request again with the same request ID, the
121127// server can check if original operation with the same request ID was
121128// received, and if so, will ignore the second request. This prevents
121129// clients from accidentally creating duplicate commitments. The request
121130// ID must be a valid UUID with the exception that zero UUID is not
121131// supported ( 00000000-0000-0000-0000-000000000000).
121132func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
121133	c.urlParams_.Set("requestId", requestId)
121134	return c
121135}
121136
121137// Fields allows partial responses to be retrieved. See
121138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121139// for more information.
121140func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
121141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121142	return c
121143}
121144
121145// Context sets the context to be used in this call's Do method. Any
121146// pending HTTP request will be aborted if the provided context is
121147// canceled.
121148func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
121149	c.ctx_ = ctx
121150	return c
121151}
121152
121153// Header returns an http.Header that can be modified by the caller to
121154// add HTTP headers to the request.
121155func (c *RegionDisksResizeCall) Header() http.Header {
121156	if c.header_ == nil {
121157		c.header_ = make(http.Header)
121158	}
121159	return c.header_
121160}
121161
121162func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
121163	reqHeaders := make(http.Header)
121164	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
121165	for k, v := range c.header_ {
121166		reqHeaders[k] = v
121167	}
121168	reqHeaders.Set("User-Agent", c.s.userAgent())
121169	var body io.Reader = nil
121170	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
121171	if err != nil {
121172		return nil, err
121173	}
121174	reqHeaders.Set("Content-Type", "application/json")
121175	c.urlParams_.Set("alt", alt)
121176	c.urlParams_.Set("prettyPrint", "false")
121177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/resize")
121178	urls += "?" + c.urlParams_.Encode()
121179	req, err := http.NewRequest("POST", urls, body)
121180	if err != nil {
121181		return nil, err
121182	}
121183	req.Header = reqHeaders
121184	googleapi.Expand(req.URL, map[string]string{
121185		"project": c.project,
121186		"region":  c.region,
121187		"disk":    c.disk,
121188	})
121189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121190}
121191
121192// Do executes the "compute.regionDisks.resize" call.
121193// Exactly one of *Operation or error will be non-nil. Any non-2xx
121194// status code is an error. Response headers are in either
121195// *Operation.ServerResponse.Header or (if a response was returned at
121196// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121197// to check whether the returned error was because
121198// http.StatusNotModified was returned.
121199func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121200	gensupport.SetOptions(c.urlParams_, opts...)
121201	res, err := c.doRequest("json")
121202	if res != nil && res.StatusCode == http.StatusNotModified {
121203		if res.Body != nil {
121204			res.Body.Close()
121205		}
121206		return nil, &googleapi.Error{
121207			Code:   res.StatusCode,
121208			Header: res.Header,
121209		}
121210	}
121211	if err != nil {
121212		return nil, err
121213	}
121214	defer googleapi.CloseBody(res)
121215	if err := googleapi.CheckResponse(res); err != nil {
121216		return nil, err
121217	}
121218	ret := &Operation{
121219		ServerResponse: googleapi.ServerResponse{
121220			Header:         res.Header,
121221			HTTPStatusCode: res.StatusCode,
121222		},
121223	}
121224	target := &ret
121225	if err := gensupport.DecodeResponse(target, res); err != nil {
121226		return nil, err
121227	}
121228	return ret, nil
121229	// {
121230	//   "description": "Resizes the specified regional persistent disk.",
121231	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize",
121232	//   "httpMethod": "POST",
121233	//   "id": "compute.regionDisks.resize",
121234	//   "parameterOrder": [
121235	//     "project",
121236	//     "region",
121237	//     "disk"
121238	//   ],
121239	//   "parameters": {
121240	//     "disk": {
121241	//       "description": "Name of the regional persistent disk.",
121242	//       "location": "path",
121243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121244	//       "required": true,
121245	//       "type": "string"
121246	//     },
121247	//     "project": {
121248	//       "description": "The project ID for this request.",
121249	//       "location": "path",
121250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121251	//       "required": true,
121252	//       "type": "string"
121253	//     },
121254	//     "region": {
121255	//       "description": "Name of the region for this request.",
121256	//       "location": "path",
121257	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121258	//       "required": true,
121259	//       "type": "string"
121260	//     },
121261	//     "requestId": {
121262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121263	//       "location": "query",
121264	//       "type": "string"
121265	//     }
121266	//   },
121267	//   "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
121268	//   "request": {
121269	//     "$ref": "RegionDisksResizeRequest"
121270	//   },
121271	//   "response": {
121272	//     "$ref": "Operation"
121273	//   },
121274	//   "scopes": [
121275	//     "https://www.googleapis.com/auth/cloud-platform",
121276	//     "https://www.googleapis.com/auth/compute"
121277	//   ]
121278	// }
121279
121280}
121281
121282// method id "compute.regionDisks.setIamPolicy":
121283
121284type RegionDisksSetIamPolicyCall struct {
121285	s                      *Service
121286	project                string
121287	region                 string
121288	resource               string
121289	regionsetpolicyrequest *RegionSetPolicyRequest
121290	urlParams_             gensupport.URLParams
121291	ctx_                   context.Context
121292	header_                http.Header
121293}
121294
121295// SetIamPolicy: Sets the access control policy on the specified
121296// resource. Replaces any existing policy.
121297//
121298// - project: Project ID for this request.
121299// - region: The name of the region for this request.
121300// - resource: Name or id of the resource for this request.
121301func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
121302	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121303	c.project = project
121304	c.region = region
121305	c.resource = resource
121306	c.regionsetpolicyrequest = regionsetpolicyrequest
121307	return c
121308}
121309
121310// Fields allows partial responses to be retrieved. See
121311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121312// for more information.
121313func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
121314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121315	return c
121316}
121317
121318// Context sets the context to be used in this call's Do method. Any
121319// pending HTTP request will be aborted if the provided context is
121320// canceled.
121321func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
121322	c.ctx_ = ctx
121323	return c
121324}
121325
121326// Header returns an http.Header that can be modified by the caller to
121327// add HTTP headers to the request.
121328func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
121329	if c.header_ == nil {
121330		c.header_ = make(http.Header)
121331	}
121332	return c.header_
121333}
121334
121335func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
121336	reqHeaders := make(http.Header)
121337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
121338	for k, v := range c.header_ {
121339		reqHeaders[k] = v
121340	}
121341	reqHeaders.Set("User-Agent", c.s.userAgent())
121342	var body io.Reader = nil
121343	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
121344	if err != nil {
121345		return nil, err
121346	}
121347	reqHeaders.Set("Content-Type", "application/json")
121348	c.urlParams_.Set("alt", alt)
121349	c.urlParams_.Set("prettyPrint", "false")
121350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy")
121351	urls += "?" + c.urlParams_.Encode()
121352	req, err := http.NewRequest("POST", urls, body)
121353	if err != nil {
121354		return nil, err
121355	}
121356	req.Header = reqHeaders
121357	googleapi.Expand(req.URL, map[string]string{
121358		"project":  c.project,
121359		"region":   c.region,
121360		"resource": c.resource,
121361	})
121362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121363}
121364
121365// Do executes the "compute.regionDisks.setIamPolicy" call.
121366// Exactly one of *Policy or error will be non-nil. Any non-2xx status
121367// code is an error. Response headers are in either
121368// *Policy.ServerResponse.Header or (if a response was returned at all)
121369// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
121370// check whether the returned error was because http.StatusNotModified
121371// was returned.
121372func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
121373	gensupport.SetOptions(c.urlParams_, opts...)
121374	res, err := c.doRequest("json")
121375	if res != nil && res.StatusCode == http.StatusNotModified {
121376		if res.Body != nil {
121377			res.Body.Close()
121378		}
121379		return nil, &googleapi.Error{
121380			Code:   res.StatusCode,
121381			Header: res.Header,
121382		}
121383	}
121384	if err != nil {
121385		return nil, err
121386	}
121387	defer googleapi.CloseBody(res)
121388	if err := googleapi.CheckResponse(res); err != nil {
121389		return nil, err
121390	}
121391	ret := &Policy{
121392		ServerResponse: googleapi.ServerResponse{
121393			Header:         res.Header,
121394			HTTPStatusCode: res.StatusCode,
121395		},
121396	}
121397	target := &ret
121398	if err := gensupport.DecodeResponse(target, res); err != nil {
121399		return nil, err
121400	}
121401	return ret, nil
121402	// {
121403	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
121404	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
121405	//   "httpMethod": "POST",
121406	//   "id": "compute.regionDisks.setIamPolicy",
121407	//   "parameterOrder": [
121408	//     "project",
121409	//     "region",
121410	//     "resource"
121411	//   ],
121412	//   "parameters": {
121413	//     "project": {
121414	//       "description": "Project ID for this request.",
121415	//       "location": "path",
121416	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121417	//       "required": true,
121418	//       "type": "string"
121419	//     },
121420	//     "region": {
121421	//       "description": "The name of the region for this request.",
121422	//       "location": "path",
121423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121424	//       "required": true,
121425	//       "type": "string"
121426	//     },
121427	//     "resource": {
121428	//       "description": "Name or id of the resource for this request.",
121429	//       "location": "path",
121430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121431	//       "required": true,
121432	//       "type": "string"
121433	//     }
121434	//   },
121435	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
121436	//   "request": {
121437	//     "$ref": "RegionSetPolicyRequest"
121438	//   },
121439	//   "response": {
121440	//     "$ref": "Policy"
121441	//   },
121442	//   "scopes": [
121443	//     "https://www.googleapis.com/auth/cloud-platform",
121444	//     "https://www.googleapis.com/auth/compute"
121445	//   ]
121446	// }
121447
121448}
121449
121450// method id "compute.regionDisks.setLabels":
121451
121452type RegionDisksSetLabelsCall struct {
121453	s                      *Service
121454	project                string
121455	region                 string
121456	resource               string
121457	regionsetlabelsrequest *RegionSetLabelsRequest
121458	urlParams_             gensupport.URLParams
121459	ctx_                   context.Context
121460	header_                http.Header
121461}
121462
121463// SetLabels: Sets the labels on the target regional disk.
121464//
121465// - project: Project ID for this request.
121466// - region: The region for this request.
121467// - resource: Name or id of the resource for this request.
121468func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
121469	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121470	c.project = project
121471	c.region = region
121472	c.resource = resource
121473	c.regionsetlabelsrequest = regionsetlabelsrequest
121474	return c
121475}
121476
121477// RequestId sets the optional parameter "requestId": An optional
121478// request ID to identify requests. Specify a unique request ID so that
121479// if you must retry your request, the server will know to ignore the
121480// request if it has already been completed. For example, consider a
121481// situation where you make an initial request and the request times
121482// out. If you make the request again with the same request ID, the
121483// server can check if original operation with the same request ID was
121484// received, and if so, will ignore the second request. This prevents
121485// clients from accidentally creating duplicate commitments. The request
121486// ID must be a valid UUID with the exception that zero UUID is not
121487// supported ( 00000000-0000-0000-0000-000000000000).
121488func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
121489	c.urlParams_.Set("requestId", requestId)
121490	return c
121491}
121492
121493// Fields allows partial responses to be retrieved. See
121494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121495// for more information.
121496func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
121497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121498	return c
121499}
121500
121501// Context sets the context to be used in this call's Do method. Any
121502// pending HTTP request will be aborted if the provided context is
121503// canceled.
121504func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
121505	c.ctx_ = ctx
121506	return c
121507}
121508
121509// Header returns an http.Header that can be modified by the caller to
121510// add HTTP headers to the request.
121511func (c *RegionDisksSetLabelsCall) Header() http.Header {
121512	if c.header_ == nil {
121513		c.header_ = make(http.Header)
121514	}
121515	return c.header_
121516}
121517
121518func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
121519	reqHeaders := make(http.Header)
121520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
121521	for k, v := range c.header_ {
121522		reqHeaders[k] = v
121523	}
121524	reqHeaders.Set("User-Agent", c.s.userAgent())
121525	var body io.Reader = nil
121526	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
121527	if err != nil {
121528		return nil, err
121529	}
121530	reqHeaders.Set("Content-Type", "application/json")
121531	c.urlParams_.Set("alt", alt)
121532	c.urlParams_.Set("prettyPrint", "false")
121533	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setLabels")
121534	urls += "?" + c.urlParams_.Encode()
121535	req, err := http.NewRequest("POST", urls, body)
121536	if err != nil {
121537		return nil, err
121538	}
121539	req.Header = reqHeaders
121540	googleapi.Expand(req.URL, map[string]string{
121541		"project":  c.project,
121542		"region":   c.region,
121543		"resource": c.resource,
121544	})
121545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121546}
121547
121548// Do executes the "compute.regionDisks.setLabels" call.
121549// Exactly one of *Operation or error will be non-nil. Any non-2xx
121550// status code is an error. Response headers are in either
121551// *Operation.ServerResponse.Header or (if a response was returned at
121552// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121553// to check whether the returned error was because
121554// http.StatusNotModified was returned.
121555func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121556	gensupport.SetOptions(c.urlParams_, opts...)
121557	res, err := c.doRequest("json")
121558	if res != nil && res.StatusCode == http.StatusNotModified {
121559		if res.Body != nil {
121560			res.Body.Close()
121561		}
121562		return nil, &googleapi.Error{
121563			Code:   res.StatusCode,
121564			Header: res.Header,
121565		}
121566	}
121567	if err != nil {
121568		return nil, err
121569	}
121570	defer googleapi.CloseBody(res)
121571	if err := googleapi.CheckResponse(res); err != nil {
121572		return nil, err
121573	}
121574	ret := &Operation{
121575		ServerResponse: googleapi.ServerResponse{
121576			Header:         res.Header,
121577			HTTPStatusCode: res.StatusCode,
121578		},
121579	}
121580	target := &ret
121581	if err := gensupport.DecodeResponse(target, res); err != nil {
121582		return nil, err
121583	}
121584	return ret, nil
121585	// {
121586	//   "description": "Sets the labels on the target regional disk.",
121587	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
121588	//   "httpMethod": "POST",
121589	//   "id": "compute.regionDisks.setLabels",
121590	//   "parameterOrder": [
121591	//     "project",
121592	//     "region",
121593	//     "resource"
121594	//   ],
121595	//   "parameters": {
121596	//     "project": {
121597	//       "description": "Project ID for this request.",
121598	//       "location": "path",
121599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121600	//       "required": true,
121601	//       "type": "string"
121602	//     },
121603	//     "region": {
121604	//       "description": "The region for this request.",
121605	//       "location": "path",
121606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121607	//       "required": true,
121608	//       "type": "string"
121609	//     },
121610	//     "requestId": {
121611	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121612	//       "location": "query",
121613	//       "type": "string"
121614	//     },
121615	//     "resource": {
121616	//       "description": "Name or id of the resource for this request.",
121617	//       "location": "path",
121618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121619	//       "required": true,
121620	//       "type": "string"
121621	//     }
121622	//   },
121623	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
121624	//   "request": {
121625	//     "$ref": "RegionSetLabelsRequest"
121626	//   },
121627	//   "response": {
121628	//     "$ref": "Operation"
121629	//   },
121630	//   "scopes": [
121631	//     "https://www.googleapis.com/auth/cloud-platform",
121632	//     "https://www.googleapis.com/auth/compute"
121633	//   ]
121634	// }
121635
121636}
121637
121638// method id "compute.regionDisks.testIamPermissions":
121639
121640type RegionDisksTestIamPermissionsCall struct {
121641	s                      *Service
121642	project                string
121643	region                 string
121644	resource               string
121645	testpermissionsrequest *TestPermissionsRequest
121646	urlParams_             gensupport.URLParams
121647	ctx_                   context.Context
121648	header_                http.Header
121649}
121650
121651// TestIamPermissions: Returns permissions that a caller has on the
121652// specified resource.
121653//
121654// - project: Project ID for this request.
121655// - region: The name of the region for this request.
121656// - resource: Name or id of the resource for this request.
121657func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
121658	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121659	c.project = project
121660	c.region = region
121661	c.resource = resource
121662	c.testpermissionsrequest = testpermissionsrequest
121663	return c
121664}
121665
121666// Fields allows partial responses to be retrieved. See
121667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121668// for more information.
121669func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
121670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121671	return c
121672}
121673
121674// Context sets the context to be used in this call's Do method. Any
121675// pending HTTP request will be aborted if the provided context is
121676// canceled.
121677func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
121678	c.ctx_ = ctx
121679	return c
121680}
121681
121682// Header returns an http.Header that can be modified by the caller to
121683// add HTTP headers to the request.
121684func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
121685	if c.header_ == nil {
121686		c.header_ = make(http.Header)
121687	}
121688	return c.header_
121689}
121690
121691func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
121692	reqHeaders := make(http.Header)
121693	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
121694	for k, v := range c.header_ {
121695		reqHeaders[k] = v
121696	}
121697	reqHeaders.Set("User-Agent", c.s.userAgent())
121698	var body io.Reader = nil
121699	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
121700	if err != nil {
121701		return nil, err
121702	}
121703	reqHeaders.Set("Content-Type", "application/json")
121704	c.urlParams_.Set("alt", alt)
121705	c.urlParams_.Set("prettyPrint", "false")
121706	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions")
121707	urls += "?" + c.urlParams_.Encode()
121708	req, err := http.NewRequest("POST", urls, body)
121709	if err != nil {
121710		return nil, err
121711	}
121712	req.Header = reqHeaders
121713	googleapi.Expand(req.URL, map[string]string{
121714		"project":  c.project,
121715		"region":   c.region,
121716		"resource": c.resource,
121717	})
121718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121719}
121720
121721// Do executes the "compute.regionDisks.testIamPermissions" call.
121722// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
121723// non-2xx status code is an error. Response headers are in either
121724// *TestPermissionsResponse.ServerResponse.Header or (if a response was
121725// returned at all) in error.(*googleapi.Error).Header. Use
121726// googleapi.IsNotModified to check whether the returned error was
121727// because http.StatusNotModified was returned.
121728func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
121729	gensupport.SetOptions(c.urlParams_, opts...)
121730	res, err := c.doRequest("json")
121731	if res != nil && res.StatusCode == http.StatusNotModified {
121732		if res.Body != nil {
121733			res.Body.Close()
121734		}
121735		return nil, &googleapi.Error{
121736			Code:   res.StatusCode,
121737			Header: res.Header,
121738		}
121739	}
121740	if err != nil {
121741		return nil, err
121742	}
121743	defer googleapi.CloseBody(res)
121744	if err := googleapi.CheckResponse(res); err != nil {
121745		return nil, err
121746	}
121747	ret := &TestPermissionsResponse{
121748		ServerResponse: googleapi.ServerResponse{
121749			Header:         res.Header,
121750			HTTPStatusCode: res.StatusCode,
121751		},
121752	}
121753	target := &ret
121754	if err := gensupport.DecodeResponse(target, res); err != nil {
121755		return nil, err
121756	}
121757	return ret, nil
121758	// {
121759	//   "description": "Returns permissions that a caller has on the specified resource.",
121760	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
121761	//   "httpMethod": "POST",
121762	//   "id": "compute.regionDisks.testIamPermissions",
121763	//   "parameterOrder": [
121764	//     "project",
121765	//     "region",
121766	//     "resource"
121767	//   ],
121768	//   "parameters": {
121769	//     "project": {
121770	//       "description": "Project ID for this request.",
121771	//       "location": "path",
121772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121773	//       "required": true,
121774	//       "type": "string"
121775	//     },
121776	//     "region": {
121777	//       "description": "The name of the region for this request.",
121778	//       "location": "path",
121779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121780	//       "required": true,
121781	//       "type": "string"
121782	//     },
121783	//     "resource": {
121784	//       "description": "Name or id of the resource for this request.",
121785	//       "location": "path",
121786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121787	//       "required": true,
121788	//       "type": "string"
121789	//     }
121790	//   },
121791	//   "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
121792	//   "request": {
121793	//     "$ref": "TestPermissionsRequest"
121794	//   },
121795	//   "response": {
121796	//     "$ref": "TestPermissionsResponse"
121797	//   },
121798	//   "scopes": [
121799	//     "https://www.googleapis.com/auth/cloud-platform",
121800	//     "https://www.googleapis.com/auth/compute",
121801	//     "https://www.googleapis.com/auth/compute.readonly"
121802	//   ]
121803	// }
121804
121805}
121806
121807// method id "compute.regionHealthCheckServices.delete":
121808
121809type RegionHealthCheckServicesDeleteCall struct {
121810	s                  *Service
121811	project            string
121812	region             string
121813	healthCheckService string
121814	urlParams_         gensupport.URLParams
121815	ctx_               context.Context
121816	header_            http.Header
121817}
121818
121819// Delete: Deletes the specified regional HealthCheckService.
121820//
121821// - healthCheckService: Name of the HealthCheckService to delete. The
121822//   name must be 1-63 characters long, and comply with RFC1035.
121823// - project: Project ID for this request.
121824// - region: Name of the region scoping this request.
121825func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
121826	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121827	c.project = project
121828	c.region = region
121829	c.healthCheckService = healthCheckService
121830	return c
121831}
121832
121833// RequestId sets the optional parameter "requestId": An optional
121834// request ID to identify requests. Specify a unique request ID so that
121835// if you must retry your request, the server will know to ignore the
121836// request if it has already been completed. For example, consider a
121837// situation where you make an initial request and the request times
121838// out. If you make the request again with the same request ID, the
121839// server can check if original operation with the same request ID was
121840// received, and if so, will ignore the second request. This prevents
121841// clients from accidentally creating duplicate commitments. The request
121842// ID must be a valid UUID with the exception that zero UUID is not
121843// supported ( 00000000-0000-0000-0000-000000000000).
121844func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
121845	c.urlParams_.Set("requestId", requestId)
121846	return c
121847}
121848
121849// Fields allows partial responses to be retrieved. See
121850// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121851// for more information.
121852func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
121853	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121854	return c
121855}
121856
121857// Context sets the context to be used in this call's Do method. Any
121858// pending HTTP request will be aborted if the provided context is
121859// canceled.
121860func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
121861	c.ctx_ = ctx
121862	return c
121863}
121864
121865// Header returns an http.Header that can be modified by the caller to
121866// add HTTP headers to the request.
121867func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
121868	if c.header_ == nil {
121869		c.header_ = make(http.Header)
121870	}
121871	return c.header_
121872}
121873
121874func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
121875	reqHeaders := make(http.Header)
121876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
121877	for k, v := range c.header_ {
121878		reqHeaders[k] = v
121879	}
121880	reqHeaders.Set("User-Agent", c.s.userAgent())
121881	var body io.Reader = nil
121882	c.urlParams_.Set("alt", alt)
121883	c.urlParams_.Set("prettyPrint", "false")
121884	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
121885	urls += "?" + c.urlParams_.Encode()
121886	req, err := http.NewRequest("DELETE", urls, body)
121887	if err != nil {
121888		return nil, err
121889	}
121890	req.Header = reqHeaders
121891	googleapi.Expand(req.URL, map[string]string{
121892		"project":            c.project,
121893		"region":             c.region,
121894		"healthCheckService": c.healthCheckService,
121895	})
121896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121897}
121898
121899// Do executes the "compute.regionHealthCheckServices.delete" call.
121900// Exactly one of *Operation or error will be non-nil. Any non-2xx
121901// status code is an error. Response headers are in either
121902// *Operation.ServerResponse.Header or (if a response was returned at
121903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121904// to check whether the returned error was because
121905// http.StatusNotModified was returned.
121906func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121907	gensupport.SetOptions(c.urlParams_, opts...)
121908	res, err := c.doRequest("json")
121909	if res != nil && res.StatusCode == http.StatusNotModified {
121910		if res.Body != nil {
121911			res.Body.Close()
121912		}
121913		return nil, &googleapi.Error{
121914			Code:   res.StatusCode,
121915			Header: res.Header,
121916		}
121917	}
121918	if err != nil {
121919		return nil, err
121920	}
121921	defer googleapi.CloseBody(res)
121922	if err := googleapi.CheckResponse(res); err != nil {
121923		return nil, err
121924	}
121925	ret := &Operation{
121926		ServerResponse: googleapi.ServerResponse{
121927			Header:         res.Header,
121928			HTTPStatusCode: res.StatusCode,
121929		},
121930	}
121931	target := &ret
121932	if err := gensupport.DecodeResponse(target, res); err != nil {
121933		return nil, err
121934	}
121935	return ret, nil
121936	// {
121937	//   "description": "Deletes the specified regional HealthCheckService.",
121938	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
121939	//   "httpMethod": "DELETE",
121940	//   "id": "compute.regionHealthCheckServices.delete",
121941	//   "parameterOrder": [
121942	//     "project",
121943	//     "region",
121944	//     "healthCheckService"
121945	//   ],
121946	//   "parameters": {
121947	//     "healthCheckService": {
121948	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
121949	//       "location": "path",
121950	//       "required": true,
121951	//       "type": "string"
121952	//     },
121953	//     "project": {
121954	//       "description": "Project ID for this request.",
121955	//       "location": "path",
121956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121957	//       "required": true,
121958	//       "type": "string"
121959	//     },
121960	//     "region": {
121961	//       "description": "Name of the region scoping this request.",
121962	//       "location": "path",
121963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121964	//       "required": true,
121965	//       "type": "string"
121966	//     },
121967	//     "requestId": {
121968	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121969	//       "location": "query",
121970	//       "type": "string"
121971	//     }
121972	//   },
121973	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
121974	//   "response": {
121975	//     "$ref": "Operation"
121976	//   },
121977	//   "scopes": [
121978	//     "https://www.googleapis.com/auth/cloud-platform",
121979	//     "https://www.googleapis.com/auth/compute"
121980	//   ]
121981	// }
121982
121983}
121984
121985// method id "compute.regionHealthCheckServices.get":
121986
121987type RegionHealthCheckServicesGetCall struct {
121988	s                  *Service
121989	project            string
121990	region             string
121991	healthCheckService string
121992	urlParams_         gensupport.URLParams
121993	ifNoneMatch_       string
121994	ctx_               context.Context
121995	header_            http.Header
121996}
121997
121998// Get: Returns the specified regional HealthCheckService resource.
121999//
122000// - healthCheckService: Name of the HealthCheckService to update. The
122001//   name must be 1-63 characters long, and comply with RFC1035.
122002// - project: Project ID for this request.
122003// - region: Name of the region scoping this request.
122004func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
122005	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122006	c.project = project
122007	c.region = region
122008	c.healthCheckService = healthCheckService
122009	return c
122010}
122011
122012// Fields allows partial responses to be retrieved. See
122013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122014// for more information.
122015func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
122016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122017	return c
122018}
122019
122020// IfNoneMatch sets the optional parameter which makes the operation
122021// fail if the object's ETag matches the given value. This is useful for
122022// getting updates only after the object has changed since the last
122023// request. Use googleapi.IsNotModified to check whether the response
122024// error from Do is the result of In-None-Match.
122025func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
122026	c.ifNoneMatch_ = entityTag
122027	return c
122028}
122029
122030// Context sets the context to be used in this call's Do method. Any
122031// pending HTTP request will be aborted if the provided context is
122032// canceled.
122033func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
122034	c.ctx_ = ctx
122035	return c
122036}
122037
122038// Header returns an http.Header that can be modified by the caller to
122039// add HTTP headers to the request.
122040func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
122041	if c.header_ == nil {
122042		c.header_ = make(http.Header)
122043	}
122044	return c.header_
122045}
122046
122047func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
122048	reqHeaders := make(http.Header)
122049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
122050	for k, v := range c.header_ {
122051		reqHeaders[k] = v
122052	}
122053	reqHeaders.Set("User-Agent", c.s.userAgent())
122054	if c.ifNoneMatch_ != "" {
122055		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122056	}
122057	var body io.Reader = nil
122058	c.urlParams_.Set("alt", alt)
122059	c.urlParams_.Set("prettyPrint", "false")
122060	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
122061	urls += "?" + c.urlParams_.Encode()
122062	req, err := http.NewRequest("GET", urls, body)
122063	if err != nil {
122064		return nil, err
122065	}
122066	req.Header = reqHeaders
122067	googleapi.Expand(req.URL, map[string]string{
122068		"project":            c.project,
122069		"region":             c.region,
122070		"healthCheckService": c.healthCheckService,
122071	})
122072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122073}
122074
122075// Do executes the "compute.regionHealthCheckServices.get" call.
122076// Exactly one of *HealthCheckService or error will be non-nil. Any
122077// non-2xx status code is an error. Response headers are in either
122078// *HealthCheckService.ServerResponse.Header or (if a response was
122079// returned at all) in error.(*googleapi.Error).Header. Use
122080// googleapi.IsNotModified to check whether the returned error was
122081// because http.StatusNotModified was returned.
122082func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
122083	gensupport.SetOptions(c.urlParams_, opts...)
122084	res, err := c.doRequest("json")
122085	if res != nil && res.StatusCode == http.StatusNotModified {
122086		if res.Body != nil {
122087			res.Body.Close()
122088		}
122089		return nil, &googleapi.Error{
122090			Code:   res.StatusCode,
122091			Header: res.Header,
122092		}
122093	}
122094	if err != nil {
122095		return nil, err
122096	}
122097	defer googleapi.CloseBody(res)
122098	if err := googleapi.CheckResponse(res); err != nil {
122099		return nil, err
122100	}
122101	ret := &HealthCheckService{
122102		ServerResponse: googleapi.ServerResponse{
122103			Header:         res.Header,
122104			HTTPStatusCode: res.StatusCode,
122105		},
122106	}
122107	target := &ret
122108	if err := gensupport.DecodeResponse(target, res); err != nil {
122109		return nil, err
122110	}
122111	return ret, nil
122112	// {
122113	//   "description": "Returns the specified regional HealthCheckService resource.",
122114	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122115	//   "httpMethod": "GET",
122116	//   "id": "compute.regionHealthCheckServices.get",
122117	//   "parameterOrder": [
122118	//     "project",
122119	//     "region",
122120	//     "healthCheckService"
122121	//   ],
122122	//   "parameters": {
122123	//     "healthCheckService": {
122124	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
122125	//       "location": "path",
122126	//       "required": true,
122127	//       "type": "string"
122128	//     },
122129	//     "project": {
122130	//       "description": "Project ID for this request.",
122131	//       "location": "path",
122132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122133	//       "required": true,
122134	//       "type": "string"
122135	//     },
122136	//     "region": {
122137	//       "description": "Name of the region scoping this request.",
122138	//       "location": "path",
122139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122140	//       "required": true,
122141	//       "type": "string"
122142	//     }
122143	//   },
122144	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122145	//   "response": {
122146	//     "$ref": "HealthCheckService"
122147	//   },
122148	//   "scopes": [
122149	//     "https://www.googleapis.com/auth/cloud-platform",
122150	//     "https://www.googleapis.com/auth/compute",
122151	//     "https://www.googleapis.com/auth/compute.readonly"
122152	//   ]
122153	// }
122154
122155}
122156
122157// method id "compute.regionHealthCheckServices.insert":
122158
122159type RegionHealthCheckServicesInsertCall struct {
122160	s                  *Service
122161	project            string
122162	region             string
122163	healthcheckservice *HealthCheckService
122164	urlParams_         gensupport.URLParams
122165	ctx_               context.Context
122166	header_            http.Header
122167}
122168
122169// Insert: Creates a regional HealthCheckService resource in the
122170// specified project and region using the data included in the request.
122171//
122172// - project: Project ID for this request.
122173// - region: Name of the region scoping this request.
122174func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
122175	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122176	c.project = project
122177	c.region = region
122178	c.healthcheckservice = healthcheckservice
122179	return c
122180}
122181
122182// RequestId sets the optional parameter "requestId": An optional
122183// request ID to identify requests. Specify a unique request ID so that
122184// if you must retry your request, the server will know to ignore the
122185// request if it has already been completed. For example, consider a
122186// situation where you make an initial request and the request times
122187// out. If you make the request again with the same request ID, the
122188// server can check if original operation with the same request ID was
122189// received, and if so, will ignore the second request. This prevents
122190// clients from accidentally creating duplicate commitments. The request
122191// ID must be a valid UUID with the exception that zero UUID is not
122192// supported ( 00000000-0000-0000-0000-000000000000).
122193func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
122194	c.urlParams_.Set("requestId", requestId)
122195	return c
122196}
122197
122198// Fields allows partial responses to be retrieved. See
122199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122200// for more information.
122201func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
122202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122203	return c
122204}
122205
122206// Context sets the context to be used in this call's Do method. Any
122207// pending HTTP request will be aborted if the provided context is
122208// canceled.
122209func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
122210	c.ctx_ = ctx
122211	return c
122212}
122213
122214// Header returns an http.Header that can be modified by the caller to
122215// add HTTP headers to the request.
122216func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
122217	if c.header_ == nil {
122218		c.header_ = make(http.Header)
122219	}
122220	return c.header_
122221}
122222
122223func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
122224	reqHeaders := make(http.Header)
122225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
122226	for k, v := range c.header_ {
122227		reqHeaders[k] = v
122228	}
122229	reqHeaders.Set("User-Agent", c.s.userAgent())
122230	var body io.Reader = nil
122231	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
122232	if err != nil {
122233		return nil, err
122234	}
122235	reqHeaders.Set("Content-Type", "application/json")
122236	c.urlParams_.Set("alt", alt)
122237	c.urlParams_.Set("prettyPrint", "false")
122238	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
122239	urls += "?" + c.urlParams_.Encode()
122240	req, err := http.NewRequest("POST", urls, body)
122241	if err != nil {
122242		return nil, err
122243	}
122244	req.Header = reqHeaders
122245	googleapi.Expand(req.URL, map[string]string{
122246		"project": c.project,
122247		"region":  c.region,
122248	})
122249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122250}
122251
122252// Do executes the "compute.regionHealthCheckServices.insert" call.
122253// Exactly one of *Operation or error will be non-nil. Any non-2xx
122254// status code is an error. Response headers are in either
122255// *Operation.ServerResponse.Header or (if a response was returned at
122256// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122257// to check whether the returned error was because
122258// http.StatusNotModified was returned.
122259func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122260	gensupport.SetOptions(c.urlParams_, opts...)
122261	res, err := c.doRequest("json")
122262	if res != nil && res.StatusCode == http.StatusNotModified {
122263		if res.Body != nil {
122264			res.Body.Close()
122265		}
122266		return nil, &googleapi.Error{
122267			Code:   res.StatusCode,
122268			Header: res.Header,
122269		}
122270	}
122271	if err != nil {
122272		return nil, err
122273	}
122274	defer googleapi.CloseBody(res)
122275	if err := googleapi.CheckResponse(res); err != nil {
122276		return nil, err
122277	}
122278	ret := &Operation{
122279		ServerResponse: googleapi.ServerResponse{
122280			Header:         res.Header,
122281			HTTPStatusCode: res.StatusCode,
122282		},
122283	}
122284	target := &ret
122285	if err := gensupport.DecodeResponse(target, res); err != nil {
122286		return nil, err
122287	}
122288	return ret, nil
122289	// {
122290	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
122291	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
122292	//   "httpMethod": "POST",
122293	//   "id": "compute.regionHealthCheckServices.insert",
122294	//   "parameterOrder": [
122295	//     "project",
122296	//     "region"
122297	//   ],
122298	//   "parameters": {
122299	//     "project": {
122300	//       "description": "Project ID for this request.",
122301	//       "location": "path",
122302	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122303	//       "required": true,
122304	//       "type": "string"
122305	//     },
122306	//     "region": {
122307	//       "description": "Name of the region scoping this request.",
122308	//       "location": "path",
122309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122310	//       "required": true,
122311	//       "type": "string"
122312	//     },
122313	//     "requestId": {
122314	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122315	//       "location": "query",
122316	//       "type": "string"
122317	//     }
122318	//   },
122319	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
122320	//   "request": {
122321	//     "$ref": "HealthCheckService"
122322	//   },
122323	//   "response": {
122324	//     "$ref": "Operation"
122325	//   },
122326	//   "scopes": [
122327	//     "https://www.googleapis.com/auth/cloud-platform",
122328	//     "https://www.googleapis.com/auth/compute"
122329	//   ]
122330	// }
122331
122332}
122333
122334// method id "compute.regionHealthCheckServices.list":
122335
122336type RegionHealthCheckServicesListCall struct {
122337	s            *Service
122338	project      string
122339	region       string
122340	urlParams_   gensupport.URLParams
122341	ifNoneMatch_ string
122342	ctx_         context.Context
122343	header_      http.Header
122344}
122345
122346// List: Lists all the HealthCheckService resources that have been
122347// configured for the specified project in the given region.
122348//
122349// - project: Project ID for this request.
122350// - region: Name of the region scoping this request.
122351func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
122352	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122353	c.project = project
122354	c.region = region
122355	return c
122356}
122357
122358// Filter sets the optional parameter "filter": A filter expression that
122359// filters resources listed in the response. The expression must specify
122360// the field name, a comparison operator, and the value that you want to
122361// use for filtering. The value must be a string, a number, or a
122362// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122363// `<`. For example, if you are filtering Compute Engine instances, you
122364// can exclude instances named `example-instance` by specifying `name !=
122365// example-instance`. You can also filter nested fields. For example,
122366// you could specify `scheduling.automaticRestart = false` to include
122367// instances only if they are not scheduled for automatic restarts. You
122368// can use filtering on nested fields to filter based on resource
122369// labels. To filter on multiple expressions, provide each separate
122370// expression within parentheses. For example: ```
122371// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
122372// ``` By default, each expression is an `AND` expression. However, you
122373// can include `AND` and `OR` expressions explicitly. For example: ```
122374// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
122375// AND (scheduling.automaticRestart = true) ```
122376func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
122377	c.urlParams_.Set("filter", filter)
122378	return c
122379}
122380
122381// MaxResults sets the optional parameter "maxResults": The maximum
122382// number of results per page that should be returned. If the number of
122383// available results is larger than `maxResults`, Compute Engine returns
122384// a `nextPageToken` that can be used to get the next page of results in
122385// subsequent list requests. Acceptable values are `0` to `500`,
122386// inclusive. (Default: `500`)
122387func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
122388	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122389	return c
122390}
122391
122392// OrderBy sets the optional parameter "orderBy": Sorts list results by
122393// a certain order. By default, results are returned in alphanumerical
122394// order based on the resource name. You can also sort results in
122395// descending order based on the creation timestamp using
122396// `orderBy="creationTimestamp desc". This sorts results based on the
122397// `creationTimestamp` field in reverse chronological order (newest
122398// result first). Use this to sort resources like operations so that the
122399// newest operation is returned first. Currently, only sorting by `name`
122400// or `creationTimestamp desc` is supported.
122401func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
122402	c.urlParams_.Set("orderBy", orderBy)
122403	return c
122404}
122405
122406// PageToken sets the optional parameter "pageToken": Specifies a page
122407// token to use. Set `pageToken` to the `nextPageToken` returned by a
122408// previous list request to get the next page of results.
122409func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
122410	c.urlParams_.Set("pageToken", pageToken)
122411	return c
122412}
122413
122414// ReturnPartialSuccess sets the optional parameter
122415// "returnPartialSuccess": Opt-in for partial success behavior which
122416// provides partial results in case of failure. The default value is
122417// false.
122418func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
122419	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122420	return c
122421}
122422
122423// Fields allows partial responses to be retrieved. See
122424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122425// for more information.
122426func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
122427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122428	return c
122429}
122430
122431// IfNoneMatch sets the optional parameter which makes the operation
122432// fail if the object's ETag matches the given value. This is useful for
122433// getting updates only after the object has changed since the last
122434// request. Use googleapi.IsNotModified to check whether the response
122435// error from Do is the result of In-None-Match.
122436func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
122437	c.ifNoneMatch_ = entityTag
122438	return c
122439}
122440
122441// Context sets the context to be used in this call's Do method. Any
122442// pending HTTP request will be aborted if the provided context is
122443// canceled.
122444func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
122445	c.ctx_ = ctx
122446	return c
122447}
122448
122449// Header returns an http.Header that can be modified by the caller to
122450// add HTTP headers to the request.
122451func (c *RegionHealthCheckServicesListCall) Header() http.Header {
122452	if c.header_ == nil {
122453		c.header_ = make(http.Header)
122454	}
122455	return c.header_
122456}
122457
122458func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
122459	reqHeaders := make(http.Header)
122460	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
122461	for k, v := range c.header_ {
122462		reqHeaders[k] = v
122463	}
122464	reqHeaders.Set("User-Agent", c.s.userAgent())
122465	if c.ifNoneMatch_ != "" {
122466		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122467	}
122468	var body io.Reader = nil
122469	c.urlParams_.Set("alt", alt)
122470	c.urlParams_.Set("prettyPrint", "false")
122471	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
122472	urls += "?" + c.urlParams_.Encode()
122473	req, err := http.NewRequest("GET", urls, body)
122474	if err != nil {
122475		return nil, err
122476	}
122477	req.Header = reqHeaders
122478	googleapi.Expand(req.URL, map[string]string{
122479		"project": c.project,
122480		"region":  c.region,
122481	})
122482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122483}
122484
122485// Do executes the "compute.regionHealthCheckServices.list" call.
122486// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
122487// non-2xx status code is an error. Response headers are in either
122488// *HealthCheckServicesList.ServerResponse.Header or (if a response was
122489// returned at all) in error.(*googleapi.Error).Header. Use
122490// googleapi.IsNotModified to check whether the returned error was
122491// because http.StatusNotModified was returned.
122492func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
122493	gensupport.SetOptions(c.urlParams_, opts...)
122494	res, err := c.doRequest("json")
122495	if res != nil && res.StatusCode == http.StatusNotModified {
122496		if res.Body != nil {
122497			res.Body.Close()
122498		}
122499		return nil, &googleapi.Error{
122500			Code:   res.StatusCode,
122501			Header: res.Header,
122502		}
122503	}
122504	if err != nil {
122505		return nil, err
122506	}
122507	defer googleapi.CloseBody(res)
122508	if err := googleapi.CheckResponse(res); err != nil {
122509		return nil, err
122510	}
122511	ret := &HealthCheckServicesList{
122512		ServerResponse: googleapi.ServerResponse{
122513			Header:         res.Header,
122514			HTTPStatusCode: res.StatusCode,
122515		},
122516	}
122517	target := &ret
122518	if err := gensupport.DecodeResponse(target, res); err != nil {
122519		return nil, err
122520	}
122521	return ret, nil
122522	// {
122523	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
122524	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
122525	//   "httpMethod": "GET",
122526	//   "id": "compute.regionHealthCheckServices.list",
122527	//   "parameterOrder": [
122528	//     "project",
122529	//     "region"
122530	//   ],
122531	//   "parameters": {
122532	//     "filter": {
122533	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122534	//       "location": "query",
122535	//       "type": "string"
122536	//     },
122537	//     "maxResults": {
122538	//       "default": "500",
122539	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122540	//       "format": "uint32",
122541	//       "location": "query",
122542	//       "minimum": "0",
122543	//       "type": "integer"
122544	//     },
122545	//     "orderBy": {
122546	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
122547	//       "location": "query",
122548	//       "type": "string"
122549	//     },
122550	//     "pageToken": {
122551	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122552	//       "location": "query",
122553	//       "type": "string"
122554	//     },
122555	//     "project": {
122556	//       "description": "Project ID for this request.",
122557	//       "location": "path",
122558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122559	//       "required": true,
122560	//       "type": "string"
122561	//     },
122562	//     "region": {
122563	//       "description": "Name of the region scoping this request.",
122564	//       "location": "path",
122565	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122566	//       "required": true,
122567	//       "type": "string"
122568	//     },
122569	//     "returnPartialSuccess": {
122570	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122571	//       "location": "query",
122572	//       "type": "boolean"
122573	//     }
122574	//   },
122575	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
122576	//   "response": {
122577	//     "$ref": "HealthCheckServicesList"
122578	//   },
122579	//   "scopes": [
122580	//     "https://www.googleapis.com/auth/cloud-platform",
122581	//     "https://www.googleapis.com/auth/compute",
122582	//     "https://www.googleapis.com/auth/compute.readonly"
122583	//   ]
122584	// }
122585
122586}
122587
122588// Pages invokes f for each page of results.
122589// A non-nil error returned from f will halt the iteration.
122590// The provided context supersedes any context provided to the Context method.
122591func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
122592	c.ctx_ = ctx
122593	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122594	for {
122595		x, err := c.Do()
122596		if err != nil {
122597			return err
122598		}
122599		if err := f(x); err != nil {
122600			return err
122601		}
122602		if x.NextPageToken == "" {
122603			return nil
122604		}
122605		c.PageToken(x.NextPageToken)
122606	}
122607}
122608
122609// method id "compute.regionHealthCheckServices.patch":
122610
122611type RegionHealthCheckServicesPatchCall struct {
122612	s                  *Service
122613	project            string
122614	region             string
122615	healthCheckService string
122616	healthcheckservice *HealthCheckService
122617	urlParams_         gensupport.URLParams
122618	ctx_               context.Context
122619	header_            http.Header
122620}
122621
122622// Patch: Updates the specified regional HealthCheckService resource
122623// with the data included in the request. This method supports PATCH
122624// semantics and uses the JSON merge patch format and processing rules.
122625//
122626// - healthCheckService: Name of the HealthCheckService to update. The
122627//   name must be 1-63 characters long, and comply with RFC1035.
122628// - project: Project ID for this request.
122629// - region: Name of the region scoping this request.
122630func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
122631	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122632	c.project = project
122633	c.region = region
122634	c.healthCheckService = healthCheckService
122635	c.healthcheckservice = healthcheckservice
122636	return c
122637}
122638
122639// RequestId sets the optional parameter "requestId": An optional
122640// request ID to identify requests. Specify a unique request ID so that
122641// if you must retry your request, the server will know to ignore the
122642// request if it has already been completed. For example, consider a
122643// situation where you make an initial request and the request times
122644// out. If you make the request again with the same request ID, the
122645// server can check if original operation with the same request ID was
122646// received, and if so, will ignore the second request. This prevents
122647// clients from accidentally creating duplicate commitments. The request
122648// ID must be a valid UUID with the exception that zero UUID is not
122649// supported ( 00000000-0000-0000-0000-000000000000).
122650func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
122651	c.urlParams_.Set("requestId", requestId)
122652	return c
122653}
122654
122655// Fields allows partial responses to be retrieved. See
122656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122657// for more information.
122658func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
122659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122660	return c
122661}
122662
122663// Context sets the context to be used in this call's Do method. Any
122664// pending HTTP request will be aborted if the provided context is
122665// canceled.
122666func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
122667	c.ctx_ = ctx
122668	return c
122669}
122670
122671// Header returns an http.Header that can be modified by the caller to
122672// add HTTP headers to the request.
122673func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
122674	if c.header_ == nil {
122675		c.header_ = make(http.Header)
122676	}
122677	return c.header_
122678}
122679
122680func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
122681	reqHeaders := make(http.Header)
122682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
122683	for k, v := range c.header_ {
122684		reqHeaders[k] = v
122685	}
122686	reqHeaders.Set("User-Agent", c.s.userAgent())
122687	var body io.Reader = nil
122688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
122689	if err != nil {
122690		return nil, err
122691	}
122692	reqHeaders.Set("Content-Type", "application/json")
122693	c.urlParams_.Set("alt", alt)
122694	c.urlParams_.Set("prettyPrint", "false")
122695	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
122696	urls += "?" + c.urlParams_.Encode()
122697	req, err := http.NewRequest("PATCH", urls, body)
122698	if err != nil {
122699		return nil, err
122700	}
122701	req.Header = reqHeaders
122702	googleapi.Expand(req.URL, map[string]string{
122703		"project":            c.project,
122704		"region":             c.region,
122705		"healthCheckService": c.healthCheckService,
122706	})
122707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122708}
122709
122710// Do executes the "compute.regionHealthCheckServices.patch" call.
122711// Exactly one of *Operation or error will be non-nil. Any non-2xx
122712// status code is an error. Response headers are in either
122713// *Operation.ServerResponse.Header or (if a response was returned at
122714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122715// to check whether the returned error was because
122716// http.StatusNotModified was returned.
122717func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122718	gensupport.SetOptions(c.urlParams_, opts...)
122719	res, err := c.doRequest("json")
122720	if res != nil && res.StatusCode == http.StatusNotModified {
122721		if res.Body != nil {
122722			res.Body.Close()
122723		}
122724		return nil, &googleapi.Error{
122725			Code:   res.StatusCode,
122726			Header: res.Header,
122727		}
122728	}
122729	if err != nil {
122730		return nil, err
122731	}
122732	defer googleapi.CloseBody(res)
122733	if err := googleapi.CheckResponse(res); err != nil {
122734		return nil, err
122735	}
122736	ret := &Operation{
122737		ServerResponse: googleapi.ServerResponse{
122738			Header:         res.Header,
122739			HTTPStatusCode: res.StatusCode,
122740		},
122741	}
122742	target := &ret
122743	if err := gensupport.DecodeResponse(target, res); err != nil {
122744		return nil, err
122745	}
122746	return ret, nil
122747	// {
122748	//   "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.",
122749	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122750	//   "httpMethod": "PATCH",
122751	//   "id": "compute.regionHealthCheckServices.patch",
122752	//   "parameterOrder": [
122753	//     "project",
122754	//     "region",
122755	//     "healthCheckService"
122756	//   ],
122757	//   "parameters": {
122758	//     "healthCheckService": {
122759	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
122760	//       "location": "path",
122761	//       "required": true,
122762	//       "type": "string"
122763	//     },
122764	//     "project": {
122765	//       "description": "Project ID for this request.",
122766	//       "location": "path",
122767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122768	//       "required": true,
122769	//       "type": "string"
122770	//     },
122771	//     "region": {
122772	//       "description": "Name of the region scoping this request.",
122773	//       "location": "path",
122774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122775	//       "required": true,
122776	//       "type": "string"
122777	//     },
122778	//     "requestId": {
122779	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122780	//       "location": "query",
122781	//       "type": "string"
122782	//     }
122783	//   },
122784	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122785	//   "request": {
122786	//     "$ref": "HealthCheckService"
122787	//   },
122788	//   "response": {
122789	//     "$ref": "Operation"
122790	//   },
122791	//   "scopes": [
122792	//     "https://www.googleapis.com/auth/cloud-platform",
122793	//     "https://www.googleapis.com/auth/compute"
122794	//   ]
122795	// }
122796
122797}
122798
122799// method id "compute.regionHealthChecks.delete":
122800
122801type RegionHealthChecksDeleteCall struct {
122802	s           *Service
122803	project     string
122804	region      string
122805	healthCheck string
122806	urlParams_  gensupport.URLParams
122807	ctx_        context.Context
122808	header_     http.Header
122809}
122810
122811// Delete: Deletes the specified HealthCheck resource.
122812//
122813// - healthCheck: Name of the HealthCheck resource to delete.
122814// - project: Project ID for this request.
122815// - region: Name of the region scoping this request.
122816func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
122817	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122818	c.project = project
122819	c.region = region
122820	c.healthCheck = healthCheck
122821	return c
122822}
122823
122824// RequestId sets the optional parameter "requestId": An optional
122825// request ID to identify requests. Specify a unique request ID so that
122826// if you must retry your request, the server will know to ignore the
122827// request if it has already been completed. For example, consider a
122828// situation where you make an initial request and the request times
122829// out. If you make the request again with the same request ID, the
122830// server can check if original operation with the same request ID was
122831// received, and if so, will ignore the second request. This prevents
122832// clients from accidentally creating duplicate commitments. The request
122833// ID must be a valid UUID with the exception that zero UUID is not
122834// supported ( 00000000-0000-0000-0000-000000000000).
122835func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
122836	c.urlParams_.Set("requestId", requestId)
122837	return c
122838}
122839
122840// Fields allows partial responses to be retrieved. See
122841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122842// for more information.
122843func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
122844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122845	return c
122846}
122847
122848// Context sets the context to be used in this call's Do method. Any
122849// pending HTTP request will be aborted if the provided context is
122850// canceled.
122851func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
122852	c.ctx_ = ctx
122853	return c
122854}
122855
122856// Header returns an http.Header that can be modified by the caller to
122857// add HTTP headers to the request.
122858func (c *RegionHealthChecksDeleteCall) Header() http.Header {
122859	if c.header_ == nil {
122860		c.header_ = make(http.Header)
122861	}
122862	return c.header_
122863}
122864
122865func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
122866	reqHeaders := make(http.Header)
122867	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
122868	for k, v := range c.header_ {
122869		reqHeaders[k] = v
122870	}
122871	reqHeaders.Set("User-Agent", c.s.userAgent())
122872	var body io.Reader = nil
122873	c.urlParams_.Set("alt", alt)
122874	c.urlParams_.Set("prettyPrint", "false")
122875	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
122876	urls += "?" + c.urlParams_.Encode()
122877	req, err := http.NewRequest("DELETE", urls, body)
122878	if err != nil {
122879		return nil, err
122880	}
122881	req.Header = reqHeaders
122882	googleapi.Expand(req.URL, map[string]string{
122883		"project":     c.project,
122884		"region":      c.region,
122885		"healthCheck": c.healthCheck,
122886	})
122887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122888}
122889
122890// Do executes the "compute.regionHealthChecks.delete" call.
122891// Exactly one of *Operation or error will be non-nil. Any non-2xx
122892// status code is an error. Response headers are in either
122893// *Operation.ServerResponse.Header or (if a response was returned at
122894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122895// to check whether the returned error was because
122896// http.StatusNotModified was returned.
122897func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122898	gensupport.SetOptions(c.urlParams_, opts...)
122899	res, err := c.doRequest("json")
122900	if res != nil && res.StatusCode == http.StatusNotModified {
122901		if res.Body != nil {
122902			res.Body.Close()
122903		}
122904		return nil, &googleapi.Error{
122905			Code:   res.StatusCode,
122906			Header: res.Header,
122907		}
122908	}
122909	if err != nil {
122910		return nil, err
122911	}
122912	defer googleapi.CloseBody(res)
122913	if err := googleapi.CheckResponse(res); err != nil {
122914		return nil, err
122915	}
122916	ret := &Operation{
122917		ServerResponse: googleapi.ServerResponse{
122918			Header:         res.Header,
122919			HTTPStatusCode: res.StatusCode,
122920		},
122921	}
122922	target := &ret
122923	if err := gensupport.DecodeResponse(target, res); err != nil {
122924		return nil, err
122925	}
122926	return ret, nil
122927	// {
122928	//   "description": "Deletes the specified HealthCheck resource.",
122929	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
122930	//   "httpMethod": "DELETE",
122931	//   "id": "compute.regionHealthChecks.delete",
122932	//   "parameterOrder": [
122933	//     "project",
122934	//     "region",
122935	//     "healthCheck"
122936	//   ],
122937	//   "parameters": {
122938	//     "healthCheck": {
122939	//       "description": "Name of the HealthCheck resource to delete.",
122940	//       "location": "path",
122941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122942	//       "required": true,
122943	//       "type": "string"
122944	//     },
122945	//     "project": {
122946	//       "description": "Project ID for this request.",
122947	//       "location": "path",
122948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122949	//       "required": true,
122950	//       "type": "string"
122951	//     },
122952	//     "region": {
122953	//       "description": "Name of the region scoping this request.",
122954	//       "location": "path",
122955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122956	//       "required": true,
122957	//       "type": "string"
122958	//     },
122959	//     "requestId": {
122960	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122961	//       "location": "query",
122962	//       "type": "string"
122963	//     }
122964	//   },
122965	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
122966	//   "response": {
122967	//     "$ref": "Operation"
122968	//   },
122969	//   "scopes": [
122970	//     "https://www.googleapis.com/auth/cloud-platform",
122971	//     "https://www.googleapis.com/auth/compute"
122972	//   ]
122973	// }
122974
122975}
122976
122977// method id "compute.regionHealthChecks.get":
122978
122979type RegionHealthChecksGetCall struct {
122980	s            *Service
122981	project      string
122982	region       string
122983	healthCheck  string
122984	urlParams_   gensupport.URLParams
122985	ifNoneMatch_ string
122986	ctx_         context.Context
122987	header_      http.Header
122988}
122989
122990// Get: Returns the specified HealthCheck resource. Gets a list of
122991// available health checks by making a list() request.
122992//
122993// - healthCheck: Name of the HealthCheck resource to return.
122994// - project: Project ID for this request.
122995// - region: Name of the region scoping this request.
122996func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
122997	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122998	c.project = project
122999	c.region = region
123000	c.healthCheck = healthCheck
123001	return c
123002}
123003
123004// Fields allows partial responses to be retrieved. See
123005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123006// for more information.
123007func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
123008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123009	return c
123010}
123011
123012// IfNoneMatch sets the optional parameter which makes the operation
123013// fail if the object's ETag matches the given value. This is useful for
123014// getting updates only after the object has changed since the last
123015// request. Use googleapi.IsNotModified to check whether the response
123016// error from Do is the result of In-None-Match.
123017func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
123018	c.ifNoneMatch_ = entityTag
123019	return c
123020}
123021
123022// Context sets the context to be used in this call's Do method. Any
123023// pending HTTP request will be aborted if the provided context is
123024// canceled.
123025func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
123026	c.ctx_ = ctx
123027	return c
123028}
123029
123030// Header returns an http.Header that can be modified by the caller to
123031// add HTTP headers to the request.
123032func (c *RegionHealthChecksGetCall) Header() http.Header {
123033	if c.header_ == nil {
123034		c.header_ = make(http.Header)
123035	}
123036	return c.header_
123037}
123038
123039func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
123040	reqHeaders := make(http.Header)
123041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
123042	for k, v := range c.header_ {
123043		reqHeaders[k] = v
123044	}
123045	reqHeaders.Set("User-Agent", c.s.userAgent())
123046	if c.ifNoneMatch_ != "" {
123047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123048	}
123049	var body io.Reader = nil
123050	c.urlParams_.Set("alt", alt)
123051	c.urlParams_.Set("prettyPrint", "false")
123052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
123053	urls += "?" + c.urlParams_.Encode()
123054	req, err := http.NewRequest("GET", urls, body)
123055	if err != nil {
123056		return nil, err
123057	}
123058	req.Header = reqHeaders
123059	googleapi.Expand(req.URL, map[string]string{
123060		"project":     c.project,
123061		"region":      c.region,
123062		"healthCheck": c.healthCheck,
123063	})
123064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123065}
123066
123067// Do executes the "compute.regionHealthChecks.get" call.
123068// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
123069// status code is an error. Response headers are in either
123070// *HealthCheck.ServerResponse.Header or (if a response was returned at
123071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123072// to check whether the returned error was because
123073// http.StatusNotModified was returned.
123074func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
123075	gensupport.SetOptions(c.urlParams_, opts...)
123076	res, err := c.doRequest("json")
123077	if res != nil && res.StatusCode == http.StatusNotModified {
123078		if res.Body != nil {
123079			res.Body.Close()
123080		}
123081		return nil, &googleapi.Error{
123082			Code:   res.StatusCode,
123083			Header: res.Header,
123084		}
123085	}
123086	if err != nil {
123087		return nil, err
123088	}
123089	defer googleapi.CloseBody(res)
123090	if err := googleapi.CheckResponse(res); err != nil {
123091		return nil, err
123092	}
123093	ret := &HealthCheck{
123094		ServerResponse: googleapi.ServerResponse{
123095			Header:         res.Header,
123096			HTTPStatusCode: res.StatusCode,
123097		},
123098	}
123099	target := &ret
123100	if err := gensupport.DecodeResponse(target, res); err != nil {
123101		return nil, err
123102	}
123103	return ret, nil
123104	// {
123105	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
123106	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123107	//   "httpMethod": "GET",
123108	//   "id": "compute.regionHealthChecks.get",
123109	//   "parameterOrder": [
123110	//     "project",
123111	//     "region",
123112	//     "healthCheck"
123113	//   ],
123114	//   "parameters": {
123115	//     "healthCheck": {
123116	//       "description": "Name of the HealthCheck resource to return.",
123117	//       "location": "path",
123118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123119	//       "required": true,
123120	//       "type": "string"
123121	//     },
123122	//     "project": {
123123	//       "description": "Project ID for this request.",
123124	//       "location": "path",
123125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123126	//       "required": true,
123127	//       "type": "string"
123128	//     },
123129	//     "region": {
123130	//       "description": "Name of the region scoping this request.",
123131	//       "location": "path",
123132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123133	//       "required": true,
123134	//       "type": "string"
123135	//     }
123136	//   },
123137	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123138	//   "response": {
123139	//     "$ref": "HealthCheck"
123140	//   },
123141	//   "scopes": [
123142	//     "https://www.googleapis.com/auth/cloud-platform",
123143	//     "https://www.googleapis.com/auth/compute",
123144	//     "https://www.googleapis.com/auth/compute.readonly"
123145	//   ]
123146	// }
123147
123148}
123149
123150// method id "compute.regionHealthChecks.insert":
123151
123152type RegionHealthChecksInsertCall struct {
123153	s           *Service
123154	project     string
123155	region      string
123156	healthcheck *HealthCheck
123157	urlParams_  gensupport.URLParams
123158	ctx_        context.Context
123159	header_     http.Header
123160}
123161
123162// Insert: Creates a HealthCheck resource in the specified project using
123163// the data included in the request.
123164//
123165// - project: Project ID for this request.
123166// - region: Name of the region scoping this request.
123167func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
123168	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123169	c.project = project
123170	c.region = region
123171	c.healthcheck = healthcheck
123172	return c
123173}
123174
123175// RequestId sets the optional parameter "requestId": An optional
123176// request ID to identify requests. Specify a unique request ID so that
123177// if you must retry your request, the server will know to ignore the
123178// request if it has already been completed. For example, consider a
123179// situation where you make an initial request and the request times
123180// out. If you make the request again with the same request ID, the
123181// server can check if original operation with the same request ID was
123182// received, and if so, will ignore the second request. This prevents
123183// clients from accidentally creating duplicate commitments. The request
123184// ID must be a valid UUID with the exception that zero UUID is not
123185// supported ( 00000000-0000-0000-0000-000000000000).
123186func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
123187	c.urlParams_.Set("requestId", requestId)
123188	return c
123189}
123190
123191// Fields allows partial responses to be retrieved. See
123192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123193// for more information.
123194func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
123195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123196	return c
123197}
123198
123199// Context sets the context to be used in this call's Do method. Any
123200// pending HTTP request will be aborted if the provided context is
123201// canceled.
123202func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
123203	c.ctx_ = ctx
123204	return c
123205}
123206
123207// Header returns an http.Header that can be modified by the caller to
123208// add HTTP headers to the request.
123209func (c *RegionHealthChecksInsertCall) Header() http.Header {
123210	if c.header_ == nil {
123211		c.header_ = make(http.Header)
123212	}
123213	return c.header_
123214}
123215
123216func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
123217	reqHeaders := make(http.Header)
123218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
123219	for k, v := range c.header_ {
123220		reqHeaders[k] = v
123221	}
123222	reqHeaders.Set("User-Agent", c.s.userAgent())
123223	var body io.Reader = nil
123224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
123225	if err != nil {
123226		return nil, err
123227	}
123228	reqHeaders.Set("Content-Type", "application/json")
123229	c.urlParams_.Set("alt", alt)
123230	c.urlParams_.Set("prettyPrint", "false")
123231	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
123232	urls += "?" + c.urlParams_.Encode()
123233	req, err := http.NewRequest("POST", urls, body)
123234	if err != nil {
123235		return nil, err
123236	}
123237	req.Header = reqHeaders
123238	googleapi.Expand(req.URL, map[string]string{
123239		"project": c.project,
123240		"region":  c.region,
123241	})
123242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123243}
123244
123245// Do executes the "compute.regionHealthChecks.insert" call.
123246// Exactly one of *Operation or error will be non-nil. Any non-2xx
123247// status code is an error. Response headers are in either
123248// *Operation.ServerResponse.Header or (if a response was returned at
123249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123250// to check whether the returned error was because
123251// http.StatusNotModified was returned.
123252func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123253	gensupport.SetOptions(c.urlParams_, opts...)
123254	res, err := c.doRequest("json")
123255	if res != nil && res.StatusCode == http.StatusNotModified {
123256		if res.Body != nil {
123257			res.Body.Close()
123258		}
123259		return nil, &googleapi.Error{
123260			Code:   res.StatusCode,
123261			Header: res.Header,
123262		}
123263	}
123264	if err != nil {
123265		return nil, err
123266	}
123267	defer googleapi.CloseBody(res)
123268	if err := googleapi.CheckResponse(res); err != nil {
123269		return nil, err
123270	}
123271	ret := &Operation{
123272		ServerResponse: googleapi.ServerResponse{
123273			Header:         res.Header,
123274			HTTPStatusCode: res.StatusCode,
123275		},
123276	}
123277	target := &ret
123278	if err := gensupport.DecodeResponse(target, res); err != nil {
123279		return nil, err
123280	}
123281	return ret, nil
123282	// {
123283	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
123284	//   "flatPath": "projects/{project}/regions/{region}/healthChecks",
123285	//   "httpMethod": "POST",
123286	//   "id": "compute.regionHealthChecks.insert",
123287	//   "parameterOrder": [
123288	//     "project",
123289	//     "region"
123290	//   ],
123291	//   "parameters": {
123292	//     "project": {
123293	//       "description": "Project ID for this request.",
123294	//       "location": "path",
123295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123296	//       "required": true,
123297	//       "type": "string"
123298	//     },
123299	//     "region": {
123300	//       "description": "Name of the region scoping this request.",
123301	//       "location": "path",
123302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123303	//       "required": true,
123304	//       "type": "string"
123305	//     },
123306	//     "requestId": {
123307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123308	//       "location": "query",
123309	//       "type": "string"
123310	//     }
123311	//   },
123312	//   "path": "projects/{project}/regions/{region}/healthChecks",
123313	//   "request": {
123314	//     "$ref": "HealthCheck"
123315	//   },
123316	//   "response": {
123317	//     "$ref": "Operation"
123318	//   },
123319	//   "scopes": [
123320	//     "https://www.googleapis.com/auth/cloud-platform",
123321	//     "https://www.googleapis.com/auth/compute"
123322	//   ]
123323	// }
123324
123325}
123326
123327// method id "compute.regionHealthChecks.list":
123328
123329type RegionHealthChecksListCall struct {
123330	s            *Service
123331	project      string
123332	region       string
123333	urlParams_   gensupport.URLParams
123334	ifNoneMatch_ string
123335	ctx_         context.Context
123336	header_      http.Header
123337}
123338
123339// List: Retrieves the list of HealthCheck resources available to the
123340// specified project.
123341//
123342// - project: Project ID for this request.
123343// - region: Name of the region scoping this request.
123344func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
123345	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123346	c.project = project
123347	c.region = region
123348	return c
123349}
123350
123351// Filter sets the optional parameter "filter": A filter expression that
123352// filters resources listed in the response. The expression must specify
123353// the field name, a comparison operator, and the value that you want to
123354// use for filtering. The value must be a string, a number, or a
123355// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123356// `<`. For example, if you are filtering Compute Engine instances, you
123357// can exclude instances named `example-instance` by specifying `name !=
123358// example-instance`. You can also filter nested fields. For example,
123359// you could specify `scheduling.automaticRestart = false` to include
123360// instances only if they are not scheduled for automatic restarts. You
123361// can use filtering on nested fields to filter based on resource
123362// labels. To filter on multiple expressions, provide each separate
123363// expression within parentheses. For example: ```
123364// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
123365// ``` By default, each expression is an `AND` expression. However, you
123366// can include `AND` and `OR` expressions explicitly. For example: ```
123367// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
123368// AND (scheduling.automaticRestart = true) ```
123369func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
123370	c.urlParams_.Set("filter", filter)
123371	return c
123372}
123373
123374// MaxResults sets the optional parameter "maxResults": The maximum
123375// number of results per page that should be returned. If the number of
123376// available results is larger than `maxResults`, Compute Engine returns
123377// a `nextPageToken` that can be used to get the next page of results in
123378// subsequent list requests. Acceptable values are `0` to `500`,
123379// inclusive. (Default: `500`)
123380func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
123381	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123382	return c
123383}
123384
123385// OrderBy sets the optional parameter "orderBy": Sorts list results by
123386// a certain order. By default, results are returned in alphanumerical
123387// order based on the resource name. You can also sort results in
123388// descending order based on the creation timestamp using
123389// `orderBy="creationTimestamp desc". This sorts results based on the
123390// `creationTimestamp` field in reverse chronological order (newest
123391// result first). Use this to sort resources like operations so that the
123392// newest operation is returned first. Currently, only sorting by `name`
123393// or `creationTimestamp desc` is supported.
123394func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
123395	c.urlParams_.Set("orderBy", orderBy)
123396	return c
123397}
123398
123399// PageToken sets the optional parameter "pageToken": Specifies a page
123400// token to use. Set `pageToken` to the `nextPageToken` returned by a
123401// previous list request to get the next page of results.
123402func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
123403	c.urlParams_.Set("pageToken", pageToken)
123404	return c
123405}
123406
123407// ReturnPartialSuccess sets the optional parameter
123408// "returnPartialSuccess": Opt-in for partial success behavior which
123409// provides partial results in case of failure. The default value is
123410// false.
123411func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
123412	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
123413	return c
123414}
123415
123416// Fields allows partial responses to be retrieved. See
123417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123418// for more information.
123419func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
123420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123421	return c
123422}
123423
123424// IfNoneMatch sets the optional parameter which makes the operation
123425// fail if the object's ETag matches the given value. This is useful for
123426// getting updates only after the object has changed since the last
123427// request. Use googleapi.IsNotModified to check whether the response
123428// error from Do is the result of In-None-Match.
123429func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
123430	c.ifNoneMatch_ = entityTag
123431	return c
123432}
123433
123434// Context sets the context to be used in this call's Do method. Any
123435// pending HTTP request will be aborted if the provided context is
123436// canceled.
123437func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
123438	c.ctx_ = ctx
123439	return c
123440}
123441
123442// Header returns an http.Header that can be modified by the caller to
123443// add HTTP headers to the request.
123444func (c *RegionHealthChecksListCall) Header() http.Header {
123445	if c.header_ == nil {
123446		c.header_ = make(http.Header)
123447	}
123448	return c.header_
123449}
123450
123451func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
123452	reqHeaders := make(http.Header)
123453	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
123454	for k, v := range c.header_ {
123455		reqHeaders[k] = v
123456	}
123457	reqHeaders.Set("User-Agent", c.s.userAgent())
123458	if c.ifNoneMatch_ != "" {
123459		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123460	}
123461	var body io.Reader = nil
123462	c.urlParams_.Set("alt", alt)
123463	c.urlParams_.Set("prettyPrint", "false")
123464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
123465	urls += "?" + c.urlParams_.Encode()
123466	req, err := http.NewRequest("GET", urls, body)
123467	if err != nil {
123468		return nil, err
123469	}
123470	req.Header = reqHeaders
123471	googleapi.Expand(req.URL, map[string]string{
123472		"project": c.project,
123473		"region":  c.region,
123474	})
123475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123476}
123477
123478// Do executes the "compute.regionHealthChecks.list" call.
123479// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
123480// status code is an error. Response headers are in either
123481// *HealthCheckList.ServerResponse.Header or (if a response was returned
123482// at all) in error.(*googleapi.Error).Header. Use
123483// googleapi.IsNotModified to check whether the returned error was
123484// because http.StatusNotModified was returned.
123485func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
123486	gensupport.SetOptions(c.urlParams_, opts...)
123487	res, err := c.doRequest("json")
123488	if res != nil && res.StatusCode == http.StatusNotModified {
123489		if res.Body != nil {
123490			res.Body.Close()
123491		}
123492		return nil, &googleapi.Error{
123493			Code:   res.StatusCode,
123494			Header: res.Header,
123495		}
123496	}
123497	if err != nil {
123498		return nil, err
123499	}
123500	defer googleapi.CloseBody(res)
123501	if err := googleapi.CheckResponse(res); err != nil {
123502		return nil, err
123503	}
123504	ret := &HealthCheckList{
123505		ServerResponse: googleapi.ServerResponse{
123506			Header:         res.Header,
123507			HTTPStatusCode: res.StatusCode,
123508		},
123509	}
123510	target := &ret
123511	if err := gensupport.DecodeResponse(target, res); err != nil {
123512		return nil, err
123513	}
123514	return ret, nil
123515	// {
123516	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
123517	//   "flatPath": "projects/{project}/regions/{region}/healthChecks",
123518	//   "httpMethod": "GET",
123519	//   "id": "compute.regionHealthChecks.list",
123520	//   "parameterOrder": [
123521	//     "project",
123522	//     "region"
123523	//   ],
123524	//   "parameters": {
123525	//     "filter": {
123526	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123527	//       "location": "query",
123528	//       "type": "string"
123529	//     },
123530	//     "maxResults": {
123531	//       "default": "500",
123532	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123533	//       "format": "uint32",
123534	//       "location": "query",
123535	//       "minimum": "0",
123536	//       "type": "integer"
123537	//     },
123538	//     "orderBy": {
123539	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
123540	//       "location": "query",
123541	//       "type": "string"
123542	//     },
123543	//     "pageToken": {
123544	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123545	//       "location": "query",
123546	//       "type": "string"
123547	//     },
123548	//     "project": {
123549	//       "description": "Project ID for this request.",
123550	//       "location": "path",
123551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123552	//       "required": true,
123553	//       "type": "string"
123554	//     },
123555	//     "region": {
123556	//       "description": "Name of the region scoping this request.",
123557	//       "location": "path",
123558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123559	//       "required": true,
123560	//       "type": "string"
123561	//     },
123562	//     "returnPartialSuccess": {
123563	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
123564	//       "location": "query",
123565	//       "type": "boolean"
123566	//     }
123567	//   },
123568	//   "path": "projects/{project}/regions/{region}/healthChecks",
123569	//   "response": {
123570	//     "$ref": "HealthCheckList"
123571	//   },
123572	//   "scopes": [
123573	//     "https://www.googleapis.com/auth/cloud-platform",
123574	//     "https://www.googleapis.com/auth/compute",
123575	//     "https://www.googleapis.com/auth/compute.readonly"
123576	//   ]
123577	// }
123578
123579}
123580
123581// Pages invokes f for each page of results.
123582// A non-nil error returned from f will halt the iteration.
123583// The provided context supersedes any context provided to the Context method.
123584func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
123585	c.ctx_ = ctx
123586	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123587	for {
123588		x, err := c.Do()
123589		if err != nil {
123590			return err
123591		}
123592		if err := f(x); err != nil {
123593			return err
123594		}
123595		if x.NextPageToken == "" {
123596			return nil
123597		}
123598		c.PageToken(x.NextPageToken)
123599	}
123600}
123601
123602// method id "compute.regionHealthChecks.patch":
123603
123604type RegionHealthChecksPatchCall struct {
123605	s           *Service
123606	project     string
123607	region      string
123608	healthCheck string
123609	healthcheck *HealthCheck
123610	urlParams_  gensupport.URLParams
123611	ctx_        context.Context
123612	header_     http.Header
123613}
123614
123615// Patch: Updates a HealthCheck resource in the specified project using
123616// the data included in the request. This method supports PATCH
123617// semantics and uses the JSON merge patch format and processing rules.
123618//
123619// - healthCheck: Name of the HealthCheck resource to patch.
123620// - project: Project ID for this request.
123621// - region: Name of the region scoping this request.
123622func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
123623	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123624	c.project = project
123625	c.region = region
123626	c.healthCheck = healthCheck
123627	c.healthcheck = healthcheck
123628	return c
123629}
123630
123631// RequestId sets the optional parameter "requestId": An optional
123632// request ID to identify requests. Specify a unique request ID so that
123633// if you must retry your request, the server will know to ignore the
123634// request if it has already been completed. For example, consider a
123635// situation where you make an initial request and the request times
123636// out. If you make the request again with the same request ID, the
123637// server can check if original operation with the same request ID was
123638// received, and if so, will ignore the second request. This prevents
123639// clients from accidentally creating duplicate commitments. The request
123640// ID must be a valid UUID with the exception that zero UUID is not
123641// supported ( 00000000-0000-0000-0000-000000000000).
123642func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
123643	c.urlParams_.Set("requestId", requestId)
123644	return c
123645}
123646
123647// Fields allows partial responses to be retrieved. See
123648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123649// for more information.
123650func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
123651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123652	return c
123653}
123654
123655// Context sets the context to be used in this call's Do method. Any
123656// pending HTTP request will be aborted if the provided context is
123657// canceled.
123658func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
123659	c.ctx_ = ctx
123660	return c
123661}
123662
123663// Header returns an http.Header that can be modified by the caller to
123664// add HTTP headers to the request.
123665func (c *RegionHealthChecksPatchCall) Header() http.Header {
123666	if c.header_ == nil {
123667		c.header_ = make(http.Header)
123668	}
123669	return c.header_
123670}
123671
123672func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
123673	reqHeaders := make(http.Header)
123674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
123675	for k, v := range c.header_ {
123676		reqHeaders[k] = v
123677	}
123678	reqHeaders.Set("User-Agent", c.s.userAgent())
123679	var body io.Reader = nil
123680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
123681	if err != nil {
123682		return nil, err
123683	}
123684	reqHeaders.Set("Content-Type", "application/json")
123685	c.urlParams_.Set("alt", alt)
123686	c.urlParams_.Set("prettyPrint", "false")
123687	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
123688	urls += "?" + c.urlParams_.Encode()
123689	req, err := http.NewRequest("PATCH", urls, body)
123690	if err != nil {
123691		return nil, err
123692	}
123693	req.Header = reqHeaders
123694	googleapi.Expand(req.URL, map[string]string{
123695		"project":     c.project,
123696		"region":      c.region,
123697		"healthCheck": c.healthCheck,
123698	})
123699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123700}
123701
123702// Do executes the "compute.regionHealthChecks.patch" call.
123703// Exactly one of *Operation or error will be non-nil. Any non-2xx
123704// status code is an error. Response headers are in either
123705// *Operation.ServerResponse.Header or (if a response was returned at
123706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123707// to check whether the returned error was because
123708// http.StatusNotModified was returned.
123709func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123710	gensupport.SetOptions(c.urlParams_, opts...)
123711	res, err := c.doRequest("json")
123712	if res != nil && res.StatusCode == http.StatusNotModified {
123713		if res.Body != nil {
123714			res.Body.Close()
123715		}
123716		return nil, &googleapi.Error{
123717			Code:   res.StatusCode,
123718			Header: res.Header,
123719		}
123720	}
123721	if err != nil {
123722		return nil, err
123723	}
123724	defer googleapi.CloseBody(res)
123725	if err := googleapi.CheckResponse(res); err != nil {
123726		return nil, err
123727	}
123728	ret := &Operation{
123729		ServerResponse: googleapi.ServerResponse{
123730			Header:         res.Header,
123731			HTTPStatusCode: res.StatusCode,
123732		},
123733	}
123734	target := &ret
123735	if err := gensupport.DecodeResponse(target, res); err != nil {
123736		return nil, err
123737	}
123738	return ret, nil
123739	// {
123740	//   "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.",
123741	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123742	//   "httpMethod": "PATCH",
123743	//   "id": "compute.regionHealthChecks.patch",
123744	//   "parameterOrder": [
123745	//     "project",
123746	//     "region",
123747	//     "healthCheck"
123748	//   ],
123749	//   "parameters": {
123750	//     "healthCheck": {
123751	//       "description": "Name of the HealthCheck resource to patch.",
123752	//       "location": "path",
123753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123754	//       "required": true,
123755	//       "type": "string"
123756	//     },
123757	//     "project": {
123758	//       "description": "Project ID for this request.",
123759	//       "location": "path",
123760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123761	//       "required": true,
123762	//       "type": "string"
123763	//     },
123764	//     "region": {
123765	//       "description": "Name of the region scoping this request.",
123766	//       "location": "path",
123767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123768	//       "required": true,
123769	//       "type": "string"
123770	//     },
123771	//     "requestId": {
123772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123773	//       "location": "query",
123774	//       "type": "string"
123775	//     }
123776	//   },
123777	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123778	//   "request": {
123779	//     "$ref": "HealthCheck"
123780	//   },
123781	//   "response": {
123782	//     "$ref": "Operation"
123783	//   },
123784	//   "scopes": [
123785	//     "https://www.googleapis.com/auth/cloud-platform",
123786	//     "https://www.googleapis.com/auth/compute"
123787	//   ]
123788	// }
123789
123790}
123791
123792// method id "compute.regionHealthChecks.update":
123793
123794type RegionHealthChecksUpdateCall struct {
123795	s           *Service
123796	project     string
123797	region      string
123798	healthCheck string
123799	healthcheck *HealthCheck
123800	urlParams_  gensupport.URLParams
123801	ctx_        context.Context
123802	header_     http.Header
123803}
123804
123805// Update: Updates a HealthCheck resource in the specified project using
123806// the data included in the request.
123807//
123808// - healthCheck: Name of the HealthCheck resource to update.
123809// - project: Project ID for this request.
123810// - region: Name of the region scoping this request.
123811func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
123812	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123813	c.project = project
123814	c.region = region
123815	c.healthCheck = healthCheck
123816	c.healthcheck = healthcheck
123817	return c
123818}
123819
123820// RequestId sets the optional parameter "requestId": An optional
123821// request ID to identify requests. Specify a unique request ID so that
123822// if you must retry your request, the server will know to ignore the
123823// request if it has already been completed. For example, consider a
123824// situation where you make an initial request and the request times
123825// out. If you make the request again with the same request ID, the
123826// server can check if original operation with the same request ID was
123827// received, and if so, will ignore the second request. This prevents
123828// clients from accidentally creating duplicate commitments. The request
123829// ID must be a valid UUID with the exception that zero UUID is not
123830// supported ( 00000000-0000-0000-0000-000000000000).
123831func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
123832	c.urlParams_.Set("requestId", requestId)
123833	return c
123834}
123835
123836// Fields allows partial responses to be retrieved. See
123837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123838// for more information.
123839func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
123840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123841	return c
123842}
123843
123844// Context sets the context to be used in this call's Do method. Any
123845// pending HTTP request will be aborted if the provided context is
123846// canceled.
123847func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
123848	c.ctx_ = ctx
123849	return c
123850}
123851
123852// Header returns an http.Header that can be modified by the caller to
123853// add HTTP headers to the request.
123854func (c *RegionHealthChecksUpdateCall) Header() http.Header {
123855	if c.header_ == nil {
123856		c.header_ = make(http.Header)
123857	}
123858	return c.header_
123859}
123860
123861func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
123862	reqHeaders := make(http.Header)
123863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
123864	for k, v := range c.header_ {
123865		reqHeaders[k] = v
123866	}
123867	reqHeaders.Set("User-Agent", c.s.userAgent())
123868	var body io.Reader = nil
123869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
123870	if err != nil {
123871		return nil, err
123872	}
123873	reqHeaders.Set("Content-Type", "application/json")
123874	c.urlParams_.Set("alt", alt)
123875	c.urlParams_.Set("prettyPrint", "false")
123876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
123877	urls += "?" + c.urlParams_.Encode()
123878	req, err := http.NewRequest("PUT", urls, body)
123879	if err != nil {
123880		return nil, err
123881	}
123882	req.Header = reqHeaders
123883	googleapi.Expand(req.URL, map[string]string{
123884		"project":     c.project,
123885		"region":      c.region,
123886		"healthCheck": c.healthCheck,
123887	})
123888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123889}
123890
123891// Do executes the "compute.regionHealthChecks.update" call.
123892// Exactly one of *Operation or error will be non-nil. Any non-2xx
123893// status code is an error. Response headers are in either
123894// *Operation.ServerResponse.Header or (if a response was returned at
123895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123896// to check whether the returned error was because
123897// http.StatusNotModified was returned.
123898func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123899	gensupport.SetOptions(c.urlParams_, opts...)
123900	res, err := c.doRequest("json")
123901	if res != nil && res.StatusCode == http.StatusNotModified {
123902		if res.Body != nil {
123903			res.Body.Close()
123904		}
123905		return nil, &googleapi.Error{
123906			Code:   res.StatusCode,
123907			Header: res.Header,
123908		}
123909	}
123910	if err != nil {
123911		return nil, err
123912	}
123913	defer googleapi.CloseBody(res)
123914	if err := googleapi.CheckResponse(res); err != nil {
123915		return nil, err
123916	}
123917	ret := &Operation{
123918		ServerResponse: googleapi.ServerResponse{
123919			Header:         res.Header,
123920			HTTPStatusCode: res.StatusCode,
123921		},
123922	}
123923	target := &ret
123924	if err := gensupport.DecodeResponse(target, res); err != nil {
123925		return nil, err
123926	}
123927	return ret, nil
123928	// {
123929	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
123930	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123931	//   "httpMethod": "PUT",
123932	//   "id": "compute.regionHealthChecks.update",
123933	//   "parameterOrder": [
123934	//     "project",
123935	//     "region",
123936	//     "healthCheck"
123937	//   ],
123938	//   "parameters": {
123939	//     "healthCheck": {
123940	//       "description": "Name of the HealthCheck resource to update.",
123941	//       "location": "path",
123942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123943	//       "required": true,
123944	//       "type": "string"
123945	//     },
123946	//     "project": {
123947	//       "description": "Project ID for this request.",
123948	//       "location": "path",
123949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123950	//       "required": true,
123951	//       "type": "string"
123952	//     },
123953	//     "region": {
123954	//       "description": "Name of the region scoping this request.",
123955	//       "location": "path",
123956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123957	//       "required": true,
123958	//       "type": "string"
123959	//     },
123960	//     "requestId": {
123961	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123962	//       "location": "query",
123963	//       "type": "string"
123964	//     }
123965	//   },
123966	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123967	//   "request": {
123968	//     "$ref": "HealthCheck"
123969	//   },
123970	//   "response": {
123971	//     "$ref": "Operation"
123972	//   },
123973	//   "scopes": [
123974	//     "https://www.googleapis.com/auth/cloud-platform",
123975	//     "https://www.googleapis.com/auth/compute"
123976	//   ]
123977	// }
123978
123979}
123980
123981// method id "compute.regionInstanceGroupManagers.abandonInstances":
123982
123983type RegionInstanceGroupManagersAbandonInstancesCall struct {
123984	s                                                  *Service
123985	project                                            string
123986	region                                             string
123987	instanceGroupManager                               string
123988	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
123989	urlParams_                                         gensupport.URLParams
123990	ctx_                                               context.Context
123991	header_                                            http.Header
123992}
123993
123994// AbandonInstances: Flags the specified instances to be immediately
123995// removed from the managed instance group. Abandoning an instance does
123996// not delete the instance, but it does remove the instance from any
123997// target pools that are applied by the managed instance group. This
123998// method reduces the targetSize of the managed instance group by the
123999// number of instances that you abandon. This operation is marked as
124000// DONE when the action is scheduled even if the instances have not yet
124001// been removed from the group. You must separately verify the status of
124002// the abandoning action with the listmanagedinstances method. If the
124003// group is part of a backend service that has enabled connection
124004// draining, it can take up to 60 seconds after the connection draining
124005// duration has elapsed before the VM instance is removed or deleted.
124006// You can specify a maximum of 1000 instances with this method per
124007// request.
124008//
124009// - instanceGroupManager: Name of the managed instance group.
124010// - project: Project ID for this request.
124011// - region: Name of the region scoping this request.
124012func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
124013	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124014	c.project = project
124015	c.region = region
124016	c.instanceGroupManager = instanceGroupManager
124017	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
124018	return c
124019}
124020
124021// RequestId sets the optional parameter "requestId": An optional
124022// request ID to identify requests. Specify a unique request ID so that
124023// if you must retry your request, the server will know to ignore the
124024// request if it has already been completed. For example, consider a
124025// situation where you make an initial request and the request times
124026// out. If you make the request again with the same request ID, the
124027// server can check if original operation with the same request ID was
124028// received, and if so, will ignore the second request. This prevents
124029// clients from accidentally creating duplicate commitments. The request
124030// ID must be a valid UUID with the exception that zero UUID is not
124031// supported ( 00000000-0000-0000-0000-000000000000).
124032func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
124033	c.urlParams_.Set("requestId", requestId)
124034	return c
124035}
124036
124037// Fields allows partial responses to be retrieved. See
124038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124039// for more information.
124040func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
124041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124042	return c
124043}
124044
124045// Context sets the context to be used in this call's Do method. Any
124046// pending HTTP request will be aborted if the provided context is
124047// canceled.
124048func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
124049	c.ctx_ = ctx
124050	return c
124051}
124052
124053// Header returns an http.Header that can be modified by the caller to
124054// add HTTP headers to the request.
124055func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
124056	if c.header_ == nil {
124057		c.header_ = make(http.Header)
124058	}
124059	return c.header_
124060}
124061
124062func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
124063	reqHeaders := make(http.Header)
124064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124065	for k, v := range c.header_ {
124066		reqHeaders[k] = v
124067	}
124068	reqHeaders.Set("User-Agent", c.s.userAgent())
124069	var body io.Reader = nil
124070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
124071	if err != nil {
124072		return nil, err
124073	}
124074	reqHeaders.Set("Content-Type", "application/json")
124075	c.urlParams_.Set("alt", alt)
124076	c.urlParams_.Set("prettyPrint", "false")
124077	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
124078	urls += "?" + c.urlParams_.Encode()
124079	req, err := http.NewRequest("POST", urls, body)
124080	if err != nil {
124081		return nil, err
124082	}
124083	req.Header = reqHeaders
124084	googleapi.Expand(req.URL, map[string]string{
124085		"project":              c.project,
124086		"region":               c.region,
124087		"instanceGroupManager": c.instanceGroupManager,
124088	})
124089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124090}
124091
124092// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
124093// Exactly one of *Operation or error will be non-nil. Any non-2xx
124094// status code is an error. Response headers are in either
124095// *Operation.ServerResponse.Header or (if a response was returned at
124096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124097// to check whether the returned error was because
124098// http.StatusNotModified was returned.
124099func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124100	gensupport.SetOptions(c.urlParams_, opts...)
124101	res, err := c.doRequest("json")
124102	if res != nil && res.StatusCode == http.StatusNotModified {
124103		if res.Body != nil {
124104			res.Body.Close()
124105		}
124106		return nil, &googleapi.Error{
124107			Code:   res.StatusCode,
124108			Header: res.Header,
124109		}
124110	}
124111	if err != nil {
124112		return nil, err
124113	}
124114	defer googleapi.CloseBody(res)
124115	if err := googleapi.CheckResponse(res); err != nil {
124116		return nil, err
124117	}
124118	ret := &Operation{
124119		ServerResponse: googleapi.ServerResponse{
124120			Header:         res.Header,
124121			HTTPStatusCode: res.StatusCode,
124122		},
124123	}
124124	target := &ret
124125	if err := gensupport.DecodeResponse(target, res); err != nil {
124126		return nil, err
124127	}
124128	return ret, nil
124129	// {
124130	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
124131	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
124132	//   "httpMethod": "POST",
124133	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
124134	//   "parameterOrder": [
124135	//     "project",
124136	//     "region",
124137	//     "instanceGroupManager"
124138	//   ],
124139	//   "parameters": {
124140	//     "instanceGroupManager": {
124141	//       "description": "Name of the managed instance group.",
124142	//       "location": "path",
124143	//       "required": true,
124144	//       "type": "string"
124145	//     },
124146	//     "project": {
124147	//       "description": "Project ID for this request.",
124148	//       "location": "path",
124149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124150	//       "required": true,
124151	//       "type": "string"
124152	//     },
124153	//     "region": {
124154	//       "description": "Name of the region scoping this request.",
124155	//       "location": "path",
124156	//       "required": true,
124157	//       "type": "string"
124158	//     },
124159	//     "requestId": {
124160	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124161	//       "location": "query",
124162	//       "type": "string"
124163	//     }
124164	//   },
124165	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
124166	//   "request": {
124167	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
124168	//   },
124169	//   "response": {
124170	//     "$ref": "Operation"
124171	//   },
124172	//   "scopes": [
124173	//     "https://www.googleapis.com/auth/cloud-platform",
124174	//     "https://www.googleapis.com/auth/compute"
124175	//   ]
124176	// }
124177
124178}
124179
124180// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
124181
124182type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
124183	s                                              *Service
124184	project                                        string
124185	region                                         string
124186	instanceGroupManager                           string
124187	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
124188	urlParams_                                     gensupport.URLParams
124189	ctx_                                           context.Context
124190	header_                                        http.Header
124191}
124192
124193// ApplyUpdatesToInstances: Apply updates to selected instances the
124194// managed instance group.
124195//
124196// - instanceGroupManager: The name of the managed instance group,
124197//   should conform to RFC1035.
124198// - project: Project ID for this request.
124199// - region: Name of the region scoping this request, should conform to
124200//   RFC1035.
124201func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124202	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124203	c.project = project
124204	c.region = region
124205	c.instanceGroupManager = instanceGroupManager
124206	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
124207	return c
124208}
124209
124210// Fields allows partial responses to be retrieved. See
124211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124212// for more information.
124213func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124215	return c
124216}
124217
124218// Context sets the context to be used in this call's Do method. Any
124219// pending HTTP request will be aborted if the provided context is
124220// canceled.
124221func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124222	c.ctx_ = ctx
124223	return c
124224}
124225
124226// Header returns an http.Header that can be modified by the caller to
124227// add HTTP headers to the request.
124228func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
124229	if c.header_ == nil {
124230		c.header_ = make(http.Header)
124231	}
124232	return c.header_
124233}
124234
124235func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
124236	reqHeaders := make(http.Header)
124237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124238	for k, v := range c.header_ {
124239		reqHeaders[k] = v
124240	}
124241	reqHeaders.Set("User-Agent", c.s.userAgent())
124242	var body io.Reader = nil
124243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
124244	if err != nil {
124245		return nil, err
124246	}
124247	reqHeaders.Set("Content-Type", "application/json")
124248	c.urlParams_.Set("alt", alt)
124249	c.urlParams_.Set("prettyPrint", "false")
124250	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
124251	urls += "?" + c.urlParams_.Encode()
124252	req, err := http.NewRequest("POST", urls, body)
124253	if err != nil {
124254		return nil, err
124255	}
124256	req.Header = reqHeaders
124257	googleapi.Expand(req.URL, map[string]string{
124258		"project":              c.project,
124259		"region":               c.region,
124260		"instanceGroupManager": c.instanceGroupManager,
124261	})
124262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124263}
124264
124265// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
124266// Exactly one of *Operation or error will be non-nil. Any non-2xx
124267// status code is an error. Response headers are in either
124268// *Operation.ServerResponse.Header or (if a response was returned at
124269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124270// to check whether the returned error was because
124271// http.StatusNotModified was returned.
124272func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124273	gensupport.SetOptions(c.urlParams_, opts...)
124274	res, err := c.doRequest("json")
124275	if res != nil && res.StatusCode == http.StatusNotModified {
124276		if res.Body != nil {
124277			res.Body.Close()
124278		}
124279		return nil, &googleapi.Error{
124280			Code:   res.StatusCode,
124281			Header: res.Header,
124282		}
124283	}
124284	if err != nil {
124285		return nil, err
124286	}
124287	defer googleapi.CloseBody(res)
124288	if err := googleapi.CheckResponse(res); err != nil {
124289		return nil, err
124290	}
124291	ret := &Operation{
124292		ServerResponse: googleapi.ServerResponse{
124293			Header:         res.Header,
124294			HTTPStatusCode: res.StatusCode,
124295		},
124296	}
124297	target := &ret
124298	if err := gensupport.DecodeResponse(target, res); err != nil {
124299		return nil, err
124300	}
124301	return ret, nil
124302	// {
124303	//   "description": "Apply updates to selected instances the managed instance group.",
124304	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
124305	//   "httpMethod": "POST",
124306	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
124307	//   "parameterOrder": [
124308	//     "project",
124309	//     "region",
124310	//     "instanceGroupManager"
124311	//   ],
124312	//   "parameters": {
124313	//     "instanceGroupManager": {
124314	//       "description": "The name of the managed instance group, should conform to RFC1035.",
124315	//       "location": "path",
124316	//       "required": true,
124317	//       "type": "string"
124318	//     },
124319	//     "project": {
124320	//       "description": "Project ID for this request.",
124321	//       "location": "path",
124322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124323	//       "required": true,
124324	//       "type": "string"
124325	//     },
124326	//     "region": {
124327	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
124328	//       "location": "path",
124329	//       "required": true,
124330	//       "type": "string"
124331	//     }
124332	//   },
124333	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
124334	//   "request": {
124335	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
124336	//   },
124337	//   "response": {
124338	//     "$ref": "Operation"
124339	//   },
124340	//   "scopes": [
124341	//     "https://www.googleapis.com/auth/cloud-platform",
124342	//     "https://www.googleapis.com/auth/compute"
124343	//   ]
124344	// }
124345
124346}
124347
124348// method id "compute.regionInstanceGroupManagers.createInstances":
124349
124350type RegionInstanceGroupManagersCreateInstancesCall struct {
124351	s                                                 *Service
124352	project                                           string
124353	region                                            string
124354	instanceGroupManager                              string
124355	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
124356	urlParams_                                        gensupport.URLParams
124357	ctx_                                              context.Context
124358	header_                                           http.Header
124359}
124360
124361// CreateInstances: Creates instances with per-instance configs in this
124362// regional managed instance group. Instances are created using the
124363// current instance template. The create instances operation is marked
124364// DONE if the createInstances request is successful. The underlying
124365// actions take additional time. You must separately verify the status
124366// of the creating or actions with the listmanagedinstances method.
124367//
124368// - instanceGroupManager: The name of the managed instance group. It
124369//   should conform to RFC1035.
124370// - project: Project ID for this request.
124371// - region: The name of the region where the managed instance group is
124372//   located. It should conform to RFC1035.
124373func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
124374	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124375	c.project = project
124376	c.region = region
124377	c.instanceGroupManager = instanceGroupManager
124378	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
124379	return c
124380}
124381
124382// RequestId sets the optional parameter "requestId": An optional
124383// request ID to identify requests. Specify a unique request ID so that
124384// if you must retry your request, the server will know to ignore the
124385// request if it has already been completed. For example, consider a
124386// situation where you make an initial request and the request times
124387// out. If you make the request again with the same request ID, the
124388// server can check if original operation with the same request ID was
124389// received, and if so, will ignore the second request. The request ID
124390// must be a valid UUID with the exception that zero UUID is not
124391// supported ( 00000000-0000-0000-0000-000000000000).
124392func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
124393	c.urlParams_.Set("requestId", requestId)
124394	return c
124395}
124396
124397// Fields allows partial responses to be retrieved. See
124398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124399// for more information.
124400func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
124401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124402	return c
124403}
124404
124405// Context sets the context to be used in this call's Do method. Any
124406// pending HTTP request will be aborted if the provided context is
124407// canceled.
124408func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
124409	c.ctx_ = ctx
124410	return c
124411}
124412
124413// Header returns an http.Header that can be modified by the caller to
124414// add HTTP headers to the request.
124415func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
124416	if c.header_ == nil {
124417		c.header_ = make(http.Header)
124418	}
124419	return c.header_
124420}
124421
124422func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
124423	reqHeaders := make(http.Header)
124424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124425	for k, v := range c.header_ {
124426		reqHeaders[k] = v
124427	}
124428	reqHeaders.Set("User-Agent", c.s.userAgent())
124429	var body io.Reader = nil
124430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
124431	if err != nil {
124432		return nil, err
124433	}
124434	reqHeaders.Set("Content-Type", "application/json")
124435	c.urlParams_.Set("alt", alt)
124436	c.urlParams_.Set("prettyPrint", "false")
124437	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
124438	urls += "?" + c.urlParams_.Encode()
124439	req, err := http.NewRequest("POST", urls, body)
124440	if err != nil {
124441		return nil, err
124442	}
124443	req.Header = reqHeaders
124444	googleapi.Expand(req.URL, map[string]string{
124445		"project":              c.project,
124446		"region":               c.region,
124447		"instanceGroupManager": c.instanceGroupManager,
124448	})
124449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124450}
124451
124452// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
124453// Exactly one of *Operation or error will be non-nil. Any non-2xx
124454// status code is an error. Response headers are in either
124455// *Operation.ServerResponse.Header or (if a response was returned at
124456// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124457// to check whether the returned error was because
124458// http.StatusNotModified was returned.
124459func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124460	gensupport.SetOptions(c.urlParams_, opts...)
124461	res, err := c.doRequest("json")
124462	if res != nil && res.StatusCode == http.StatusNotModified {
124463		if res.Body != nil {
124464			res.Body.Close()
124465		}
124466		return nil, &googleapi.Error{
124467			Code:   res.StatusCode,
124468			Header: res.Header,
124469		}
124470	}
124471	if err != nil {
124472		return nil, err
124473	}
124474	defer googleapi.CloseBody(res)
124475	if err := googleapi.CheckResponse(res); err != nil {
124476		return nil, err
124477	}
124478	ret := &Operation{
124479		ServerResponse: googleapi.ServerResponse{
124480			Header:         res.Header,
124481			HTTPStatusCode: res.StatusCode,
124482		},
124483	}
124484	target := &ret
124485	if err := gensupport.DecodeResponse(target, res); err != nil {
124486		return nil, err
124487	}
124488	return ret, nil
124489	// {
124490	//   "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.",
124491	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
124492	//   "httpMethod": "POST",
124493	//   "id": "compute.regionInstanceGroupManagers.createInstances",
124494	//   "parameterOrder": [
124495	//     "project",
124496	//     "region",
124497	//     "instanceGroupManager"
124498	//   ],
124499	//   "parameters": {
124500	//     "instanceGroupManager": {
124501	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
124502	//       "location": "path",
124503	//       "required": true,
124504	//       "type": "string"
124505	//     },
124506	//     "project": {
124507	//       "description": "Project ID for this request.",
124508	//       "location": "path",
124509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124510	//       "required": true,
124511	//       "type": "string"
124512	//     },
124513	//     "region": {
124514	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
124515	//       "location": "path",
124516	//       "required": true,
124517	//       "type": "string"
124518	//     },
124519	//     "requestId": {
124520	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124521	//       "location": "query",
124522	//       "type": "string"
124523	//     }
124524	//   },
124525	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
124526	//   "request": {
124527	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
124528	//   },
124529	//   "response": {
124530	//     "$ref": "Operation"
124531	//   },
124532	//   "scopes": [
124533	//     "https://www.googleapis.com/auth/cloud-platform",
124534	//     "https://www.googleapis.com/auth/compute"
124535	//   ]
124536	// }
124537
124538}
124539
124540// method id "compute.regionInstanceGroupManagers.delete":
124541
124542type RegionInstanceGroupManagersDeleteCall struct {
124543	s                    *Service
124544	project              string
124545	region               string
124546	instanceGroupManager string
124547	urlParams_           gensupport.URLParams
124548	ctx_                 context.Context
124549	header_              http.Header
124550}
124551
124552// Delete: Deletes the specified managed instance group and all of the
124553// instances in that group.
124554//
124555// - instanceGroupManager: Name of the managed instance group to delete.
124556// - project: Project ID for this request.
124557// - region: Name of the region scoping this request.
124558func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
124559	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124560	c.project = project
124561	c.region = region
124562	c.instanceGroupManager = instanceGroupManager
124563	return c
124564}
124565
124566// RequestId sets the optional parameter "requestId": An optional
124567// request ID to identify requests. Specify a unique request ID so that
124568// if you must retry your request, the server will know to ignore the
124569// request if it has already been completed. For example, consider a
124570// situation where you make an initial request and the request times
124571// out. If you make the request again with the same request ID, the
124572// server can check if original operation with the same request ID was
124573// received, and if so, will ignore the second request. This prevents
124574// clients from accidentally creating duplicate commitments. The request
124575// ID must be a valid UUID with the exception that zero UUID is not
124576// supported ( 00000000-0000-0000-0000-000000000000).
124577func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
124578	c.urlParams_.Set("requestId", requestId)
124579	return c
124580}
124581
124582// Fields allows partial responses to be retrieved. See
124583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124584// for more information.
124585func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
124586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124587	return c
124588}
124589
124590// Context sets the context to be used in this call's Do method. Any
124591// pending HTTP request will be aborted if the provided context is
124592// canceled.
124593func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
124594	c.ctx_ = ctx
124595	return c
124596}
124597
124598// Header returns an http.Header that can be modified by the caller to
124599// add HTTP headers to the request.
124600func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
124601	if c.header_ == nil {
124602		c.header_ = make(http.Header)
124603	}
124604	return c.header_
124605}
124606
124607func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
124608	reqHeaders := make(http.Header)
124609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124610	for k, v := range c.header_ {
124611		reqHeaders[k] = v
124612	}
124613	reqHeaders.Set("User-Agent", c.s.userAgent())
124614	var body io.Reader = nil
124615	c.urlParams_.Set("alt", alt)
124616	c.urlParams_.Set("prettyPrint", "false")
124617	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
124618	urls += "?" + c.urlParams_.Encode()
124619	req, err := http.NewRequest("DELETE", urls, body)
124620	if err != nil {
124621		return nil, err
124622	}
124623	req.Header = reqHeaders
124624	googleapi.Expand(req.URL, map[string]string{
124625		"project":              c.project,
124626		"region":               c.region,
124627		"instanceGroupManager": c.instanceGroupManager,
124628	})
124629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124630}
124631
124632// Do executes the "compute.regionInstanceGroupManagers.delete" call.
124633// Exactly one of *Operation or error will be non-nil. Any non-2xx
124634// status code is an error. Response headers are in either
124635// *Operation.ServerResponse.Header or (if a response was returned at
124636// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124637// to check whether the returned error was because
124638// http.StatusNotModified was returned.
124639func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124640	gensupport.SetOptions(c.urlParams_, opts...)
124641	res, err := c.doRequest("json")
124642	if res != nil && res.StatusCode == http.StatusNotModified {
124643		if res.Body != nil {
124644			res.Body.Close()
124645		}
124646		return nil, &googleapi.Error{
124647			Code:   res.StatusCode,
124648			Header: res.Header,
124649		}
124650	}
124651	if err != nil {
124652		return nil, err
124653	}
124654	defer googleapi.CloseBody(res)
124655	if err := googleapi.CheckResponse(res); err != nil {
124656		return nil, err
124657	}
124658	ret := &Operation{
124659		ServerResponse: googleapi.ServerResponse{
124660			Header:         res.Header,
124661			HTTPStatusCode: res.StatusCode,
124662		},
124663	}
124664	target := &ret
124665	if err := gensupport.DecodeResponse(target, res); err != nil {
124666		return nil, err
124667	}
124668	return ret, nil
124669	// {
124670	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
124671	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
124672	//   "httpMethod": "DELETE",
124673	//   "id": "compute.regionInstanceGroupManagers.delete",
124674	//   "parameterOrder": [
124675	//     "project",
124676	//     "region",
124677	//     "instanceGroupManager"
124678	//   ],
124679	//   "parameters": {
124680	//     "instanceGroupManager": {
124681	//       "description": "Name of the managed instance group to delete.",
124682	//       "location": "path",
124683	//       "required": true,
124684	//       "type": "string"
124685	//     },
124686	//     "project": {
124687	//       "description": "Project ID for this request.",
124688	//       "location": "path",
124689	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124690	//       "required": true,
124691	//       "type": "string"
124692	//     },
124693	//     "region": {
124694	//       "description": "Name of the region scoping this request.",
124695	//       "location": "path",
124696	//       "required": true,
124697	//       "type": "string"
124698	//     },
124699	//     "requestId": {
124700	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124701	//       "location": "query",
124702	//       "type": "string"
124703	//     }
124704	//   },
124705	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
124706	//   "response": {
124707	//     "$ref": "Operation"
124708	//   },
124709	//   "scopes": [
124710	//     "https://www.googleapis.com/auth/cloud-platform",
124711	//     "https://www.googleapis.com/auth/compute"
124712	//   ]
124713	// }
124714
124715}
124716
124717// method id "compute.regionInstanceGroupManagers.deleteInstances":
124718
124719type RegionInstanceGroupManagersDeleteInstancesCall struct {
124720	s                                                 *Service
124721	project                                           string
124722	region                                            string
124723	instanceGroupManager                              string
124724	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
124725	urlParams_                                        gensupport.URLParams
124726	ctx_                                              context.Context
124727	header_                                           http.Header
124728}
124729
124730// DeleteInstances: Flags the specified instances in the managed
124731// instance group to be immediately deleted. The instances are also
124732// removed from any target pools of which they were a member. This
124733// method reduces the targetSize of the managed instance group by the
124734// number of instances that you delete. The deleteInstances operation is
124735// marked DONE if the deleteInstances request is successful. The
124736// underlying actions take additional time. You must separately verify
124737// the status of the deleting action with the listmanagedinstances
124738// method. If the group is part of a backend service that has enabled
124739// connection draining, it can take up to 60 seconds after the
124740// connection draining duration has elapsed before the VM instance is
124741// removed or deleted. You can specify a maximum of 1000 instances with
124742// this method per request.
124743//
124744// - instanceGroupManager: Name of the managed instance group.
124745// - project: Project ID for this request.
124746// - region: Name of the region scoping this request.
124747func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
124748	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124749	c.project = project
124750	c.region = region
124751	c.instanceGroupManager = instanceGroupManager
124752	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
124753	return c
124754}
124755
124756// RequestId sets the optional parameter "requestId": An optional
124757// request ID to identify requests. Specify a unique request ID so that
124758// if you must retry your request, the server will know to ignore the
124759// request if it has already been completed. For example, consider a
124760// situation where you make an initial request and the request times
124761// out. If you make the request again with the same request ID, the
124762// server can check if original operation with the same request ID was
124763// received, and if so, will ignore the second request. This prevents
124764// clients from accidentally creating duplicate commitments. The request
124765// ID must be a valid UUID with the exception that zero UUID is not
124766// supported ( 00000000-0000-0000-0000-000000000000).
124767func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
124768	c.urlParams_.Set("requestId", requestId)
124769	return c
124770}
124771
124772// Fields allows partial responses to be retrieved. See
124773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124774// for more information.
124775func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
124776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124777	return c
124778}
124779
124780// Context sets the context to be used in this call's Do method. Any
124781// pending HTTP request will be aborted if the provided context is
124782// canceled.
124783func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
124784	c.ctx_ = ctx
124785	return c
124786}
124787
124788// Header returns an http.Header that can be modified by the caller to
124789// add HTTP headers to the request.
124790func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
124791	if c.header_ == nil {
124792		c.header_ = make(http.Header)
124793	}
124794	return c.header_
124795}
124796
124797func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
124798	reqHeaders := make(http.Header)
124799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124800	for k, v := range c.header_ {
124801		reqHeaders[k] = v
124802	}
124803	reqHeaders.Set("User-Agent", c.s.userAgent())
124804	var body io.Reader = nil
124805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
124806	if err != nil {
124807		return nil, err
124808	}
124809	reqHeaders.Set("Content-Type", "application/json")
124810	c.urlParams_.Set("alt", alt)
124811	c.urlParams_.Set("prettyPrint", "false")
124812	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
124813	urls += "?" + c.urlParams_.Encode()
124814	req, err := http.NewRequest("POST", urls, body)
124815	if err != nil {
124816		return nil, err
124817	}
124818	req.Header = reqHeaders
124819	googleapi.Expand(req.URL, map[string]string{
124820		"project":              c.project,
124821		"region":               c.region,
124822		"instanceGroupManager": c.instanceGroupManager,
124823	})
124824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124825}
124826
124827// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
124828// Exactly one of *Operation or error will be non-nil. Any non-2xx
124829// status code is an error. Response headers are in either
124830// *Operation.ServerResponse.Header or (if a response was returned at
124831// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124832// to check whether the returned error was because
124833// http.StatusNotModified was returned.
124834func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124835	gensupport.SetOptions(c.urlParams_, opts...)
124836	res, err := c.doRequest("json")
124837	if res != nil && res.StatusCode == http.StatusNotModified {
124838		if res.Body != nil {
124839			res.Body.Close()
124840		}
124841		return nil, &googleapi.Error{
124842			Code:   res.StatusCode,
124843			Header: res.Header,
124844		}
124845	}
124846	if err != nil {
124847		return nil, err
124848	}
124849	defer googleapi.CloseBody(res)
124850	if err := googleapi.CheckResponse(res); err != nil {
124851		return nil, err
124852	}
124853	ret := &Operation{
124854		ServerResponse: googleapi.ServerResponse{
124855			Header:         res.Header,
124856			HTTPStatusCode: res.StatusCode,
124857		},
124858	}
124859	target := &ret
124860	if err := gensupport.DecodeResponse(target, res); err != nil {
124861		return nil, err
124862	}
124863	return ret, nil
124864	// {
124865	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
124866	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
124867	//   "httpMethod": "POST",
124868	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
124869	//   "parameterOrder": [
124870	//     "project",
124871	//     "region",
124872	//     "instanceGroupManager"
124873	//   ],
124874	//   "parameters": {
124875	//     "instanceGroupManager": {
124876	//       "description": "Name of the managed instance group.",
124877	//       "location": "path",
124878	//       "required": true,
124879	//       "type": "string"
124880	//     },
124881	//     "project": {
124882	//       "description": "Project ID for this request.",
124883	//       "location": "path",
124884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124885	//       "required": true,
124886	//       "type": "string"
124887	//     },
124888	//     "region": {
124889	//       "description": "Name of the region scoping this request.",
124890	//       "location": "path",
124891	//       "required": true,
124892	//       "type": "string"
124893	//     },
124894	//     "requestId": {
124895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124896	//       "location": "query",
124897	//       "type": "string"
124898	//     }
124899	//   },
124900	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
124901	//   "request": {
124902	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
124903	//   },
124904	//   "response": {
124905	//     "$ref": "Operation"
124906	//   },
124907	//   "scopes": [
124908	//     "https://www.googleapis.com/auth/cloud-platform",
124909	//     "https://www.googleapis.com/auth/compute"
124910	//   ]
124911	// }
124912
124913}
124914
124915// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
124916
124917type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
124918	s                                                 *Service
124919	project                                           string
124920	region                                            string
124921	instanceGroupManager                              string
124922	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
124923	urlParams_                                        gensupport.URLParams
124924	ctx_                                              context.Context
124925	header_                                           http.Header
124926}
124927
124928// DeletePerInstanceConfigs: Deletes selected per-instance configs for
124929// the managed instance group.
124930//
124931// - instanceGroupManager: The name of the managed instance group. It
124932//   should conform to RFC1035.
124933// - project: Project ID for this request.
124934// - region: Name of the region scoping this request, should conform to
124935//   RFC1035.
124936func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
124937	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124938	c.project = project
124939	c.region = region
124940	c.instanceGroupManager = instanceGroupManager
124941	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
124942	return c
124943}
124944
124945// Fields allows partial responses to be retrieved. See
124946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124947// for more information.
124948func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
124949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124950	return c
124951}
124952
124953// Context sets the context to be used in this call's Do method. Any
124954// pending HTTP request will be aborted if the provided context is
124955// canceled.
124956func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
124957	c.ctx_ = ctx
124958	return c
124959}
124960
124961// Header returns an http.Header that can be modified by the caller to
124962// add HTTP headers to the request.
124963func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
124964	if c.header_ == nil {
124965		c.header_ = make(http.Header)
124966	}
124967	return c.header_
124968}
124969
124970func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
124971	reqHeaders := make(http.Header)
124972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
124973	for k, v := range c.header_ {
124974		reqHeaders[k] = v
124975	}
124976	reqHeaders.Set("User-Agent", c.s.userAgent())
124977	var body io.Reader = nil
124978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
124979	if err != nil {
124980		return nil, err
124981	}
124982	reqHeaders.Set("Content-Type", "application/json")
124983	c.urlParams_.Set("alt", alt)
124984	c.urlParams_.Set("prettyPrint", "false")
124985	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
124986	urls += "?" + c.urlParams_.Encode()
124987	req, err := http.NewRequest("POST", urls, body)
124988	if err != nil {
124989		return nil, err
124990	}
124991	req.Header = reqHeaders
124992	googleapi.Expand(req.URL, map[string]string{
124993		"project":              c.project,
124994		"region":               c.region,
124995		"instanceGroupManager": c.instanceGroupManager,
124996	})
124997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124998}
124999
125000// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
125001// Exactly one of *Operation or error will be non-nil. Any non-2xx
125002// status code is an error. Response headers are in either
125003// *Operation.ServerResponse.Header or (if a response was returned at
125004// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125005// to check whether the returned error was because
125006// http.StatusNotModified was returned.
125007func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125008	gensupport.SetOptions(c.urlParams_, opts...)
125009	res, err := c.doRequest("json")
125010	if res != nil && res.StatusCode == http.StatusNotModified {
125011		if res.Body != nil {
125012			res.Body.Close()
125013		}
125014		return nil, &googleapi.Error{
125015			Code:   res.StatusCode,
125016			Header: res.Header,
125017		}
125018	}
125019	if err != nil {
125020		return nil, err
125021	}
125022	defer googleapi.CloseBody(res)
125023	if err := googleapi.CheckResponse(res); err != nil {
125024		return nil, err
125025	}
125026	ret := &Operation{
125027		ServerResponse: googleapi.ServerResponse{
125028			Header:         res.Header,
125029			HTTPStatusCode: res.StatusCode,
125030		},
125031	}
125032	target := &ret
125033	if err := gensupport.DecodeResponse(target, res); err != nil {
125034		return nil, err
125035	}
125036	return ret, nil
125037	// {
125038	//   "description": "Deletes selected per-instance configs for the managed instance group.",
125039	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
125040	//   "httpMethod": "POST",
125041	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
125042	//   "parameterOrder": [
125043	//     "project",
125044	//     "region",
125045	//     "instanceGroupManager"
125046	//   ],
125047	//   "parameters": {
125048	//     "instanceGroupManager": {
125049	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
125050	//       "location": "path",
125051	//       "required": true,
125052	//       "type": "string"
125053	//     },
125054	//     "project": {
125055	//       "description": "Project ID for this request.",
125056	//       "location": "path",
125057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125058	//       "required": true,
125059	//       "type": "string"
125060	//     },
125061	//     "region": {
125062	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
125063	//       "location": "path",
125064	//       "required": true,
125065	//       "type": "string"
125066	//     }
125067	//   },
125068	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
125069	//   "request": {
125070	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
125071	//   },
125072	//   "response": {
125073	//     "$ref": "Operation"
125074	//   },
125075	//   "scopes": [
125076	//     "https://www.googleapis.com/auth/cloud-platform",
125077	//     "https://www.googleapis.com/auth/compute"
125078	//   ]
125079	// }
125080
125081}
125082
125083// method id "compute.regionInstanceGroupManagers.get":
125084
125085type RegionInstanceGroupManagersGetCall struct {
125086	s                    *Service
125087	project              string
125088	region               string
125089	instanceGroupManager string
125090	urlParams_           gensupport.URLParams
125091	ifNoneMatch_         string
125092	ctx_                 context.Context
125093	header_              http.Header
125094}
125095
125096// Get: Returns all of the details about the specified managed instance
125097// group.
125098//
125099// - instanceGroupManager: Name of the managed instance group to return.
125100// - project: Project ID for this request.
125101// - region: Name of the region scoping this request.
125102func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
125103	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125104	c.project = project
125105	c.region = region
125106	c.instanceGroupManager = instanceGroupManager
125107	return c
125108}
125109
125110// Fields allows partial responses to be retrieved. See
125111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125112// for more information.
125113func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
125114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125115	return c
125116}
125117
125118// IfNoneMatch sets the optional parameter which makes the operation
125119// fail if the object's ETag matches the given value. This is useful for
125120// getting updates only after the object has changed since the last
125121// request. Use googleapi.IsNotModified to check whether the response
125122// error from Do is the result of In-None-Match.
125123func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
125124	c.ifNoneMatch_ = entityTag
125125	return c
125126}
125127
125128// Context sets the context to be used in this call's Do method. Any
125129// pending HTTP request will be aborted if the provided context is
125130// canceled.
125131func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
125132	c.ctx_ = ctx
125133	return c
125134}
125135
125136// Header returns an http.Header that can be modified by the caller to
125137// add HTTP headers to the request.
125138func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
125139	if c.header_ == nil {
125140		c.header_ = make(http.Header)
125141	}
125142	return c.header_
125143}
125144
125145func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
125146	reqHeaders := make(http.Header)
125147	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
125148	for k, v := range c.header_ {
125149		reqHeaders[k] = v
125150	}
125151	reqHeaders.Set("User-Agent", c.s.userAgent())
125152	if c.ifNoneMatch_ != "" {
125153		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125154	}
125155	var body io.Reader = nil
125156	c.urlParams_.Set("alt", alt)
125157	c.urlParams_.Set("prettyPrint", "false")
125158	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
125159	urls += "?" + c.urlParams_.Encode()
125160	req, err := http.NewRequest("GET", urls, body)
125161	if err != nil {
125162		return nil, err
125163	}
125164	req.Header = reqHeaders
125165	googleapi.Expand(req.URL, map[string]string{
125166		"project":              c.project,
125167		"region":               c.region,
125168		"instanceGroupManager": c.instanceGroupManager,
125169	})
125170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125171}
125172
125173// Do executes the "compute.regionInstanceGroupManagers.get" call.
125174// Exactly one of *InstanceGroupManager or error will be non-nil. Any
125175// non-2xx status code is an error. Response headers are in either
125176// *InstanceGroupManager.ServerResponse.Header or (if a response was
125177// returned at all) in error.(*googleapi.Error).Header. Use
125178// googleapi.IsNotModified to check whether the returned error was
125179// because http.StatusNotModified was returned.
125180func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
125181	gensupport.SetOptions(c.urlParams_, opts...)
125182	res, err := c.doRequest("json")
125183	if res != nil && res.StatusCode == http.StatusNotModified {
125184		if res.Body != nil {
125185			res.Body.Close()
125186		}
125187		return nil, &googleapi.Error{
125188			Code:   res.StatusCode,
125189			Header: res.Header,
125190		}
125191	}
125192	if err != nil {
125193		return nil, err
125194	}
125195	defer googleapi.CloseBody(res)
125196	if err := googleapi.CheckResponse(res); err != nil {
125197		return nil, err
125198	}
125199	ret := &InstanceGroupManager{
125200		ServerResponse: googleapi.ServerResponse{
125201			Header:         res.Header,
125202			HTTPStatusCode: res.StatusCode,
125203		},
125204	}
125205	target := &ret
125206	if err := gensupport.DecodeResponse(target, res); err != nil {
125207		return nil, err
125208	}
125209	return ret, nil
125210	// {
125211	//   "description": "Returns all of the details about the specified managed instance group.",
125212	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125213	//   "httpMethod": "GET",
125214	//   "id": "compute.regionInstanceGroupManagers.get",
125215	//   "parameterOrder": [
125216	//     "project",
125217	//     "region",
125218	//     "instanceGroupManager"
125219	//   ],
125220	//   "parameters": {
125221	//     "instanceGroupManager": {
125222	//       "description": "Name of the managed instance group to return.",
125223	//       "location": "path",
125224	//       "required": true,
125225	//       "type": "string"
125226	//     },
125227	//     "project": {
125228	//       "description": "Project ID for this request.",
125229	//       "location": "path",
125230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125231	//       "required": true,
125232	//       "type": "string"
125233	//     },
125234	//     "region": {
125235	//       "description": "Name of the region scoping this request.",
125236	//       "location": "path",
125237	//       "required": true,
125238	//       "type": "string"
125239	//     }
125240	//   },
125241	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125242	//   "response": {
125243	//     "$ref": "InstanceGroupManager"
125244	//   },
125245	//   "scopes": [
125246	//     "https://www.googleapis.com/auth/cloud-platform",
125247	//     "https://www.googleapis.com/auth/compute",
125248	//     "https://www.googleapis.com/auth/compute.readonly"
125249	//   ]
125250	// }
125251
125252}
125253
125254// method id "compute.regionInstanceGroupManagers.insert":
125255
125256type RegionInstanceGroupManagersInsertCall struct {
125257	s                    *Service
125258	project              string
125259	region               string
125260	instancegroupmanager *InstanceGroupManager
125261	urlParams_           gensupport.URLParams
125262	ctx_                 context.Context
125263	header_              http.Header
125264}
125265
125266// Insert: Creates a managed instance group using the information that
125267// you specify in the request. After the group is created, instances in
125268// the group are created using the specified instance template. This
125269// operation is marked as DONE when the group is created even if the
125270// instances in the group have not yet been created. You must separately
125271// verify the status of the individual instances with the
125272// listmanagedinstances method. A regional managed instance group can
125273// contain up to 2000 instances.
125274//
125275// - project: Project ID for this request.
125276// - region: Name of the region scoping this request.
125277func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
125278	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125279	c.project = project
125280	c.region = region
125281	c.instancegroupmanager = instancegroupmanager
125282	return c
125283}
125284
125285// RequestId sets the optional parameter "requestId": An optional
125286// request ID to identify requests. Specify a unique request ID so that
125287// if you must retry your request, the server will know to ignore the
125288// request if it has already been completed. For example, consider a
125289// situation where you make an initial request and the request times
125290// out. If you make the request again with the same request ID, the
125291// server can check if original operation with the same request ID was
125292// received, and if so, will ignore the second request. This prevents
125293// clients from accidentally creating duplicate commitments. The request
125294// ID must be a valid UUID with the exception that zero UUID is not
125295// supported ( 00000000-0000-0000-0000-000000000000).
125296func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
125297	c.urlParams_.Set("requestId", requestId)
125298	return c
125299}
125300
125301// Fields allows partial responses to be retrieved. See
125302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125303// for more information.
125304func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
125305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125306	return c
125307}
125308
125309// Context sets the context to be used in this call's Do method. Any
125310// pending HTTP request will be aborted if the provided context is
125311// canceled.
125312func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
125313	c.ctx_ = ctx
125314	return c
125315}
125316
125317// Header returns an http.Header that can be modified by the caller to
125318// add HTTP headers to the request.
125319func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
125320	if c.header_ == nil {
125321		c.header_ = make(http.Header)
125322	}
125323	return c.header_
125324}
125325
125326func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
125327	reqHeaders := make(http.Header)
125328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
125329	for k, v := range c.header_ {
125330		reqHeaders[k] = v
125331	}
125332	reqHeaders.Set("User-Agent", c.s.userAgent())
125333	var body io.Reader = nil
125334	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
125335	if err != nil {
125336		return nil, err
125337	}
125338	reqHeaders.Set("Content-Type", "application/json")
125339	c.urlParams_.Set("alt", alt)
125340	c.urlParams_.Set("prettyPrint", "false")
125341	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
125342	urls += "?" + c.urlParams_.Encode()
125343	req, err := http.NewRequest("POST", urls, body)
125344	if err != nil {
125345		return nil, err
125346	}
125347	req.Header = reqHeaders
125348	googleapi.Expand(req.URL, map[string]string{
125349		"project": c.project,
125350		"region":  c.region,
125351	})
125352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125353}
125354
125355// Do executes the "compute.regionInstanceGroupManagers.insert" call.
125356// Exactly one of *Operation or error will be non-nil. Any non-2xx
125357// status code is an error. Response headers are in either
125358// *Operation.ServerResponse.Header or (if a response was returned at
125359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125360// to check whether the returned error was because
125361// http.StatusNotModified was returned.
125362func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125363	gensupport.SetOptions(c.urlParams_, opts...)
125364	res, err := c.doRequest("json")
125365	if res != nil && res.StatusCode == http.StatusNotModified {
125366		if res.Body != nil {
125367			res.Body.Close()
125368		}
125369		return nil, &googleapi.Error{
125370			Code:   res.StatusCode,
125371			Header: res.Header,
125372		}
125373	}
125374	if err != nil {
125375		return nil, err
125376	}
125377	defer googleapi.CloseBody(res)
125378	if err := googleapi.CheckResponse(res); err != nil {
125379		return nil, err
125380	}
125381	ret := &Operation{
125382		ServerResponse: googleapi.ServerResponse{
125383			Header:         res.Header,
125384			HTTPStatusCode: res.StatusCode,
125385		},
125386	}
125387	target := &ret
125388	if err := gensupport.DecodeResponse(target, res); err != nil {
125389		return nil, err
125390	}
125391	return ret, nil
125392	// {
125393	//   "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. A regional managed instance group can contain up to 2000 instances.",
125394	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers",
125395	//   "httpMethod": "POST",
125396	//   "id": "compute.regionInstanceGroupManagers.insert",
125397	//   "parameterOrder": [
125398	//     "project",
125399	//     "region"
125400	//   ],
125401	//   "parameters": {
125402	//     "project": {
125403	//       "description": "Project ID for this request.",
125404	//       "location": "path",
125405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125406	//       "required": true,
125407	//       "type": "string"
125408	//     },
125409	//     "region": {
125410	//       "description": "Name of the region scoping this request.",
125411	//       "location": "path",
125412	//       "required": true,
125413	//       "type": "string"
125414	//     },
125415	//     "requestId": {
125416	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
125417	//       "location": "query",
125418	//       "type": "string"
125419	//     }
125420	//   },
125421	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
125422	//   "request": {
125423	//     "$ref": "InstanceGroupManager"
125424	//   },
125425	//   "response": {
125426	//     "$ref": "Operation"
125427	//   },
125428	//   "scopes": [
125429	//     "https://www.googleapis.com/auth/cloud-platform",
125430	//     "https://www.googleapis.com/auth/compute"
125431	//   ]
125432	// }
125433
125434}
125435
125436// method id "compute.regionInstanceGroupManagers.list":
125437
125438type RegionInstanceGroupManagersListCall struct {
125439	s            *Service
125440	project      string
125441	region       string
125442	urlParams_   gensupport.URLParams
125443	ifNoneMatch_ string
125444	ctx_         context.Context
125445	header_      http.Header
125446}
125447
125448// List: Retrieves the list of managed instance groups that are
125449// contained within the specified region.
125450//
125451// - project: Project ID for this request.
125452// - region: Name of the region scoping this request.
125453func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
125454	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125455	c.project = project
125456	c.region = region
125457	return c
125458}
125459
125460// Filter sets the optional parameter "filter": A filter expression that
125461// filters resources listed in the response. The expression must specify
125462// the field name, a comparison operator, and the value that you want to
125463// use for filtering. The value must be a string, a number, or a
125464// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125465// `<`. For example, if you are filtering Compute Engine instances, you
125466// can exclude instances named `example-instance` by specifying `name !=
125467// example-instance`. You can also filter nested fields. For example,
125468// you could specify `scheduling.automaticRestart = false` to include
125469// instances only if they are not scheduled for automatic restarts. You
125470// can use filtering on nested fields to filter based on resource
125471// labels. To filter on multiple expressions, provide each separate
125472// expression within parentheses. For example: ```
125473// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
125474// ``` By default, each expression is an `AND` expression. However, you
125475// can include `AND` and `OR` expressions explicitly. For example: ```
125476// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
125477// AND (scheduling.automaticRestart = true) ```
125478func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
125479	c.urlParams_.Set("filter", filter)
125480	return c
125481}
125482
125483// MaxResults sets the optional parameter "maxResults": The maximum
125484// number of results per page that should be returned. If the number of
125485// available results is larger than `maxResults`, Compute Engine returns
125486// a `nextPageToken` that can be used to get the next page of results in
125487// subsequent list requests. Acceptable values are `0` to `500`,
125488// inclusive. (Default: `500`)
125489func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
125490	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125491	return c
125492}
125493
125494// OrderBy sets the optional parameter "orderBy": Sorts list results by
125495// a certain order. By default, results are returned in alphanumerical
125496// order based on the resource name. You can also sort results in
125497// descending order based on the creation timestamp using
125498// `orderBy="creationTimestamp desc". This sorts results based on the
125499// `creationTimestamp` field in reverse chronological order (newest
125500// result first). Use this to sort resources like operations so that the
125501// newest operation is returned first. Currently, only sorting by `name`
125502// or `creationTimestamp desc` is supported.
125503func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
125504	c.urlParams_.Set("orderBy", orderBy)
125505	return c
125506}
125507
125508// PageToken sets the optional parameter "pageToken": Specifies a page
125509// token to use. Set `pageToken` to the `nextPageToken` returned by a
125510// previous list request to get the next page of results.
125511func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
125512	c.urlParams_.Set("pageToken", pageToken)
125513	return c
125514}
125515
125516// ReturnPartialSuccess sets the optional parameter
125517// "returnPartialSuccess": Opt-in for partial success behavior which
125518// provides partial results in case of failure. The default value is
125519// false.
125520func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
125521	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125522	return c
125523}
125524
125525// Fields allows partial responses to be retrieved. See
125526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125527// for more information.
125528func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
125529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125530	return c
125531}
125532
125533// IfNoneMatch sets the optional parameter which makes the operation
125534// fail if the object's ETag matches the given value. This is useful for
125535// getting updates only after the object has changed since the last
125536// request. Use googleapi.IsNotModified to check whether the response
125537// error from Do is the result of In-None-Match.
125538func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
125539	c.ifNoneMatch_ = entityTag
125540	return c
125541}
125542
125543// Context sets the context to be used in this call's Do method. Any
125544// pending HTTP request will be aborted if the provided context is
125545// canceled.
125546func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
125547	c.ctx_ = ctx
125548	return c
125549}
125550
125551// Header returns an http.Header that can be modified by the caller to
125552// add HTTP headers to the request.
125553func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
125554	if c.header_ == nil {
125555		c.header_ = make(http.Header)
125556	}
125557	return c.header_
125558}
125559
125560func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
125561	reqHeaders := make(http.Header)
125562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
125563	for k, v := range c.header_ {
125564		reqHeaders[k] = v
125565	}
125566	reqHeaders.Set("User-Agent", c.s.userAgent())
125567	if c.ifNoneMatch_ != "" {
125568		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125569	}
125570	var body io.Reader = nil
125571	c.urlParams_.Set("alt", alt)
125572	c.urlParams_.Set("prettyPrint", "false")
125573	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
125574	urls += "?" + c.urlParams_.Encode()
125575	req, err := http.NewRequest("GET", urls, body)
125576	if err != nil {
125577		return nil, err
125578	}
125579	req.Header = reqHeaders
125580	googleapi.Expand(req.URL, map[string]string{
125581		"project": c.project,
125582		"region":  c.region,
125583	})
125584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125585}
125586
125587// Do executes the "compute.regionInstanceGroupManagers.list" call.
125588// Exactly one of *RegionInstanceGroupManagerList or error will be
125589// non-nil. Any non-2xx status code is an error. Response headers are in
125590// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
125591// response was returned at all) in error.(*googleapi.Error).Header. Use
125592// googleapi.IsNotModified to check whether the returned error was
125593// because http.StatusNotModified was returned.
125594func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
125595	gensupport.SetOptions(c.urlParams_, opts...)
125596	res, err := c.doRequest("json")
125597	if res != nil && res.StatusCode == http.StatusNotModified {
125598		if res.Body != nil {
125599			res.Body.Close()
125600		}
125601		return nil, &googleapi.Error{
125602			Code:   res.StatusCode,
125603			Header: res.Header,
125604		}
125605	}
125606	if err != nil {
125607		return nil, err
125608	}
125609	defer googleapi.CloseBody(res)
125610	if err := googleapi.CheckResponse(res); err != nil {
125611		return nil, err
125612	}
125613	ret := &RegionInstanceGroupManagerList{
125614		ServerResponse: googleapi.ServerResponse{
125615			Header:         res.Header,
125616			HTTPStatusCode: res.StatusCode,
125617		},
125618	}
125619	target := &ret
125620	if err := gensupport.DecodeResponse(target, res); err != nil {
125621		return nil, err
125622	}
125623	return ret, nil
125624	// {
125625	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
125626	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers",
125627	//   "httpMethod": "GET",
125628	//   "id": "compute.regionInstanceGroupManagers.list",
125629	//   "parameterOrder": [
125630	//     "project",
125631	//     "region"
125632	//   ],
125633	//   "parameters": {
125634	//     "filter": {
125635	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125636	//       "location": "query",
125637	//       "type": "string"
125638	//     },
125639	//     "maxResults": {
125640	//       "default": "500",
125641	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125642	//       "format": "uint32",
125643	//       "location": "query",
125644	//       "minimum": "0",
125645	//       "type": "integer"
125646	//     },
125647	//     "orderBy": {
125648	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
125649	//       "location": "query",
125650	//       "type": "string"
125651	//     },
125652	//     "pageToken": {
125653	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125654	//       "location": "query",
125655	//       "type": "string"
125656	//     },
125657	//     "project": {
125658	//       "description": "Project ID for this request.",
125659	//       "location": "path",
125660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125661	//       "required": true,
125662	//       "type": "string"
125663	//     },
125664	//     "region": {
125665	//       "description": "Name of the region scoping this request.",
125666	//       "location": "path",
125667	//       "required": true,
125668	//       "type": "string"
125669	//     },
125670	//     "returnPartialSuccess": {
125671	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125672	//       "location": "query",
125673	//       "type": "boolean"
125674	//     }
125675	//   },
125676	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
125677	//   "response": {
125678	//     "$ref": "RegionInstanceGroupManagerList"
125679	//   },
125680	//   "scopes": [
125681	//     "https://www.googleapis.com/auth/cloud-platform",
125682	//     "https://www.googleapis.com/auth/compute",
125683	//     "https://www.googleapis.com/auth/compute.readonly"
125684	//   ]
125685	// }
125686
125687}
125688
125689// Pages invokes f for each page of results.
125690// A non-nil error returned from f will halt the iteration.
125691// The provided context supersedes any context provided to the Context method.
125692func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
125693	c.ctx_ = ctx
125694	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125695	for {
125696		x, err := c.Do()
125697		if err != nil {
125698			return err
125699		}
125700		if err := f(x); err != nil {
125701			return err
125702		}
125703		if x.NextPageToken == "" {
125704			return nil
125705		}
125706		c.PageToken(x.NextPageToken)
125707	}
125708}
125709
125710// method id "compute.regionInstanceGroupManagers.listErrors":
125711
125712type RegionInstanceGroupManagersListErrorsCall struct {
125713	s                    *Service
125714	project              string
125715	region               string
125716	instanceGroupManager string
125717	urlParams_           gensupport.URLParams
125718	ifNoneMatch_         string
125719	ctx_                 context.Context
125720	header_              http.Header
125721}
125722
125723// ListErrors: Lists all errors thrown by actions on instances for a
125724// given regional managed instance group. The filter and orderBy query
125725// parameters are not supported.
125726//
125727// - instanceGroupManager: The name of the managed instance group. It
125728//   must be a string that meets the requirements in RFC1035, or an
125729//   unsigned long integer: must match regexp pattern: (?:a-z
125730//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.
125731// - project: Project ID for this request.
125732// - region: Name of the region scoping this request. This should
125733//   conform to RFC1035.
125734func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
125735	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125736	c.project = project
125737	c.region = region
125738	c.instanceGroupManager = instanceGroupManager
125739	return c
125740}
125741
125742// Filter sets the optional parameter "filter": A filter expression that
125743// filters resources listed in the response. The expression must specify
125744// the field name, a comparison operator, and the value that you want to
125745// use for filtering. The value must be a string, a number, or a
125746// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125747// `<`. For example, if you are filtering Compute Engine instances, you
125748// can exclude instances named `example-instance` by specifying `name !=
125749// example-instance`. You can also filter nested fields. For example,
125750// you could specify `scheduling.automaticRestart = false` to include
125751// instances only if they are not scheduled for automatic restarts. You
125752// can use filtering on nested fields to filter based on resource
125753// labels. To filter on multiple expressions, provide each separate
125754// expression within parentheses. For example: ```
125755// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
125756// ``` By default, each expression is an `AND` expression. However, you
125757// can include `AND` and `OR` expressions explicitly. For example: ```
125758// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
125759// AND (scheduling.automaticRestart = true) ```
125760func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
125761	c.urlParams_.Set("filter", filter)
125762	return c
125763}
125764
125765// MaxResults sets the optional parameter "maxResults": The maximum
125766// number of results per page that should be returned. If the number of
125767// available results is larger than `maxResults`, Compute Engine returns
125768// a `nextPageToken` that can be used to get the next page of results in
125769// subsequent list requests. Acceptable values are `0` to `500`,
125770// inclusive. (Default: `500`)
125771func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
125772	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125773	return c
125774}
125775
125776// OrderBy sets the optional parameter "orderBy": Sorts list results by
125777// a certain order. By default, results are returned in alphanumerical
125778// order based on the resource name. You can also sort results in
125779// descending order based on the creation timestamp using
125780// `orderBy="creationTimestamp desc". This sorts results based on the
125781// `creationTimestamp` field in reverse chronological order (newest
125782// result first). Use this to sort resources like operations so that the
125783// newest operation is returned first. Currently, only sorting by `name`
125784// or `creationTimestamp desc` is supported.
125785func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
125786	c.urlParams_.Set("orderBy", orderBy)
125787	return c
125788}
125789
125790// PageToken sets the optional parameter "pageToken": Specifies a page
125791// token to use. Set `pageToken` to the `nextPageToken` returned by a
125792// previous list request to get the next page of results.
125793func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
125794	c.urlParams_.Set("pageToken", pageToken)
125795	return c
125796}
125797
125798// ReturnPartialSuccess sets the optional parameter
125799// "returnPartialSuccess": Opt-in for partial success behavior which
125800// provides partial results in case of failure. The default value is
125801// false.
125802func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
125803	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125804	return c
125805}
125806
125807// Fields allows partial responses to be retrieved. See
125808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125809// for more information.
125810func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
125811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125812	return c
125813}
125814
125815// IfNoneMatch sets the optional parameter which makes the operation
125816// fail if the object's ETag matches the given value. This is useful for
125817// getting updates only after the object has changed since the last
125818// request. Use googleapi.IsNotModified to check whether the response
125819// error from Do is the result of In-None-Match.
125820func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
125821	c.ifNoneMatch_ = entityTag
125822	return c
125823}
125824
125825// Context sets the context to be used in this call's Do method. Any
125826// pending HTTP request will be aborted if the provided context is
125827// canceled.
125828func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
125829	c.ctx_ = ctx
125830	return c
125831}
125832
125833// Header returns an http.Header that can be modified by the caller to
125834// add HTTP headers to the request.
125835func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
125836	if c.header_ == nil {
125837		c.header_ = make(http.Header)
125838	}
125839	return c.header_
125840}
125841
125842func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
125843	reqHeaders := make(http.Header)
125844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
125845	for k, v := range c.header_ {
125846		reqHeaders[k] = v
125847	}
125848	reqHeaders.Set("User-Agent", c.s.userAgent())
125849	if c.ifNoneMatch_ != "" {
125850		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125851	}
125852	var body io.Reader = nil
125853	c.urlParams_.Set("alt", alt)
125854	c.urlParams_.Set("prettyPrint", "false")
125855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
125856	urls += "?" + c.urlParams_.Encode()
125857	req, err := http.NewRequest("GET", urls, body)
125858	if err != nil {
125859		return nil, err
125860	}
125861	req.Header = reqHeaders
125862	googleapi.Expand(req.URL, map[string]string{
125863		"project":              c.project,
125864		"region":               c.region,
125865		"instanceGroupManager": c.instanceGroupManager,
125866	})
125867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125868}
125869
125870// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
125871// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
125872// error will be non-nil. Any non-2xx status code is an error. Response
125873// headers are in either
125874// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
125875// or (if a response was returned at all) in
125876// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
125877// whether the returned error was because http.StatusNotModified was
125878// returned.
125879func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
125880	gensupport.SetOptions(c.urlParams_, opts...)
125881	res, err := c.doRequest("json")
125882	if res != nil && res.StatusCode == http.StatusNotModified {
125883		if res.Body != nil {
125884			res.Body.Close()
125885		}
125886		return nil, &googleapi.Error{
125887			Code:   res.StatusCode,
125888			Header: res.Header,
125889		}
125890	}
125891	if err != nil {
125892		return nil, err
125893	}
125894	defer googleapi.CloseBody(res)
125895	if err := googleapi.CheckResponse(res); err != nil {
125896		return nil, err
125897	}
125898	ret := &RegionInstanceGroupManagersListErrorsResponse{
125899		ServerResponse: googleapi.ServerResponse{
125900			Header:         res.Header,
125901			HTTPStatusCode: res.StatusCode,
125902		},
125903	}
125904	target := &ret
125905	if err := gensupport.DecodeResponse(target, res); err != nil {
125906		return nil, err
125907	}
125908	return ret, nil
125909	// {
125910	//   "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.",
125911	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
125912	//   "httpMethod": "GET",
125913	//   "id": "compute.regionInstanceGroupManagers.listErrors",
125914	//   "parameterOrder": [
125915	//     "project",
125916	//     "region",
125917	//     "instanceGroupManager"
125918	//   ],
125919	//   "parameters": {
125920	//     "filter": {
125921	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125922	//       "location": "query",
125923	//       "type": "string"
125924	//     },
125925	//     "instanceGroupManager": {
125926	//       "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,19}.",
125927	//       "location": "path",
125928	//       "required": true,
125929	//       "type": "string"
125930	//     },
125931	//     "maxResults": {
125932	//       "default": "500",
125933	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125934	//       "format": "uint32",
125935	//       "location": "query",
125936	//       "minimum": "0",
125937	//       "type": "integer"
125938	//     },
125939	//     "orderBy": {
125940	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
125941	//       "location": "query",
125942	//       "type": "string"
125943	//     },
125944	//     "pageToken": {
125945	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125946	//       "location": "query",
125947	//       "type": "string"
125948	//     },
125949	//     "project": {
125950	//       "description": "Project ID for this request.",
125951	//       "location": "path",
125952	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125953	//       "required": true,
125954	//       "type": "string"
125955	//     },
125956	//     "region": {
125957	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
125958	//       "location": "path",
125959	//       "required": true,
125960	//       "type": "string"
125961	//     },
125962	//     "returnPartialSuccess": {
125963	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125964	//       "location": "query",
125965	//       "type": "boolean"
125966	//     }
125967	//   },
125968	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
125969	//   "response": {
125970	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
125971	//   },
125972	//   "scopes": [
125973	//     "https://www.googleapis.com/auth/cloud-platform",
125974	//     "https://www.googleapis.com/auth/compute",
125975	//     "https://www.googleapis.com/auth/compute.readonly"
125976	//   ]
125977	// }
125978
125979}
125980
125981// Pages invokes f for each page of results.
125982// A non-nil error returned from f will halt the iteration.
125983// The provided context supersedes any context provided to the Context method.
125984func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
125985	c.ctx_ = ctx
125986	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125987	for {
125988		x, err := c.Do()
125989		if err != nil {
125990			return err
125991		}
125992		if err := f(x); err != nil {
125993			return err
125994		}
125995		if x.NextPageToken == "" {
125996			return nil
125997		}
125998		c.PageToken(x.NextPageToken)
125999	}
126000}
126001
126002// method id "compute.regionInstanceGroupManagers.listManagedInstances":
126003
126004type RegionInstanceGroupManagersListManagedInstancesCall struct {
126005	s                    *Service
126006	project              string
126007	region               string
126008	instanceGroupManager string
126009	urlParams_           gensupport.URLParams
126010	ctx_                 context.Context
126011	header_              http.Header
126012}
126013
126014// ListManagedInstances: Lists the instances in the managed instance
126015// group and instances that are scheduled to be created. The list
126016// includes any current actions that the group has scheduled for its
126017// instances. The orderBy query parameter is not supported.
126018//
126019// - instanceGroupManager: The name of the managed instance group.
126020// - project: Project ID for this request.
126021// - region: Name of the region scoping this request.
126022func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
126023	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126024	c.project = project
126025	c.region = region
126026	c.instanceGroupManager = instanceGroupManager
126027	return c
126028}
126029
126030// Filter sets the optional parameter "filter": A filter expression that
126031// filters resources listed in the response. The expression must specify
126032// the field name, a comparison operator, and the value that you want to
126033// use for filtering. The value must be a string, a number, or a
126034// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126035// `<`. For example, if you are filtering Compute Engine instances, you
126036// can exclude instances named `example-instance` by specifying `name !=
126037// example-instance`. You can also filter nested fields. For example,
126038// you could specify `scheduling.automaticRestart = false` to include
126039// instances only if they are not scheduled for automatic restarts. You
126040// can use filtering on nested fields to filter based on resource
126041// labels. To filter on multiple expressions, provide each separate
126042// expression within parentheses. For example: ```
126043// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
126044// ``` By default, each expression is an `AND` expression. However, you
126045// can include `AND` and `OR` expressions explicitly. For example: ```
126046// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
126047// AND (scheduling.automaticRestart = true) ```
126048func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
126049	c.urlParams_.Set("filter", filter)
126050	return c
126051}
126052
126053// MaxResults sets the optional parameter "maxResults": The maximum
126054// number of results per page that should be returned. If the number of
126055// available results is larger than `maxResults`, Compute Engine returns
126056// a `nextPageToken` that can be used to get the next page of results in
126057// subsequent list requests. Acceptable values are `0` to `500`,
126058// inclusive. (Default: `500`)
126059func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
126060	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126061	return c
126062}
126063
126064// OrderBy sets the optional parameter "orderBy": Sorts list results by
126065// a certain order. By default, results are returned in alphanumerical
126066// order based on the resource name. You can also sort results in
126067// descending order based on the creation timestamp using
126068// `orderBy="creationTimestamp desc". This sorts results based on the
126069// `creationTimestamp` field in reverse chronological order (newest
126070// result first). Use this to sort resources like operations so that the
126071// newest operation is returned first. Currently, only sorting by `name`
126072// or `creationTimestamp desc` is supported.
126073func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
126074	c.urlParams_.Set("orderBy", orderBy)
126075	return c
126076}
126077
126078// PageToken sets the optional parameter "pageToken": Specifies a page
126079// token to use. Set `pageToken` to the `nextPageToken` returned by a
126080// previous list request to get the next page of results.
126081func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
126082	c.urlParams_.Set("pageToken", pageToken)
126083	return c
126084}
126085
126086// ReturnPartialSuccess sets the optional parameter
126087// "returnPartialSuccess": Opt-in for partial success behavior which
126088// provides partial results in case of failure. The default value is
126089// false.
126090func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall {
126091	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126092	return c
126093}
126094
126095// Fields allows partial responses to be retrieved. See
126096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126097// for more information.
126098func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
126099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126100	return c
126101}
126102
126103// Context sets the context to be used in this call's Do method. Any
126104// pending HTTP request will be aborted if the provided context is
126105// canceled.
126106func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
126107	c.ctx_ = ctx
126108	return c
126109}
126110
126111// Header returns an http.Header that can be modified by the caller to
126112// add HTTP headers to the request.
126113func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
126114	if c.header_ == nil {
126115		c.header_ = make(http.Header)
126116	}
126117	return c.header_
126118}
126119
126120func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
126121	reqHeaders := make(http.Header)
126122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
126123	for k, v := range c.header_ {
126124		reqHeaders[k] = v
126125	}
126126	reqHeaders.Set("User-Agent", c.s.userAgent())
126127	var body io.Reader = nil
126128	c.urlParams_.Set("alt", alt)
126129	c.urlParams_.Set("prettyPrint", "false")
126130	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
126131	urls += "?" + c.urlParams_.Encode()
126132	req, err := http.NewRequest("POST", urls, body)
126133	if err != nil {
126134		return nil, err
126135	}
126136	req.Header = reqHeaders
126137	googleapi.Expand(req.URL, map[string]string{
126138		"project":              c.project,
126139		"region":               c.region,
126140		"instanceGroupManager": c.instanceGroupManager,
126141	})
126142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126143}
126144
126145// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
126146// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
126147// error will be non-nil. Any non-2xx status code is an error. Response
126148// headers are in either
126149// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
126150// r or (if a response was returned at all) in
126151// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126152// whether the returned error was because http.StatusNotModified was
126153// returned.
126154func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
126155	gensupport.SetOptions(c.urlParams_, opts...)
126156	res, err := c.doRequest("json")
126157	if res != nil && res.StatusCode == http.StatusNotModified {
126158		if res.Body != nil {
126159			res.Body.Close()
126160		}
126161		return nil, &googleapi.Error{
126162			Code:   res.StatusCode,
126163			Header: res.Header,
126164		}
126165	}
126166	if err != nil {
126167		return nil, err
126168	}
126169	defer googleapi.CloseBody(res)
126170	if err := googleapi.CheckResponse(res); err != nil {
126171		return nil, err
126172	}
126173	ret := &RegionInstanceGroupManagersListInstancesResponse{
126174		ServerResponse: googleapi.ServerResponse{
126175			Header:         res.Header,
126176			HTTPStatusCode: res.StatusCode,
126177		},
126178	}
126179	target := &ret
126180	if err := gensupport.DecodeResponse(target, res); err != nil {
126181		return nil, err
126182	}
126183	return ret, nil
126184	// {
126185	//   "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.",
126186	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
126187	//   "httpMethod": "POST",
126188	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
126189	//   "parameterOrder": [
126190	//     "project",
126191	//     "region",
126192	//     "instanceGroupManager"
126193	//   ],
126194	//   "parameters": {
126195	//     "filter": {
126196	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126197	//       "location": "query",
126198	//       "type": "string"
126199	//     },
126200	//     "instanceGroupManager": {
126201	//       "description": "The name of the managed instance group.",
126202	//       "location": "path",
126203	//       "required": true,
126204	//       "type": "string"
126205	//     },
126206	//     "maxResults": {
126207	//       "default": "500",
126208	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126209	//       "format": "uint32",
126210	//       "location": "query",
126211	//       "minimum": "0",
126212	//       "type": "integer"
126213	//     },
126214	//     "orderBy": {
126215	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
126216	//       "location": "query",
126217	//       "type": "string"
126218	//     },
126219	//     "pageToken": {
126220	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126221	//       "location": "query",
126222	//       "type": "string"
126223	//     },
126224	//     "project": {
126225	//       "description": "Project ID for this request.",
126226	//       "location": "path",
126227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126228	//       "required": true,
126229	//       "type": "string"
126230	//     },
126231	//     "region": {
126232	//       "description": "Name of the region scoping this request.",
126233	//       "location": "path",
126234	//       "required": true,
126235	//       "type": "string"
126236	//     },
126237	//     "returnPartialSuccess": {
126238	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126239	//       "location": "query",
126240	//       "type": "boolean"
126241	//     }
126242	//   },
126243	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
126244	//   "response": {
126245	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
126246	//   },
126247	//   "scopes": [
126248	//     "https://www.googleapis.com/auth/cloud-platform",
126249	//     "https://www.googleapis.com/auth/compute",
126250	//     "https://www.googleapis.com/auth/compute.readonly"
126251	//   ]
126252	// }
126253
126254}
126255
126256// Pages invokes f for each page of results.
126257// A non-nil error returned from f will halt the iteration.
126258// The provided context supersedes any context provided to the Context method.
126259func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
126260	c.ctx_ = ctx
126261	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126262	for {
126263		x, err := c.Do()
126264		if err != nil {
126265			return err
126266		}
126267		if err := f(x); err != nil {
126268			return err
126269		}
126270		if x.NextPageToken == "" {
126271			return nil
126272		}
126273		c.PageToken(x.NextPageToken)
126274	}
126275}
126276
126277// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
126278
126279type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
126280	s                    *Service
126281	project              string
126282	region               string
126283	instanceGroupManager string
126284	urlParams_           gensupport.URLParams
126285	ctx_                 context.Context
126286	header_              http.Header
126287}
126288
126289// ListPerInstanceConfigs: Lists all of the per-instance configs defined
126290// for the managed instance group. The orderBy query parameter is not
126291// supported.
126292//
126293// - instanceGroupManager: The name of the managed instance group. It
126294//   should conform to RFC1035.
126295// - project: Project ID for this request.
126296// - region: Name of the region scoping this request, should conform to
126297//   RFC1035.
126298func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126299	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126300	c.project = project
126301	c.region = region
126302	c.instanceGroupManager = instanceGroupManager
126303	return c
126304}
126305
126306// Filter sets the optional parameter "filter": A filter expression that
126307// filters resources listed in the response. The expression must specify
126308// the field name, a comparison operator, and the value that you want to
126309// use for filtering. The value must be a string, a number, or a
126310// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126311// `<`. For example, if you are filtering Compute Engine instances, you
126312// can exclude instances named `example-instance` by specifying `name !=
126313// example-instance`. You can also filter nested fields. For example,
126314// you could specify `scheduling.automaticRestart = false` to include
126315// instances only if they are not scheduled for automatic restarts. You
126316// can use filtering on nested fields to filter based on resource
126317// labels. To filter on multiple expressions, provide each separate
126318// expression within parentheses. For example: ```
126319// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
126320// ``` By default, each expression is an `AND` expression. However, you
126321// can include `AND` and `OR` expressions explicitly. For example: ```
126322// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
126323// AND (scheduling.automaticRestart = true) ```
126324func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126325	c.urlParams_.Set("filter", filter)
126326	return c
126327}
126328
126329// MaxResults sets the optional parameter "maxResults": The maximum
126330// number of results per page that should be returned. If the number of
126331// available results is larger than `maxResults`, Compute Engine returns
126332// a `nextPageToken` that can be used to get the next page of results in
126333// subsequent list requests. Acceptable values are `0` to `500`,
126334// inclusive. (Default: `500`)
126335func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126336	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126337	return c
126338}
126339
126340// OrderBy sets the optional parameter "orderBy": Sorts list results by
126341// a certain order. By default, results are returned in alphanumerical
126342// order based on the resource name. You can also sort results in
126343// descending order based on the creation timestamp using
126344// `orderBy="creationTimestamp desc". This sorts results based on the
126345// `creationTimestamp` field in reverse chronological order (newest
126346// result first). Use this to sort resources like operations so that the
126347// newest operation is returned first. Currently, only sorting by `name`
126348// or `creationTimestamp desc` is supported.
126349func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126350	c.urlParams_.Set("orderBy", orderBy)
126351	return c
126352}
126353
126354// PageToken sets the optional parameter "pageToken": Specifies a page
126355// token to use. Set `pageToken` to the `nextPageToken` returned by a
126356// previous list request to get the next page of results.
126357func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126358	c.urlParams_.Set("pageToken", pageToken)
126359	return c
126360}
126361
126362// ReturnPartialSuccess sets the optional parameter
126363// "returnPartialSuccess": Opt-in for partial success behavior which
126364// provides partial results in case of failure. The default value is
126365// false.
126366func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126367	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126368	return c
126369}
126370
126371// Fields allows partial responses to be retrieved. See
126372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126373// for more information.
126374func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126376	return c
126377}
126378
126379// Context sets the context to be used in this call's Do method. Any
126380// pending HTTP request will be aborted if the provided context is
126381// canceled.
126382func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126383	c.ctx_ = ctx
126384	return c
126385}
126386
126387// Header returns an http.Header that can be modified by the caller to
126388// add HTTP headers to the request.
126389func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
126390	if c.header_ == nil {
126391		c.header_ = make(http.Header)
126392	}
126393	return c.header_
126394}
126395
126396func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
126397	reqHeaders := make(http.Header)
126398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
126399	for k, v := range c.header_ {
126400		reqHeaders[k] = v
126401	}
126402	reqHeaders.Set("User-Agent", c.s.userAgent())
126403	var body io.Reader = nil
126404	c.urlParams_.Set("alt", alt)
126405	c.urlParams_.Set("prettyPrint", "false")
126406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
126407	urls += "?" + c.urlParams_.Encode()
126408	req, err := http.NewRequest("POST", urls, body)
126409	if err != nil {
126410		return nil, err
126411	}
126412	req.Header = reqHeaders
126413	googleapi.Expand(req.URL, map[string]string{
126414		"project":              c.project,
126415		"region":               c.region,
126416		"instanceGroupManager": c.instanceGroupManager,
126417	})
126418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126419}
126420
126421// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
126422// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
126423// error will be non-nil. Any non-2xx status code is an error. Response
126424// headers are in either
126425// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
126426// der or (if a response was returned at all) in
126427// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126428// whether the returned error was because http.StatusNotModified was
126429// returned.
126430func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
126431	gensupport.SetOptions(c.urlParams_, opts...)
126432	res, err := c.doRequest("json")
126433	if res != nil && res.StatusCode == http.StatusNotModified {
126434		if res.Body != nil {
126435			res.Body.Close()
126436		}
126437		return nil, &googleapi.Error{
126438			Code:   res.StatusCode,
126439			Header: res.Header,
126440		}
126441	}
126442	if err != nil {
126443		return nil, err
126444	}
126445	defer googleapi.CloseBody(res)
126446	if err := googleapi.CheckResponse(res); err != nil {
126447		return nil, err
126448	}
126449	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
126450		ServerResponse: googleapi.ServerResponse{
126451			Header:         res.Header,
126452			HTTPStatusCode: res.StatusCode,
126453		},
126454	}
126455	target := &ret
126456	if err := gensupport.DecodeResponse(target, res); err != nil {
126457		return nil, err
126458	}
126459	return ret, nil
126460	// {
126461	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
126462	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
126463	//   "httpMethod": "POST",
126464	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
126465	//   "parameterOrder": [
126466	//     "project",
126467	//     "region",
126468	//     "instanceGroupManager"
126469	//   ],
126470	//   "parameters": {
126471	//     "filter": {
126472	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126473	//       "location": "query",
126474	//       "type": "string"
126475	//     },
126476	//     "instanceGroupManager": {
126477	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
126478	//       "location": "path",
126479	//       "required": true,
126480	//       "type": "string"
126481	//     },
126482	//     "maxResults": {
126483	//       "default": "500",
126484	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126485	//       "format": "uint32",
126486	//       "location": "query",
126487	//       "minimum": "0",
126488	//       "type": "integer"
126489	//     },
126490	//     "orderBy": {
126491	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
126492	//       "location": "query",
126493	//       "type": "string"
126494	//     },
126495	//     "pageToken": {
126496	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126497	//       "location": "query",
126498	//       "type": "string"
126499	//     },
126500	//     "project": {
126501	//       "description": "Project ID for this request.",
126502	//       "location": "path",
126503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126504	//       "required": true,
126505	//       "type": "string"
126506	//     },
126507	//     "region": {
126508	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
126509	//       "location": "path",
126510	//       "required": true,
126511	//       "type": "string"
126512	//     },
126513	//     "returnPartialSuccess": {
126514	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126515	//       "location": "query",
126516	//       "type": "boolean"
126517	//     }
126518	//   },
126519	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
126520	//   "response": {
126521	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
126522	//   },
126523	//   "scopes": [
126524	//     "https://www.googleapis.com/auth/cloud-platform",
126525	//     "https://www.googleapis.com/auth/compute",
126526	//     "https://www.googleapis.com/auth/compute.readonly"
126527	//   ]
126528	// }
126529
126530}
126531
126532// Pages invokes f for each page of results.
126533// A non-nil error returned from f will halt the iteration.
126534// The provided context supersedes any context provided to the Context method.
126535func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
126536	c.ctx_ = ctx
126537	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126538	for {
126539		x, err := c.Do()
126540		if err != nil {
126541			return err
126542		}
126543		if err := f(x); err != nil {
126544			return err
126545		}
126546		if x.NextPageToken == "" {
126547			return nil
126548		}
126549		c.PageToken(x.NextPageToken)
126550	}
126551}
126552
126553// method id "compute.regionInstanceGroupManagers.patch":
126554
126555type RegionInstanceGroupManagersPatchCall struct {
126556	s                    *Service
126557	project              string
126558	region               string
126559	instanceGroupManager string
126560	instancegroupmanager *InstanceGroupManager
126561	urlParams_           gensupport.URLParams
126562	ctx_                 context.Context
126563	header_              http.Header
126564}
126565
126566// Patch: Updates a managed instance group using the information that
126567// you specify in the request. This operation is marked as DONE when the
126568// group is patched even if the instances in the group are still in the
126569// process of being patched. You must separately verify the status of
126570// the individual instances with the listmanagedinstances method. This
126571// method supports PATCH semantics and uses the JSON merge patch format
126572// and processing rules.
126573//
126574// - instanceGroupManager: The name of the instance group manager.
126575// - project: Project ID for this request.
126576// - region: Name of the region scoping this request.
126577func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
126578	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126579	c.project = project
126580	c.region = region
126581	c.instanceGroupManager = instanceGroupManager
126582	c.instancegroupmanager = instancegroupmanager
126583	return c
126584}
126585
126586// RequestId sets the optional parameter "requestId": An optional
126587// request ID to identify requests. Specify a unique request ID so that
126588// if you must retry your request, the server will know to ignore the
126589// request if it has already been completed. For example, consider a
126590// situation where you make an initial request and the request times
126591// out. If you make the request again with the same request ID, the
126592// server can check if original operation with the same request ID was
126593// received, and if so, will ignore the second request. This prevents
126594// clients from accidentally creating duplicate commitments. The request
126595// ID must be a valid UUID with the exception that zero UUID is not
126596// supported ( 00000000-0000-0000-0000-000000000000).
126597func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
126598	c.urlParams_.Set("requestId", requestId)
126599	return c
126600}
126601
126602// Fields allows partial responses to be retrieved. See
126603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126604// for more information.
126605func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
126606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126607	return c
126608}
126609
126610// Context sets the context to be used in this call's Do method. Any
126611// pending HTTP request will be aborted if the provided context is
126612// canceled.
126613func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
126614	c.ctx_ = ctx
126615	return c
126616}
126617
126618// Header returns an http.Header that can be modified by the caller to
126619// add HTTP headers to the request.
126620func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
126621	if c.header_ == nil {
126622		c.header_ = make(http.Header)
126623	}
126624	return c.header_
126625}
126626
126627func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
126628	reqHeaders := make(http.Header)
126629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
126630	for k, v := range c.header_ {
126631		reqHeaders[k] = v
126632	}
126633	reqHeaders.Set("User-Agent", c.s.userAgent())
126634	var body io.Reader = nil
126635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
126636	if err != nil {
126637		return nil, err
126638	}
126639	reqHeaders.Set("Content-Type", "application/json")
126640	c.urlParams_.Set("alt", alt)
126641	c.urlParams_.Set("prettyPrint", "false")
126642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
126643	urls += "?" + c.urlParams_.Encode()
126644	req, err := http.NewRequest("PATCH", urls, body)
126645	if err != nil {
126646		return nil, err
126647	}
126648	req.Header = reqHeaders
126649	googleapi.Expand(req.URL, map[string]string{
126650		"project":              c.project,
126651		"region":               c.region,
126652		"instanceGroupManager": c.instanceGroupManager,
126653	})
126654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126655}
126656
126657// Do executes the "compute.regionInstanceGroupManagers.patch" call.
126658// Exactly one of *Operation or error will be non-nil. Any non-2xx
126659// status code is an error. Response headers are in either
126660// *Operation.ServerResponse.Header or (if a response was returned at
126661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126662// to check whether the returned error was because
126663// http.StatusNotModified was returned.
126664func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126665	gensupport.SetOptions(c.urlParams_, opts...)
126666	res, err := c.doRequest("json")
126667	if res != nil && res.StatusCode == http.StatusNotModified {
126668		if res.Body != nil {
126669			res.Body.Close()
126670		}
126671		return nil, &googleapi.Error{
126672			Code:   res.StatusCode,
126673			Header: res.Header,
126674		}
126675	}
126676	if err != nil {
126677		return nil, err
126678	}
126679	defer googleapi.CloseBody(res)
126680	if err := googleapi.CheckResponse(res); err != nil {
126681		return nil, err
126682	}
126683	ret := &Operation{
126684		ServerResponse: googleapi.ServerResponse{
126685			Header:         res.Header,
126686			HTTPStatusCode: res.StatusCode,
126687		},
126688	}
126689	target := &ret
126690	if err := gensupport.DecodeResponse(target, res); err != nil {
126691		return nil, err
126692	}
126693	return ret, nil
126694	// {
126695	//   "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.",
126696	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
126697	//   "httpMethod": "PATCH",
126698	//   "id": "compute.regionInstanceGroupManagers.patch",
126699	//   "parameterOrder": [
126700	//     "project",
126701	//     "region",
126702	//     "instanceGroupManager"
126703	//   ],
126704	//   "parameters": {
126705	//     "instanceGroupManager": {
126706	//       "description": "The name of the instance group manager.",
126707	//       "location": "path",
126708	//       "required": true,
126709	//       "type": "string"
126710	//     },
126711	//     "project": {
126712	//       "description": "Project ID for this request.",
126713	//       "location": "path",
126714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126715	//       "required": true,
126716	//       "type": "string"
126717	//     },
126718	//     "region": {
126719	//       "description": "Name of the region scoping this request.",
126720	//       "location": "path",
126721	//       "required": true,
126722	//       "type": "string"
126723	//     },
126724	//     "requestId": {
126725	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
126726	//       "location": "query",
126727	//       "type": "string"
126728	//     }
126729	//   },
126730	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
126731	//   "request": {
126732	//     "$ref": "InstanceGroupManager"
126733	//   },
126734	//   "response": {
126735	//     "$ref": "Operation"
126736	//   },
126737	//   "scopes": [
126738	//     "https://www.googleapis.com/auth/cloud-platform",
126739	//     "https://www.googleapis.com/auth/compute"
126740	//   ]
126741	// }
126742
126743}
126744
126745// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
126746
126747type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
126748	s                                                *Service
126749	project                                          string
126750	region                                           string
126751	instanceGroupManager                             string
126752	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
126753	urlParams_                                       gensupport.URLParams
126754	ctx_                                             context.Context
126755	header_                                          http.Header
126756}
126757
126758// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
126759// the managed instance group. perInstanceConfig.name serves as a key
126760// used to distinguish whether to perform insert or patch.
126761//
126762// - instanceGroupManager: The name of the managed instance group. It
126763//   should conform to RFC1035.
126764// - project: Project ID for this request.
126765// - region: Name of the region scoping this request, should conform to
126766//   RFC1035.
126767func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
126768	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126769	c.project = project
126770	c.region = region
126771	c.instanceGroupManager = instanceGroupManager
126772	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
126773	return c
126774}
126775
126776// RequestId sets the optional parameter "requestId": An optional
126777// request ID to identify requests. Specify a unique request ID so that
126778// if you must retry your request, the server will know to ignore the
126779// request if it has already been completed. For example, consider a
126780// situation where you make an initial request and the request times
126781// out. If you make the request again with the same request ID, the
126782// server can check if original operation with the same request ID was
126783// received, and if so, will ignore the second request. This prevents
126784// clients from accidentally creating duplicate commitments. The request
126785// ID must be a valid UUID with the exception that zero UUID is not
126786// supported ( 00000000-0000-0000-0000-000000000000).
126787func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
126788	c.urlParams_.Set("requestId", requestId)
126789	return c
126790}
126791
126792// Fields allows partial responses to be retrieved. See
126793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126794// for more information.
126795func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
126796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126797	return c
126798}
126799
126800// Context sets the context to be used in this call's Do method. Any
126801// pending HTTP request will be aborted if the provided context is
126802// canceled.
126803func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
126804	c.ctx_ = ctx
126805	return c
126806}
126807
126808// Header returns an http.Header that can be modified by the caller to
126809// add HTTP headers to the request.
126810func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
126811	if c.header_ == nil {
126812		c.header_ = make(http.Header)
126813	}
126814	return c.header_
126815}
126816
126817func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
126818	reqHeaders := make(http.Header)
126819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
126820	for k, v := range c.header_ {
126821		reqHeaders[k] = v
126822	}
126823	reqHeaders.Set("User-Agent", c.s.userAgent())
126824	var body io.Reader = nil
126825	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
126826	if err != nil {
126827		return nil, err
126828	}
126829	reqHeaders.Set("Content-Type", "application/json")
126830	c.urlParams_.Set("alt", alt)
126831	c.urlParams_.Set("prettyPrint", "false")
126832	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
126833	urls += "?" + c.urlParams_.Encode()
126834	req, err := http.NewRequest("POST", urls, body)
126835	if err != nil {
126836		return nil, err
126837	}
126838	req.Header = reqHeaders
126839	googleapi.Expand(req.URL, map[string]string{
126840		"project":              c.project,
126841		"region":               c.region,
126842		"instanceGroupManager": c.instanceGroupManager,
126843	})
126844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126845}
126846
126847// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
126848// Exactly one of *Operation or error will be non-nil. Any non-2xx
126849// status code is an error. Response headers are in either
126850// *Operation.ServerResponse.Header or (if a response was returned at
126851// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126852// to check whether the returned error was because
126853// http.StatusNotModified was returned.
126854func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126855	gensupport.SetOptions(c.urlParams_, opts...)
126856	res, err := c.doRequest("json")
126857	if res != nil && res.StatusCode == http.StatusNotModified {
126858		if res.Body != nil {
126859			res.Body.Close()
126860		}
126861		return nil, &googleapi.Error{
126862			Code:   res.StatusCode,
126863			Header: res.Header,
126864		}
126865	}
126866	if err != nil {
126867		return nil, err
126868	}
126869	defer googleapi.CloseBody(res)
126870	if err := googleapi.CheckResponse(res); err != nil {
126871		return nil, err
126872	}
126873	ret := &Operation{
126874		ServerResponse: googleapi.ServerResponse{
126875			Header:         res.Header,
126876			HTTPStatusCode: res.StatusCode,
126877		},
126878	}
126879	target := &ret
126880	if err := gensupport.DecodeResponse(target, res); err != nil {
126881		return nil, err
126882	}
126883	return ret, nil
126884	// {
126885	//   "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.",
126886	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
126887	//   "httpMethod": "POST",
126888	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
126889	//   "parameterOrder": [
126890	//     "project",
126891	//     "region",
126892	//     "instanceGroupManager"
126893	//   ],
126894	//   "parameters": {
126895	//     "instanceGroupManager": {
126896	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
126897	//       "location": "path",
126898	//       "required": true,
126899	//       "type": "string"
126900	//     },
126901	//     "project": {
126902	//       "description": "Project ID for this request.",
126903	//       "location": "path",
126904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126905	//       "required": true,
126906	//       "type": "string"
126907	//     },
126908	//     "region": {
126909	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
126910	//       "location": "path",
126911	//       "required": true,
126912	//       "type": "string"
126913	//     },
126914	//     "requestId": {
126915	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
126916	//       "location": "query",
126917	//       "type": "string"
126918	//     }
126919	//   },
126920	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
126921	//   "request": {
126922	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
126923	//   },
126924	//   "response": {
126925	//     "$ref": "Operation"
126926	//   },
126927	//   "scopes": [
126928	//     "https://www.googleapis.com/auth/cloud-platform",
126929	//     "https://www.googleapis.com/auth/compute"
126930	//   ]
126931	// }
126932
126933}
126934
126935// method id "compute.regionInstanceGroupManagers.recreateInstances":
126936
126937type RegionInstanceGroupManagersRecreateInstancesCall struct {
126938	s                                          *Service
126939	project                                    string
126940	region                                     string
126941	instanceGroupManager                       string
126942	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
126943	urlParams_                                 gensupport.URLParams
126944	ctx_                                       context.Context
126945	header_                                    http.Header
126946}
126947
126948// RecreateInstances: Flags the specified VM instances in the managed
126949// instance group to be immediately recreated. Each instance is
126950// recreated using the group's current configuration. This operation is
126951// marked as DONE when the flag is set even if the instances have not
126952// yet been recreated. You must separately verify the status of each
126953// instance by checking its currentAction field; for more information,
126954// see Checking the status of managed instances. If the group is part of
126955// a backend service that has enabled connection draining, it can take
126956// up to 60 seconds after the connection draining duration has elapsed
126957// before the VM instance is removed or deleted. You can specify a
126958// maximum of 1000 instances with this method per request.
126959//
126960// - instanceGroupManager: Name of the managed instance group.
126961// - project: Project ID for this request.
126962// - region: Name of the region scoping this request.
126963func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
126964	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126965	c.project = project
126966	c.region = region
126967	c.instanceGroupManager = instanceGroupManager
126968	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
126969	return c
126970}
126971
126972// RequestId sets the optional parameter "requestId": An optional
126973// request ID to identify requests. Specify a unique request ID so that
126974// if you must retry your request, the server will know to ignore the
126975// request if it has already been completed. For example, consider a
126976// situation where you make an initial request and the request times
126977// out. If you make the request again with the same request ID, the
126978// server can check if original operation with the same request ID was
126979// received, and if so, will ignore the second request. This prevents
126980// clients from accidentally creating duplicate commitments. The request
126981// ID must be a valid UUID with the exception that zero UUID is not
126982// supported ( 00000000-0000-0000-0000-000000000000).
126983func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
126984	c.urlParams_.Set("requestId", requestId)
126985	return c
126986}
126987
126988// Fields allows partial responses to be retrieved. See
126989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126990// for more information.
126991func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
126992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126993	return c
126994}
126995
126996// Context sets the context to be used in this call's Do method. Any
126997// pending HTTP request will be aborted if the provided context is
126998// canceled.
126999func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
127000	c.ctx_ = ctx
127001	return c
127002}
127003
127004// Header returns an http.Header that can be modified by the caller to
127005// add HTTP headers to the request.
127006func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
127007	if c.header_ == nil {
127008		c.header_ = make(http.Header)
127009	}
127010	return c.header_
127011}
127012
127013func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
127014	reqHeaders := make(http.Header)
127015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127016	for k, v := range c.header_ {
127017		reqHeaders[k] = v
127018	}
127019	reqHeaders.Set("User-Agent", c.s.userAgent())
127020	var body io.Reader = nil
127021	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
127022	if err != nil {
127023		return nil, err
127024	}
127025	reqHeaders.Set("Content-Type", "application/json")
127026	c.urlParams_.Set("alt", alt)
127027	c.urlParams_.Set("prettyPrint", "false")
127028	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
127029	urls += "?" + c.urlParams_.Encode()
127030	req, err := http.NewRequest("POST", urls, body)
127031	if err != nil {
127032		return nil, err
127033	}
127034	req.Header = reqHeaders
127035	googleapi.Expand(req.URL, map[string]string{
127036		"project":              c.project,
127037		"region":               c.region,
127038		"instanceGroupManager": c.instanceGroupManager,
127039	})
127040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127041}
127042
127043// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
127044// Exactly one of *Operation or error will be non-nil. Any non-2xx
127045// status code is an error. Response headers are in either
127046// *Operation.ServerResponse.Header or (if a response was returned at
127047// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127048// to check whether the returned error was because
127049// http.StatusNotModified was returned.
127050func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127051	gensupport.SetOptions(c.urlParams_, opts...)
127052	res, err := c.doRequest("json")
127053	if res != nil && res.StatusCode == http.StatusNotModified {
127054		if res.Body != nil {
127055			res.Body.Close()
127056		}
127057		return nil, &googleapi.Error{
127058			Code:   res.StatusCode,
127059			Header: res.Header,
127060		}
127061	}
127062	if err != nil {
127063		return nil, err
127064	}
127065	defer googleapi.CloseBody(res)
127066	if err := googleapi.CheckResponse(res); err != nil {
127067		return nil, err
127068	}
127069	ret := &Operation{
127070		ServerResponse: googleapi.ServerResponse{
127071			Header:         res.Header,
127072			HTTPStatusCode: res.StatusCode,
127073		},
127074	}
127075	target := &ret
127076	if err := gensupport.DecodeResponse(target, res); err != nil {
127077		return nil, err
127078	}
127079	return ret, nil
127080	// {
127081	//   "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. If 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. You can specify a maximum of 1000 instances with this method per request.",
127082	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
127083	//   "httpMethod": "POST",
127084	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
127085	//   "parameterOrder": [
127086	//     "project",
127087	//     "region",
127088	//     "instanceGroupManager"
127089	//   ],
127090	//   "parameters": {
127091	//     "instanceGroupManager": {
127092	//       "description": "Name of the managed instance group.",
127093	//       "location": "path",
127094	//       "required": true,
127095	//       "type": "string"
127096	//     },
127097	//     "project": {
127098	//       "description": "Project ID for this request.",
127099	//       "location": "path",
127100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127101	//       "required": true,
127102	//       "type": "string"
127103	//     },
127104	//     "region": {
127105	//       "description": "Name of the region scoping this request.",
127106	//       "location": "path",
127107	//       "required": true,
127108	//       "type": "string"
127109	//     },
127110	//     "requestId": {
127111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127112	//       "location": "query",
127113	//       "type": "string"
127114	//     }
127115	//   },
127116	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
127117	//   "request": {
127118	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
127119	//   },
127120	//   "response": {
127121	//     "$ref": "Operation"
127122	//   },
127123	//   "scopes": [
127124	//     "https://www.googleapis.com/auth/cloud-platform",
127125	//     "https://www.googleapis.com/auth/compute"
127126	//   ]
127127	// }
127128
127129}
127130
127131// method id "compute.regionInstanceGroupManagers.resize":
127132
127133type RegionInstanceGroupManagersResizeCall struct {
127134	s                    *Service
127135	project              string
127136	region               string
127137	instanceGroupManager string
127138	urlParams_           gensupport.URLParams
127139	ctx_                 context.Context
127140	header_              http.Header
127141}
127142
127143// Resize: Changes the intended size of the managed instance group. If
127144// you increase the size, the group creates new instances using the
127145// current instance template. If you decrease the size, the group
127146// deletes one or more instances. The resize operation is marked DONE if
127147// the resize request is successful. The underlying actions take
127148// additional time. You must separately verify the status of the
127149// creating or deleting actions with the listmanagedinstances method. If
127150// the group is part of a backend service that has enabled connection
127151// draining, it can take up to 60 seconds after the connection draining
127152// duration has elapsed before the VM instance is removed or deleted.
127153//
127154// - instanceGroupManager: Name of the managed instance group.
127155// - project: Project ID for this request.
127156// - region: Name of the region scoping this request.
127157// - size: Number of instances that should exist in this instance group
127158//   manager.
127159func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
127160	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127161	c.project = project
127162	c.region = region
127163	c.instanceGroupManager = instanceGroupManager
127164	c.urlParams_.Set("size", fmt.Sprint(size))
127165	return c
127166}
127167
127168// RequestId sets the optional parameter "requestId": An optional
127169// request ID to identify requests. Specify a unique request ID so that
127170// if you must retry your request, the server will know to ignore the
127171// request if it has already been completed. For example, consider a
127172// situation where you make an initial request and the request times
127173// out. If you make the request again with the same request ID, the
127174// server can check if original operation with the same request ID was
127175// received, and if so, will ignore the second request. This prevents
127176// clients from accidentally creating duplicate commitments. The request
127177// ID must be a valid UUID with the exception that zero UUID is not
127178// supported ( 00000000-0000-0000-0000-000000000000).
127179func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
127180	c.urlParams_.Set("requestId", requestId)
127181	return c
127182}
127183
127184// Fields allows partial responses to be retrieved. See
127185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127186// for more information.
127187func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
127188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127189	return c
127190}
127191
127192// Context sets the context to be used in this call's Do method. Any
127193// pending HTTP request will be aborted if the provided context is
127194// canceled.
127195func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
127196	c.ctx_ = ctx
127197	return c
127198}
127199
127200// Header returns an http.Header that can be modified by the caller to
127201// add HTTP headers to the request.
127202func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
127203	if c.header_ == nil {
127204		c.header_ = make(http.Header)
127205	}
127206	return c.header_
127207}
127208
127209func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
127210	reqHeaders := make(http.Header)
127211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127212	for k, v := range c.header_ {
127213		reqHeaders[k] = v
127214	}
127215	reqHeaders.Set("User-Agent", c.s.userAgent())
127216	var body io.Reader = nil
127217	c.urlParams_.Set("alt", alt)
127218	c.urlParams_.Set("prettyPrint", "false")
127219	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
127220	urls += "?" + c.urlParams_.Encode()
127221	req, err := http.NewRequest("POST", urls, body)
127222	if err != nil {
127223		return nil, err
127224	}
127225	req.Header = reqHeaders
127226	googleapi.Expand(req.URL, map[string]string{
127227		"project":              c.project,
127228		"region":               c.region,
127229		"instanceGroupManager": c.instanceGroupManager,
127230	})
127231	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127232}
127233
127234// Do executes the "compute.regionInstanceGroupManagers.resize" call.
127235// Exactly one of *Operation or error will be non-nil. Any non-2xx
127236// status code is an error. Response headers are in either
127237// *Operation.ServerResponse.Header or (if a response was returned at
127238// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127239// to check whether the returned error was because
127240// http.StatusNotModified was returned.
127241func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127242	gensupport.SetOptions(c.urlParams_, opts...)
127243	res, err := c.doRequest("json")
127244	if res != nil && res.StatusCode == http.StatusNotModified {
127245		if res.Body != nil {
127246			res.Body.Close()
127247		}
127248		return nil, &googleapi.Error{
127249			Code:   res.StatusCode,
127250			Header: res.Header,
127251		}
127252	}
127253	if err != nil {
127254		return nil, err
127255	}
127256	defer googleapi.CloseBody(res)
127257	if err := googleapi.CheckResponse(res); err != nil {
127258		return nil, err
127259	}
127260	ret := &Operation{
127261		ServerResponse: googleapi.ServerResponse{
127262			Header:         res.Header,
127263			HTTPStatusCode: res.StatusCode,
127264		},
127265	}
127266	target := &ret
127267	if err := gensupport.DecodeResponse(target, res); err != nil {
127268		return nil, err
127269	}
127270	return ret, nil
127271	// {
127272	//   "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. The 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. If 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.",
127273	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
127274	//   "httpMethod": "POST",
127275	//   "id": "compute.regionInstanceGroupManagers.resize",
127276	//   "parameterOrder": [
127277	//     "project",
127278	//     "region",
127279	//     "instanceGroupManager",
127280	//     "size"
127281	//   ],
127282	//   "parameters": {
127283	//     "instanceGroupManager": {
127284	//       "description": "Name of the managed instance group.",
127285	//       "location": "path",
127286	//       "required": true,
127287	//       "type": "string"
127288	//     },
127289	//     "project": {
127290	//       "description": "Project ID for this request.",
127291	//       "location": "path",
127292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127293	//       "required": true,
127294	//       "type": "string"
127295	//     },
127296	//     "region": {
127297	//       "description": "Name of the region scoping this request.",
127298	//       "location": "path",
127299	//       "required": true,
127300	//       "type": "string"
127301	//     },
127302	//     "requestId": {
127303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127304	//       "location": "query",
127305	//       "type": "string"
127306	//     },
127307	//     "size": {
127308	//       "description": "Number of instances that should exist in this instance group manager.",
127309	//       "format": "int32",
127310	//       "location": "query",
127311	//       "minimum": "0",
127312	//       "required": true,
127313	//       "type": "integer"
127314	//     }
127315	//   },
127316	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
127317	//   "response": {
127318	//     "$ref": "Operation"
127319	//   },
127320	//   "scopes": [
127321	//     "https://www.googleapis.com/auth/cloud-platform",
127322	//     "https://www.googleapis.com/auth/compute"
127323	//   ]
127324	// }
127325
127326}
127327
127328// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
127329
127330type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
127331	s                                             *Service
127332	project                                       string
127333	region                                        string
127334	instanceGroupManager                          string
127335	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
127336	urlParams_                                    gensupport.URLParams
127337	ctx_                                          context.Context
127338	header_                                       http.Header
127339}
127340
127341// SetInstanceTemplate: Sets the instance template to use when creating
127342// new instances or recreating instances in this group. Existing
127343// instances are not affected.
127344//
127345// - instanceGroupManager: The name of the managed instance group.
127346// - project: Project ID for this request.
127347// - region: Name of the region scoping this request.
127348func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127349	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127350	c.project = project
127351	c.region = region
127352	c.instanceGroupManager = instanceGroupManager
127353	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
127354	return c
127355}
127356
127357// RequestId sets the optional parameter "requestId": An optional
127358// request ID to identify requests. Specify a unique request ID so that
127359// if you must retry your request, the server will know to ignore the
127360// request if it has already been completed. For example, consider a
127361// situation where you make an initial request and the request times
127362// out. If you make the request again with the same request ID, the
127363// server can check if original operation with the same request ID was
127364// received, and if so, will ignore the second request. This prevents
127365// clients from accidentally creating duplicate commitments. The request
127366// ID must be a valid UUID with the exception that zero UUID is not
127367// supported ( 00000000-0000-0000-0000-000000000000).
127368func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127369	c.urlParams_.Set("requestId", requestId)
127370	return c
127371}
127372
127373// Fields allows partial responses to be retrieved. See
127374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127375// for more information.
127376func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127378	return c
127379}
127380
127381// Context sets the context to be used in this call's Do method. Any
127382// pending HTTP request will be aborted if the provided context is
127383// canceled.
127384func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127385	c.ctx_ = ctx
127386	return c
127387}
127388
127389// Header returns an http.Header that can be modified by the caller to
127390// add HTTP headers to the request.
127391func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
127392	if c.header_ == nil {
127393		c.header_ = make(http.Header)
127394	}
127395	return c.header_
127396}
127397
127398func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
127399	reqHeaders := make(http.Header)
127400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127401	for k, v := range c.header_ {
127402		reqHeaders[k] = v
127403	}
127404	reqHeaders.Set("User-Agent", c.s.userAgent())
127405	var body io.Reader = nil
127406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
127407	if err != nil {
127408		return nil, err
127409	}
127410	reqHeaders.Set("Content-Type", "application/json")
127411	c.urlParams_.Set("alt", alt)
127412	c.urlParams_.Set("prettyPrint", "false")
127413	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
127414	urls += "?" + c.urlParams_.Encode()
127415	req, err := http.NewRequest("POST", urls, body)
127416	if err != nil {
127417		return nil, err
127418	}
127419	req.Header = reqHeaders
127420	googleapi.Expand(req.URL, map[string]string{
127421		"project":              c.project,
127422		"region":               c.region,
127423		"instanceGroupManager": c.instanceGroupManager,
127424	})
127425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127426}
127427
127428// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
127429// Exactly one of *Operation or error will be non-nil. Any non-2xx
127430// status code is an error. Response headers are in either
127431// *Operation.ServerResponse.Header or (if a response was returned at
127432// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127433// to check whether the returned error was because
127434// http.StatusNotModified was returned.
127435func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127436	gensupport.SetOptions(c.urlParams_, opts...)
127437	res, err := c.doRequest("json")
127438	if res != nil && res.StatusCode == http.StatusNotModified {
127439		if res.Body != nil {
127440			res.Body.Close()
127441		}
127442		return nil, &googleapi.Error{
127443			Code:   res.StatusCode,
127444			Header: res.Header,
127445		}
127446	}
127447	if err != nil {
127448		return nil, err
127449	}
127450	defer googleapi.CloseBody(res)
127451	if err := googleapi.CheckResponse(res); err != nil {
127452		return nil, err
127453	}
127454	ret := &Operation{
127455		ServerResponse: googleapi.ServerResponse{
127456			Header:         res.Header,
127457			HTTPStatusCode: res.StatusCode,
127458		},
127459	}
127460	target := &ret
127461	if err := gensupport.DecodeResponse(target, res); err != nil {
127462		return nil, err
127463	}
127464	return ret, nil
127465	// {
127466	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
127467	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
127468	//   "httpMethod": "POST",
127469	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
127470	//   "parameterOrder": [
127471	//     "project",
127472	//     "region",
127473	//     "instanceGroupManager"
127474	//   ],
127475	//   "parameters": {
127476	//     "instanceGroupManager": {
127477	//       "description": "The name of the managed instance group.",
127478	//       "location": "path",
127479	//       "required": true,
127480	//       "type": "string"
127481	//     },
127482	//     "project": {
127483	//       "description": "Project ID for this request.",
127484	//       "location": "path",
127485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127486	//       "required": true,
127487	//       "type": "string"
127488	//     },
127489	//     "region": {
127490	//       "description": "Name of the region scoping this request.",
127491	//       "location": "path",
127492	//       "required": true,
127493	//       "type": "string"
127494	//     },
127495	//     "requestId": {
127496	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127497	//       "location": "query",
127498	//       "type": "string"
127499	//     }
127500	//   },
127501	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
127502	//   "request": {
127503	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
127504	//   },
127505	//   "response": {
127506	//     "$ref": "Operation"
127507	//   },
127508	//   "scopes": [
127509	//     "https://www.googleapis.com/auth/cloud-platform",
127510	//     "https://www.googleapis.com/auth/compute"
127511	//   ]
127512	// }
127513
127514}
127515
127516// method id "compute.regionInstanceGroupManagers.setTargetPools":
127517
127518type RegionInstanceGroupManagersSetTargetPoolsCall struct {
127519	s                                                *Service
127520	project                                          string
127521	region                                           string
127522	instanceGroupManager                             string
127523	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
127524	urlParams_                                       gensupport.URLParams
127525	ctx_                                             context.Context
127526	header_                                          http.Header
127527}
127528
127529// SetTargetPools: Modifies the target pools to which all new instances
127530// in this group are assigned. Existing instances in the group are not
127531// affected.
127532//
127533// - instanceGroupManager: Name of the managed instance group.
127534// - project: Project ID for this request.
127535// - region: Name of the region scoping this request.
127536func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
127537	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127538	c.project = project
127539	c.region = region
127540	c.instanceGroupManager = instanceGroupManager
127541	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
127542	return c
127543}
127544
127545// RequestId sets the optional parameter "requestId": An optional
127546// request ID to identify requests. Specify a unique request ID so that
127547// if you must retry your request, the server will know to ignore the
127548// request if it has already been completed. For example, consider a
127549// situation where you make an initial request and the request times
127550// out. If you make the request again with the same request ID, the
127551// server can check if original operation with the same request ID was
127552// received, and if so, will ignore the second request. This prevents
127553// clients from accidentally creating duplicate commitments. The request
127554// ID must be a valid UUID with the exception that zero UUID is not
127555// supported ( 00000000-0000-0000-0000-000000000000).
127556func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
127557	c.urlParams_.Set("requestId", requestId)
127558	return c
127559}
127560
127561// Fields allows partial responses to be retrieved. See
127562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127563// for more information.
127564func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
127565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127566	return c
127567}
127568
127569// Context sets the context to be used in this call's Do method. Any
127570// pending HTTP request will be aborted if the provided context is
127571// canceled.
127572func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
127573	c.ctx_ = ctx
127574	return c
127575}
127576
127577// Header returns an http.Header that can be modified by the caller to
127578// add HTTP headers to the request.
127579func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
127580	if c.header_ == nil {
127581		c.header_ = make(http.Header)
127582	}
127583	return c.header_
127584}
127585
127586func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
127587	reqHeaders := make(http.Header)
127588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127589	for k, v := range c.header_ {
127590		reqHeaders[k] = v
127591	}
127592	reqHeaders.Set("User-Agent", c.s.userAgent())
127593	var body io.Reader = nil
127594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
127595	if err != nil {
127596		return nil, err
127597	}
127598	reqHeaders.Set("Content-Type", "application/json")
127599	c.urlParams_.Set("alt", alt)
127600	c.urlParams_.Set("prettyPrint", "false")
127601	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
127602	urls += "?" + c.urlParams_.Encode()
127603	req, err := http.NewRequest("POST", urls, body)
127604	if err != nil {
127605		return nil, err
127606	}
127607	req.Header = reqHeaders
127608	googleapi.Expand(req.URL, map[string]string{
127609		"project":              c.project,
127610		"region":               c.region,
127611		"instanceGroupManager": c.instanceGroupManager,
127612	})
127613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127614}
127615
127616// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
127617// Exactly one of *Operation or error will be non-nil. Any non-2xx
127618// status code is an error. Response headers are in either
127619// *Operation.ServerResponse.Header or (if a response was returned at
127620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127621// to check whether the returned error was because
127622// http.StatusNotModified was returned.
127623func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127624	gensupport.SetOptions(c.urlParams_, opts...)
127625	res, err := c.doRequest("json")
127626	if res != nil && res.StatusCode == http.StatusNotModified {
127627		if res.Body != nil {
127628			res.Body.Close()
127629		}
127630		return nil, &googleapi.Error{
127631			Code:   res.StatusCode,
127632			Header: res.Header,
127633		}
127634	}
127635	if err != nil {
127636		return nil, err
127637	}
127638	defer googleapi.CloseBody(res)
127639	if err := googleapi.CheckResponse(res); err != nil {
127640		return nil, err
127641	}
127642	ret := &Operation{
127643		ServerResponse: googleapi.ServerResponse{
127644			Header:         res.Header,
127645			HTTPStatusCode: res.StatusCode,
127646		},
127647	}
127648	target := &ret
127649	if err := gensupport.DecodeResponse(target, res); err != nil {
127650		return nil, err
127651	}
127652	return ret, nil
127653	// {
127654	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
127655	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
127656	//   "httpMethod": "POST",
127657	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
127658	//   "parameterOrder": [
127659	//     "project",
127660	//     "region",
127661	//     "instanceGroupManager"
127662	//   ],
127663	//   "parameters": {
127664	//     "instanceGroupManager": {
127665	//       "description": "Name of the managed instance group.",
127666	//       "location": "path",
127667	//       "required": true,
127668	//       "type": "string"
127669	//     },
127670	//     "project": {
127671	//       "description": "Project ID for this request.",
127672	//       "location": "path",
127673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127674	//       "required": true,
127675	//       "type": "string"
127676	//     },
127677	//     "region": {
127678	//       "description": "Name of the region scoping this request.",
127679	//       "location": "path",
127680	//       "required": true,
127681	//       "type": "string"
127682	//     },
127683	//     "requestId": {
127684	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127685	//       "location": "query",
127686	//       "type": "string"
127687	//     }
127688	//   },
127689	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
127690	//   "request": {
127691	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
127692	//   },
127693	//   "response": {
127694	//     "$ref": "Operation"
127695	//   },
127696	//   "scopes": [
127697	//     "https://www.googleapis.com/auth/cloud-platform",
127698	//     "https://www.googleapis.com/auth/compute"
127699	//   ]
127700	// }
127701
127702}
127703
127704// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
127705
127706type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
127707	s                                                 *Service
127708	project                                           string
127709	region                                            string
127710	instanceGroupManager                              string
127711	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
127712	urlParams_                                        gensupport.URLParams
127713	ctx_                                              context.Context
127714	header_                                           http.Header
127715}
127716
127717// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
127718// the managed instance group. perInstanceConfig.name serves as a key
127719// used to distinguish whether to perform insert or patch.
127720//
127721// - instanceGroupManager: The name of the managed instance group. It
127722//   should conform to RFC1035.
127723// - project: Project ID for this request.
127724// - region: Name of the region scoping this request, should conform to
127725//   RFC1035.
127726func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
127727	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127728	c.project = project
127729	c.region = region
127730	c.instanceGroupManager = instanceGroupManager
127731	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
127732	return c
127733}
127734
127735// RequestId sets the optional parameter "requestId": An optional
127736// request ID to identify requests. Specify a unique request ID so that
127737// if you must retry your request, the server will know to ignore the
127738// request if it has already been completed. For example, consider a
127739// situation where you make an initial request and the request times
127740// out. If you make the request again with the same request ID, the
127741// server can check if original operation with the same request ID was
127742// received, and if so, will ignore the second request. This prevents
127743// clients from accidentally creating duplicate commitments. The request
127744// ID must be a valid UUID with the exception that zero UUID is not
127745// supported ( 00000000-0000-0000-0000-000000000000).
127746func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
127747	c.urlParams_.Set("requestId", requestId)
127748	return c
127749}
127750
127751// Fields allows partial responses to be retrieved. See
127752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127753// for more information.
127754func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
127755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127756	return c
127757}
127758
127759// Context sets the context to be used in this call's Do method. Any
127760// pending HTTP request will be aborted if the provided context is
127761// canceled.
127762func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
127763	c.ctx_ = ctx
127764	return c
127765}
127766
127767// Header returns an http.Header that can be modified by the caller to
127768// add HTTP headers to the request.
127769func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
127770	if c.header_ == nil {
127771		c.header_ = make(http.Header)
127772	}
127773	return c.header_
127774}
127775
127776func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
127777	reqHeaders := make(http.Header)
127778	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127779	for k, v := range c.header_ {
127780		reqHeaders[k] = v
127781	}
127782	reqHeaders.Set("User-Agent", c.s.userAgent())
127783	var body io.Reader = nil
127784	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
127785	if err != nil {
127786		return nil, err
127787	}
127788	reqHeaders.Set("Content-Type", "application/json")
127789	c.urlParams_.Set("alt", alt)
127790	c.urlParams_.Set("prettyPrint", "false")
127791	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
127792	urls += "?" + c.urlParams_.Encode()
127793	req, err := http.NewRequest("POST", urls, body)
127794	if err != nil {
127795		return nil, err
127796	}
127797	req.Header = reqHeaders
127798	googleapi.Expand(req.URL, map[string]string{
127799		"project":              c.project,
127800		"region":               c.region,
127801		"instanceGroupManager": c.instanceGroupManager,
127802	})
127803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127804}
127805
127806// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
127807// Exactly one of *Operation or error will be non-nil. Any non-2xx
127808// status code is an error. Response headers are in either
127809// *Operation.ServerResponse.Header or (if a response was returned at
127810// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127811// to check whether the returned error was because
127812// http.StatusNotModified was returned.
127813func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127814	gensupport.SetOptions(c.urlParams_, opts...)
127815	res, err := c.doRequest("json")
127816	if res != nil && res.StatusCode == http.StatusNotModified {
127817		if res.Body != nil {
127818			res.Body.Close()
127819		}
127820		return nil, &googleapi.Error{
127821			Code:   res.StatusCode,
127822			Header: res.Header,
127823		}
127824	}
127825	if err != nil {
127826		return nil, err
127827	}
127828	defer googleapi.CloseBody(res)
127829	if err := googleapi.CheckResponse(res); err != nil {
127830		return nil, err
127831	}
127832	ret := &Operation{
127833		ServerResponse: googleapi.ServerResponse{
127834			Header:         res.Header,
127835			HTTPStatusCode: res.StatusCode,
127836		},
127837	}
127838	target := &ret
127839	if err := gensupport.DecodeResponse(target, res); err != nil {
127840		return nil, err
127841	}
127842	return ret, nil
127843	// {
127844	//   "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.",
127845	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
127846	//   "httpMethod": "POST",
127847	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
127848	//   "parameterOrder": [
127849	//     "project",
127850	//     "region",
127851	//     "instanceGroupManager"
127852	//   ],
127853	//   "parameters": {
127854	//     "instanceGroupManager": {
127855	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
127856	//       "location": "path",
127857	//       "required": true,
127858	//       "type": "string"
127859	//     },
127860	//     "project": {
127861	//       "description": "Project ID for this request.",
127862	//       "location": "path",
127863	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127864	//       "required": true,
127865	//       "type": "string"
127866	//     },
127867	//     "region": {
127868	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
127869	//       "location": "path",
127870	//       "required": true,
127871	//       "type": "string"
127872	//     },
127873	//     "requestId": {
127874	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127875	//       "location": "query",
127876	//       "type": "string"
127877	//     }
127878	//   },
127879	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
127880	//   "request": {
127881	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
127882	//   },
127883	//   "response": {
127884	//     "$ref": "Operation"
127885	//   },
127886	//   "scopes": [
127887	//     "https://www.googleapis.com/auth/cloud-platform",
127888	//     "https://www.googleapis.com/auth/compute"
127889	//   ]
127890	// }
127891
127892}
127893
127894// method id "compute.regionInstanceGroups.get":
127895
127896type RegionInstanceGroupsGetCall struct {
127897	s             *Service
127898	project       string
127899	region        string
127900	instanceGroup string
127901	urlParams_    gensupport.URLParams
127902	ifNoneMatch_  string
127903	ctx_          context.Context
127904	header_       http.Header
127905}
127906
127907// Get: Returns the specified instance group resource.
127908//
127909// - instanceGroup: Name of the instance group resource to return.
127910// - project: Project ID for this request.
127911// - region: Name of the region scoping this request.
127912func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
127913	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127914	c.project = project
127915	c.region = region
127916	c.instanceGroup = instanceGroup
127917	return c
127918}
127919
127920// Fields allows partial responses to be retrieved. See
127921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127922// for more information.
127923func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
127924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127925	return c
127926}
127927
127928// IfNoneMatch sets the optional parameter which makes the operation
127929// fail if the object's ETag matches the given value. This is useful for
127930// getting updates only after the object has changed since the last
127931// request. Use googleapi.IsNotModified to check whether the response
127932// error from Do is the result of In-None-Match.
127933func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
127934	c.ifNoneMatch_ = entityTag
127935	return c
127936}
127937
127938// Context sets the context to be used in this call's Do method. Any
127939// pending HTTP request will be aborted if the provided context is
127940// canceled.
127941func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
127942	c.ctx_ = ctx
127943	return c
127944}
127945
127946// Header returns an http.Header that can be modified by the caller to
127947// add HTTP headers to the request.
127948func (c *RegionInstanceGroupsGetCall) Header() http.Header {
127949	if c.header_ == nil {
127950		c.header_ = make(http.Header)
127951	}
127952	return c.header_
127953}
127954
127955func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
127956	reqHeaders := make(http.Header)
127957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
127958	for k, v := range c.header_ {
127959		reqHeaders[k] = v
127960	}
127961	reqHeaders.Set("User-Agent", c.s.userAgent())
127962	if c.ifNoneMatch_ != "" {
127963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127964	}
127965	var body io.Reader = nil
127966	c.urlParams_.Set("alt", alt)
127967	c.urlParams_.Set("prettyPrint", "false")
127968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}")
127969	urls += "?" + c.urlParams_.Encode()
127970	req, err := http.NewRequest("GET", urls, body)
127971	if err != nil {
127972		return nil, err
127973	}
127974	req.Header = reqHeaders
127975	googleapi.Expand(req.URL, map[string]string{
127976		"project":       c.project,
127977		"region":        c.region,
127978		"instanceGroup": c.instanceGroup,
127979	})
127980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127981}
127982
127983// Do executes the "compute.regionInstanceGroups.get" call.
127984// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
127985// status code is an error. Response headers are in either
127986// *InstanceGroup.ServerResponse.Header or (if a response was returned
127987// at all) in error.(*googleapi.Error).Header. Use
127988// googleapi.IsNotModified to check whether the returned error was
127989// because http.StatusNotModified was returned.
127990func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
127991	gensupport.SetOptions(c.urlParams_, opts...)
127992	res, err := c.doRequest("json")
127993	if res != nil && res.StatusCode == http.StatusNotModified {
127994		if res.Body != nil {
127995			res.Body.Close()
127996		}
127997		return nil, &googleapi.Error{
127998			Code:   res.StatusCode,
127999			Header: res.Header,
128000		}
128001	}
128002	if err != nil {
128003		return nil, err
128004	}
128005	defer googleapi.CloseBody(res)
128006	if err := googleapi.CheckResponse(res); err != nil {
128007		return nil, err
128008	}
128009	ret := &InstanceGroup{
128010		ServerResponse: googleapi.ServerResponse{
128011			Header:         res.Header,
128012			HTTPStatusCode: res.StatusCode,
128013		},
128014	}
128015	target := &ret
128016	if err := gensupport.DecodeResponse(target, res); err != nil {
128017		return nil, err
128018	}
128019	return ret, nil
128020	// {
128021	//   "description": "Returns the specified instance group resource.",
128022	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
128023	//   "httpMethod": "GET",
128024	//   "id": "compute.regionInstanceGroups.get",
128025	//   "parameterOrder": [
128026	//     "project",
128027	//     "region",
128028	//     "instanceGroup"
128029	//   ],
128030	//   "parameters": {
128031	//     "instanceGroup": {
128032	//       "description": "Name of the instance group resource to return.",
128033	//       "location": "path",
128034	//       "required": true,
128035	//       "type": "string"
128036	//     },
128037	//     "project": {
128038	//       "description": "Project ID for this request.",
128039	//       "location": "path",
128040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128041	//       "required": true,
128042	//       "type": "string"
128043	//     },
128044	//     "region": {
128045	//       "description": "Name of the region scoping this request.",
128046	//       "location": "path",
128047	//       "required": true,
128048	//       "type": "string"
128049	//     }
128050	//   },
128051	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
128052	//   "response": {
128053	//     "$ref": "InstanceGroup"
128054	//   },
128055	//   "scopes": [
128056	//     "https://www.googleapis.com/auth/cloud-platform",
128057	//     "https://www.googleapis.com/auth/compute",
128058	//     "https://www.googleapis.com/auth/compute.readonly"
128059	//   ]
128060	// }
128061
128062}
128063
128064// method id "compute.regionInstanceGroups.list":
128065
128066type RegionInstanceGroupsListCall struct {
128067	s            *Service
128068	project      string
128069	region       string
128070	urlParams_   gensupport.URLParams
128071	ifNoneMatch_ string
128072	ctx_         context.Context
128073	header_      http.Header
128074}
128075
128076// List: Retrieves the list of instance group resources contained within
128077// the specified region.
128078//
128079// - project: Project ID for this request.
128080// - region: Name of the region scoping this request.
128081func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
128082	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128083	c.project = project
128084	c.region = region
128085	return c
128086}
128087
128088// Filter sets the optional parameter "filter": A filter expression that
128089// filters resources listed in the response. The expression must specify
128090// the field name, a comparison operator, and the value that you want to
128091// use for filtering. The value must be a string, a number, or a
128092// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128093// `<`. For example, if you are filtering Compute Engine instances, you
128094// can exclude instances named `example-instance` by specifying `name !=
128095// example-instance`. You can also filter nested fields. For example,
128096// you could specify `scheduling.automaticRestart = false` to include
128097// instances only if they are not scheduled for automatic restarts. You
128098// can use filtering on nested fields to filter based on resource
128099// labels. To filter on multiple expressions, provide each separate
128100// expression within parentheses. For example: ```
128101// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
128102// ``` By default, each expression is an `AND` expression. However, you
128103// can include `AND` and `OR` expressions explicitly. For example: ```
128104// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
128105// AND (scheduling.automaticRestart = true) ```
128106func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
128107	c.urlParams_.Set("filter", filter)
128108	return c
128109}
128110
128111// MaxResults sets the optional parameter "maxResults": The maximum
128112// number of results per page that should be returned. If the number of
128113// available results is larger than `maxResults`, Compute Engine returns
128114// a `nextPageToken` that can be used to get the next page of results in
128115// subsequent list requests. Acceptable values are `0` to `500`,
128116// inclusive. (Default: `500`)
128117func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
128118	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128119	return c
128120}
128121
128122// OrderBy sets the optional parameter "orderBy": Sorts list results by
128123// a certain order. By default, results are returned in alphanumerical
128124// order based on the resource name. You can also sort results in
128125// descending order based on the creation timestamp using
128126// `orderBy="creationTimestamp desc". This sorts results based on the
128127// `creationTimestamp` field in reverse chronological order (newest
128128// result first). Use this to sort resources like operations so that the
128129// newest operation is returned first. Currently, only sorting by `name`
128130// or `creationTimestamp desc` is supported.
128131func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
128132	c.urlParams_.Set("orderBy", orderBy)
128133	return c
128134}
128135
128136// PageToken sets the optional parameter "pageToken": Specifies a page
128137// token to use. Set `pageToken` to the `nextPageToken` returned by a
128138// previous list request to get the next page of results.
128139func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
128140	c.urlParams_.Set("pageToken", pageToken)
128141	return c
128142}
128143
128144// ReturnPartialSuccess sets the optional parameter
128145// "returnPartialSuccess": Opt-in for partial success behavior which
128146// provides partial results in case of failure. The default value is
128147// false.
128148func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
128149	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128150	return c
128151}
128152
128153// Fields allows partial responses to be retrieved. See
128154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128155// for more information.
128156func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
128157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128158	return c
128159}
128160
128161// IfNoneMatch sets the optional parameter which makes the operation
128162// fail if the object's ETag matches the given value. This is useful for
128163// getting updates only after the object has changed since the last
128164// request. Use googleapi.IsNotModified to check whether the response
128165// error from Do is the result of In-None-Match.
128166func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
128167	c.ifNoneMatch_ = entityTag
128168	return c
128169}
128170
128171// Context sets the context to be used in this call's Do method. Any
128172// pending HTTP request will be aborted if the provided context is
128173// canceled.
128174func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
128175	c.ctx_ = ctx
128176	return c
128177}
128178
128179// Header returns an http.Header that can be modified by the caller to
128180// add HTTP headers to the request.
128181func (c *RegionInstanceGroupsListCall) Header() http.Header {
128182	if c.header_ == nil {
128183		c.header_ = make(http.Header)
128184	}
128185	return c.header_
128186}
128187
128188func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
128189	reqHeaders := make(http.Header)
128190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
128191	for k, v := range c.header_ {
128192		reqHeaders[k] = v
128193	}
128194	reqHeaders.Set("User-Agent", c.s.userAgent())
128195	if c.ifNoneMatch_ != "" {
128196		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128197	}
128198	var body io.Reader = nil
128199	c.urlParams_.Set("alt", alt)
128200	c.urlParams_.Set("prettyPrint", "false")
128201	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups")
128202	urls += "?" + c.urlParams_.Encode()
128203	req, err := http.NewRequest("GET", urls, body)
128204	if err != nil {
128205		return nil, err
128206	}
128207	req.Header = reqHeaders
128208	googleapi.Expand(req.URL, map[string]string{
128209		"project": c.project,
128210		"region":  c.region,
128211	})
128212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128213}
128214
128215// Do executes the "compute.regionInstanceGroups.list" call.
128216// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
128217// non-2xx status code is an error. Response headers are in either
128218// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
128219// returned at all) in error.(*googleapi.Error).Header. Use
128220// googleapi.IsNotModified to check whether the returned error was
128221// because http.StatusNotModified was returned.
128222func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
128223	gensupport.SetOptions(c.urlParams_, opts...)
128224	res, err := c.doRequest("json")
128225	if res != nil && res.StatusCode == http.StatusNotModified {
128226		if res.Body != nil {
128227			res.Body.Close()
128228		}
128229		return nil, &googleapi.Error{
128230			Code:   res.StatusCode,
128231			Header: res.Header,
128232		}
128233	}
128234	if err != nil {
128235		return nil, err
128236	}
128237	defer googleapi.CloseBody(res)
128238	if err := googleapi.CheckResponse(res); err != nil {
128239		return nil, err
128240	}
128241	ret := &RegionInstanceGroupList{
128242		ServerResponse: googleapi.ServerResponse{
128243			Header:         res.Header,
128244			HTTPStatusCode: res.StatusCode,
128245		},
128246	}
128247	target := &ret
128248	if err := gensupport.DecodeResponse(target, res); err != nil {
128249		return nil, err
128250	}
128251	return ret, nil
128252	// {
128253	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
128254	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups",
128255	//   "httpMethod": "GET",
128256	//   "id": "compute.regionInstanceGroups.list",
128257	//   "parameterOrder": [
128258	//     "project",
128259	//     "region"
128260	//   ],
128261	//   "parameters": {
128262	//     "filter": {
128263	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128264	//       "location": "query",
128265	//       "type": "string"
128266	//     },
128267	//     "maxResults": {
128268	//       "default": "500",
128269	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128270	//       "format": "uint32",
128271	//       "location": "query",
128272	//       "minimum": "0",
128273	//       "type": "integer"
128274	//     },
128275	//     "orderBy": {
128276	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
128277	//       "location": "query",
128278	//       "type": "string"
128279	//     },
128280	//     "pageToken": {
128281	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128282	//       "location": "query",
128283	//       "type": "string"
128284	//     },
128285	//     "project": {
128286	//       "description": "Project ID for this request.",
128287	//       "location": "path",
128288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128289	//       "required": true,
128290	//       "type": "string"
128291	//     },
128292	//     "region": {
128293	//       "description": "Name of the region scoping this request.",
128294	//       "location": "path",
128295	//       "required": true,
128296	//       "type": "string"
128297	//     },
128298	//     "returnPartialSuccess": {
128299	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128300	//       "location": "query",
128301	//       "type": "boolean"
128302	//     }
128303	//   },
128304	//   "path": "projects/{project}/regions/{region}/instanceGroups",
128305	//   "response": {
128306	//     "$ref": "RegionInstanceGroupList"
128307	//   },
128308	//   "scopes": [
128309	//     "https://www.googleapis.com/auth/cloud-platform",
128310	//     "https://www.googleapis.com/auth/compute",
128311	//     "https://www.googleapis.com/auth/compute.readonly"
128312	//   ]
128313	// }
128314
128315}
128316
128317// Pages invokes f for each page of results.
128318// A non-nil error returned from f will halt the iteration.
128319// The provided context supersedes any context provided to the Context method.
128320func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
128321	c.ctx_ = ctx
128322	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128323	for {
128324		x, err := c.Do()
128325		if err != nil {
128326			return err
128327		}
128328		if err := f(x); err != nil {
128329			return err
128330		}
128331		if x.NextPageToken == "" {
128332			return nil
128333		}
128334		c.PageToken(x.NextPageToken)
128335	}
128336}
128337
128338// method id "compute.regionInstanceGroups.listInstances":
128339
128340type RegionInstanceGroupsListInstancesCall struct {
128341	s                                        *Service
128342	project                                  string
128343	region                                   string
128344	instanceGroup                            string
128345	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
128346	urlParams_                               gensupport.URLParams
128347	ctx_                                     context.Context
128348	header_                                  http.Header
128349}
128350
128351// ListInstances: Lists the instances in the specified instance group
128352// and displays information about the named ports. Depending on the
128353// specified options, this method can list all instances or only the
128354// instances that are running. The orderBy query parameter is not
128355// supported.
128356//
128357// - instanceGroup: Name of the regional instance group for which we
128358//   want to list the instances.
128359// - project: Project ID for this request.
128360// - region: Name of the region scoping this request.
128361func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
128362	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128363	c.project = project
128364	c.region = region
128365	c.instanceGroup = instanceGroup
128366	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
128367	return c
128368}
128369
128370// Filter sets the optional parameter "filter": A filter expression that
128371// filters resources listed in the response. The expression must specify
128372// the field name, a comparison operator, and the value that you want to
128373// use for filtering. The value must be a string, a number, or a
128374// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128375// `<`. For example, if you are filtering Compute Engine instances, you
128376// can exclude instances named `example-instance` by specifying `name !=
128377// example-instance`. You can also filter nested fields. For example,
128378// you could specify `scheduling.automaticRestart = false` to include
128379// instances only if they are not scheduled for automatic restarts. You
128380// can use filtering on nested fields to filter based on resource
128381// labels. To filter on multiple expressions, provide each separate
128382// expression within parentheses. For example: ```
128383// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
128384// ``` By default, each expression is an `AND` expression. However, you
128385// can include `AND` and `OR` expressions explicitly. For example: ```
128386// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
128387// AND (scheduling.automaticRestart = true) ```
128388func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
128389	c.urlParams_.Set("filter", filter)
128390	return c
128391}
128392
128393// MaxResults sets the optional parameter "maxResults": The maximum
128394// number of results per page that should be returned. If the number of
128395// available results is larger than `maxResults`, Compute Engine returns
128396// a `nextPageToken` that can be used to get the next page of results in
128397// subsequent list requests. Acceptable values are `0` to `500`,
128398// inclusive. (Default: `500`)
128399func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
128400	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128401	return c
128402}
128403
128404// OrderBy sets the optional parameter "orderBy": Sorts list results by
128405// a certain order. By default, results are returned in alphanumerical
128406// order based on the resource name. You can also sort results in
128407// descending order based on the creation timestamp using
128408// `orderBy="creationTimestamp desc". This sorts results based on the
128409// `creationTimestamp` field in reverse chronological order (newest
128410// result first). Use this to sort resources like operations so that the
128411// newest operation is returned first. Currently, only sorting by `name`
128412// or `creationTimestamp desc` is supported.
128413func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
128414	c.urlParams_.Set("orderBy", orderBy)
128415	return c
128416}
128417
128418// PageToken sets the optional parameter "pageToken": Specifies a page
128419// token to use. Set `pageToken` to the `nextPageToken` returned by a
128420// previous list request to get the next page of results.
128421func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
128422	c.urlParams_.Set("pageToken", pageToken)
128423	return c
128424}
128425
128426// ReturnPartialSuccess sets the optional parameter
128427// "returnPartialSuccess": Opt-in for partial success behavior which
128428// provides partial results in case of failure. The default value is
128429// false.
128430func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
128431	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128432	return c
128433}
128434
128435// Fields allows partial responses to be retrieved. See
128436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128437// for more information.
128438func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
128439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128440	return c
128441}
128442
128443// Context sets the context to be used in this call's Do method. Any
128444// pending HTTP request will be aborted if the provided context is
128445// canceled.
128446func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
128447	c.ctx_ = ctx
128448	return c
128449}
128450
128451// Header returns an http.Header that can be modified by the caller to
128452// add HTTP headers to the request.
128453func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
128454	if c.header_ == nil {
128455		c.header_ = make(http.Header)
128456	}
128457	return c.header_
128458}
128459
128460func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
128461	reqHeaders := make(http.Header)
128462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
128463	for k, v := range c.header_ {
128464		reqHeaders[k] = v
128465	}
128466	reqHeaders.Set("User-Agent", c.s.userAgent())
128467	var body io.Reader = nil
128468	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
128469	if err != nil {
128470		return nil, err
128471	}
128472	reqHeaders.Set("Content-Type", "application/json")
128473	c.urlParams_.Set("alt", alt)
128474	c.urlParams_.Set("prettyPrint", "false")
128475	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
128476	urls += "?" + c.urlParams_.Encode()
128477	req, err := http.NewRequest("POST", urls, body)
128478	if err != nil {
128479		return nil, err
128480	}
128481	req.Header = reqHeaders
128482	googleapi.Expand(req.URL, map[string]string{
128483		"project":       c.project,
128484		"region":        c.region,
128485		"instanceGroup": c.instanceGroup,
128486	})
128487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128488}
128489
128490// Do executes the "compute.regionInstanceGroups.listInstances" call.
128491// Exactly one of *RegionInstanceGroupsListInstances or error will be
128492// non-nil. Any non-2xx status code is an error. Response headers are in
128493// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
128494// (if a response was returned at all) in
128495// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
128496// whether the returned error was because http.StatusNotModified was
128497// returned.
128498func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
128499	gensupport.SetOptions(c.urlParams_, opts...)
128500	res, err := c.doRequest("json")
128501	if res != nil && res.StatusCode == http.StatusNotModified {
128502		if res.Body != nil {
128503			res.Body.Close()
128504		}
128505		return nil, &googleapi.Error{
128506			Code:   res.StatusCode,
128507			Header: res.Header,
128508		}
128509	}
128510	if err != nil {
128511		return nil, err
128512	}
128513	defer googleapi.CloseBody(res)
128514	if err := googleapi.CheckResponse(res); err != nil {
128515		return nil, err
128516	}
128517	ret := &RegionInstanceGroupsListInstances{
128518		ServerResponse: googleapi.ServerResponse{
128519			Header:         res.Header,
128520			HTTPStatusCode: res.StatusCode,
128521		},
128522	}
128523	target := &ret
128524	if err := gensupport.DecodeResponse(target, res); err != nil {
128525		return nil, err
128526	}
128527	return ret, nil
128528	// {
128529	//   "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.",
128530	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
128531	//   "httpMethod": "POST",
128532	//   "id": "compute.regionInstanceGroups.listInstances",
128533	//   "parameterOrder": [
128534	//     "project",
128535	//     "region",
128536	//     "instanceGroup"
128537	//   ],
128538	//   "parameters": {
128539	//     "filter": {
128540	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128541	//       "location": "query",
128542	//       "type": "string"
128543	//     },
128544	//     "instanceGroup": {
128545	//       "description": "Name of the regional instance group for which we want to list the instances.",
128546	//       "location": "path",
128547	//       "required": true,
128548	//       "type": "string"
128549	//     },
128550	//     "maxResults": {
128551	//       "default": "500",
128552	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128553	//       "format": "uint32",
128554	//       "location": "query",
128555	//       "minimum": "0",
128556	//       "type": "integer"
128557	//     },
128558	//     "orderBy": {
128559	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
128560	//       "location": "query",
128561	//       "type": "string"
128562	//     },
128563	//     "pageToken": {
128564	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128565	//       "location": "query",
128566	//       "type": "string"
128567	//     },
128568	//     "project": {
128569	//       "description": "Project ID for this request.",
128570	//       "location": "path",
128571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128572	//       "required": true,
128573	//       "type": "string"
128574	//     },
128575	//     "region": {
128576	//       "description": "Name of the region scoping this request.",
128577	//       "location": "path",
128578	//       "required": true,
128579	//       "type": "string"
128580	//     },
128581	//     "returnPartialSuccess": {
128582	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128583	//       "location": "query",
128584	//       "type": "boolean"
128585	//     }
128586	//   },
128587	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
128588	//   "request": {
128589	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
128590	//   },
128591	//   "response": {
128592	//     "$ref": "RegionInstanceGroupsListInstances"
128593	//   },
128594	//   "scopes": [
128595	//     "https://www.googleapis.com/auth/cloud-platform",
128596	//     "https://www.googleapis.com/auth/compute",
128597	//     "https://www.googleapis.com/auth/compute.readonly"
128598	//   ]
128599	// }
128600
128601}
128602
128603// Pages invokes f for each page of results.
128604// A non-nil error returned from f will halt the iteration.
128605// The provided context supersedes any context provided to the Context method.
128606func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
128607	c.ctx_ = ctx
128608	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128609	for {
128610		x, err := c.Do()
128611		if err != nil {
128612			return err
128613		}
128614		if err := f(x); err != nil {
128615			return err
128616		}
128617		if x.NextPageToken == "" {
128618			return nil
128619		}
128620		c.PageToken(x.NextPageToken)
128621	}
128622}
128623
128624// method id "compute.regionInstanceGroups.setNamedPorts":
128625
128626type RegionInstanceGroupsSetNamedPortsCall struct {
128627	s                                        *Service
128628	project                                  string
128629	region                                   string
128630	instanceGroup                            string
128631	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
128632	urlParams_                               gensupport.URLParams
128633	ctx_                                     context.Context
128634	header_                                  http.Header
128635}
128636
128637// SetNamedPorts: Sets the named ports for the specified regional
128638// instance group.
128639//
128640// - instanceGroup: The name of the regional instance group where the
128641//   named ports are updated.
128642// - project: Project ID for this request.
128643// - region: Name of the region scoping this request.
128644func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
128645	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128646	c.project = project
128647	c.region = region
128648	c.instanceGroup = instanceGroup
128649	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
128650	return c
128651}
128652
128653// RequestId sets the optional parameter "requestId": An optional
128654// request ID to identify requests. Specify a unique request ID so that
128655// if you must retry your request, the server will know to ignore the
128656// request if it has already been completed. For example, consider a
128657// situation where you make an initial request and the request times
128658// out. If you make the request again with the same request ID, the
128659// server can check if original operation with the same request ID was
128660// received, and if so, will ignore the second request. This prevents
128661// clients from accidentally creating duplicate commitments. The request
128662// ID must be a valid UUID with the exception that zero UUID is not
128663// supported ( 00000000-0000-0000-0000-000000000000).
128664func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
128665	c.urlParams_.Set("requestId", requestId)
128666	return c
128667}
128668
128669// Fields allows partial responses to be retrieved. See
128670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128671// for more information.
128672func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
128673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128674	return c
128675}
128676
128677// Context sets the context to be used in this call's Do method. Any
128678// pending HTTP request will be aborted if the provided context is
128679// canceled.
128680func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
128681	c.ctx_ = ctx
128682	return c
128683}
128684
128685// Header returns an http.Header that can be modified by the caller to
128686// add HTTP headers to the request.
128687func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
128688	if c.header_ == nil {
128689		c.header_ = make(http.Header)
128690	}
128691	return c.header_
128692}
128693
128694func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
128695	reqHeaders := make(http.Header)
128696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
128697	for k, v := range c.header_ {
128698		reqHeaders[k] = v
128699	}
128700	reqHeaders.Set("User-Agent", c.s.userAgent())
128701	var body io.Reader = nil
128702	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
128703	if err != nil {
128704		return nil, err
128705	}
128706	reqHeaders.Set("Content-Type", "application/json")
128707	c.urlParams_.Set("alt", alt)
128708	c.urlParams_.Set("prettyPrint", "false")
128709	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
128710	urls += "?" + c.urlParams_.Encode()
128711	req, err := http.NewRequest("POST", urls, body)
128712	if err != nil {
128713		return nil, err
128714	}
128715	req.Header = reqHeaders
128716	googleapi.Expand(req.URL, map[string]string{
128717		"project":       c.project,
128718		"region":        c.region,
128719		"instanceGroup": c.instanceGroup,
128720	})
128721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128722}
128723
128724// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
128725// Exactly one of *Operation or error will be non-nil. Any non-2xx
128726// status code is an error. Response headers are in either
128727// *Operation.ServerResponse.Header or (if a response was returned at
128728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128729// to check whether the returned error was because
128730// http.StatusNotModified was returned.
128731func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128732	gensupport.SetOptions(c.urlParams_, opts...)
128733	res, err := c.doRequest("json")
128734	if res != nil && res.StatusCode == http.StatusNotModified {
128735		if res.Body != nil {
128736			res.Body.Close()
128737		}
128738		return nil, &googleapi.Error{
128739			Code:   res.StatusCode,
128740			Header: res.Header,
128741		}
128742	}
128743	if err != nil {
128744		return nil, err
128745	}
128746	defer googleapi.CloseBody(res)
128747	if err := googleapi.CheckResponse(res); err != nil {
128748		return nil, err
128749	}
128750	ret := &Operation{
128751		ServerResponse: googleapi.ServerResponse{
128752			Header:         res.Header,
128753			HTTPStatusCode: res.StatusCode,
128754		},
128755	}
128756	target := &ret
128757	if err := gensupport.DecodeResponse(target, res); err != nil {
128758		return nil, err
128759	}
128760	return ret, nil
128761	// {
128762	//   "description": "Sets the named ports for the specified regional instance group.",
128763	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
128764	//   "httpMethod": "POST",
128765	//   "id": "compute.regionInstanceGroups.setNamedPorts",
128766	//   "parameterOrder": [
128767	//     "project",
128768	//     "region",
128769	//     "instanceGroup"
128770	//   ],
128771	//   "parameters": {
128772	//     "instanceGroup": {
128773	//       "description": "The name of the regional instance group where the named ports are updated.",
128774	//       "location": "path",
128775	//       "required": true,
128776	//       "type": "string"
128777	//     },
128778	//     "project": {
128779	//       "description": "Project ID for this request.",
128780	//       "location": "path",
128781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128782	//       "required": true,
128783	//       "type": "string"
128784	//     },
128785	//     "region": {
128786	//       "description": "Name of the region scoping this request.",
128787	//       "location": "path",
128788	//       "required": true,
128789	//       "type": "string"
128790	//     },
128791	//     "requestId": {
128792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
128793	//       "location": "query",
128794	//       "type": "string"
128795	//     }
128796	//   },
128797	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
128798	//   "request": {
128799	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
128800	//   },
128801	//   "response": {
128802	//     "$ref": "Operation"
128803	//   },
128804	//   "scopes": [
128805	//     "https://www.googleapis.com/auth/cloud-platform",
128806	//     "https://www.googleapis.com/auth/compute"
128807	//   ]
128808	// }
128809
128810}
128811
128812// method id "compute.regionInstances.bulkInsert":
128813
128814type RegionInstancesBulkInsertCall struct {
128815	s                          *Service
128816	project                    string
128817	region                     string
128818	bulkinsertinstanceresource *BulkInsertInstanceResource
128819	urlParams_                 gensupport.URLParams
128820	ctx_                       context.Context
128821	header_                    http.Header
128822}
128823
128824// BulkInsert: Creates multiple instances in a given region. Count
128825// specifies the number of instances to create.
128826//
128827// - project: Project ID for this request.
128828// - region: The name of the region for this request.
128829func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
128830	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128831	c.project = project
128832	c.region = region
128833	c.bulkinsertinstanceresource = bulkinsertinstanceresource
128834	return c
128835}
128836
128837// RequestId sets the optional parameter "requestId": An optional
128838// request ID to identify requests. Specify a unique request ID so that
128839// if you must retry your request, the server will know to ignore the
128840// request if it has already been completed. For example, consider a
128841// situation where you make an initial request and the request times
128842// out. If you make the request again with the same request ID, the
128843// server can check if original operation with the same request ID was
128844// received, and if so, will ignore the second request. This prevents
128845// clients from accidentally creating duplicate commitments. The request
128846// ID must be a valid UUID with the exception that zero UUID is not
128847// supported ( 00000000-0000-0000-0000-000000000000).
128848func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
128849	c.urlParams_.Set("requestId", requestId)
128850	return c
128851}
128852
128853// Fields allows partial responses to be retrieved. See
128854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128855// for more information.
128856func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
128857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128858	return c
128859}
128860
128861// Context sets the context to be used in this call's Do method. Any
128862// pending HTTP request will be aborted if the provided context is
128863// canceled.
128864func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
128865	c.ctx_ = ctx
128866	return c
128867}
128868
128869// Header returns an http.Header that can be modified by the caller to
128870// add HTTP headers to the request.
128871func (c *RegionInstancesBulkInsertCall) Header() http.Header {
128872	if c.header_ == nil {
128873		c.header_ = make(http.Header)
128874	}
128875	return c.header_
128876}
128877
128878func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
128879	reqHeaders := make(http.Header)
128880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
128881	for k, v := range c.header_ {
128882		reqHeaders[k] = v
128883	}
128884	reqHeaders.Set("User-Agent", c.s.userAgent())
128885	var body io.Reader = nil
128886	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
128887	if err != nil {
128888		return nil, err
128889	}
128890	reqHeaders.Set("Content-Type", "application/json")
128891	c.urlParams_.Set("alt", alt)
128892	c.urlParams_.Set("prettyPrint", "false")
128893	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert")
128894	urls += "?" + c.urlParams_.Encode()
128895	req, err := http.NewRequest("POST", urls, body)
128896	if err != nil {
128897		return nil, err
128898	}
128899	req.Header = reqHeaders
128900	googleapi.Expand(req.URL, map[string]string{
128901		"project": c.project,
128902		"region":  c.region,
128903	})
128904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128905}
128906
128907// Do executes the "compute.regionInstances.bulkInsert" call.
128908// Exactly one of *Operation or error will be non-nil. Any non-2xx
128909// status code is an error. Response headers are in either
128910// *Operation.ServerResponse.Header or (if a response was returned at
128911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128912// to check whether the returned error was because
128913// http.StatusNotModified was returned.
128914func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128915	gensupport.SetOptions(c.urlParams_, opts...)
128916	res, err := c.doRequest("json")
128917	if res != nil && res.StatusCode == http.StatusNotModified {
128918		if res.Body != nil {
128919			res.Body.Close()
128920		}
128921		return nil, &googleapi.Error{
128922			Code:   res.StatusCode,
128923			Header: res.Header,
128924		}
128925	}
128926	if err != nil {
128927		return nil, err
128928	}
128929	defer googleapi.CloseBody(res)
128930	if err := googleapi.CheckResponse(res); err != nil {
128931		return nil, err
128932	}
128933	ret := &Operation{
128934		ServerResponse: googleapi.ServerResponse{
128935			Header:         res.Header,
128936			HTTPStatusCode: res.StatusCode,
128937		},
128938	}
128939	target := &ret
128940	if err := gensupport.DecodeResponse(target, res); err != nil {
128941		return nil, err
128942	}
128943	return ret, nil
128944	// {
128945	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
128946	//   "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert",
128947	//   "httpMethod": "POST",
128948	//   "id": "compute.regionInstances.bulkInsert",
128949	//   "parameterOrder": [
128950	//     "project",
128951	//     "region"
128952	//   ],
128953	//   "parameters": {
128954	//     "project": {
128955	//       "description": "Project ID for this request.",
128956	//       "location": "path",
128957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128958	//       "required": true,
128959	//       "type": "string"
128960	//     },
128961	//     "region": {
128962	//       "description": "The name of the region for this request.",
128963	//       "location": "path",
128964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128965	//       "required": true,
128966	//       "type": "string"
128967	//     },
128968	//     "requestId": {
128969	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
128970	//       "location": "query",
128971	//       "type": "string"
128972	//     }
128973	//   },
128974	//   "path": "projects/{project}/regions/{region}/instances/bulkInsert",
128975	//   "request": {
128976	//     "$ref": "BulkInsertInstanceResource"
128977	//   },
128978	//   "response": {
128979	//     "$ref": "Operation"
128980	//   },
128981	//   "scopes": [
128982	//     "https://www.googleapis.com/auth/cloud-platform",
128983	//     "https://www.googleapis.com/auth/compute"
128984	//   ]
128985	// }
128986
128987}
128988
128989// method id "compute.regionNetworkEndpointGroups.delete":
128990
128991type RegionNetworkEndpointGroupsDeleteCall struct {
128992	s                    *Service
128993	project              string
128994	region               string
128995	networkEndpointGroup string
128996	urlParams_           gensupport.URLParams
128997	ctx_                 context.Context
128998	header_              http.Header
128999}
129000
129001// Delete: Deletes the specified network endpoint group. Note that the
129002// NEG cannot be deleted if it is configured as a backend of a backend
129003// service.
129004//
129005// - networkEndpointGroup: The name of the network endpoint group to
129006//   delete. It should comply with RFC1035.
129007// - project: Project ID for this request.
129008// - region: The name of the region where the network endpoint group is
129009//   located. It should comply with RFC1035.
129010func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
129011	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129012	c.project = project
129013	c.region = region
129014	c.networkEndpointGroup = networkEndpointGroup
129015	return c
129016}
129017
129018// RequestId sets the optional parameter "requestId": An optional
129019// request ID to identify requests. Specify a unique request ID so that
129020// if you must retry your request, the server will know to ignore the
129021// request if it has already been completed. For example, consider a
129022// situation where you make an initial request and the request times
129023// out. If you make the request again with the same request ID, the
129024// server can check if original operation with the same request ID was
129025// received, and if so, will ignore the second request. This prevents
129026// clients from accidentally creating duplicate commitments. The request
129027// ID must be a valid UUID with the exception that zero UUID is not
129028// supported ( 00000000-0000-0000-0000-000000000000).
129029func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
129030	c.urlParams_.Set("requestId", requestId)
129031	return c
129032}
129033
129034// Fields allows partial responses to be retrieved. See
129035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129036// for more information.
129037func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
129038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129039	return c
129040}
129041
129042// Context sets the context to be used in this call's Do method. Any
129043// pending HTTP request will be aborted if the provided context is
129044// canceled.
129045func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
129046	c.ctx_ = ctx
129047	return c
129048}
129049
129050// Header returns an http.Header that can be modified by the caller to
129051// add HTTP headers to the request.
129052func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
129053	if c.header_ == nil {
129054		c.header_ = make(http.Header)
129055	}
129056	return c.header_
129057}
129058
129059func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
129060	reqHeaders := make(http.Header)
129061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
129062	for k, v := range c.header_ {
129063		reqHeaders[k] = v
129064	}
129065	reqHeaders.Set("User-Agent", c.s.userAgent())
129066	var body io.Reader = nil
129067	c.urlParams_.Set("alt", alt)
129068	c.urlParams_.Set("prettyPrint", "false")
129069	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
129070	urls += "?" + c.urlParams_.Encode()
129071	req, err := http.NewRequest("DELETE", urls, body)
129072	if err != nil {
129073		return nil, err
129074	}
129075	req.Header = reqHeaders
129076	googleapi.Expand(req.URL, map[string]string{
129077		"project":              c.project,
129078		"region":               c.region,
129079		"networkEndpointGroup": c.networkEndpointGroup,
129080	})
129081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129082}
129083
129084// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
129085// Exactly one of *Operation or error will be non-nil. Any non-2xx
129086// status code is an error. Response headers are in either
129087// *Operation.ServerResponse.Header or (if a response was returned at
129088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129089// to check whether the returned error was because
129090// http.StatusNotModified was returned.
129091func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129092	gensupport.SetOptions(c.urlParams_, opts...)
129093	res, err := c.doRequest("json")
129094	if res != nil && res.StatusCode == http.StatusNotModified {
129095		if res.Body != nil {
129096			res.Body.Close()
129097		}
129098		return nil, &googleapi.Error{
129099			Code:   res.StatusCode,
129100			Header: res.Header,
129101		}
129102	}
129103	if err != nil {
129104		return nil, err
129105	}
129106	defer googleapi.CloseBody(res)
129107	if err := googleapi.CheckResponse(res); err != nil {
129108		return nil, err
129109	}
129110	ret := &Operation{
129111		ServerResponse: googleapi.ServerResponse{
129112			Header:         res.Header,
129113			HTTPStatusCode: res.StatusCode,
129114		},
129115	}
129116	target := &ret
129117	if err := gensupport.DecodeResponse(target, res); err != nil {
129118		return nil, err
129119	}
129120	return ret, nil
129121	// {
129122	//   "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.",
129123	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129124	//   "httpMethod": "DELETE",
129125	//   "id": "compute.regionNetworkEndpointGroups.delete",
129126	//   "parameterOrder": [
129127	//     "project",
129128	//     "region",
129129	//     "networkEndpointGroup"
129130	//   ],
129131	//   "parameters": {
129132	//     "networkEndpointGroup": {
129133	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
129134	//       "location": "path",
129135	//       "required": true,
129136	//       "type": "string"
129137	//     },
129138	//     "project": {
129139	//       "description": "Project ID for this request.",
129140	//       "location": "path",
129141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129142	//       "required": true,
129143	//       "type": "string"
129144	//     },
129145	//     "region": {
129146	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
129147	//       "location": "path",
129148	//       "required": true,
129149	//       "type": "string"
129150	//     },
129151	//     "requestId": {
129152	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129153	//       "location": "query",
129154	//       "type": "string"
129155	//     }
129156	//   },
129157	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129158	//   "response": {
129159	//     "$ref": "Operation"
129160	//   },
129161	//   "scopes": [
129162	//     "https://www.googleapis.com/auth/cloud-platform",
129163	//     "https://www.googleapis.com/auth/compute"
129164	//   ]
129165	// }
129166
129167}
129168
129169// method id "compute.regionNetworkEndpointGroups.get":
129170
129171type RegionNetworkEndpointGroupsGetCall struct {
129172	s                    *Service
129173	project              string
129174	region               string
129175	networkEndpointGroup string
129176	urlParams_           gensupport.URLParams
129177	ifNoneMatch_         string
129178	ctx_                 context.Context
129179	header_              http.Header
129180}
129181
129182// Get: Returns the specified network endpoint group. Gets a list of
129183// available network endpoint groups by making a list() request.
129184//
129185// - networkEndpointGroup: The name of the network endpoint group. It
129186//   should comply with RFC1035.
129187// - project: Project ID for this request.
129188// - region: The name of the region where the network endpoint group is
129189//   located. It should comply with RFC1035.
129190func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
129191	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129192	c.project = project
129193	c.region = region
129194	c.networkEndpointGroup = networkEndpointGroup
129195	return c
129196}
129197
129198// Fields allows partial responses to be retrieved. See
129199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129200// for more information.
129201func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
129202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129203	return c
129204}
129205
129206// IfNoneMatch sets the optional parameter which makes the operation
129207// fail if the object's ETag matches the given value. This is useful for
129208// getting updates only after the object has changed since the last
129209// request. Use googleapi.IsNotModified to check whether the response
129210// error from Do is the result of In-None-Match.
129211func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
129212	c.ifNoneMatch_ = entityTag
129213	return c
129214}
129215
129216// Context sets the context to be used in this call's Do method. Any
129217// pending HTTP request will be aborted if the provided context is
129218// canceled.
129219func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
129220	c.ctx_ = ctx
129221	return c
129222}
129223
129224// Header returns an http.Header that can be modified by the caller to
129225// add HTTP headers to the request.
129226func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
129227	if c.header_ == nil {
129228		c.header_ = make(http.Header)
129229	}
129230	return c.header_
129231}
129232
129233func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
129234	reqHeaders := make(http.Header)
129235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
129236	for k, v := range c.header_ {
129237		reqHeaders[k] = v
129238	}
129239	reqHeaders.Set("User-Agent", c.s.userAgent())
129240	if c.ifNoneMatch_ != "" {
129241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129242	}
129243	var body io.Reader = nil
129244	c.urlParams_.Set("alt", alt)
129245	c.urlParams_.Set("prettyPrint", "false")
129246	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
129247	urls += "?" + c.urlParams_.Encode()
129248	req, err := http.NewRequest("GET", urls, body)
129249	if err != nil {
129250		return nil, err
129251	}
129252	req.Header = reqHeaders
129253	googleapi.Expand(req.URL, map[string]string{
129254		"project":              c.project,
129255		"region":               c.region,
129256		"networkEndpointGroup": c.networkEndpointGroup,
129257	})
129258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129259}
129260
129261// Do executes the "compute.regionNetworkEndpointGroups.get" call.
129262// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
129263// non-2xx status code is an error. Response headers are in either
129264// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
129265// returned at all) in error.(*googleapi.Error).Header. Use
129266// googleapi.IsNotModified to check whether the returned error was
129267// because http.StatusNotModified was returned.
129268func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
129269	gensupport.SetOptions(c.urlParams_, opts...)
129270	res, err := c.doRequest("json")
129271	if res != nil && res.StatusCode == http.StatusNotModified {
129272		if res.Body != nil {
129273			res.Body.Close()
129274		}
129275		return nil, &googleapi.Error{
129276			Code:   res.StatusCode,
129277			Header: res.Header,
129278		}
129279	}
129280	if err != nil {
129281		return nil, err
129282	}
129283	defer googleapi.CloseBody(res)
129284	if err := googleapi.CheckResponse(res); err != nil {
129285		return nil, err
129286	}
129287	ret := &NetworkEndpointGroup{
129288		ServerResponse: googleapi.ServerResponse{
129289			Header:         res.Header,
129290			HTTPStatusCode: res.StatusCode,
129291		},
129292	}
129293	target := &ret
129294	if err := gensupport.DecodeResponse(target, res); err != nil {
129295		return nil, err
129296	}
129297	return ret, nil
129298	// {
129299	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
129300	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129301	//   "httpMethod": "GET",
129302	//   "id": "compute.regionNetworkEndpointGroups.get",
129303	//   "parameterOrder": [
129304	//     "project",
129305	//     "region",
129306	//     "networkEndpointGroup"
129307	//   ],
129308	//   "parameters": {
129309	//     "networkEndpointGroup": {
129310	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
129311	//       "location": "path",
129312	//       "required": true,
129313	//       "type": "string"
129314	//     },
129315	//     "project": {
129316	//       "description": "Project ID for this request.",
129317	//       "location": "path",
129318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129319	//       "required": true,
129320	//       "type": "string"
129321	//     },
129322	//     "region": {
129323	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
129324	//       "location": "path",
129325	//       "required": true,
129326	//       "type": "string"
129327	//     }
129328	//   },
129329	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129330	//   "response": {
129331	//     "$ref": "NetworkEndpointGroup"
129332	//   },
129333	//   "scopes": [
129334	//     "https://www.googleapis.com/auth/cloud-platform",
129335	//     "https://www.googleapis.com/auth/compute",
129336	//     "https://www.googleapis.com/auth/compute.readonly"
129337	//   ]
129338	// }
129339
129340}
129341
129342// method id "compute.regionNetworkEndpointGroups.insert":
129343
129344type RegionNetworkEndpointGroupsInsertCall struct {
129345	s                    *Service
129346	project              string
129347	region               string
129348	networkendpointgroup *NetworkEndpointGroup
129349	urlParams_           gensupport.URLParams
129350	ctx_                 context.Context
129351	header_              http.Header
129352}
129353
129354// Insert: Creates a network endpoint group in the specified project
129355// using the parameters that are included in the request.
129356//
129357// - project: Project ID for this request.
129358// - region: The name of the region where you want to create the network
129359//   endpoint group. It should comply with RFC1035.
129360func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
129361	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129362	c.project = project
129363	c.region = region
129364	c.networkendpointgroup = networkendpointgroup
129365	return c
129366}
129367
129368// RequestId sets the optional parameter "requestId": An optional
129369// request ID to identify requests. Specify a unique request ID so that
129370// if you must retry your request, the server will know to ignore the
129371// request if it has already been completed. For example, consider a
129372// situation where you make an initial request and the request times
129373// out. If you make the request again with the same request ID, the
129374// server can check if original operation with the same request ID was
129375// received, and if so, will ignore the second request. This prevents
129376// clients from accidentally creating duplicate commitments. The request
129377// ID must be a valid UUID with the exception that zero UUID is not
129378// supported ( 00000000-0000-0000-0000-000000000000).
129379func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
129380	c.urlParams_.Set("requestId", requestId)
129381	return c
129382}
129383
129384// Fields allows partial responses to be retrieved. See
129385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129386// for more information.
129387func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
129388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129389	return c
129390}
129391
129392// Context sets the context to be used in this call's Do method. Any
129393// pending HTTP request will be aborted if the provided context is
129394// canceled.
129395func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
129396	c.ctx_ = ctx
129397	return c
129398}
129399
129400// Header returns an http.Header that can be modified by the caller to
129401// add HTTP headers to the request.
129402func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
129403	if c.header_ == nil {
129404		c.header_ = make(http.Header)
129405	}
129406	return c.header_
129407}
129408
129409func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
129410	reqHeaders := make(http.Header)
129411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
129412	for k, v := range c.header_ {
129413		reqHeaders[k] = v
129414	}
129415	reqHeaders.Set("User-Agent", c.s.userAgent())
129416	var body io.Reader = nil
129417	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
129418	if err != nil {
129419		return nil, err
129420	}
129421	reqHeaders.Set("Content-Type", "application/json")
129422	c.urlParams_.Set("alt", alt)
129423	c.urlParams_.Set("prettyPrint", "false")
129424	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
129425	urls += "?" + c.urlParams_.Encode()
129426	req, err := http.NewRequest("POST", urls, body)
129427	if err != nil {
129428		return nil, err
129429	}
129430	req.Header = reqHeaders
129431	googleapi.Expand(req.URL, map[string]string{
129432		"project": c.project,
129433		"region":  c.region,
129434	})
129435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129436}
129437
129438// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
129439// Exactly one of *Operation or error will be non-nil. Any non-2xx
129440// status code is an error. Response headers are in either
129441// *Operation.ServerResponse.Header or (if a response was returned at
129442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129443// to check whether the returned error was because
129444// http.StatusNotModified was returned.
129445func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129446	gensupport.SetOptions(c.urlParams_, opts...)
129447	res, err := c.doRequest("json")
129448	if res != nil && res.StatusCode == http.StatusNotModified {
129449		if res.Body != nil {
129450			res.Body.Close()
129451		}
129452		return nil, &googleapi.Error{
129453			Code:   res.StatusCode,
129454			Header: res.Header,
129455		}
129456	}
129457	if err != nil {
129458		return nil, err
129459	}
129460	defer googleapi.CloseBody(res)
129461	if err := googleapi.CheckResponse(res); err != nil {
129462		return nil, err
129463	}
129464	ret := &Operation{
129465		ServerResponse: googleapi.ServerResponse{
129466			Header:         res.Header,
129467			HTTPStatusCode: res.StatusCode,
129468		},
129469	}
129470	target := &ret
129471	if err := gensupport.DecodeResponse(target, res); err != nil {
129472		return nil, err
129473	}
129474	return ret, nil
129475	// {
129476	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
129477	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
129478	//   "httpMethod": "POST",
129479	//   "id": "compute.regionNetworkEndpointGroups.insert",
129480	//   "parameterOrder": [
129481	//     "project",
129482	//     "region"
129483	//   ],
129484	//   "parameters": {
129485	//     "project": {
129486	//       "description": "Project ID for this request.",
129487	//       "location": "path",
129488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129489	//       "required": true,
129490	//       "type": "string"
129491	//     },
129492	//     "region": {
129493	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
129494	//       "location": "path",
129495	//       "required": true,
129496	//       "type": "string"
129497	//     },
129498	//     "requestId": {
129499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129500	//       "location": "query",
129501	//       "type": "string"
129502	//     }
129503	//   },
129504	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
129505	//   "request": {
129506	//     "$ref": "NetworkEndpointGroup"
129507	//   },
129508	//   "response": {
129509	//     "$ref": "Operation"
129510	//   },
129511	//   "scopes": [
129512	//     "https://www.googleapis.com/auth/cloud-platform",
129513	//     "https://www.googleapis.com/auth/compute"
129514	//   ]
129515	// }
129516
129517}
129518
129519// method id "compute.regionNetworkEndpointGroups.list":
129520
129521type RegionNetworkEndpointGroupsListCall struct {
129522	s            *Service
129523	project      string
129524	region       string
129525	urlParams_   gensupport.URLParams
129526	ifNoneMatch_ string
129527	ctx_         context.Context
129528	header_      http.Header
129529}
129530
129531// List: Retrieves the list of regional network endpoint groups
129532// available to the specified project in the given region.
129533//
129534// - project: Project ID for this request.
129535// - region: The name of the region where the network endpoint group is
129536//   located. It should comply with RFC1035.
129537func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
129538	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129539	c.project = project
129540	c.region = region
129541	return c
129542}
129543
129544// Filter sets the optional parameter "filter": A filter expression that
129545// filters resources listed in the response. The expression must specify
129546// the field name, a comparison operator, and the value that you want to
129547// use for filtering. The value must be a string, a number, or a
129548// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129549// `<`. For example, if you are filtering Compute Engine instances, you
129550// can exclude instances named `example-instance` by specifying `name !=
129551// example-instance`. You can also filter nested fields. For example,
129552// you could specify `scheduling.automaticRestart = false` to include
129553// instances only if they are not scheduled for automatic restarts. You
129554// can use filtering on nested fields to filter based on resource
129555// labels. To filter on multiple expressions, provide each separate
129556// expression within parentheses. For example: ```
129557// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
129558// ``` By default, each expression is an `AND` expression. However, you
129559// can include `AND` and `OR` expressions explicitly. For example: ```
129560// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
129561// AND (scheduling.automaticRestart = true) ```
129562func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
129563	c.urlParams_.Set("filter", filter)
129564	return c
129565}
129566
129567// MaxResults sets the optional parameter "maxResults": The maximum
129568// number of results per page that should be returned. If the number of
129569// available results is larger than `maxResults`, Compute Engine returns
129570// a `nextPageToken` that can be used to get the next page of results in
129571// subsequent list requests. Acceptable values are `0` to `500`,
129572// inclusive. (Default: `500`)
129573func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
129574	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129575	return c
129576}
129577
129578// OrderBy sets the optional parameter "orderBy": Sorts list results by
129579// a certain order. By default, results are returned in alphanumerical
129580// order based on the resource name. You can also sort results in
129581// descending order based on the creation timestamp using
129582// `orderBy="creationTimestamp desc". This sorts results based on the
129583// `creationTimestamp` field in reverse chronological order (newest
129584// result first). Use this to sort resources like operations so that the
129585// newest operation is returned first. Currently, only sorting by `name`
129586// or `creationTimestamp desc` is supported.
129587func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
129588	c.urlParams_.Set("orderBy", orderBy)
129589	return c
129590}
129591
129592// PageToken sets the optional parameter "pageToken": Specifies a page
129593// token to use. Set `pageToken` to the `nextPageToken` returned by a
129594// previous list request to get the next page of results.
129595func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
129596	c.urlParams_.Set("pageToken", pageToken)
129597	return c
129598}
129599
129600// ReturnPartialSuccess sets the optional parameter
129601// "returnPartialSuccess": Opt-in for partial success behavior which
129602// provides partial results in case of failure. The default value is
129603// false.
129604func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
129605	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
129606	return c
129607}
129608
129609// Fields allows partial responses to be retrieved. See
129610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129611// for more information.
129612func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
129613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129614	return c
129615}
129616
129617// IfNoneMatch sets the optional parameter which makes the operation
129618// fail if the object's ETag matches the given value. This is useful for
129619// getting updates only after the object has changed since the last
129620// request. Use googleapi.IsNotModified to check whether the response
129621// error from Do is the result of In-None-Match.
129622func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
129623	c.ifNoneMatch_ = entityTag
129624	return c
129625}
129626
129627// Context sets the context to be used in this call's Do method. Any
129628// pending HTTP request will be aborted if the provided context is
129629// canceled.
129630func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
129631	c.ctx_ = ctx
129632	return c
129633}
129634
129635// Header returns an http.Header that can be modified by the caller to
129636// add HTTP headers to the request.
129637func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
129638	if c.header_ == nil {
129639		c.header_ = make(http.Header)
129640	}
129641	return c.header_
129642}
129643
129644func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
129645	reqHeaders := make(http.Header)
129646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
129647	for k, v := range c.header_ {
129648		reqHeaders[k] = v
129649	}
129650	reqHeaders.Set("User-Agent", c.s.userAgent())
129651	if c.ifNoneMatch_ != "" {
129652		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129653	}
129654	var body io.Reader = nil
129655	c.urlParams_.Set("alt", alt)
129656	c.urlParams_.Set("prettyPrint", "false")
129657	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
129658	urls += "?" + c.urlParams_.Encode()
129659	req, err := http.NewRequest("GET", urls, body)
129660	if err != nil {
129661		return nil, err
129662	}
129663	req.Header = reqHeaders
129664	googleapi.Expand(req.URL, map[string]string{
129665		"project": c.project,
129666		"region":  c.region,
129667	})
129668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129669}
129670
129671// Do executes the "compute.regionNetworkEndpointGroups.list" call.
129672// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
129673// Any non-2xx status code is an error. Response headers are in either
129674// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
129675// returned at all) in error.(*googleapi.Error).Header. Use
129676// googleapi.IsNotModified to check whether the returned error was
129677// because http.StatusNotModified was returned.
129678func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
129679	gensupport.SetOptions(c.urlParams_, opts...)
129680	res, err := c.doRequest("json")
129681	if res != nil && res.StatusCode == http.StatusNotModified {
129682		if res.Body != nil {
129683			res.Body.Close()
129684		}
129685		return nil, &googleapi.Error{
129686			Code:   res.StatusCode,
129687			Header: res.Header,
129688		}
129689	}
129690	if err != nil {
129691		return nil, err
129692	}
129693	defer googleapi.CloseBody(res)
129694	if err := googleapi.CheckResponse(res); err != nil {
129695		return nil, err
129696	}
129697	ret := &NetworkEndpointGroupList{
129698		ServerResponse: googleapi.ServerResponse{
129699			Header:         res.Header,
129700			HTTPStatusCode: res.StatusCode,
129701		},
129702	}
129703	target := &ret
129704	if err := gensupport.DecodeResponse(target, res); err != nil {
129705		return nil, err
129706	}
129707	return ret, nil
129708	// {
129709	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
129710	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
129711	//   "httpMethod": "GET",
129712	//   "id": "compute.regionNetworkEndpointGroups.list",
129713	//   "parameterOrder": [
129714	//     "project",
129715	//     "region"
129716	//   ],
129717	//   "parameters": {
129718	//     "filter": {
129719	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129720	//       "location": "query",
129721	//       "type": "string"
129722	//     },
129723	//     "maxResults": {
129724	//       "default": "500",
129725	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129726	//       "format": "uint32",
129727	//       "location": "query",
129728	//       "minimum": "0",
129729	//       "type": "integer"
129730	//     },
129731	//     "orderBy": {
129732	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
129733	//       "location": "query",
129734	//       "type": "string"
129735	//     },
129736	//     "pageToken": {
129737	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129738	//       "location": "query",
129739	//       "type": "string"
129740	//     },
129741	//     "project": {
129742	//       "description": "Project ID for this request.",
129743	//       "location": "path",
129744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129745	//       "required": true,
129746	//       "type": "string"
129747	//     },
129748	//     "region": {
129749	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
129750	//       "location": "path",
129751	//       "required": true,
129752	//       "type": "string"
129753	//     },
129754	//     "returnPartialSuccess": {
129755	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
129756	//       "location": "query",
129757	//       "type": "boolean"
129758	//     }
129759	//   },
129760	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
129761	//   "response": {
129762	//     "$ref": "NetworkEndpointGroupList"
129763	//   },
129764	//   "scopes": [
129765	//     "https://www.googleapis.com/auth/cloud-platform",
129766	//     "https://www.googleapis.com/auth/compute",
129767	//     "https://www.googleapis.com/auth/compute.readonly"
129768	//   ]
129769	// }
129770
129771}
129772
129773// Pages invokes f for each page of results.
129774// A non-nil error returned from f will halt the iteration.
129775// The provided context supersedes any context provided to the Context method.
129776func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
129777	c.ctx_ = ctx
129778	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129779	for {
129780		x, err := c.Do()
129781		if err != nil {
129782			return err
129783		}
129784		if err := f(x); err != nil {
129785			return err
129786		}
129787		if x.NextPageToken == "" {
129788			return nil
129789		}
129790		c.PageToken(x.NextPageToken)
129791	}
129792}
129793
129794// method id "compute.regionNotificationEndpoints.delete":
129795
129796type RegionNotificationEndpointsDeleteCall struct {
129797	s                    *Service
129798	project              string
129799	region               string
129800	notificationEndpoint string
129801	urlParams_           gensupport.URLParams
129802	ctx_                 context.Context
129803	header_              http.Header
129804}
129805
129806// Delete: Deletes the specified NotificationEndpoint in the given
129807// region
129808//
129809// - notificationEndpoint: Name of the NotificationEndpoint resource to
129810//   delete.
129811// - project: Project ID for this request.
129812// - region: Name of the region scoping this request.
129813func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
129814	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129815	c.project = project
129816	c.region = region
129817	c.notificationEndpoint = notificationEndpoint
129818	return c
129819}
129820
129821// RequestId sets the optional parameter "requestId": An optional
129822// request ID to identify requests. Specify a unique request ID so that
129823// if you must retry your request, the server will know to ignore the
129824// request if it has already been completed. For example, consider a
129825// situation where you make an initial request and the request times
129826// out. If you make the request again with the same request ID, the
129827// server can check if original operation with the same request ID was
129828// received, and if so, will ignore the second request. This prevents
129829// clients from accidentally creating duplicate commitments. The request
129830// ID must be a valid UUID with the exception that zero UUID is not
129831// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
129832// MixerMutationRequestBuilder
129833func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
129834	c.urlParams_.Set("requestId", requestId)
129835	return c
129836}
129837
129838// Fields allows partial responses to be retrieved. See
129839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129840// for more information.
129841func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
129842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129843	return c
129844}
129845
129846// Context sets the context to be used in this call's Do method. Any
129847// pending HTTP request will be aborted if the provided context is
129848// canceled.
129849func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
129850	c.ctx_ = ctx
129851	return c
129852}
129853
129854// Header returns an http.Header that can be modified by the caller to
129855// add HTTP headers to the request.
129856func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
129857	if c.header_ == nil {
129858		c.header_ = make(http.Header)
129859	}
129860	return c.header_
129861}
129862
129863func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
129864	reqHeaders := make(http.Header)
129865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
129866	for k, v := range c.header_ {
129867		reqHeaders[k] = v
129868	}
129869	reqHeaders.Set("User-Agent", c.s.userAgent())
129870	var body io.Reader = nil
129871	c.urlParams_.Set("alt", alt)
129872	c.urlParams_.Set("prettyPrint", "false")
129873	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
129874	urls += "?" + c.urlParams_.Encode()
129875	req, err := http.NewRequest("DELETE", urls, body)
129876	if err != nil {
129877		return nil, err
129878	}
129879	req.Header = reqHeaders
129880	googleapi.Expand(req.URL, map[string]string{
129881		"project":              c.project,
129882		"region":               c.region,
129883		"notificationEndpoint": c.notificationEndpoint,
129884	})
129885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129886}
129887
129888// Do executes the "compute.regionNotificationEndpoints.delete" call.
129889// Exactly one of *Operation or error will be non-nil. Any non-2xx
129890// status code is an error. Response headers are in either
129891// *Operation.ServerResponse.Header or (if a response was returned at
129892// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129893// to check whether the returned error was because
129894// http.StatusNotModified was returned.
129895func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129896	gensupport.SetOptions(c.urlParams_, opts...)
129897	res, err := c.doRequest("json")
129898	if res != nil && res.StatusCode == http.StatusNotModified {
129899		if res.Body != nil {
129900			res.Body.Close()
129901		}
129902		return nil, &googleapi.Error{
129903			Code:   res.StatusCode,
129904			Header: res.Header,
129905		}
129906	}
129907	if err != nil {
129908		return nil, err
129909	}
129910	defer googleapi.CloseBody(res)
129911	if err := googleapi.CheckResponse(res); err != nil {
129912		return nil, err
129913	}
129914	ret := &Operation{
129915		ServerResponse: googleapi.ServerResponse{
129916			Header:         res.Header,
129917			HTTPStatusCode: res.StatusCode,
129918		},
129919	}
129920	target := &ret
129921	if err := gensupport.DecodeResponse(target, res); err != nil {
129922		return nil, err
129923	}
129924	return ret, nil
129925	// {
129926	//   "description": "Deletes the specified NotificationEndpoint in the given region",
129927	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
129928	//   "httpMethod": "DELETE",
129929	//   "id": "compute.regionNotificationEndpoints.delete",
129930	//   "parameterOrder": [
129931	//     "project",
129932	//     "region",
129933	//     "notificationEndpoint"
129934	//   ],
129935	//   "parameters": {
129936	//     "notificationEndpoint": {
129937	//       "description": "Name of the NotificationEndpoint resource to delete.",
129938	//       "location": "path",
129939	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129940	//       "required": true,
129941	//       "type": "string"
129942	//     },
129943	//     "project": {
129944	//       "description": "Project ID for this request.",
129945	//       "location": "path",
129946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129947	//       "required": true,
129948	//       "type": "string"
129949	//     },
129950	//     "region": {
129951	//       "description": "Name of the region scoping this request.",
129952	//       "location": "path",
129953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129954	//       "required": true,
129955	//       "type": "string"
129956	//     },
129957	//     "requestId": {
129958	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
129959	//       "location": "query",
129960	//       "type": "string"
129961	//     }
129962	//   },
129963	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
129964	//   "response": {
129965	//     "$ref": "Operation"
129966	//   },
129967	//   "scopes": [
129968	//     "https://www.googleapis.com/auth/cloud-platform",
129969	//     "https://www.googleapis.com/auth/compute"
129970	//   ]
129971	// }
129972
129973}
129974
129975// method id "compute.regionNotificationEndpoints.get":
129976
129977type RegionNotificationEndpointsGetCall struct {
129978	s                    *Service
129979	project              string
129980	region               string
129981	notificationEndpoint string
129982	urlParams_           gensupport.URLParams
129983	ifNoneMatch_         string
129984	ctx_                 context.Context
129985	header_              http.Header
129986}
129987
129988// Get: Returns the specified NotificationEndpoint resource in the given
129989// region.
129990//
129991// - notificationEndpoint: Name of the NotificationEndpoint resource to
129992//   return.
129993// - project: Project ID for this request.
129994// - region: Name of the region scoping this request.
129995func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
129996	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129997	c.project = project
129998	c.region = region
129999	c.notificationEndpoint = notificationEndpoint
130000	return c
130001}
130002
130003// Fields allows partial responses to be retrieved. See
130004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130005// for more information.
130006func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
130007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130008	return c
130009}
130010
130011// IfNoneMatch sets the optional parameter which makes the operation
130012// fail if the object's ETag matches the given value. This is useful for
130013// getting updates only after the object has changed since the last
130014// request. Use googleapi.IsNotModified to check whether the response
130015// error from Do is the result of In-None-Match.
130016func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
130017	c.ifNoneMatch_ = entityTag
130018	return c
130019}
130020
130021// Context sets the context to be used in this call's Do method. Any
130022// pending HTTP request will be aborted if the provided context is
130023// canceled.
130024func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
130025	c.ctx_ = ctx
130026	return c
130027}
130028
130029// Header returns an http.Header that can be modified by the caller to
130030// add HTTP headers to the request.
130031func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
130032	if c.header_ == nil {
130033		c.header_ = make(http.Header)
130034	}
130035	return c.header_
130036}
130037
130038func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
130039	reqHeaders := make(http.Header)
130040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
130041	for k, v := range c.header_ {
130042		reqHeaders[k] = v
130043	}
130044	reqHeaders.Set("User-Agent", c.s.userAgent())
130045	if c.ifNoneMatch_ != "" {
130046		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130047	}
130048	var body io.Reader = nil
130049	c.urlParams_.Set("alt", alt)
130050	c.urlParams_.Set("prettyPrint", "false")
130051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
130052	urls += "?" + c.urlParams_.Encode()
130053	req, err := http.NewRequest("GET", urls, body)
130054	if err != nil {
130055		return nil, err
130056	}
130057	req.Header = reqHeaders
130058	googleapi.Expand(req.URL, map[string]string{
130059		"project":              c.project,
130060		"region":               c.region,
130061		"notificationEndpoint": c.notificationEndpoint,
130062	})
130063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130064}
130065
130066// Do executes the "compute.regionNotificationEndpoints.get" call.
130067// Exactly one of *NotificationEndpoint or error will be non-nil. Any
130068// non-2xx status code is an error. Response headers are in either
130069// *NotificationEndpoint.ServerResponse.Header or (if a response was
130070// returned at all) in error.(*googleapi.Error).Header. Use
130071// googleapi.IsNotModified to check whether the returned error was
130072// because http.StatusNotModified was returned.
130073func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
130074	gensupport.SetOptions(c.urlParams_, opts...)
130075	res, err := c.doRequest("json")
130076	if res != nil && res.StatusCode == http.StatusNotModified {
130077		if res.Body != nil {
130078			res.Body.Close()
130079		}
130080		return nil, &googleapi.Error{
130081			Code:   res.StatusCode,
130082			Header: res.Header,
130083		}
130084	}
130085	if err != nil {
130086		return nil, err
130087	}
130088	defer googleapi.CloseBody(res)
130089	if err := googleapi.CheckResponse(res); err != nil {
130090		return nil, err
130091	}
130092	ret := &NotificationEndpoint{
130093		ServerResponse: googleapi.ServerResponse{
130094			Header:         res.Header,
130095			HTTPStatusCode: res.StatusCode,
130096		},
130097	}
130098	target := &ret
130099	if err := gensupport.DecodeResponse(target, res); err != nil {
130100		return nil, err
130101	}
130102	return ret, nil
130103	// {
130104	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
130105	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130106	//   "httpMethod": "GET",
130107	//   "id": "compute.regionNotificationEndpoints.get",
130108	//   "parameterOrder": [
130109	//     "project",
130110	//     "region",
130111	//     "notificationEndpoint"
130112	//   ],
130113	//   "parameters": {
130114	//     "notificationEndpoint": {
130115	//       "description": "Name of the NotificationEndpoint resource to return.",
130116	//       "location": "path",
130117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130118	//       "required": true,
130119	//       "type": "string"
130120	//     },
130121	//     "project": {
130122	//       "description": "Project ID for this request.",
130123	//       "location": "path",
130124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130125	//       "required": true,
130126	//       "type": "string"
130127	//     },
130128	//     "region": {
130129	//       "description": "Name of the region scoping this request.",
130130	//       "location": "path",
130131	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130132	//       "required": true,
130133	//       "type": "string"
130134	//     }
130135	//   },
130136	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130137	//   "response": {
130138	//     "$ref": "NotificationEndpoint"
130139	//   },
130140	//   "scopes": [
130141	//     "https://www.googleapis.com/auth/cloud-platform",
130142	//     "https://www.googleapis.com/auth/compute",
130143	//     "https://www.googleapis.com/auth/compute.readonly"
130144	//   ]
130145	// }
130146
130147}
130148
130149// method id "compute.regionNotificationEndpoints.insert":
130150
130151type RegionNotificationEndpointsInsertCall struct {
130152	s                    *Service
130153	project              string
130154	region               string
130155	notificationendpoint *NotificationEndpoint
130156	urlParams_           gensupport.URLParams
130157	ctx_                 context.Context
130158	header_              http.Header
130159}
130160
130161// Insert: Create a NotificationEndpoint in the specified project in the
130162// given region using the parameters that are included in the request.
130163//
130164// - project: Project ID for this request.
130165// - region: Name of the region scoping this request.
130166func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
130167	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130168	c.project = project
130169	c.region = region
130170	c.notificationendpoint = notificationendpoint
130171	return c
130172}
130173
130174// RequestId sets the optional parameter "requestId": An optional
130175// request ID to identify requests. Specify a unique request ID so that
130176// if you must retry your request, the server will know to ignore the
130177// request if it has already been completed. For example, consider a
130178// situation where you make an initial request and the request times
130179// out. If you make the request again with the same request ID, the
130180// server can check if original operation with the same request ID was
130181// received, and if so, will ignore the second request. This prevents
130182// clients from accidentally creating duplicate commitments. The request
130183// ID must be a valid UUID with the exception that zero UUID is not
130184// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
130185// MixerMutationRequestBuilder
130186func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
130187	c.urlParams_.Set("requestId", requestId)
130188	return c
130189}
130190
130191// Fields allows partial responses to be retrieved. See
130192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130193// for more information.
130194func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
130195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130196	return c
130197}
130198
130199// Context sets the context to be used in this call's Do method. Any
130200// pending HTTP request will be aborted if the provided context is
130201// canceled.
130202func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
130203	c.ctx_ = ctx
130204	return c
130205}
130206
130207// Header returns an http.Header that can be modified by the caller to
130208// add HTTP headers to the request.
130209func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
130210	if c.header_ == nil {
130211		c.header_ = make(http.Header)
130212	}
130213	return c.header_
130214}
130215
130216func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
130217	reqHeaders := make(http.Header)
130218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
130219	for k, v := range c.header_ {
130220		reqHeaders[k] = v
130221	}
130222	reqHeaders.Set("User-Agent", c.s.userAgent())
130223	var body io.Reader = nil
130224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
130225	if err != nil {
130226		return nil, err
130227	}
130228	reqHeaders.Set("Content-Type", "application/json")
130229	c.urlParams_.Set("alt", alt)
130230	c.urlParams_.Set("prettyPrint", "false")
130231	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
130232	urls += "?" + c.urlParams_.Encode()
130233	req, err := http.NewRequest("POST", urls, body)
130234	if err != nil {
130235		return nil, err
130236	}
130237	req.Header = reqHeaders
130238	googleapi.Expand(req.URL, map[string]string{
130239		"project": c.project,
130240		"region":  c.region,
130241	})
130242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130243}
130244
130245// Do executes the "compute.regionNotificationEndpoints.insert" call.
130246// Exactly one of *Operation or error will be non-nil. Any non-2xx
130247// status code is an error. Response headers are in either
130248// *Operation.ServerResponse.Header or (if a response was returned at
130249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130250// to check whether the returned error was because
130251// http.StatusNotModified was returned.
130252func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130253	gensupport.SetOptions(c.urlParams_, opts...)
130254	res, err := c.doRequest("json")
130255	if res != nil && res.StatusCode == http.StatusNotModified {
130256		if res.Body != nil {
130257			res.Body.Close()
130258		}
130259		return nil, &googleapi.Error{
130260			Code:   res.StatusCode,
130261			Header: res.Header,
130262		}
130263	}
130264	if err != nil {
130265		return nil, err
130266	}
130267	defer googleapi.CloseBody(res)
130268	if err := googleapi.CheckResponse(res); err != nil {
130269		return nil, err
130270	}
130271	ret := &Operation{
130272		ServerResponse: googleapi.ServerResponse{
130273			Header:         res.Header,
130274			HTTPStatusCode: res.StatusCode,
130275		},
130276	}
130277	target := &ret
130278	if err := gensupport.DecodeResponse(target, res); err != nil {
130279		return nil, err
130280	}
130281	return ret, nil
130282	// {
130283	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
130284	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
130285	//   "httpMethod": "POST",
130286	//   "id": "compute.regionNotificationEndpoints.insert",
130287	//   "parameterOrder": [
130288	//     "project",
130289	//     "region"
130290	//   ],
130291	//   "parameters": {
130292	//     "project": {
130293	//       "description": "Project ID for this request.",
130294	//       "location": "path",
130295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130296	//       "required": true,
130297	//       "type": "string"
130298	//     },
130299	//     "region": {
130300	//       "description": "Name of the region scoping this request.",
130301	//       "location": "path",
130302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130303	//       "required": true,
130304	//       "type": "string"
130305	//     },
130306	//     "requestId": {
130307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
130308	//       "location": "query",
130309	//       "type": "string"
130310	//     }
130311	//   },
130312	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
130313	//   "request": {
130314	//     "$ref": "NotificationEndpoint"
130315	//   },
130316	//   "response": {
130317	//     "$ref": "Operation"
130318	//   },
130319	//   "scopes": [
130320	//     "https://www.googleapis.com/auth/cloud-platform",
130321	//     "https://www.googleapis.com/auth/compute"
130322	//   ]
130323	// }
130324
130325}
130326
130327// method id "compute.regionNotificationEndpoints.list":
130328
130329type RegionNotificationEndpointsListCall struct {
130330	s            *Service
130331	project      string
130332	region       string
130333	urlParams_   gensupport.URLParams
130334	ifNoneMatch_ string
130335	ctx_         context.Context
130336	header_      http.Header
130337}
130338
130339// List: Lists the NotificationEndpoints for a project in the given
130340// region.
130341//
130342// - project: Project ID for this request.
130343// - region: Name of the region scoping this request.
130344func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
130345	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130346	c.project = project
130347	c.region = region
130348	return c
130349}
130350
130351// Filter sets the optional parameter "filter": A filter expression that
130352// filters resources listed in the response. The expression must specify
130353// the field name, a comparison operator, and the value that you want to
130354// use for filtering. The value must be a string, a number, or a
130355// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130356// `<`. For example, if you are filtering Compute Engine instances, you
130357// can exclude instances named `example-instance` by specifying `name !=
130358// example-instance`. You can also filter nested fields. For example,
130359// you could specify `scheduling.automaticRestart = false` to include
130360// instances only if they are not scheduled for automatic restarts. You
130361// can use filtering on nested fields to filter based on resource
130362// labels. To filter on multiple expressions, provide each separate
130363// expression within parentheses. For example: ```
130364// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
130365// ``` By default, each expression is an `AND` expression. However, you
130366// can include `AND` and `OR` expressions explicitly. For example: ```
130367// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
130368// AND (scheduling.automaticRestart = true) ```
130369func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
130370	c.urlParams_.Set("filter", filter)
130371	return c
130372}
130373
130374// MaxResults sets the optional parameter "maxResults": The maximum
130375// number of results per page that should be returned. If the number of
130376// available results is larger than `maxResults`, Compute Engine returns
130377// a `nextPageToken` that can be used to get the next page of results in
130378// subsequent list requests. Acceptable values are `0` to `500`,
130379// inclusive. (Default: `500`)
130380func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
130381	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130382	return c
130383}
130384
130385// OrderBy sets the optional parameter "orderBy": Sorts list results by
130386// a certain order. By default, results are returned in alphanumerical
130387// order based on the resource name. You can also sort results in
130388// descending order based on the creation timestamp using
130389// `orderBy="creationTimestamp desc". This sorts results based on the
130390// `creationTimestamp` field in reverse chronological order (newest
130391// result first). Use this to sort resources like operations so that the
130392// newest operation is returned first. Currently, only sorting by `name`
130393// or `creationTimestamp desc` is supported.
130394func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
130395	c.urlParams_.Set("orderBy", orderBy)
130396	return c
130397}
130398
130399// PageToken sets the optional parameter "pageToken": Specifies a page
130400// token to use. Set `pageToken` to the `nextPageToken` returned by a
130401// previous list request to get the next page of results.
130402func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
130403	c.urlParams_.Set("pageToken", pageToken)
130404	return c
130405}
130406
130407// ReturnPartialSuccess sets the optional parameter
130408// "returnPartialSuccess": Opt-in for partial success behavior which
130409// provides partial results in case of failure. The default value is
130410// false.
130411func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
130412	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130413	return c
130414}
130415
130416// Fields allows partial responses to be retrieved. See
130417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130418// for more information.
130419func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
130420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130421	return c
130422}
130423
130424// IfNoneMatch sets the optional parameter which makes the operation
130425// fail if the object's ETag matches the given value. This is useful for
130426// getting updates only after the object has changed since the last
130427// request. Use googleapi.IsNotModified to check whether the response
130428// error from Do is the result of In-None-Match.
130429func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
130430	c.ifNoneMatch_ = entityTag
130431	return c
130432}
130433
130434// Context sets the context to be used in this call's Do method. Any
130435// pending HTTP request will be aborted if the provided context is
130436// canceled.
130437func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
130438	c.ctx_ = ctx
130439	return c
130440}
130441
130442// Header returns an http.Header that can be modified by the caller to
130443// add HTTP headers to the request.
130444func (c *RegionNotificationEndpointsListCall) Header() http.Header {
130445	if c.header_ == nil {
130446		c.header_ = make(http.Header)
130447	}
130448	return c.header_
130449}
130450
130451func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
130452	reqHeaders := make(http.Header)
130453	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
130454	for k, v := range c.header_ {
130455		reqHeaders[k] = v
130456	}
130457	reqHeaders.Set("User-Agent", c.s.userAgent())
130458	if c.ifNoneMatch_ != "" {
130459		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130460	}
130461	var body io.Reader = nil
130462	c.urlParams_.Set("alt", alt)
130463	c.urlParams_.Set("prettyPrint", "false")
130464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
130465	urls += "?" + c.urlParams_.Encode()
130466	req, err := http.NewRequest("GET", urls, body)
130467	if err != nil {
130468		return nil, err
130469	}
130470	req.Header = reqHeaders
130471	googleapi.Expand(req.URL, map[string]string{
130472		"project": c.project,
130473		"region":  c.region,
130474	})
130475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130476}
130477
130478// Do executes the "compute.regionNotificationEndpoints.list" call.
130479// Exactly one of *NotificationEndpointList or error will be non-nil.
130480// Any non-2xx status code is an error. Response headers are in either
130481// *NotificationEndpointList.ServerResponse.Header or (if a response was
130482// returned at all) in error.(*googleapi.Error).Header. Use
130483// googleapi.IsNotModified to check whether the returned error was
130484// because http.StatusNotModified was returned.
130485func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
130486	gensupport.SetOptions(c.urlParams_, opts...)
130487	res, err := c.doRequest("json")
130488	if res != nil && res.StatusCode == http.StatusNotModified {
130489		if res.Body != nil {
130490			res.Body.Close()
130491		}
130492		return nil, &googleapi.Error{
130493			Code:   res.StatusCode,
130494			Header: res.Header,
130495		}
130496	}
130497	if err != nil {
130498		return nil, err
130499	}
130500	defer googleapi.CloseBody(res)
130501	if err := googleapi.CheckResponse(res); err != nil {
130502		return nil, err
130503	}
130504	ret := &NotificationEndpointList{
130505		ServerResponse: googleapi.ServerResponse{
130506			Header:         res.Header,
130507			HTTPStatusCode: res.StatusCode,
130508		},
130509	}
130510	target := &ret
130511	if err := gensupport.DecodeResponse(target, res); err != nil {
130512		return nil, err
130513	}
130514	return ret, nil
130515	// {
130516	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
130517	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
130518	//   "httpMethod": "GET",
130519	//   "id": "compute.regionNotificationEndpoints.list",
130520	//   "parameterOrder": [
130521	//     "project",
130522	//     "region"
130523	//   ],
130524	//   "parameters": {
130525	//     "filter": {
130526	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130527	//       "location": "query",
130528	//       "type": "string"
130529	//     },
130530	//     "maxResults": {
130531	//       "default": "500",
130532	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130533	//       "format": "uint32",
130534	//       "location": "query",
130535	//       "minimum": "0",
130536	//       "type": "integer"
130537	//     },
130538	//     "orderBy": {
130539	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
130540	//       "location": "query",
130541	//       "type": "string"
130542	//     },
130543	//     "pageToken": {
130544	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130545	//       "location": "query",
130546	//       "type": "string"
130547	//     },
130548	//     "project": {
130549	//       "description": "Project ID for this request.",
130550	//       "location": "path",
130551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130552	//       "required": true,
130553	//       "type": "string"
130554	//     },
130555	//     "region": {
130556	//       "description": "Name of the region scoping this request.",
130557	//       "location": "path",
130558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130559	//       "required": true,
130560	//       "type": "string"
130561	//     },
130562	//     "returnPartialSuccess": {
130563	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130564	//       "location": "query",
130565	//       "type": "boolean"
130566	//     }
130567	//   },
130568	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
130569	//   "response": {
130570	//     "$ref": "NotificationEndpointList"
130571	//   },
130572	//   "scopes": [
130573	//     "https://www.googleapis.com/auth/cloud-platform",
130574	//     "https://www.googleapis.com/auth/compute",
130575	//     "https://www.googleapis.com/auth/compute.readonly"
130576	//   ]
130577	// }
130578
130579}
130580
130581// Pages invokes f for each page of results.
130582// A non-nil error returned from f will halt the iteration.
130583// The provided context supersedes any context provided to the Context method.
130584func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
130585	c.ctx_ = ctx
130586	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130587	for {
130588		x, err := c.Do()
130589		if err != nil {
130590			return err
130591		}
130592		if err := f(x); err != nil {
130593			return err
130594		}
130595		if x.NextPageToken == "" {
130596			return nil
130597		}
130598		c.PageToken(x.NextPageToken)
130599	}
130600}
130601
130602// method id "compute.regionOperations.delete":
130603
130604type RegionOperationsDeleteCall struct {
130605	s          *Service
130606	project    string
130607	region     string
130608	operation  string
130609	urlParams_ gensupport.URLParams
130610	ctx_       context.Context
130611	header_    http.Header
130612}
130613
130614// Delete: Deletes the specified region-specific Operations resource.
130615//
130616// - operation: Name of the Operations resource to delete.
130617// - project: Project ID for this request.
130618// - region: Name of the region for this request.
130619func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
130620	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130621	c.project = project
130622	c.region = region
130623	c.operation = operation
130624	return c
130625}
130626
130627// Fields allows partial responses to be retrieved. See
130628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130629// for more information.
130630func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
130631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130632	return c
130633}
130634
130635// Context sets the context to be used in this call's Do method. Any
130636// pending HTTP request will be aborted if the provided context is
130637// canceled.
130638func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
130639	c.ctx_ = ctx
130640	return c
130641}
130642
130643// Header returns an http.Header that can be modified by the caller to
130644// add HTTP headers to the request.
130645func (c *RegionOperationsDeleteCall) Header() http.Header {
130646	if c.header_ == nil {
130647		c.header_ = make(http.Header)
130648	}
130649	return c.header_
130650}
130651
130652func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
130653	reqHeaders := make(http.Header)
130654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
130655	for k, v := range c.header_ {
130656		reqHeaders[k] = v
130657	}
130658	reqHeaders.Set("User-Agent", c.s.userAgent())
130659	var body io.Reader = nil
130660	c.urlParams_.Set("alt", alt)
130661	c.urlParams_.Set("prettyPrint", "false")
130662	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
130663	urls += "?" + c.urlParams_.Encode()
130664	req, err := http.NewRequest("DELETE", urls, body)
130665	if err != nil {
130666		return nil, err
130667	}
130668	req.Header = reqHeaders
130669	googleapi.Expand(req.URL, map[string]string{
130670		"project":   c.project,
130671		"region":    c.region,
130672		"operation": c.operation,
130673	})
130674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130675}
130676
130677// Do executes the "compute.regionOperations.delete" call.
130678func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
130679	gensupport.SetOptions(c.urlParams_, opts...)
130680	res, err := c.doRequest("json")
130681	if err != nil {
130682		return err
130683	}
130684	defer googleapi.CloseBody(res)
130685	if err := googleapi.CheckResponse(res); err != nil {
130686		return err
130687	}
130688	return nil
130689	// {
130690	//   "description": "Deletes the specified region-specific Operations resource.",
130691	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
130692	//   "httpMethod": "DELETE",
130693	//   "id": "compute.regionOperations.delete",
130694	//   "parameterOrder": [
130695	//     "project",
130696	//     "region",
130697	//     "operation"
130698	//   ],
130699	//   "parameters": {
130700	//     "operation": {
130701	//       "description": "Name of the Operations resource to delete.",
130702	//       "location": "path",
130703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130704	//       "required": true,
130705	//       "type": "string"
130706	//     },
130707	//     "project": {
130708	//       "description": "Project ID for this request.",
130709	//       "location": "path",
130710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130711	//       "required": true,
130712	//       "type": "string"
130713	//     },
130714	//     "region": {
130715	//       "description": "Name of the region for this request.",
130716	//       "location": "path",
130717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130718	//       "required": true,
130719	//       "type": "string"
130720	//     }
130721	//   },
130722	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
130723	//   "scopes": [
130724	//     "https://www.googleapis.com/auth/cloud-platform",
130725	//     "https://www.googleapis.com/auth/compute"
130726	//   ]
130727	// }
130728
130729}
130730
130731// method id "compute.regionOperations.get":
130732
130733type RegionOperationsGetCall struct {
130734	s            *Service
130735	project      string
130736	region       string
130737	operation    string
130738	urlParams_   gensupport.URLParams
130739	ifNoneMatch_ string
130740	ctx_         context.Context
130741	header_      http.Header
130742}
130743
130744// Get: Retrieves the specified region-specific Operations resource.
130745//
130746// - operation: Name of the Operations resource to return.
130747// - project: Project ID for this request.
130748// - region: Name of the region for this request.
130749func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
130750	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130751	c.project = project
130752	c.region = region
130753	c.operation = operation
130754	return c
130755}
130756
130757// Fields allows partial responses to be retrieved. See
130758// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130759// for more information.
130760func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
130761	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130762	return c
130763}
130764
130765// IfNoneMatch sets the optional parameter which makes the operation
130766// fail if the object's ETag matches the given value. This is useful for
130767// getting updates only after the object has changed since the last
130768// request. Use googleapi.IsNotModified to check whether the response
130769// error from Do is the result of In-None-Match.
130770func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
130771	c.ifNoneMatch_ = entityTag
130772	return c
130773}
130774
130775// Context sets the context to be used in this call's Do method. Any
130776// pending HTTP request will be aborted if the provided context is
130777// canceled.
130778func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
130779	c.ctx_ = ctx
130780	return c
130781}
130782
130783// Header returns an http.Header that can be modified by the caller to
130784// add HTTP headers to the request.
130785func (c *RegionOperationsGetCall) Header() http.Header {
130786	if c.header_ == nil {
130787		c.header_ = make(http.Header)
130788	}
130789	return c.header_
130790}
130791
130792func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
130793	reqHeaders := make(http.Header)
130794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
130795	for k, v := range c.header_ {
130796		reqHeaders[k] = v
130797	}
130798	reqHeaders.Set("User-Agent", c.s.userAgent())
130799	if c.ifNoneMatch_ != "" {
130800		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130801	}
130802	var body io.Reader = nil
130803	c.urlParams_.Set("alt", alt)
130804	c.urlParams_.Set("prettyPrint", "false")
130805	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
130806	urls += "?" + c.urlParams_.Encode()
130807	req, err := http.NewRequest("GET", urls, body)
130808	if err != nil {
130809		return nil, err
130810	}
130811	req.Header = reqHeaders
130812	googleapi.Expand(req.URL, map[string]string{
130813		"project":   c.project,
130814		"region":    c.region,
130815		"operation": c.operation,
130816	})
130817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130818}
130819
130820// Do executes the "compute.regionOperations.get" call.
130821// Exactly one of *Operation or error will be non-nil. Any non-2xx
130822// status code is an error. Response headers are in either
130823// *Operation.ServerResponse.Header or (if a response was returned at
130824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130825// to check whether the returned error was because
130826// http.StatusNotModified was returned.
130827func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130828	gensupport.SetOptions(c.urlParams_, opts...)
130829	res, err := c.doRequest("json")
130830	if res != nil && res.StatusCode == http.StatusNotModified {
130831		if res.Body != nil {
130832			res.Body.Close()
130833		}
130834		return nil, &googleapi.Error{
130835			Code:   res.StatusCode,
130836			Header: res.Header,
130837		}
130838	}
130839	if err != nil {
130840		return nil, err
130841	}
130842	defer googleapi.CloseBody(res)
130843	if err := googleapi.CheckResponse(res); err != nil {
130844		return nil, err
130845	}
130846	ret := &Operation{
130847		ServerResponse: googleapi.ServerResponse{
130848			Header:         res.Header,
130849			HTTPStatusCode: res.StatusCode,
130850		},
130851	}
130852	target := &ret
130853	if err := gensupport.DecodeResponse(target, res); err != nil {
130854		return nil, err
130855	}
130856	return ret, nil
130857	// {
130858	//   "description": "Retrieves the specified region-specific Operations resource.",
130859	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
130860	//   "httpMethod": "GET",
130861	//   "id": "compute.regionOperations.get",
130862	//   "parameterOrder": [
130863	//     "project",
130864	//     "region",
130865	//     "operation"
130866	//   ],
130867	//   "parameters": {
130868	//     "operation": {
130869	//       "description": "Name of the Operations resource to return.",
130870	//       "location": "path",
130871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130872	//       "required": true,
130873	//       "type": "string"
130874	//     },
130875	//     "project": {
130876	//       "description": "Project ID for this request.",
130877	//       "location": "path",
130878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130879	//       "required": true,
130880	//       "type": "string"
130881	//     },
130882	//     "region": {
130883	//       "description": "Name of the region for this request.",
130884	//       "location": "path",
130885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130886	//       "required": true,
130887	//       "type": "string"
130888	//     }
130889	//   },
130890	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
130891	//   "response": {
130892	//     "$ref": "Operation"
130893	//   },
130894	//   "scopes": [
130895	//     "https://www.googleapis.com/auth/cloud-platform",
130896	//     "https://www.googleapis.com/auth/compute",
130897	//     "https://www.googleapis.com/auth/compute.readonly"
130898	//   ]
130899	// }
130900
130901}
130902
130903// method id "compute.regionOperations.list":
130904
130905type RegionOperationsListCall struct {
130906	s            *Service
130907	project      string
130908	region       string
130909	urlParams_   gensupport.URLParams
130910	ifNoneMatch_ string
130911	ctx_         context.Context
130912	header_      http.Header
130913}
130914
130915// List: Retrieves a list of Operation resources contained within the
130916// specified region.
130917//
130918// - project: Project ID for this request.
130919// - region: Name of the region for this request.
130920func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
130921	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130922	c.project = project
130923	c.region = region
130924	return c
130925}
130926
130927// Filter sets the optional parameter "filter": A filter expression that
130928// filters resources listed in the response. The expression must specify
130929// the field name, a comparison operator, and the value that you want to
130930// use for filtering. The value must be a string, a number, or a
130931// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130932// `<`. For example, if you are filtering Compute Engine instances, you
130933// can exclude instances named `example-instance` by specifying `name !=
130934// example-instance`. You can also filter nested fields. For example,
130935// you could specify `scheduling.automaticRestart = false` to include
130936// instances only if they are not scheduled for automatic restarts. You
130937// can use filtering on nested fields to filter based on resource
130938// labels. To filter on multiple expressions, provide each separate
130939// expression within parentheses. For example: ```
130940// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
130941// ``` By default, each expression is an `AND` expression. However, you
130942// can include `AND` and `OR` expressions explicitly. For example: ```
130943// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
130944// AND (scheduling.automaticRestart = true) ```
130945func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
130946	c.urlParams_.Set("filter", filter)
130947	return c
130948}
130949
130950// MaxResults sets the optional parameter "maxResults": The maximum
130951// number of results per page that should be returned. If the number of
130952// available results is larger than `maxResults`, Compute Engine returns
130953// a `nextPageToken` that can be used to get the next page of results in
130954// subsequent list requests. Acceptable values are `0` to `500`,
130955// inclusive. (Default: `500`)
130956func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
130957	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130958	return c
130959}
130960
130961// OrderBy sets the optional parameter "orderBy": Sorts list results by
130962// a certain order. By default, results are returned in alphanumerical
130963// order based on the resource name. You can also sort results in
130964// descending order based on the creation timestamp using
130965// `orderBy="creationTimestamp desc". This sorts results based on the
130966// `creationTimestamp` field in reverse chronological order (newest
130967// result first). Use this to sort resources like operations so that the
130968// newest operation is returned first. Currently, only sorting by `name`
130969// or `creationTimestamp desc` is supported.
130970func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
130971	c.urlParams_.Set("orderBy", orderBy)
130972	return c
130973}
130974
130975// PageToken sets the optional parameter "pageToken": Specifies a page
130976// token to use. Set `pageToken` to the `nextPageToken` returned by a
130977// previous list request to get the next page of results.
130978func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
130979	c.urlParams_.Set("pageToken", pageToken)
130980	return c
130981}
130982
130983// ReturnPartialSuccess sets the optional parameter
130984// "returnPartialSuccess": Opt-in for partial success behavior which
130985// provides partial results in case of failure. The default value is
130986// false.
130987func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
130988	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130989	return c
130990}
130991
130992// Fields allows partial responses to be retrieved. See
130993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130994// for more information.
130995func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
130996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130997	return c
130998}
130999
131000// IfNoneMatch sets the optional parameter which makes the operation
131001// fail if the object's ETag matches the given value. This is useful for
131002// getting updates only after the object has changed since the last
131003// request. Use googleapi.IsNotModified to check whether the response
131004// error from Do is the result of In-None-Match.
131005func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
131006	c.ifNoneMatch_ = entityTag
131007	return c
131008}
131009
131010// Context sets the context to be used in this call's Do method. Any
131011// pending HTTP request will be aborted if the provided context is
131012// canceled.
131013func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
131014	c.ctx_ = ctx
131015	return c
131016}
131017
131018// Header returns an http.Header that can be modified by the caller to
131019// add HTTP headers to the request.
131020func (c *RegionOperationsListCall) Header() http.Header {
131021	if c.header_ == nil {
131022		c.header_ = make(http.Header)
131023	}
131024	return c.header_
131025}
131026
131027func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
131028	reqHeaders := make(http.Header)
131029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
131030	for k, v := range c.header_ {
131031		reqHeaders[k] = v
131032	}
131033	reqHeaders.Set("User-Agent", c.s.userAgent())
131034	if c.ifNoneMatch_ != "" {
131035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131036	}
131037	var body io.Reader = nil
131038	c.urlParams_.Set("alt", alt)
131039	c.urlParams_.Set("prettyPrint", "false")
131040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations")
131041	urls += "?" + c.urlParams_.Encode()
131042	req, err := http.NewRequest("GET", urls, body)
131043	if err != nil {
131044		return nil, err
131045	}
131046	req.Header = reqHeaders
131047	googleapi.Expand(req.URL, map[string]string{
131048		"project": c.project,
131049		"region":  c.region,
131050	})
131051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131052}
131053
131054// Do executes the "compute.regionOperations.list" call.
131055// Exactly one of *OperationList or error will be non-nil. Any non-2xx
131056// status code is an error. Response headers are in either
131057// *OperationList.ServerResponse.Header or (if a response was returned
131058// at all) in error.(*googleapi.Error).Header. Use
131059// googleapi.IsNotModified to check whether the returned error was
131060// because http.StatusNotModified was returned.
131061func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
131062	gensupport.SetOptions(c.urlParams_, opts...)
131063	res, err := c.doRequest("json")
131064	if res != nil && res.StatusCode == http.StatusNotModified {
131065		if res.Body != nil {
131066			res.Body.Close()
131067		}
131068		return nil, &googleapi.Error{
131069			Code:   res.StatusCode,
131070			Header: res.Header,
131071		}
131072	}
131073	if err != nil {
131074		return nil, err
131075	}
131076	defer googleapi.CloseBody(res)
131077	if err := googleapi.CheckResponse(res); err != nil {
131078		return nil, err
131079	}
131080	ret := &OperationList{
131081		ServerResponse: googleapi.ServerResponse{
131082			Header:         res.Header,
131083			HTTPStatusCode: res.StatusCode,
131084		},
131085	}
131086	target := &ret
131087	if err := gensupport.DecodeResponse(target, res); err != nil {
131088		return nil, err
131089	}
131090	return ret, nil
131091	// {
131092	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
131093	//   "flatPath": "projects/{project}/regions/{region}/operations",
131094	//   "httpMethod": "GET",
131095	//   "id": "compute.regionOperations.list",
131096	//   "parameterOrder": [
131097	//     "project",
131098	//     "region"
131099	//   ],
131100	//   "parameters": {
131101	//     "filter": {
131102	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131103	//       "location": "query",
131104	//       "type": "string"
131105	//     },
131106	//     "maxResults": {
131107	//       "default": "500",
131108	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131109	//       "format": "uint32",
131110	//       "location": "query",
131111	//       "minimum": "0",
131112	//       "type": "integer"
131113	//     },
131114	//     "orderBy": {
131115	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
131116	//       "location": "query",
131117	//       "type": "string"
131118	//     },
131119	//     "pageToken": {
131120	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131121	//       "location": "query",
131122	//       "type": "string"
131123	//     },
131124	//     "project": {
131125	//       "description": "Project ID for this request.",
131126	//       "location": "path",
131127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131128	//       "required": true,
131129	//       "type": "string"
131130	//     },
131131	//     "region": {
131132	//       "description": "Name of the region for this request.",
131133	//       "location": "path",
131134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131135	//       "required": true,
131136	//       "type": "string"
131137	//     },
131138	//     "returnPartialSuccess": {
131139	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
131140	//       "location": "query",
131141	//       "type": "boolean"
131142	//     }
131143	//   },
131144	//   "path": "projects/{project}/regions/{region}/operations",
131145	//   "response": {
131146	//     "$ref": "OperationList"
131147	//   },
131148	//   "scopes": [
131149	//     "https://www.googleapis.com/auth/cloud-platform",
131150	//     "https://www.googleapis.com/auth/compute",
131151	//     "https://www.googleapis.com/auth/compute.readonly"
131152	//   ]
131153	// }
131154
131155}
131156
131157// Pages invokes f for each page of results.
131158// A non-nil error returned from f will halt the iteration.
131159// The provided context supersedes any context provided to the Context method.
131160func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
131161	c.ctx_ = ctx
131162	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131163	for {
131164		x, err := c.Do()
131165		if err != nil {
131166			return err
131167		}
131168		if err := f(x); err != nil {
131169			return err
131170		}
131171		if x.NextPageToken == "" {
131172			return nil
131173		}
131174		c.PageToken(x.NextPageToken)
131175	}
131176}
131177
131178// method id "compute.regionOperations.wait":
131179
131180type RegionOperationsWaitCall struct {
131181	s          *Service
131182	project    string
131183	region     string
131184	operation  string
131185	urlParams_ gensupport.URLParams
131186	ctx_       context.Context
131187	header_    http.Header
131188}
131189
131190// Wait: Waits for the specified Operation resource to return as `DONE`
131191// or for the request to approach the 2 minute deadline, and retrieves
131192// the specified Operation resource. This method differs from the `GET`
131193// method in that it waits for no more than the default deadline (2
131194// minutes) and then returns the current state of the operation, which
131195// might be `DONE` or still in progress. This method is called on a
131196// best-effort basis. Specifically: - In uncommon cases, when the server
131197// is overloaded, the request might return before the default deadline
131198// is reached, or might return after zero seconds. - If the default
131199// deadline is reached, there is no guarantee that the operation is
131200// actually done when the method returns. Be prepared to retry if the
131201// operation is not `DONE`.
131202//
131203// - operation: Name of the Operations resource to return.
131204// - project: Project ID for this request.
131205// - region: Name of the region for this request.
131206func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
131207	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131208	c.project = project
131209	c.region = region
131210	c.operation = operation
131211	return c
131212}
131213
131214// Fields allows partial responses to be retrieved. See
131215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131216// for more information.
131217func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
131218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131219	return c
131220}
131221
131222// Context sets the context to be used in this call's Do method. Any
131223// pending HTTP request will be aborted if the provided context is
131224// canceled.
131225func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
131226	c.ctx_ = ctx
131227	return c
131228}
131229
131230// Header returns an http.Header that can be modified by the caller to
131231// add HTTP headers to the request.
131232func (c *RegionOperationsWaitCall) Header() http.Header {
131233	if c.header_ == nil {
131234		c.header_ = make(http.Header)
131235	}
131236	return c.header_
131237}
131238
131239func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
131240	reqHeaders := make(http.Header)
131241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
131242	for k, v := range c.header_ {
131243		reqHeaders[k] = v
131244	}
131245	reqHeaders.Set("User-Agent", c.s.userAgent())
131246	var body io.Reader = nil
131247	c.urlParams_.Set("alt", alt)
131248	c.urlParams_.Set("prettyPrint", "false")
131249	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait")
131250	urls += "?" + c.urlParams_.Encode()
131251	req, err := http.NewRequest("POST", urls, body)
131252	if err != nil {
131253		return nil, err
131254	}
131255	req.Header = reqHeaders
131256	googleapi.Expand(req.URL, map[string]string{
131257		"project":   c.project,
131258		"region":    c.region,
131259		"operation": c.operation,
131260	})
131261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131262}
131263
131264// Do executes the "compute.regionOperations.wait" call.
131265// Exactly one of *Operation or error will be non-nil. Any non-2xx
131266// status code is an error. Response headers are in either
131267// *Operation.ServerResponse.Header or (if a response was returned at
131268// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131269// to check whether the returned error was because
131270// http.StatusNotModified was returned.
131271func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131272	gensupport.SetOptions(c.urlParams_, opts...)
131273	res, err := c.doRequest("json")
131274	if res != nil && res.StatusCode == http.StatusNotModified {
131275		if res.Body != nil {
131276			res.Body.Close()
131277		}
131278		return nil, &googleapi.Error{
131279			Code:   res.StatusCode,
131280			Header: res.Header,
131281		}
131282	}
131283	if err != nil {
131284		return nil, err
131285	}
131286	defer googleapi.CloseBody(res)
131287	if err := googleapi.CheckResponse(res); err != nil {
131288		return nil, err
131289	}
131290	ret := &Operation{
131291		ServerResponse: googleapi.ServerResponse{
131292			Header:         res.Header,
131293			HTTPStatusCode: res.StatusCode,
131294		},
131295	}
131296	target := &ret
131297	if err := gensupport.DecodeResponse(target, res); err != nil {
131298		return nil, err
131299	}
131300	return ret, nil
131301	// {
131302	//   "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. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - 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`. ",
131303	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait",
131304	//   "httpMethod": "POST",
131305	//   "id": "compute.regionOperations.wait",
131306	//   "parameterOrder": [
131307	//     "project",
131308	//     "region",
131309	//     "operation"
131310	//   ],
131311	//   "parameters": {
131312	//     "operation": {
131313	//       "description": "Name of the Operations resource to return.",
131314	//       "location": "path",
131315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131316	//       "required": true,
131317	//       "type": "string"
131318	//     },
131319	//     "project": {
131320	//       "description": "Project ID for this request.",
131321	//       "location": "path",
131322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131323	//       "required": true,
131324	//       "type": "string"
131325	//     },
131326	//     "region": {
131327	//       "description": "Name of the region for this request.",
131328	//       "location": "path",
131329	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131330	//       "required": true,
131331	//       "type": "string"
131332	//     }
131333	//   },
131334	//   "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
131335	//   "response": {
131336	//     "$ref": "Operation"
131337	//   },
131338	//   "scopes": [
131339	//     "https://www.googleapis.com/auth/cloud-platform",
131340	//     "https://www.googleapis.com/auth/compute",
131341	//     "https://www.googleapis.com/auth/compute.readonly"
131342	//   ]
131343	// }
131344
131345}
131346
131347// method id "compute.regionSslCertificates.delete":
131348
131349type RegionSslCertificatesDeleteCall struct {
131350	s              *Service
131351	project        string
131352	region         string
131353	sslCertificate string
131354	urlParams_     gensupport.URLParams
131355	ctx_           context.Context
131356	header_        http.Header
131357}
131358
131359// Delete: Deletes the specified SslCertificate resource in the region.
131360//
131361// - project: Project ID for this request.
131362// - region: Name of the region scoping this request.
131363// - sslCertificate: Name of the SslCertificate resource to delete.
131364func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
131365	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131366	c.project = project
131367	c.region = region
131368	c.sslCertificate = sslCertificate
131369	return c
131370}
131371
131372// RequestId sets the optional parameter "requestId": An optional
131373// request ID to identify requests. Specify a unique request ID so that
131374// if you must retry your request, the server will know to ignore the
131375// request if it has already been completed. For example, consider a
131376// situation where you make an initial request and the request times
131377// out. If you make the request again with the same request ID, the
131378// server can check if original operation with the same request ID was
131379// received, and if so, will ignore the second request. This prevents
131380// clients from accidentally creating duplicate commitments. The request
131381// ID must be a valid UUID with the exception that zero UUID is not
131382// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
131383// MixerMutationRequestBuilder
131384func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
131385	c.urlParams_.Set("requestId", requestId)
131386	return c
131387}
131388
131389// Fields allows partial responses to be retrieved. See
131390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131391// for more information.
131392func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
131393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131394	return c
131395}
131396
131397// Context sets the context to be used in this call's Do method. Any
131398// pending HTTP request will be aborted if the provided context is
131399// canceled.
131400func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
131401	c.ctx_ = ctx
131402	return c
131403}
131404
131405// Header returns an http.Header that can be modified by the caller to
131406// add HTTP headers to the request.
131407func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
131408	if c.header_ == nil {
131409		c.header_ = make(http.Header)
131410	}
131411	return c.header_
131412}
131413
131414func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
131415	reqHeaders := make(http.Header)
131416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
131417	for k, v := range c.header_ {
131418		reqHeaders[k] = v
131419	}
131420	reqHeaders.Set("User-Agent", c.s.userAgent())
131421	var body io.Reader = nil
131422	c.urlParams_.Set("alt", alt)
131423	c.urlParams_.Set("prettyPrint", "false")
131424	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
131425	urls += "?" + c.urlParams_.Encode()
131426	req, err := http.NewRequest("DELETE", urls, body)
131427	if err != nil {
131428		return nil, err
131429	}
131430	req.Header = reqHeaders
131431	googleapi.Expand(req.URL, map[string]string{
131432		"project":        c.project,
131433		"region":         c.region,
131434		"sslCertificate": c.sslCertificate,
131435	})
131436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131437}
131438
131439// Do executes the "compute.regionSslCertificates.delete" call.
131440// Exactly one of *Operation or error will be non-nil. Any non-2xx
131441// status code is an error. Response headers are in either
131442// *Operation.ServerResponse.Header or (if a response was returned at
131443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131444// to check whether the returned error was because
131445// http.StatusNotModified was returned.
131446func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131447	gensupport.SetOptions(c.urlParams_, opts...)
131448	res, err := c.doRequest("json")
131449	if res != nil && res.StatusCode == http.StatusNotModified {
131450		if res.Body != nil {
131451			res.Body.Close()
131452		}
131453		return nil, &googleapi.Error{
131454			Code:   res.StatusCode,
131455			Header: res.Header,
131456		}
131457	}
131458	if err != nil {
131459		return nil, err
131460	}
131461	defer googleapi.CloseBody(res)
131462	if err := googleapi.CheckResponse(res); err != nil {
131463		return nil, err
131464	}
131465	ret := &Operation{
131466		ServerResponse: googleapi.ServerResponse{
131467			Header:         res.Header,
131468			HTTPStatusCode: res.StatusCode,
131469		},
131470	}
131471	target := &ret
131472	if err := gensupport.DecodeResponse(target, res); err != nil {
131473		return nil, err
131474	}
131475	return ret, nil
131476	// {
131477	//   "description": "Deletes the specified SslCertificate resource in the region.",
131478	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131479	//   "httpMethod": "DELETE",
131480	//   "id": "compute.regionSslCertificates.delete",
131481	//   "parameterOrder": [
131482	//     "project",
131483	//     "region",
131484	//     "sslCertificate"
131485	//   ],
131486	//   "parameters": {
131487	//     "project": {
131488	//       "description": "Project ID for this request.",
131489	//       "location": "path",
131490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131491	//       "required": true,
131492	//       "type": "string"
131493	//     },
131494	//     "region": {
131495	//       "description": "Name of the region scoping this request.",
131496	//       "location": "path",
131497	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131498	//       "required": true,
131499	//       "type": "string"
131500	//     },
131501	//     "requestId": {
131502	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
131503	//       "location": "query",
131504	//       "type": "string"
131505	//     },
131506	//     "sslCertificate": {
131507	//       "description": "Name of the SslCertificate resource to delete.",
131508	//       "location": "path",
131509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131510	//       "required": true,
131511	//       "type": "string"
131512	//     }
131513	//   },
131514	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131515	//   "response": {
131516	//     "$ref": "Operation"
131517	//   },
131518	//   "scopes": [
131519	//     "https://www.googleapis.com/auth/cloud-platform",
131520	//     "https://www.googleapis.com/auth/compute"
131521	//   ]
131522	// }
131523
131524}
131525
131526// method id "compute.regionSslCertificates.get":
131527
131528type RegionSslCertificatesGetCall struct {
131529	s              *Service
131530	project        string
131531	region         string
131532	sslCertificate string
131533	urlParams_     gensupport.URLParams
131534	ifNoneMatch_   string
131535	ctx_           context.Context
131536	header_        http.Header
131537}
131538
131539// Get: Returns the specified SslCertificate resource in the specified
131540// region. Get a list of available SSL certificates by making a list()
131541// request.
131542//
131543// - project: Project ID for this request.
131544// - region: Name of the region scoping this request.
131545// - sslCertificate: Name of the SslCertificate resource to return.
131546func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
131547	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131548	c.project = project
131549	c.region = region
131550	c.sslCertificate = sslCertificate
131551	return c
131552}
131553
131554// Fields allows partial responses to be retrieved. See
131555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131556// for more information.
131557func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
131558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131559	return c
131560}
131561
131562// IfNoneMatch sets the optional parameter which makes the operation
131563// fail if the object's ETag matches the given value. This is useful for
131564// getting updates only after the object has changed since the last
131565// request. Use googleapi.IsNotModified to check whether the response
131566// error from Do is the result of In-None-Match.
131567func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
131568	c.ifNoneMatch_ = entityTag
131569	return c
131570}
131571
131572// Context sets the context to be used in this call's Do method. Any
131573// pending HTTP request will be aborted if the provided context is
131574// canceled.
131575func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
131576	c.ctx_ = ctx
131577	return c
131578}
131579
131580// Header returns an http.Header that can be modified by the caller to
131581// add HTTP headers to the request.
131582func (c *RegionSslCertificatesGetCall) Header() http.Header {
131583	if c.header_ == nil {
131584		c.header_ = make(http.Header)
131585	}
131586	return c.header_
131587}
131588
131589func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
131590	reqHeaders := make(http.Header)
131591	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
131592	for k, v := range c.header_ {
131593		reqHeaders[k] = v
131594	}
131595	reqHeaders.Set("User-Agent", c.s.userAgent())
131596	if c.ifNoneMatch_ != "" {
131597		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131598	}
131599	var body io.Reader = nil
131600	c.urlParams_.Set("alt", alt)
131601	c.urlParams_.Set("prettyPrint", "false")
131602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
131603	urls += "?" + c.urlParams_.Encode()
131604	req, err := http.NewRequest("GET", urls, body)
131605	if err != nil {
131606		return nil, err
131607	}
131608	req.Header = reqHeaders
131609	googleapi.Expand(req.URL, map[string]string{
131610		"project":        c.project,
131611		"region":         c.region,
131612		"sslCertificate": c.sslCertificate,
131613	})
131614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131615}
131616
131617// Do executes the "compute.regionSslCertificates.get" call.
131618// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
131619// status code is an error. Response headers are in either
131620// *SslCertificate.ServerResponse.Header or (if a response was returned
131621// at all) in error.(*googleapi.Error).Header. Use
131622// googleapi.IsNotModified to check whether the returned error was
131623// because http.StatusNotModified was returned.
131624func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
131625	gensupport.SetOptions(c.urlParams_, opts...)
131626	res, err := c.doRequest("json")
131627	if res != nil && res.StatusCode == http.StatusNotModified {
131628		if res.Body != nil {
131629			res.Body.Close()
131630		}
131631		return nil, &googleapi.Error{
131632			Code:   res.StatusCode,
131633			Header: res.Header,
131634		}
131635	}
131636	if err != nil {
131637		return nil, err
131638	}
131639	defer googleapi.CloseBody(res)
131640	if err := googleapi.CheckResponse(res); err != nil {
131641		return nil, err
131642	}
131643	ret := &SslCertificate{
131644		ServerResponse: googleapi.ServerResponse{
131645			Header:         res.Header,
131646			HTTPStatusCode: res.StatusCode,
131647		},
131648	}
131649	target := &ret
131650	if err := gensupport.DecodeResponse(target, res); err != nil {
131651		return nil, err
131652	}
131653	return ret, nil
131654	// {
131655	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
131656	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131657	//   "httpMethod": "GET",
131658	//   "id": "compute.regionSslCertificates.get",
131659	//   "parameterOrder": [
131660	//     "project",
131661	//     "region",
131662	//     "sslCertificate"
131663	//   ],
131664	//   "parameters": {
131665	//     "project": {
131666	//       "description": "Project ID for this request.",
131667	//       "location": "path",
131668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131669	//       "required": true,
131670	//       "type": "string"
131671	//     },
131672	//     "region": {
131673	//       "description": "Name of the region scoping this request.",
131674	//       "location": "path",
131675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131676	//       "required": true,
131677	//       "type": "string"
131678	//     },
131679	//     "sslCertificate": {
131680	//       "description": "Name of the SslCertificate resource to return.",
131681	//       "location": "path",
131682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131683	//       "required": true,
131684	//       "type": "string"
131685	//     }
131686	//   },
131687	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131688	//   "response": {
131689	//     "$ref": "SslCertificate"
131690	//   },
131691	//   "scopes": [
131692	//     "https://www.googleapis.com/auth/cloud-platform",
131693	//     "https://www.googleapis.com/auth/compute",
131694	//     "https://www.googleapis.com/auth/compute.readonly"
131695	//   ]
131696	// }
131697
131698}
131699
131700// method id "compute.regionSslCertificates.insert":
131701
131702type RegionSslCertificatesInsertCall struct {
131703	s              *Service
131704	project        string
131705	region         string
131706	sslcertificate *SslCertificate
131707	urlParams_     gensupport.URLParams
131708	ctx_           context.Context
131709	header_        http.Header
131710}
131711
131712// Insert: Creates a SslCertificate resource in the specified project
131713// and region using the data included in the request
131714//
131715// - project: Project ID for this request.
131716// - region: Name of the region scoping this request.
131717func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
131718	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131719	c.project = project
131720	c.region = region
131721	c.sslcertificate = sslcertificate
131722	return c
131723}
131724
131725// RequestId sets the optional parameter "requestId": An optional
131726// request ID to identify requests. Specify a unique request ID so that
131727// if you must retry your request, the server will know to ignore the
131728// request if it has already been completed. For example, consider a
131729// situation where you make an initial request and the request times
131730// out. If you make the request again with the same request ID, the
131731// server can check if original operation with the same request ID was
131732// received, and if so, will ignore the second request. This prevents
131733// clients from accidentally creating duplicate commitments. The request
131734// ID must be a valid UUID with the exception that zero UUID is not
131735// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
131736// MixerMutationRequestBuilder
131737func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
131738	c.urlParams_.Set("requestId", requestId)
131739	return c
131740}
131741
131742// Fields allows partial responses to be retrieved. See
131743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131744// for more information.
131745func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
131746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131747	return c
131748}
131749
131750// Context sets the context to be used in this call's Do method. Any
131751// pending HTTP request will be aborted if the provided context is
131752// canceled.
131753func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
131754	c.ctx_ = ctx
131755	return c
131756}
131757
131758// Header returns an http.Header that can be modified by the caller to
131759// add HTTP headers to the request.
131760func (c *RegionSslCertificatesInsertCall) Header() http.Header {
131761	if c.header_ == nil {
131762		c.header_ = make(http.Header)
131763	}
131764	return c.header_
131765}
131766
131767func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
131768	reqHeaders := make(http.Header)
131769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
131770	for k, v := range c.header_ {
131771		reqHeaders[k] = v
131772	}
131773	reqHeaders.Set("User-Agent", c.s.userAgent())
131774	var body io.Reader = nil
131775	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
131776	if err != nil {
131777		return nil, err
131778	}
131779	reqHeaders.Set("Content-Type", "application/json")
131780	c.urlParams_.Set("alt", alt)
131781	c.urlParams_.Set("prettyPrint", "false")
131782	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
131783	urls += "?" + c.urlParams_.Encode()
131784	req, err := http.NewRequest("POST", urls, body)
131785	if err != nil {
131786		return nil, err
131787	}
131788	req.Header = reqHeaders
131789	googleapi.Expand(req.URL, map[string]string{
131790		"project": c.project,
131791		"region":  c.region,
131792	})
131793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131794}
131795
131796// Do executes the "compute.regionSslCertificates.insert" call.
131797// Exactly one of *Operation or error will be non-nil. Any non-2xx
131798// status code is an error. Response headers are in either
131799// *Operation.ServerResponse.Header or (if a response was returned at
131800// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131801// to check whether the returned error was because
131802// http.StatusNotModified was returned.
131803func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131804	gensupport.SetOptions(c.urlParams_, opts...)
131805	res, err := c.doRequest("json")
131806	if res != nil && res.StatusCode == http.StatusNotModified {
131807		if res.Body != nil {
131808			res.Body.Close()
131809		}
131810		return nil, &googleapi.Error{
131811			Code:   res.StatusCode,
131812			Header: res.Header,
131813		}
131814	}
131815	if err != nil {
131816		return nil, err
131817	}
131818	defer googleapi.CloseBody(res)
131819	if err := googleapi.CheckResponse(res); err != nil {
131820		return nil, err
131821	}
131822	ret := &Operation{
131823		ServerResponse: googleapi.ServerResponse{
131824			Header:         res.Header,
131825			HTTPStatusCode: res.StatusCode,
131826		},
131827	}
131828	target := &ret
131829	if err := gensupport.DecodeResponse(target, res); err != nil {
131830		return nil, err
131831	}
131832	return ret, nil
131833	// {
131834	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
131835	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates",
131836	//   "httpMethod": "POST",
131837	//   "id": "compute.regionSslCertificates.insert",
131838	//   "parameterOrder": [
131839	//     "project",
131840	//     "region"
131841	//   ],
131842	//   "parameters": {
131843	//     "project": {
131844	//       "description": "Project ID for this request.",
131845	//       "location": "path",
131846	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131847	//       "required": true,
131848	//       "type": "string"
131849	//     },
131850	//     "region": {
131851	//       "description": "Name of the region scoping this request.",
131852	//       "location": "path",
131853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131854	//       "required": true,
131855	//       "type": "string"
131856	//     },
131857	//     "requestId": {
131858	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
131859	//       "location": "query",
131860	//       "type": "string"
131861	//     }
131862	//   },
131863	//   "path": "projects/{project}/regions/{region}/sslCertificates",
131864	//   "request": {
131865	//     "$ref": "SslCertificate"
131866	//   },
131867	//   "response": {
131868	//     "$ref": "Operation"
131869	//   },
131870	//   "scopes": [
131871	//     "https://www.googleapis.com/auth/cloud-platform",
131872	//     "https://www.googleapis.com/auth/compute"
131873	//   ]
131874	// }
131875
131876}
131877
131878// method id "compute.regionSslCertificates.list":
131879
131880type RegionSslCertificatesListCall struct {
131881	s            *Service
131882	project      string
131883	region       string
131884	urlParams_   gensupport.URLParams
131885	ifNoneMatch_ string
131886	ctx_         context.Context
131887	header_      http.Header
131888}
131889
131890// List: Retrieves the list of SslCertificate resources available to the
131891// specified project in the specified region.
131892//
131893// - project: Project ID for this request.
131894// - region: Name of the region scoping this request.
131895func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
131896	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131897	c.project = project
131898	c.region = region
131899	return c
131900}
131901
131902// Filter sets the optional parameter "filter": A filter expression that
131903// filters resources listed in the response. The expression must specify
131904// the field name, a comparison operator, and the value that you want to
131905// use for filtering. The value must be a string, a number, or a
131906// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131907// `<`. For example, if you are filtering Compute Engine instances, you
131908// can exclude instances named `example-instance` by specifying `name !=
131909// example-instance`. You can also filter nested fields. For example,
131910// you could specify `scheduling.automaticRestart = false` to include
131911// instances only if they are not scheduled for automatic restarts. You
131912// can use filtering on nested fields to filter based on resource
131913// labels. To filter on multiple expressions, provide each separate
131914// expression within parentheses. For example: ```
131915// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
131916// ``` By default, each expression is an `AND` expression. However, you
131917// can include `AND` and `OR` expressions explicitly. For example: ```
131918// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
131919// AND (scheduling.automaticRestart = true) ```
131920func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
131921	c.urlParams_.Set("filter", filter)
131922	return c
131923}
131924
131925// MaxResults sets the optional parameter "maxResults": The maximum
131926// number of results per page that should be returned. If the number of
131927// available results is larger than `maxResults`, Compute Engine returns
131928// a `nextPageToken` that can be used to get the next page of results in
131929// subsequent list requests. Acceptable values are `0` to `500`,
131930// inclusive. (Default: `500`)
131931func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
131932	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131933	return c
131934}
131935
131936// OrderBy sets the optional parameter "orderBy": Sorts list results by
131937// a certain order. By default, results are returned in alphanumerical
131938// order based on the resource name. You can also sort results in
131939// descending order based on the creation timestamp using
131940// `orderBy="creationTimestamp desc". This sorts results based on the
131941// `creationTimestamp` field in reverse chronological order (newest
131942// result first). Use this to sort resources like operations so that the
131943// newest operation is returned first. Currently, only sorting by `name`
131944// or `creationTimestamp desc` is supported.
131945func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
131946	c.urlParams_.Set("orderBy", orderBy)
131947	return c
131948}
131949
131950// PageToken sets the optional parameter "pageToken": Specifies a page
131951// token to use. Set `pageToken` to the `nextPageToken` returned by a
131952// previous list request to get the next page of results.
131953func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
131954	c.urlParams_.Set("pageToken", pageToken)
131955	return c
131956}
131957
131958// ReturnPartialSuccess sets the optional parameter
131959// "returnPartialSuccess": Opt-in for partial success behavior which
131960// provides partial results in case of failure. The default value is
131961// false.
131962func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
131963	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131964	return c
131965}
131966
131967// Fields allows partial responses to be retrieved. See
131968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131969// for more information.
131970func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
131971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131972	return c
131973}
131974
131975// IfNoneMatch sets the optional parameter which makes the operation
131976// fail if the object's ETag matches the given value. This is useful for
131977// getting updates only after the object has changed since the last
131978// request. Use googleapi.IsNotModified to check whether the response
131979// error from Do is the result of In-None-Match.
131980func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
131981	c.ifNoneMatch_ = entityTag
131982	return c
131983}
131984
131985// Context sets the context to be used in this call's Do method. Any
131986// pending HTTP request will be aborted if the provided context is
131987// canceled.
131988func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
131989	c.ctx_ = ctx
131990	return c
131991}
131992
131993// Header returns an http.Header that can be modified by the caller to
131994// add HTTP headers to the request.
131995func (c *RegionSslCertificatesListCall) Header() http.Header {
131996	if c.header_ == nil {
131997		c.header_ = make(http.Header)
131998	}
131999	return c.header_
132000}
132001
132002func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
132003	reqHeaders := make(http.Header)
132004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
132005	for k, v := range c.header_ {
132006		reqHeaders[k] = v
132007	}
132008	reqHeaders.Set("User-Agent", c.s.userAgent())
132009	if c.ifNoneMatch_ != "" {
132010		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132011	}
132012	var body io.Reader = nil
132013	c.urlParams_.Set("alt", alt)
132014	c.urlParams_.Set("prettyPrint", "false")
132015	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
132016	urls += "?" + c.urlParams_.Encode()
132017	req, err := http.NewRequest("GET", urls, body)
132018	if err != nil {
132019		return nil, err
132020	}
132021	req.Header = reqHeaders
132022	googleapi.Expand(req.URL, map[string]string{
132023		"project": c.project,
132024		"region":  c.region,
132025	})
132026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132027}
132028
132029// Do executes the "compute.regionSslCertificates.list" call.
132030// Exactly one of *SslCertificateList or error will be non-nil. Any
132031// non-2xx status code is an error. Response headers are in either
132032// *SslCertificateList.ServerResponse.Header or (if a response was
132033// returned at all) in error.(*googleapi.Error).Header. Use
132034// googleapi.IsNotModified to check whether the returned error was
132035// because http.StatusNotModified was returned.
132036func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
132037	gensupport.SetOptions(c.urlParams_, opts...)
132038	res, err := c.doRequest("json")
132039	if res != nil && res.StatusCode == http.StatusNotModified {
132040		if res.Body != nil {
132041			res.Body.Close()
132042		}
132043		return nil, &googleapi.Error{
132044			Code:   res.StatusCode,
132045			Header: res.Header,
132046		}
132047	}
132048	if err != nil {
132049		return nil, err
132050	}
132051	defer googleapi.CloseBody(res)
132052	if err := googleapi.CheckResponse(res); err != nil {
132053		return nil, err
132054	}
132055	ret := &SslCertificateList{
132056		ServerResponse: googleapi.ServerResponse{
132057			Header:         res.Header,
132058			HTTPStatusCode: res.StatusCode,
132059		},
132060	}
132061	target := &ret
132062	if err := gensupport.DecodeResponse(target, res); err != nil {
132063		return nil, err
132064	}
132065	return ret, nil
132066	// {
132067	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
132068	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates",
132069	//   "httpMethod": "GET",
132070	//   "id": "compute.regionSslCertificates.list",
132071	//   "parameterOrder": [
132072	//     "project",
132073	//     "region"
132074	//   ],
132075	//   "parameters": {
132076	//     "filter": {
132077	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132078	//       "location": "query",
132079	//       "type": "string"
132080	//     },
132081	//     "maxResults": {
132082	//       "default": "500",
132083	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132084	//       "format": "uint32",
132085	//       "location": "query",
132086	//       "minimum": "0",
132087	//       "type": "integer"
132088	//     },
132089	//     "orderBy": {
132090	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
132091	//       "location": "query",
132092	//       "type": "string"
132093	//     },
132094	//     "pageToken": {
132095	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132096	//       "location": "query",
132097	//       "type": "string"
132098	//     },
132099	//     "project": {
132100	//       "description": "Project ID for this request.",
132101	//       "location": "path",
132102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132103	//       "required": true,
132104	//       "type": "string"
132105	//     },
132106	//     "region": {
132107	//       "description": "Name of the region scoping this request.",
132108	//       "location": "path",
132109	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132110	//       "required": true,
132111	//       "type": "string"
132112	//     },
132113	//     "returnPartialSuccess": {
132114	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
132115	//       "location": "query",
132116	//       "type": "boolean"
132117	//     }
132118	//   },
132119	//   "path": "projects/{project}/regions/{region}/sslCertificates",
132120	//   "response": {
132121	//     "$ref": "SslCertificateList"
132122	//   },
132123	//   "scopes": [
132124	//     "https://www.googleapis.com/auth/cloud-platform",
132125	//     "https://www.googleapis.com/auth/compute",
132126	//     "https://www.googleapis.com/auth/compute.readonly"
132127	//   ]
132128	// }
132129
132130}
132131
132132// Pages invokes f for each page of results.
132133// A non-nil error returned from f will halt the iteration.
132134// The provided context supersedes any context provided to the Context method.
132135func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
132136	c.ctx_ = ctx
132137	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132138	for {
132139		x, err := c.Do()
132140		if err != nil {
132141			return err
132142		}
132143		if err := f(x); err != nil {
132144			return err
132145		}
132146		if x.NextPageToken == "" {
132147			return nil
132148		}
132149		c.PageToken(x.NextPageToken)
132150	}
132151}
132152
132153// method id "compute.regionTargetHttpProxies.delete":
132154
132155type RegionTargetHttpProxiesDeleteCall struct {
132156	s               *Service
132157	project         string
132158	region          string
132159	targetHttpProxy string
132160	urlParams_      gensupport.URLParams
132161	ctx_            context.Context
132162	header_         http.Header
132163}
132164
132165// Delete: Deletes the specified TargetHttpProxy resource.
132166//
132167// - project: Project ID for this request.
132168// - region: Name of the region scoping this request.
132169// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
132170func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
132171	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132172	c.project = project
132173	c.region = region
132174	c.targetHttpProxy = targetHttpProxy
132175	return c
132176}
132177
132178// RequestId sets the optional parameter "requestId": An optional
132179// request ID to identify requests. Specify a unique request ID so that
132180// if you must retry your request, the server will know to ignore the
132181// request if it has already been completed. For example, consider a
132182// situation where you make an initial request and the request times
132183// out. If you make the request again with the same request ID, the
132184// server can check if original operation with the same request ID was
132185// received, and if so, will ignore the second request. This prevents
132186// clients from accidentally creating duplicate commitments. The request
132187// ID must be a valid UUID with the exception that zero UUID is not
132188// supported ( 00000000-0000-0000-0000-000000000000).
132189func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
132190	c.urlParams_.Set("requestId", requestId)
132191	return c
132192}
132193
132194// Fields allows partial responses to be retrieved. See
132195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132196// for more information.
132197func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
132198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132199	return c
132200}
132201
132202// Context sets the context to be used in this call's Do method. Any
132203// pending HTTP request will be aborted if the provided context is
132204// canceled.
132205func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
132206	c.ctx_ = ctx
132207	return c
132208}
132209
132210// Header returns an http.Header that can be modified by the caller to
132211// add HTTP headers to the request.
132212func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
132213	if c.header_ == nil {
132214		c.header_ = make(http.Header)
132215	}
132216	return c.header_
132217}
132218
132219func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
132220	reqHeaders := make(http.Header)
132221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
132222	for k, v := range c.header_ {
132223		reqHeaders[k] = v
132224	}
132225	reqHeaders.Set("User-Agent", c.s.userAgent())
132226	var body io.Reader = nil
132227	c.urlParams_.Set("alt", alt)
132228	c.urlParams_.Set("prettyPrint", "false")
132229	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
132230	urls += "?" + c.urlParams_.Encode()
132231	req, err := http.NewRequest("DELETE", urls, body)
132232	if err != nil {
132233		return nil, err
132234	}
132235	req.Header = reqHeaders
132236	googleapi.Expand(req.URL, map[string]string{
132237		"project":         c.project,
132238		"region":          c.region,
132239		"targetHttpProxy": c.targetHttpProxy,
132240	})
132241	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132242}
132243
132244// Do executes the "compute.regionTargetHttpProxies.delete" call.
132245// Exactly one of *Operation or error will be non-nil. Any non-2xx
132246// status code is an error. Response headers are in either
132247// *Operation.ServerResponse.Header or (if a response was returned at
132248// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132249// to check whether the returned error was because
132250// http.StatusNotModified was returned.
132251func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132252	gensupport.SetOptions(c.urlParams_, opts...)
132253	res, err := c.doRequest("json")
132254	if res != nil && res.StatusCode == http.StatusNotModified {
132255		if res.Body != nil {
132256			res.Body.Close()
132257		}
132258		return nil, &googleapi.Error{
132259			Code:   res.StatusCode,
132260			Header: res.Header,
132261		}
132262	}
132263	if err != nil {
132264		return nil, err
132265	}
132266	defer googleapi.CloseBody(res)
132267	if err := googleapi.CheckResponse(res); err != nil {
132268		return nil, err
132269	}
132270	ret := &Operation{
132271		ServerResponse: googleapi.ServerResponse{
132272			Header:         res.Header,
132273			HTTPStatusCode: res.StatusCode,
132274		},
132275	}
132276	target := &ret
132277	if err := gensupport.DecodeResponse(target, res); err != nil {
132278		return nil, err
132279	}
132280	return ret, nil
132281	// {
132282	//   "description": "Deletes the specified TargetHttpProxy resource.",
132283	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132284	//   "httpMethod": "DELETE",
132285	//   "id": "compute.regionTargetHttpProxies.delete",
132286	//   "parameterOrder": [
132287	//     "project",
132288	//     "region",
132289	//     "targetHttpProxy"
132290	//   ],
132291	//   "parameters": {
132292	//     "project": {
132293	//       "description": "Project ID for this request.",
132294	//       "location": "path",
132295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132296	//       "required": true,
132297	//       "type": "string"
132298	//     },
132299	//     "region": {
132300	//       "description": "Name of the region scoping this request.",
132301	//       "location": "path",
132302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132303	//       "required": true,
132304	//       "type": "string"
132305	//     },
132306	//     "requestId": {
132307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
132308	//       "location": "query",
132309	//       "type": "string"
132310	//     },
132311	//     "targetHttpProxy": {
132312	//       "description": "Name of the TargetHttpProxy resource to delete.",
132313	//       "location": "path",
132314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132315	//       "required": true,
132316	//       "type": "string"
132317	//     }
132318	//   },
132319	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132320	//   "response": {
132321	//     "$ref": "Operation"
132322	//   },
132323	//   "scopes": [
132324	//     "https://www.googleapis.com/auth/cloud-platform",
132325	//     "https://www.googleapis.com/auth/compute"
132326	//   ]
132327	// }
132328
132329}
132330
132331// method id "compute.regionTargetHttpProxies.get":
132332
132333type RegionTargetHttpProxiesGetCall struct {
132334	s               *Service
132335	project         string
132336	region          string
132337	targetHttpProxy string
132338	urlParams_      gensupport.URLParams
132339	ifNoneMatch_    string
132340	ctx_            context.Context
132341	header_         http.Header
132342}
132343
132344// Get: Returns the specified TargetHttpProxy resource in the specified
132345// region. Gets a list of available target HTTP proxies by making a
132346// list() request.
132347//
132348// - project: Project ID for this request.
132349// - region: Name of the region scoping this request.
132350// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
132351func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
132352	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132353	c.project = project
132354	c.region = region
132355	c.targetHttpProxy = targetHttpProxy
132356	return c
132357}
132358
132359// Fields allows partial responses to be retrieved. See
132360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132361// for more information.
132362func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
132363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132364	return c
132365}
132366
132367// IfNoneMatch sets the optional parameter which makes the operation
132368// fail if the object's ETag matches the given value. This is useful for
132369// getting updates only after the object has changed since the last
132370// request. Use googleapi.IsNotModified to check whether the response
132371// error from Do is the result of In-None-Match.
132372func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
132373	c.ifNoneMatch_ = entityTag
132374	return c
132375}
132376
132377// Context sets the context to be used in this call's Do method. Any
132378// pending HTTP request will be aborted if the provided context is
132379// canceled.
132380func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
132381	c.ctx_ = ctx
132382	return c
132383}
132384
132385// Header returns an http.Header that can be modified by the caller to
132386// add HTTP headers to the request.
132387func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
132388	if c.header_ == nil {
132389		c.header_ = make(http.Header)
132390	}
132391	return c.header_
132392}
132393
132394func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
132395	reqHeaders := make(http.Header)
132396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
132397	for k, v := range c.header_ {
132398		reqHeaders[k] = v
132399	}
132400	reqHeaders.Set("User-Agent", c.s.userAgent())
132401	if c.ifNoneMatch_ != "" {
132402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132403	}
132404	var body io.Reader = nil
132405	c.urlParams_.Set("alt", alt)
132406	c.urlParams_.Set("prettyPrint", "false")
132407	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
132408	urls += "?" + c.urlParams_.Encode()
132409	req, err := http.NewRequest("GET", urls, body)
132410	if err != nil {
132411		return nil, err
132412	}
132413	req.Header = reqHeaders
132414	googleapi.Expand(req.URL, map[string]string{
132415		"project":         c.project,
132416		"region":          c.region,
132417		"targetHttpProxy": c.targetHttpProxy,
132418	})
132419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132420}
132421
132422// Do executes the "compute.regionTargetHttpProxies.get" call.
132423// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
132424// status code is an error. Response headers are in either
132425// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
132426// at all) in error.(*googleapi.Error).Header. Use
132427// googleapi.IsNotModified to check whether the returned error was
132428// because http.StatusNotModified was returned.
132429func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
132430	gensupport.SetOptions(c.urlParams_, opts...)
132431	res, err := c.doRequest("json")
132432	if res != nil && res.StatusCode == http.StatusNotModified {
132433		if res.Body != nil {
132434			res.Body.Close()
132435		}
132436		return nil, &googleapi.Error{
132437			Code:   res.StatusCode,
132438			Header: res.Header,
132439		}
132440	}
132441	if err != nil {
132442		return nil, err
132443	}
132444	defer googleapi.CloseBody(res)
132445	if err := googleapi.CheckResponse(res); err != nil {
132446		return nil, err
132447	}
132448	ret := &TargetHttpProxy{
132449		ServerResponse: googleapi.ServerResponse{
132450			Header:         res.Header,
132451			HTTPStatusCode: res.StatusCode,
132452		},
132453	}
132454	target := &ret
132455	if err := gensupport.DecodeResponse(target, res); err != nil {
132456		return nil, err
132457	}
132458	return ret, nil
132459	// {
132460	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
132461	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132462	//   "httpMethod": "GET",
132463	//   "id": "compute.regionTargetHttpProxies.get",
132464	//   "parameterOrder": [
132465	//     "project",
132466	//     "region",
132467	//     "targetHttpProxy"
132468	//   ],
132469	//   "parameters": {
132470	//     "project": {
132471	//       "description": "Project ID for this request.",
132472	//       "location": "path",
132473	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132474	//       "required": true,
132475	//       "type": "string"
132476	//     },
132477	//     "region": {
132478	//       "description": "Name of the region scoping this request.",
132479	//       "location": "path",
132480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132481	//       "required": true,
132482	//       "type": "string"
132483	//     },
132484	//     "targetHttpProxy": {
132485	//       "description": "Name of the TargetHttpProxy resource to return.",
132486	//       "location": "path",
132487	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132488	//       "required": true,
132489	//       "type": "string"
132490	//     }
132491	//   },
132492	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132493	//   "response": {
132494	//     "$ref": "TargetHttpProxy"
132495	//   },
132496	//   "scopes": [
132497	//     "https://www.googleapis.com/auth/cloud-platform",
132498	//     "https://www.googleapis.com/auth/compute",
132499	//     "https://www.googleapis.com/auth/compute.readonly"
132500	//   ]
132501	// }
132502
132503}
132504
132505// method id "compute.regionTargetHttpProxies.insert":
132506
132507type RegionTargetHttpProxiesInsertCall struct {
132508	s               *Service
132509	project         string
132510	region          string
132511	targethttpproxy *TargetHttpProxy
132512	urlParams_      gensupport.URLParams
132513	ctx_            context.Context
132514	header_         http.Header
132515}
132516
132517// Insert: Creates a TargetHttpProxy resource in the specified project
132518// and region using the data included in the request.
132519//
132520// - project: Project ID for this request.
132521// - region: Name of the region scoping this request.
132522func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
132523	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132524	c.project = project
132525	c.region = region
132526	c.targethttpproxy = targethttpproxy
132527	return c
132528}
132529
132530// RequestId sets the optional parameter "requestId": An optional
132531// request ID to identify requests. Specify a unique request ID so that
132532// if you must retry your request, the server will know to ignore the
132533// request if it has already been completed. For example, consider a
132534// situation where you make an initial request and the request times
132535// out. If you make the request again with the same request ID, the
132536// server can check if original operation with the same request ID was
132537// received, and if so, will ignore the second request. This prevents
132538// clients from accidentally creating duplicate commitments. The request
132539// ID must be a valid UUID with the exception that zero UUID is not
132540// supported ( 00000000-0000-0000-0000-000000000000).
132541func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
132542	c.urlParams_.Set("requestId", requestId)
132543	return c
132544}
132545
132546// Fields allows partial responses to be retrieved. See
132547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132548// for more information.
132549func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
132550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132551	return c
132552}
132553
132554// Context sets the context to be used in this call's Do method. Any
132555// pending HTTP request will be aborted if the provided context is
132556// canceled.
132557func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
132558	c.ctx_ = ctx
132559	return c
132560}
132561
132562// Header returns an http.Header that can be modified by the caller to
132563// add HTTP headers to the request.
132564func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
132565	if c.header_ == nil {
132566		c.header_ = make(http.Header)
132567	}
132568	return c.header_
132569}
132570
132571func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
132572	reqHeaders := make(http.Header)
132573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
132574	for k, v := range c.header_ {
132575		reqHeaders[k] = v
132576	}
132577	reqHeaders.Set("User-Agent", c.s.userAgent())
132578	var body io.Reader = nil
132579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
132580	if err != nil {
132581		return nil, err
132582	}
132583	reqHeaders.Set("Content-Type", "application/json")
132584	c.urlParams_.Set("alt", alt)
132585	c.urlParams_.Set("prettyPrint", "false")
132586	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
132587	urls += "?" + c.urlParams_.Encode()
132588	req, err := http.NewRequest("POST", urls, body)
132589	if err != nil {
132590		return nil, err
132591	}
132592	req.Header = reqHeaders
132593	googleapi.Expand(req.URL, map[string]string{
132594		"project": c.project,
132595		"region":  c.region,
132596	})
132597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132598}
132599
132600// Do executes the "compute.regionTargetHttpProxies.insert" call.
132601// Exactly one of *Operation or error will be non-nil. Any non-2xx
132602// status code is an error. Response headers are in either
132603// *Operation.ServerResponse.Header or (if a response was returned at
132604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132605// to check whether the returned error was because
132606// http.StatusNotModified was returned.
132607func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132608	gensupport.SetOptions(c.urlParams_, opts...)
132609	res, err := c.doRequest("json")
132610	if res != nil && res.StatusCode == http.StatusNotModified {
132611		if res.Body != nil {
132612			res.Body.Close()
132613		}
132614		return nil, &googleapi.Error{
132615			Code:   res.StatusCode,
132616			Header: res.Header,
132617		}
132618	}
132619	if err != nil {
132620		return nil, err
132621	}
132622	defer googleapi.CloseBody(res)
132623	if err := googleapi.CheckResponse(res); err != nil {
132624		return nil, err
132625	}
132626	ret := &Operation{
132627		ServerResponse: googleapi.ServerResponse{
132628			Header:         res.Header,
132629			HTTPStatusCode: res.StatusCode,
132630		},
132631	}
132632	target := &ret
132633	if err := gensupport.DecodeResponse(target, res); err != nil {
132634		return nil, err
132635	}
132636	return ret, nil
132637	// {
132638	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
132639	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies",
132640	//   "httpMethod": "POST",
132641	//   "id": "compute.regionTargetHttpProxies.insert",
132642	//   "parameterOrder": [
132643	//     "project",
132644	//     "region"
132645	//   ],
132646	//   "parameters": {
132647	//     "project": {
132648	//       "description": "Project ID for this request.",
132649	//       "location": "path",
132650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132651	//       "required": true,
132652	//       "type": "string"
132653	//     },
132654	//     "region": {
132655	//       "description": "Name of the region scoping this request.",
132656	//       "location": "path",
132657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132658	//       "required": true,
132659	//       "type": "string"
132660	//     },
132661	//     "requestId": {
132662	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
132663	//       "location": "query",
132664	//       "type": "string"
132665	//     }
132666	//   },
132667	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
132668	//   "request": {
132669	//     "$ref": "TargetHttpProxy"
132670	//   },
132671	//   "response": {
132672	//     "$ref": "Operation"
132673	//   },
132674	//   "scopes": [
132675	//     "https://www.googleapis.com/auth/cloud-platform",
132676	//     "https://www.googleapis.com/auth/compute"
132677	//   ]
132678	// }
132679
132680}
132681
132682// method id "compute.regionTargetHttpProxies.list":
132683
132684type RegionTargetHttpProxiesListCall struct {
132685	s            *Service
132686	project      string
132687	region       string
132688	urlParams_   gensupport.URLParams
132689	ifNoneMatch_ string
132690	ctx_         context.Context
132691	header_      http.Header
132692}
132693
132694// List: Retrieves the list of TargetHttpProxy resources available to
132695// the specified project in the specified region.
132696//
132697// - project: Project ID for this request.
132698// - region: Name of the region scoping this request.
132699func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
132700	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132701	c.project = project
132702	c.region = region
132703	return c
132704}
132705
132706// Filter sets the optional parameter "filter": A filter expression that
132707// filters resources listed in the response. The expression must specify
132708// the field name, a comparison operator, and the value that you want to
132709// use for filtering. The value must be a string, a number, or a
132710// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132711// `<`. For example, if you are filtering Compute Engine instances, you
132712// can exclude instances named `example-instance` by specifying `name !=
132713// example-instance`. You can also filter nested fields. For example,
132714// you could specify `scheduling.automaticRestart = false` to include
132715// instances only if they are not scheduled for automatic restarts. You
132716// can use filtering on nested fields to filter based on resource
132717// labels. To filter on multiple expressions, provide each separate
132718// expression within parentheses. For example: ```
132719// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
132720// ``` By default, each expression is an `AND` expression. However, you
132721// can include `AND` and `OR` expressions explicitly. For example: ```
132722// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
132723// AND (scheduling.automaticRestart = true) ```
132724func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
132725	c.urlParams_.Set("filter", filter)
132726	return c
132727}
132728
132729// MaxResults sets the optional parameter "maxResults": The maximum
132730// number of results per page that should be returned. If the number of
132731// available results is larger than `maxResults`, Compute Engine returns
132732// a `nextPageToken` that can be used to get the next page of results in
132733// subsequent list requests. Acceptable values are `0` to `500`,
132734// inclusive. (Default: `500`)
132735func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
132736	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132737	return c
132738}
132739
132740// OrderBy sets the optional parameter "orderBy": Sorts list results by
132741// a certain order. By default, results are returned in alphanumerical
132742// order based on the resource name. You can also sort results in
132743// descending order based on the creation timestamp using
132744// `orderBy="creationTimestamp desc". This sorts results based on the
132745// `creationTimestamp` field in reverse chronological order (newest
132746// result first). Use this to sort resources like operations so that the
132747// newest operation is returned first. Currently, only sorting by `name`
132748// or `creationTimestamp desc` is supported.
132749func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
132750	c.urlParams_.Set("orderBy", orderBy)
132751	return c
132752}
132753
132754// PageToken sets the optional parameter "pageToken": Specifies a page
132755// token to use. Set `pageToken` to the `nextPageToken` returned by a
132756// previous list request to get the next page of results.
132757func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
132758	c.urlParams_.Set("pageToken", pageToken)
132759	return c
132760}
132761
132762// ReturnPartialSuccess sets the optional parameter
132763// "returnPartialSuccess": Opt-in for partial success behavior which
132764// provides partial results in case of failure. The default value is
132765// false.
132766func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
132767	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
132768	return c
132769}
132770
132771// Fields allows partial responses to be retrieved. See
132772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132773// for more information.
132774func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
132775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132776	return c
132777}
132778
132779// IfNoneMatch sets the optional parameter which makes the operation
132780// fail if the object's ETag matches the given value. This is useful for
132781// getting updates only after the object has changed since the last
132782// request. Use googleapi.IsNotModified to check whether the response
132783// error from Do is the result of In-None-Match.
132784func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
132785	c.ifNoneMatch_ = entityTag
132786	return c
132787}
132788
132789// Context sets the context to be used in this call's Do method. Any
132790// pending HTTP request will be aborted if the provided context is
132791// canceled.
132792func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
132793	c.ctx_ = ctx
132794	return c
132795}
132796
132797// Header returns an http.Header that can be modified by the caller to
132798// add HTTP headers to the request.
132799func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
132800	if c.header_ == nil {
132801		c.header_ = make(http.Header)
132802	}
132803	return c.header_
132804}
132805
132806func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
132807	reqHeaders := make(http.Header)
132808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
132809	for k, v := range c.header_ {
132810		reqHeaders[k] = v
132811	}
132812	reqHeaders.Set("User-Agent", c.s.userAgent())
132813	if c.ifNoneMatch_ != "" {
132814		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132815	}
132816	var body io.Reader = nil
132817	c.urlParams_.Set("alt", alt)
132818	c.urlParams_.Set("prettyPrint", "false")
132819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
132820	urls += "?" + c.urlParams_.Encode()
132821	req, err := http.NewRequest("GET", urls, body)
132822	if err != nil {
132823		return nil, err
132824	}
132825	req.Header = reqHeaders
132826	googleapi.Expand(req.URL, map[string]string{
132827		"project": c.project,
132828		"region":  c.region,
132829	})
132830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132831}
132832
132833// Do executes the "compute.regionTargetHttpProxies.list" call.
132834// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
132835// non-2xx status code is an error. Response headers are in either
132836// *TargetHttpProxyList.ServerResponse.Header or (if a response was
132837// returned at all) in error.(*googleapi.Error).Header. Use
132838// googleapi.IsNotModified to check whether the returned error was
132839// because http.StatusNotModified was returned.
132840func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
132841	gensupport.SetOptions(c.urlParams_, opts...)
132842	res, err := c.doRequest("json")
132843	if res != nil && res.StatusCode == http.StatusNotModified {
132844		if res.Body != nil {
132845			res.Body.Close()
132846		}
132847		return nil, &googleapi.Error{
132848			Code:   res.StatusCode,
132849			Header: res.Header,
132850		}
132851	}
132852	if err != nil {
132853		return nil, err
132854	}
132855	defer googleapi.CloseBody(res)
132856	if err := googleapi.CheckResponse(res); err != nil {
132857		return nil, err
132858	}
132859	ret := &TargetHttpProxyList{
132860		ServerResponse: googleapi.ServerResponse{
132861			Header:         res.Header,
132862			HTTPStatusCode: res.StatusCode,
132863		},
132864	}
132865	target := &ret
132866	if err := gensupport.DecodeResponse(target, res); err != nil {
132867		return nil, err
132868	}
132869	return ret, nil
132870	// {
132871	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
132872	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies",
132873	//   "httpMethod": "GET",
132874	//   "id": "compute.regionTargetHttpProxies.list",
132875	//   "parameterOrder": [
132876	//     "project",
132877	//     "region"
132878	//   ],
132879	//   "parameters": {
132880	//     "filter": {
132881	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132882	//       "location": "query",
132883	//       "type": "string"
132884	//     },
132885	//     "maxResults": {
132886	//       "default": "500",
132887	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132888	//       "format": "uint32",
132889	//       "location": "query",
132890	//       "minimum": "0",
132891	//       "type": "integer"
132892	//     },
132893	//     "orderBy": {
132894	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
132895	//       "location": "query",
132896	//       "type": "string"
132897	//     },
132898	//     "pageToken": {
132899	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132900	//       "location": "query",
132901	//       "type": "string"
132902	//     },
132903	//     "project": {
132904	//       "description": "Project ID for this request.",
132905	//       "location": "path",
132906	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132907	//       "required": true,
132908	//       "type": "string"
132909	//     },
132910	//     "region": {
132911	//       "description": "Name of the region scoping this request.",
132912	//       "location": "path",
132913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132914	//       "required": true,
132915	//       "type": "string"
132916	//     },
132917	//     "returnPartialSuccess": {
132918	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
132919	//       "location": "query",
132920	//       "type": "boolean"
132921	//     }
132922	//   },
132923	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
132924	//   "response": {
132925	//     "$ref": "TargetHttpProxyList"
132926	//   },
132927	//   "scopes": [
132928	//     "https://www.googleapis.com/auth/cloud-platform",
132929	//     "https://www.googleapis.com/auth/compute",
132930	//     "https://www.googleapis.com/auth/compute.readonly"
132931	//   ]
132932	// }
132933
132934}
132935
132936// Pages invokes f for each page of results.
132937// A non-nil error returned from f will halt the iteration.
132938// The provided context supersedes any context provided to the Context method.
132939func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
132940	c.ctx_ = ctx
132941	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132942	for {
132943		x, err := c.Do()
132944		if err != nil {
132945			return err
132946		}
132947		if err := f(x); err != nil {
132948			return err
132949		}
132950		if x.NextPageToken == "" {
132951			return nil
132952		}
132953		c.PageToken(x.NextPageToken)
132954	}
132955}
132956
132957// method id "compute.regionTargetHttpProxies.setUrlMap":
132958
132959type RegionTargetHttpProxiesSetUrlMapCall struct {
132960	s               *Service
132961	project         string
132962	region          string
132963	targetHttpProxy string
132964	urlmapreference *UrlMapReference
132965	urlParams_      gensupport.URLParams
132966	ctx_            context.Context
132967	header_         http.Header
132968}
132969
132970// SetUrlMap: Changes the URL map for TargetHttpProxy.
132971//
132972// - project: Project ID for this request.
132973// - region: Name of the region scoping this request.
132974// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
132975func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
132976	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132977	c.project = project
132978	c.region = region
132979	c.targetHttpProxy = targetHttpProxy
132980	c.urlmapreference = urlmapreference
132981	return c
132982}
132983
132984// RequestId sets the optional parameter "requestId": An optional
132985// request ID to identify requests. Specify a unique request ID so that
132986// if you must retry your request, the server will know to ignore the
132987// request if it has already been completed. For example, consider a
132988// situation where you make an initial request and the request times
132989// out. If you make the request again with the same request ID, the
132990// server can check if original operation with the same request ID was
132991// received, and if so, will ignore the second request. This prevents
132992// clients from accidentally creating duplicate commitments. The request
132993// ID must be a valid UUID with the exception that zero UUID is not
132994// supported ( 00000000-0000-0000-0000-000000000000).
132995func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
132996	c.urlParams_.Set("requestId", requestId)
132997	return c
132998}
132999
133000// Fields allows partial responses to be retrieved. See
133001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133002// for more information.
133003func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
133004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133005	return c
133006}
133007
133008// Context sets the context to be used in this call's Do method. Any
133009// pending HTTP request will be aborted if the provided context is
133010// canceled.
133011func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
133012	c.ctx_ = ctx
133013	return c
133014}
133015
133016// Header returns an http.Header that can be modified by the caller to
133017// add HTTP headers to the request.
133018func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
133019	if c.header_ == nil {
133020		c.header_ = make(http.Header)
133021	}
133022	return c.header_
133023}
133024
133025func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
133026	reqHeaders := make(http.Header)
133027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
133028	for k, v := range c.header_ {
133029		reqHeaders[k] = v
133030	}
133031	reqHeaders.Set("User-Agent", c.s.userAgent())
133032	var body io.Reader = nil
133033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
133034	if err != nil {
133035		return nil, err
133036	}
133037	reqHeaders.Set("Content-Type", "application/json")
133038	c.urlParams_.Set("alt", alt)
133039	c.urlParams_.Set("prettyPrint", "false")
133040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
133041	urls += "?" + c.urlParams_.Encode()
133042	req, err := http.NewRequest("POST", urls, body)
133043	if err != nil {
133044		return nil, err
133045	}
133046	req.Header = reqHeaders
133047	googleapi.Expand(req.URL, map[string]string{
133048		"project":         c.project,
133049		"region":          c.region,
133050		"targetHttpProxy": c.targetHttpProxy,
133051	})
133052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133053}
133054
133055// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
133056// Exactly one of *Operation or error will be non-nil. Any non-2xx
133057// status code is an error. Response headers are in either
133058// *Operation.ServerResponse.Header or (if a response was returned at
133059// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133060// to check whether the returned error was because
133061// http.StatusNotModified was returned.
133062func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133063	gensupport.SetOptions(c.urlParams_, opts...)
133064	res, err := c.doRequest("json")
133065	if res != nil && res.StatusCode == http.StatusNotModified {
133066		if res.Body != nil {
133067			res.Body.Close()
133068		}
133069		return nil, &googleapi.Error{
133070			Code:   res.StatusCode,
133071			Header: res.Header,
133072		}
133073	}
133074	if err != nil {
133075		return nil, err
133076	}
133077	defer googleapi.CloseBody(res)
133078	if err := googleapi.CheckResponse(res); err != nil {
133079		return nil, err
133080	}
133081	ret := &Operation{
133082		ServerResponse: googleapi.ServerResponse{
133083			Header:         res.Header,
133084			HTTPStatusCode: res.StatusCode,
133085		},
133086	}
133087	target := &ret
133088	if err := gensupport.DecodeResponse(target, res); err != nil {
133089		return nil, err
133090	}
133091	return ret, nil
133092	// {
133093	//   "description": "Changes the URL map for TargetHttpProxy.",
133094	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
133095	//   "httpMethod": "POST",
133096	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
133097	//   "parameterOrder": [
133098	//     "project",
133099	//     "region",
133100	//     "targetHttpProxy"
133101	//   ],
133102	//   "parameters": {
133103	//     "project": {
133104	//       "description": "Project ID for this request.",
133105	//       "location": "path",
133106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133107	//       "required": true,
133108	//       "type": "string"
133109	//     },
133110	//     "region": {
133111	//       "description": "Name of the region scoping this request.",
133112	//       "location": "path",
133113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133114	//       "required": true,
133115	//       "type": "string"
133116	//     },
133117	//     "requestId": {
133118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
133119	//       "location": "query",
133120	//       "type": "string"
133121	//     },
133122	//     "targetHttpProxy": {
133123	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
133124	//       "location": "path",
133125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133126	//       "required": true,
133127	//       "type": "string"
133128	//     }
133129	//   },
133130	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
133131	//   "request": {
133132	//     "$ref": "UrlMapReference"
133133	//   },
133134	//   "response": {
133135	//     "$ref": "Operation"
133136	//   },
133137	//   "scopes": [
133138	//     "https://www.googleapis.com/auth/cloud-platform",
133139	//     "https://www.googleapis.com/auth/compute"
133140	//   ]
133141	// }
133142
133143}
133144
133145// method id "compute.regionTargetHttpsProxies.delete":
133146
133147type RegionTargetHttpsProxiesDeleteCall struct {
133148	s                *Service
133149	project          string
133150	region           string
133151	targetHttpsProxy string
133152	urlParams_       gensupport.URLParams
133153	ctx_             context.Context
133154	header_          http.Header
133155}
133156
133157// Delete: Deletes the specified TargetHttpsProxy resource.
133158//
133159// - project: Project ID for this request.
133160// - region: Name of the region scoping this request.
133161// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
133162func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
133163	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133164	c.project = project
133165	c.region = region
133166	c.targetHttpsProxy = targetHttpsProxy
133167	return c
133168}
133169
133170// RequestId sets the optional parameter "requestId": An optional
133171// request ID to identify requests. Specify a unique request ID so that
133172// if you must retry your request, the server will know to ignore the
133173// request if it has already been completed. For example, consider a
133174// situation where you make an initial request and the request times
133175// out. If you make the request again with the same request ID, the
133176// server can check if original operation with the same request ID was
133177// received, and if so, will ignore the second request. This prevents
133178// clients from accidentally creating duplicate commitments. The request
133179// ID must be a valid UUID with the exception that zero UUID is not
133180// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
133181// MixerMutationRequestBuilder
133182func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
133183	c.urlParams_.Set("requestId", requestId)
133184	return c
133185}
133186
133187// Fields allows partial responses to be retrieved. See
133188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133189// for more information.
133190func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
133191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133192	return c
133193}
133194
133195// Context sets the context to be used in this call's Do method. Any
133196// pending HTTP request will be aborted if the provided context is
133197// canceled.
133198func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
133199	c.ctx_ = ctx
133200	return c
133201}
133202
133203// Header returns an http.Header that can be modified by the caller to
133204// add HTTP headers to the request.
133205func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
133206	if c.header_ == nil {
133207		c.header_ = make(http.Header)
133208	}
133209	return c.header_
133210}
133211
133212func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
133213	reqHeaders := make(http.Header)
133214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
133215	for k, v := range c.header_ {
133216		reqHeaders[k] = v
133217	}
133218	reqHeaders.Set("User-Agent", c.s.userAgent())
133219	var body io.Reader = nil
133220	c.urlParams_.Set("alt", alt)
133221	c.urlParams_.Set("prettyPrint", "false")
133222	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
133223	urls += "?" + c.urlParams_.Encode()
133224	req, err := http.NewRequest("DELETE", urls, body)
133225	if err != nil {
133226		return nil, err
133227	}
133228	req.Header = reqHeaders
133229	googleapi.Expand(req.URL, map[string]string{
133230		"project":          c.project,
133231		"region":           c.region,
133232		"targetHttpsProxy": c.targetHttpsProxy,
133233	})
133234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133235}
133236
133237// Do executes the "compute.regionTargetHttpsProxies.delete" call.
133238// Exactly one of *Operation or error will be non-nil. Any non-2xx
133239// status code is an error. Response headers are in either
133240// *Operation.ServerResponse.Header or (if a response was returned at
133241// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133242// to check whether the returned error was because
133243// http.StatusNotModified was returned.
133244func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133245	gensupport.SetOptions(c.urlParams_, opts...)
133246	res, err := c.doRequest("json")
133247	if res != nil && res.StatusCode == http.StatusNotModified {
133248		if res.Body != nil {
133249			res.Body.Close()
133250		}
133251		return nil, &googleapi.Error{
133252			Code:   res.StatusCode,
133253			Header: res.Header,
133254		}
133255	}
133256	if err != nil {
133257		return nil, err
133258	}
133259	defer googleapi.CloseBody(res)
133260	if err := googleapi.CheckResponse(res); err != nil {
133261		return nil, err
133262	}
133263	ret := &Operation{
133264		ServerResponse: googleapi.ServerResponse{
133265			Header:         res.Header,
133266			HTTPStatusCode: res.StatusCode,
133267		},
133268	}
133269	target := &ret
133270	if err := gensupport.DecodeResponse(target, res); err != nil {
133271		return nil, err
133272	}
133273	return ret, nil
133274	// {
133275	//   "description": "Deletes the specified TargetHttpsProxy resource.",
133276	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133277	//   "httpMethod": "DELETE",
133278	//   "id": "compute.regionTargetHttpsProxies.delete",
133279	//   "parameterOrder": [
133280	//     "project",
133281	//     "region",
133282	//     "targetHttpsProxy"
133283	//   ],
133284	//   "parameters": {
133285	//     "project": {
133286	//       "description": "Project ID for this request.",
133287	//       "location": "path",
133288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133289	//       "required": true,
133290	//       "type": "string"
133291	//     },
133292	//     "region": {
133293	//       "description": "Name of the region scoping this request.",
133294	//       "location": "path",
133295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133296	//       "required": true,
133297	//       "type": "string"
133298	//     },
133299	//     "requestId": {
133300	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
133301	//       "location": "query",
133302	//       "type": "string"
133303	//     },
133304	//     "targetHttpsProxy": {
133305	//       "description": "Name of the TargetHttpsProxy resource to delete.",
133306	//       "location": "path",
133307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133308	//       "required": true,
133309	//       "type": "string"
133310	//     }
133311	//   },
133312	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133313	//   "response": {
133314	//     "$ref": "Operation"
133315	//   },
133316	//   "scopes": [
133317	//     "https://www.googleapis.com/auth/cloud-platform",
133318	//     "https://www.googleapis.com/auth/compute"
133319	//   ]
133320	// }
133321
133322}
133323
133324// method id "compute.regionTargetHttpsProxies.get":
133325
133326type RegionTargetHttpsProxiesGetCall struct {
133327	s                *Service
133328	project          string
133329	region           string
133330	targetHttpsProxy string
133331	urlParams_       gensupport.URLParams
133332	ifNoneMatch_     string
133333	ctx_             context.Context
133334	header_          http.Header
133335}
133336
133337// Get: Returns the specified TargetHttpsProxy resource in the specified
133338// region. Gets a list of available target HTTP proxies by making a
133339// list() request.
133340//
133341// - project: Project ID for this request.
133342// - region: Name of the region scoping this request.
133343// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
133344func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
133345	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133346	c.project = project
133347	c.region = region
133348	c.targetHttpsProxy = targetHttpsProxy
133349	return c
133350}
133351
133352// Fields allows partial responses to be retrieved. See
133353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133354// for more information.
133355func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
133356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133357	return c
133358}
133359
133360// IfNoneMatch sets the optional parameter which makes the operation
133361// fail if the object's ETag matches the given value. This is useful for
133362// getting updates only after the object has changed since the last
133363// request. Use googleapi.IsNotModified to check whether the response
133364// error from Do is the result of In-None-Match.
133365func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
133366	c.ifNoneMatch_ = entityTag
133367	return c
133368}
133369
133370// Context sets the context to be used in this call's Do method. Any
133371// pending HTTP request will be aborted if the provided context is
133372// canceled.
133373func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
133374	c.ctx_ = ctx
133375	return c
133376}
133377
133378// Header returns an http.Header that can be modified by the caller to
133379// add HTTP headers to the request.
133380func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
133381	if c.header_ == nil {
133382		c.header_ = make(http.Header)
133383	}
133384	return c.header_
133385}
133386
133387func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
133388	reqHeaders := make(http.Header)
133389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
133390	for k, v := range c.header_ {
133391		reqHeaders[k] = v
133392	}
133393	reqHeaders.Set("User-Agent", c.s.userAgent())
133394	if c.ifNoneMatch_ != "" {
133395		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133396	}
133397	var body io.Reader = nil
133398	c.urlParams_.Set("alt", alt)
133399	c.urlParams_.Set("prettyPrint", "false")
133400	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
133401	urls += "?" + c.urlParams_.Encode()
133402	req, err := http.NewRequest("GET", urls, body)
133403	if err != nil {
133404		return nil, err
133405	}
133406	req.Header = reqHeaders
133407	googleapi.Expand(req.URL, map[string]string{
133408		"project":          c.project,
133409		"region":           c.region,
133410		"targetHttpsProxy": c.targetHttpsProxy,
133411	})
133412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133413}
133414
133415// Do executes the "compute.regionTargetHttpsProxies.get" call.
133416// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
133417// non-2xx status code is an error. Response headers are in either
133418// *TargetHttpsProxy.ServerResponse.Header or (if a response was
133419// returned at all) in error.(*googleapi.Error).Header. Use
133420// googleapi.IsNotModified to check whether the returned error was
133421// because http.StatusNotModified was returned.
133422func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
133423	gensupport.SetOptions(c.urlParams_, opts...)
133424	res, err := c.doRequest("json")
133425	if res != nil && res.StatusCode == http.StatusNotModified {
133426		if res.Body != nil {
133427			res.Body.Close()
133428		}
133429		return nil, &googleapi.Error{
133430			Code:   res.StatusCode,
133431			Header: res.Header,
133432		}
133433	}
133434	if err != nil {
133435		return nil, err
133436	}
133437	defer googleapi.CloseBody(res)
133438	if err := googleapi.CheckResponse(res); err != nil {
133439		return nil, err
133440	}
133441	ret := &TargetHttpsProxy{
133442		ServerResponse: googleapi.ServerResponse{
133443			Header:         res.Header,
133444			HTTPStatusCode: res.StatusCode,
133445		},
133446	}
133447	target := &ret
133448	if err := gensupport.DecodeResponse(target, res); err != nil {
133449		return nil, err
133450	}
133451	return ret, nil
133452	// {
133453	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
133454	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133455	//   "httpMethod": "GET",
133456	//   "id": "compute.regionTargetHttpsProxies.get",
133457	//   "parameterOrder": [
133458	//     "project",
133459	//     "region",
133460	//     "targetHttpsProxy"
133461	//   ],
133462	//   "parameters": {
133463	//     "project": {
133464	//       "description": "Project ID for this request.",
133465	//       "location": "path",
133466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133467	//       "required": true,
133468	//       "type": "string"
133469	//     },
133470	//     "region": {
133471	//       "description": "Name of the region scoping this request.",
133472	//       "location": "path",
133473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133474	//       "required": true,
133475	//       "type": "string"
133476	//     },
133477	//     "targetHttpsProxy": {
133478	//       "description": "Name of the TargetHttpsProxy resource to return.",
133479	//       "location": "path",
133480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133481	//       "required": true,
133482	//       "type": "string"
133483	//     }
133484	//   },
133485	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133486	//   "response": {
133487	//     "$ref": "TargetHttpsProxy"
133488	//   },
133489	//   "scopes": [
133490	//     "https://www.googleapis.com/auth/cloud-platform",
133491	//     "https://www.googleapis.com/auth/compute",
133492	//     "https://www.googleapis.com/auth/compute.readonly"
133493	//   ]
133494	// }
133495
133496}
133497
133498// method id "compute.regionTargetHttpsProxies.insert":
133499
133500type RegionTargetHttpsProxiesInsertCall struct {
133501	s                *Service
133502	project          string
133503	region           string
133504	targethttpsproxy *TargetHttpsProxy
133505	urlParams_       gensupport.URLParams
133506	ctx_             context.Context
133507	header_          http.Header
133508}
133509
133510// Insert: Creates a TargetHttpsProxy resource in the specified project
133511// and region using the data included in the request.
133512//
133513// - project: Project ID for this request.
133514// - region: Name of the region scoping this request.
133515func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
133516	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133517	c.project = project
133518	c.region = region
133519	c.targethttpsproxy = targethttpsproxy
133520	return c
133521}
133522
133523// RequestId sets the optional parameter "requestId": An optional
133524// request ID to identify requests. Specify a unique request ID so that
133525// if you must retry your request, the server will know to ignore the
133526// request if it has already been completed. For example, consider a
133527// situation where you make an initial request and the request times
133528// out. If you make the request again with the same request ID, the
133529// server can check if original operation with the same request ID was
133530// received, and if so, will ignore the second request. This prevents
133531// clients from accidentally creating duplicate commitments. The request
133532// ID must be a valid UUID with the exception that zero UUID is not
133533// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
133534// MixerMutationRequestBuilder
133535func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
133536	c.urlParams_.Set("requestId", requestId)
133537	return c
133538}
133539
133540// Fields allows partial responses to be retrieved. See
133541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133542// for more information.
133543func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
133544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133545	return c
133546}
133547
133548// Context sets the context to be used in this call's Do method. Any
133549// pending HTTP request will be aborted if the provided context is
133550// canceled.
133551func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
133552	c.ctx_ = ctx
133553	return c
133554}
133555
133556// Header returns an http.Header that can be modified by the caller to
133557// add HTTP headers to the request.
133558func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
133559	if c.header_ == nil {
133560		c.header_ = make(http.Header)
133561	}
133562	return c.header_
133563}
133564
133565func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
133566	reqHeaders := make(http.Header)
133567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
133568	for k, v := range c.header_ {
133569		reqHeaders[k] = v
133570	}
133571	reqHeaders.Set("User-Agent", c.s.userAgent())
133572	var body io.Reader = nil
133573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
133574	if err != nil {
133575		return nil, err
133576	}
133577	reqHeaders.Set("Content-Type", "application/json")
133578	c.urlParams_.Set("alt", alt)
133579	c.urlParams_.Set("prettyPrint", "false")
133580	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
133581	urls += "?" + c.urlParams_.Encode()
133582	req, err := http.NewRequest("POST", urls, body)
133583	if err != nil {
133584		return nil, err
133585	}
133586	req.Header = reqHeaders
133587	googleapi.Expand(req.URL, map[string]string{
133588		"project": c.project,
133589		"region":  c.region,
133590	})
133591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133592}
133593
133594// Do executes the "compute.regionTargetHttpsProxies.insert" call.
133595// Exactly one of *Operation or error will be non-nil. Any non-2xx
133596// status code is an error. Response headers are in either
133597// *Operation.ServerResponse.Header or (if a response was returned at
133598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133599// to check whether the returned error was because
133600// http.StatusNotModified was returned.
133601func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133602	gensupport.SetOptions(c.urlParams_, opts...)
133603	res, err := c.doRequest("json")
133604	if res != nil && res.StatusCode == http.StatusNotModified {
133605		if res.Body != nil {
133606			res.Body.Close()
133607		}
133608		return nil, &googleapi.Error{
133609			Code:   res.StatusCode,
133610			Header: res.Header,
133611		}
133612	}
133613	if err != nil {
133614		return nil, err
133615	}
133616	defer googleapi.CloseBody(res)
133617	if err := googleapi.CheckResponse(res); err != nil {
133618		return nil, err
133619	}
133620	ret := &Operation{
133621		ServerResponse: googleapi.ServerResponse{
133622			Header:         res.Header,
133623			HTTPStatusCode: res.StatusCode,
133624		},
133625	}
133626	target := &ret
133627	if err := gensupport.DecodeResponse(target, res); err != nil {
133628		return nil, err
133629	}
133630	return ret, nil
133631	// {
133632	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
133633	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies",
133634	//   "httpMethod": "POST",
133635	//   "id": "compute.regionTargetHttpsProxies.insert",
133636	//   "parameterOrder": [
133637	//     "project",
133638	//     "region"
133639	//   ],
133640	//   "parameters": {
133641	//     "project": {
133642	//       "description": "Project ID for this request.",
133643	//       "location": "path",
133644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133645	//       "required": true,
133646	//       "type": "string"
133647	//     },
133648	//     "region": {
133649	//       "description": "Name of the region scoping this request.",
133650	//       "location": "path",
133651	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133652	//       "required": true,
133653	//       "type": "string"
133654	//     },
133655	//     "requestId": {
133656	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
133657	//       "location": "query",
133658	//       "type": "string"
133659	//     }
133660	//   },
133661	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
133662	//   "request": {
133663	//     "$ref": "TargetHttpsProxy"
133664	//   },
133665	//   "response": {
133666	//     "$ref": "Operation"
133667	//   },
133668	//   "scopes": [
133669	//     "https://www.googleapis.com/auth/cloud-platform",
133670	//     "https://www.googleapis.com/auth/compute"
133671	//   ]
133672	// }
133673
133674}
133675
133676// method id "compute.regionTargetHttpsProxies.list":
133677
133678type RegionTargetHttpsProxiesListCall struct {
133679	s            *Service
133680	project      string
133681	region       string
133682	urlParams_   gensupport.URLParams
133683	ifNoneMatch_ string
133684	ctx_         context.Context
133685	header_      http.Header
133686}
133687
133688// List: Retrieves the list of TargetHttpsProxy resources available to
133689// the specified project in the specified region.
133690//
133691// - project: Project ID for this request.
133692// - region: Name of the region scoping this request.
133693func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
133694	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133695	c.project = project
133696	c.region = region
133697	return c
133698}
133699
133700// Filter sets the optional parameter "filter": A filter expression that
133701// filters resources listed in the response. The expression must specify
133702// the field name, a comparison operator, and the value that you want to
133703// use for filtering. The value must be a string, a number, or a
133704// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133705// `<`. For example, if you are filtering Compute Engine instances, you
133706// can exclude instances named `example-instance` by specifying `name !=
133707// example-instance`. You can also filter nested fields. For example,
133708// you could specify `scheduling.automaticRestart = false` to include
133709// instances only if they are not scheduled for automatic restarts. You
133710// can use filtering on nested fields to filter based on resource
133711// labels. To filter on multiple expressions, provide each separate
133712// expression within parentheses. For example: ```
133713// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
133714// ``` By default, each expression is an `AND` expression. However, you
133715// can include `AND` and `OR` expressions explicitly. For example: ```
133716// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
133717// AND (scheduling.automaticRestart = true) ```
133718func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
133719	c.urlParams_.Set("filter", filter)
133720	return c
133721}
133722
133723// MaxResults sets the optional parameter "maxResults": The maximum
133724// number of results per page that should be returned. If the number of
133725// available results is larger than `maxResults`, Compute Engine returns
133726// a `nextPageToken` that can be used to get the next page of results in
133727// subsequent list requests. Acceptable values are `0` to `500`,
133728// inclusive. (Default: `500`)
133729func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
133730	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133731	return c
133732}
133733
133734// OrderBy sets the optional parameter "orderBy": Sorts list results by
133735// a certain order. By default, results are returned in alphanumerical
133736// order based on the resource name. You can also sort results in
133737// descending order based on the creation timestamp using
133738// `orderBy="creationTimestamp desc". This sorts results based on the
133739// `creationTimestamp` field in reverse chronological order (newest
133740// result first). Use this to sort resources like operations so that the
133741// newest operation is returned first. Currently, only sorting by `name`
133742// or `creationTimestamp desc` is supported.
133743func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
133744	c.urlParams_.Set("orderBy", orderBy)
133745	return c
133746}
133747
133748// PageToken sets the optional parameter "pageToken": Specifies a page
133749// token to use. Set `pageToken` to the `nextPageToken` returned by a
133750// previous list request to get the next page of results.
133751func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
133752	c.urlParams_.Set("pageToken", pageToken)
133753	return c
133754}
133755
133756// ReturnPartialSuccess sets the optional parameter
133757// "returnPartialSuccess": Opt-in for partial success behavior which
133758// provides partial results in case of failure. The default value is
133759// false.
133760func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
133761	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133762	return c
133763}
133764
133765// Fields allows partial responses to be retrieved. See
133766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133767// for more information.
133768func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
133769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133770	return c
133771}
133772
133773// IfNoneMatch sets the optional parameter which makes the operation
133774// fail if the object's ETag matches the given value. This is useful for
133775// getting updates only after the object has changed since the last
133776// request. Use googleapi.IsNotModified to check whether the response
133777// error from Do is the result of In-None-Match.
133778func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
133779	c.ifNoneMatch_ = entityTag
133780	return c
133781}
133782
133783// Context sets the context to be used in this call's Do method. Any
133784// pending HTTP request will be aborted if the provided context is
133785// canceled.
133786func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
133787	c.ctx_ = ctx
133788	return c
133789}
133790
133791// Header returns an http.Header that can be modified by the caller to
133792// add HTTP headers to the request.
133793func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
133794	if c.header_ == nil {
133795		c.header_ = make(http.Header)
133796	}
133797	return c.header_
133798}
133799
133800func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
133801	reqHeaders := make(http.Header)
133802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
133803	for k, v := range c.header_ {
133804		reqHeaders[k] = v
133805	}
133806	reqHeaders.Set("User-Agent", c.s.userAgent())
133807	if c.ifNoneMatch_ != "" {
133808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133809	}
133810	var body io.Reader = nil
133811	c.urlParams_.Set("alt", alt)
133812	c.urlParams_.Set("prettyPrint", "false")
133813	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
133814	urls += "?" + c.urlParams_.Encode()
133815	req, err := http.NewRequest("GET", urls, body)
133816	if err != nil {
133817		return nil, err
133818	}
133819	req.Header = reqHeaders
133820	googleapi.Expand(req.URL, map[string]string{
133821		"project": c.project,
133822		"region":  c.region,
133823	})
133824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133825}
133826
133827// Do executes the "compute.regionTargetHttpsProxies.list" call.
133828// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
133829// non-2xx status code is an error. Response headers are in either
133830// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
133831// returned at all) in error.(*googleapi.Error).Header. Use
133832// googleapi.IsNotModified to check whether the returned error was
133833// because http.StatusNotModified was returned.
133834func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
133835	gensupport.SetOptions(c.urlParams_, opts...)
133836	res, err := c.doRequest("json")
133837	if res != nil && res.StatusCode == http.StatusNotModified {
133838		if res.Body != nil {
133839			res.Body.Close()
133840		}
133841		return nil, &googleapi.Error{
133842			Code:   res.StatusCode,
133843			Header: res.Header,
133844		}
133845	}
133846	if err != nil {
133847		return nil, err
133848	}
133849	defer googleapi.CloseBody(res)
133850	if err := googleapi.CheckResponse(res); err != nil {
133851		return nil, err
133852	}
133853	ret := &TargetHttpsProxyList{
133854		ServerResponse: googleapi.ServerResponse{
133855			Header:         res.Header,
133856			HTTPStatusCode: res.StatusCode,
133857		},
133858	}
133859	target := &ret
133860	if err := gensupport.DecodeResponse(target, res); err != nil {
133861		return nil, err
133862	}
133863	return ret, nil
133864	// {
133865	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
133866	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies",
133867	//   "httpMethod": "GET",
133868	//   "id": "compute.regionTargetHttpsProxies.list",
133869	//   "parameterOrder": [
133870	//     "project",
133871	//     "region"
133872	//   ],
133873	//   "parameters": {
133874	//     "filter": {
133875	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133876	//       "location": "query",
133877	//       "type": "string"
133878	//     },
133879	//     "maxResults": {
133880	//       "default": "500",
133881	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133882	//       "format": "uint32",
133883	//       "location": "query",
133884	//       "minimum": "0",
133885	//       "type": "integer"
133886	//     },
133887	//     "orderBy": {
133888	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
133889	//       "location": "query",
133890	//       "type": "string"
133891	//     },
133892	//     "pageToken": {
133893	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133894	//       "location": "query",
133895	//       "type": "string"
133896	//     },
133897	//     "project": {
133898	//       "description": "Project ID for this request.",
133899	//       "location": "path",
133900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133901	//       "required": true,
133902	//       "type": "string"
133903	//     },
133904	//     "region": {
133905	//       "description": "Name of the region scoping this request.",
133906	//       "location": "path",
133907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133908	//       "required": true,
133909	//       "type": "string"
133910	//     },
133911	//     "returnPartialSuccess": {
133912	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
133913	//       "location": "query",
133914	//       "type": "boolean"
133915	//     }
133916	//   },
133917	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
133918	//   "response": {
133919	//     "$ref": "TargetHttpsProxyList"
133920	//   },
133921	//   "scopes": [
133922	//     "https://www.googleapis.com/auth/cloud-platform",
133923	//     "https://www.googleapis.com/auth/compute",
133924	//     "https://www.googleapis.com/auth/compute.readonly"
133925	//   ]
133926	// }
133927
133928}
133929
133930// Pages invokes f for each page of results.
133931// A non-nil error returned from f will halt the iteration.
133932// The provided context supersedes any context provided to the Context method.
133933func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
133934	c.ctx_ = ctx
133935	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133936	for {
133937		x, err := c.Do()
133938		if err != nil {
133939			return err
133940		}
133941		if err := f(x); err != nil {
133942			return err
133943		}
133944		if x.NextPageToken == "" {
133945			return nil
133946		}
133947		c.PageToken(x.NextPageToken)
133948	}
133949}
133950
133951// method id "compute.regionTargetHttpsProxies.setSslCertificates":
133952
133953type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
133954	s                                                 *Service
133955	project                                           string
133956	region                                            string
133957	targetHttpsProxy                                  string
133958	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
133959	urlParams_                                        gensupport.URLParams
133960	ctx_                                              context.Context
133961	header_                                           http.Header
133962}
133963
133964// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
133965//
133966// - project: Project ID for this request.
133967// - region: Name of the region scoping this request.
133968// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
133969//   SslCertificates resource for.
133970func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
133971	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133972	c.project = project
133973	c.region = region
133974	c.targetHttpsProxy = targetHttpsProxy
133975	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
133976	return c
133977}
133978
133979// RequestId sets the optional parameter "requestId": An optional
133980// request ID to identify requests. Specify a unique request ID so that
133981// if you must retry your request, the server will know to ignore the
133982// request if it has already been completed. For example, consider a
133983// situation where you make an initial request and the request times
133984// out. If you make the request again with the same request ID, the
133985// server can check if original operation with the same request ID was
133986// received, and if so, will ignore the second request. This prevents
133987// clients from accidentally creating duplicate commitments. The request
133988// ID must be a valid UUID with the exception that zero UUID is not
133989// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
133990// MixerMutationRequestBuilder
133991func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
133992	c.urlParams_.Set("requestId", requestId)
133993	return c
133994}
133995
133996// Fields allows partial responses to be retrieved. See
133997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133998// for more information.
133999func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134001	return c
134002}
134003
134004// Context sets the context to be used in this call's Do method. Any
134005// pending HTTP request will be aborted if the provided context is
134006// canceled.
134007func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134008	c.ctx_ = ctx
134009	return c
134010}
134011
134012// Header returns an http.Header that can be modified by the caller to
134013// add HTTP headers to the request.
134014func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
134015	if c.header_ == nil {
134016		c.header_ = make(http.Header)
134017	}
134018	return c.header_
134019}
134020
134021func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
134022	reqHeaders := make(http.Header)
134023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134024	for k, v := range c.header_ {
134025		reqHeaders[k] = v
134026	}
134027	reqHeaders.Set("User-Agent", c.s.userAgent())
134028	var body io.Reader = nil
134029	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
134030	if err != nil {
134031		return nil, err
134032	}
134033	reqHeaders.Set("Content-Type", "application/json")
134034	c.urlParams_.Set("alt", alt)
134035	c.urlParams_.Set("prettyPrint", "false")
134036	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
134037	urls += "?" + c.urlParams_.Encode()
134038	req, err := http.NewRequest("POST", urls, body)
134039	if err != nil {
134040		return nil, err
134041	}
134042	req.Header = reqHeaders
134043	googleapi.Expand(req.URL, map[string]string{
134044		"project":          c.project,
134045		"region":           c.region,
134046		"targetHttpsProxy": c.targetHttpsProxy,
134047	})
134048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134049}
134050
134051// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
134052// Exactly one of *Operation or error will be non-nil. Any non-2xx
134053// status code is an error. Response headers are in either
134054// *Operation.ServerResponse.Header or (if a response was returned at
134055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134056// to check whether the returned error was because
134057// http.StatusNotModified was returned.
134058func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134059	gensupport.SetOptions(c.urlParams_, opts...)
134060	res, err := c.doRequest("json")
134061	if res != nil && res.StatusCode == http.StatusNotModified {
134062		if res.Body != nil {
134063			res.Body.Close()
134064		}
134065		return nil, &googleapi.Error{
134066			Code:   res.StatusCode,
134067			Header: res.Header,
134068		}
134069	}
134070	if err != nil {
134071		return nil, err
134072	}
134073	defer googleapi.CloseBody(res)
134074	if err := googleapi.CheckResponse(res); err != nil {
134075		return nil, err
134076	}
134077	ret := &Operation{
134078		ServerResponse: googleapi.ServerResponse{
134079			Header:         res.Header,
134080			HTTPStatusCode: res.StatusCode,
134081		},
134082	}
134083	target := &ret
134084	if err := gensupport.DecodeResponse(target, res); err != nil {
134085		return nil, err
134086	}
134087	return ret, nil
134088	// {
134089	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
134090	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
134091	//   "httpMethod": "POST",
134092	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
134093	//   "parameterOrder": [
134094	//     "project",
134095	//     "region",
134096	//     "targetHttpsProxy"
134097	//   ],
134098	//   "parameters": {
134099	//     "project": {
134100	//       "description": "Project ID for this request.",
134101	//       "location": "path",
134102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134103	//       "required": true,
134104	//       "type": "string"
134105	//     },
134106	//     "region": {
134107	//       "description": "Name of the region scoping this request.",
134108	//       "location": "path",
134109	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134110	//       "required": true,
134111	//       "type": "string"
134112	//     },
134113	//     "requestId": {
134114	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
134115	//       "location": "query",
134116	//       "type": "string"
134117	//     },
134118	//     "targetHttpsProxy": {
134119	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
134120	//       "location": "path",
134121	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134122	//       "required": true,
134123	//       "type": "string"
134124	//     }
134125	//   },
134126	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
134127	//   "request": {
134128	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
134129	//   },
134130	//   "response": {
134131	//     "$ref": "Operation"
134132	//   },
134133	//   "scopes": [
134134	//     "https://www.googleapis.com/auth/cloud-platform",
134135	//     "https://www.googleapis.com/auth/compute"
134136	//   ]
134137	// }
134138
134139}
134140
134141// method id "compute.regionTargetHttpsProxies.setUrlMap":
134142
134143type RegionTargetHttpsProxiesSetUrlMapCall struct {
134144	s                *Service
134145	project          string
134146	region           string
134147	targetHttpsProxy string
134148	urlmapreference  *UrlMapReference
134149	urlParams_       gensupport.URLParams
134150	ctx_             context.Context
134151	header_          http.Header
134152}
134153
134154// SetUrlMap: Changes the URL map for TargetHttpsProxy.
134155//
134156// - project: Project ID for this request.
134157// - region: Name of the region scoping this request.
134158// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map
134159//   for.
134160func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
134161	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134162	c.project = project
134163	c.region = region
134164	c.targetHttpsProxy = targetHttpsProxy
134165	c.urlmapreference = urlmapreference
134166	return c
134167}
134168
134169// RequestId sets the optional parameter "requestId": An optional
134170// request ID to identify requests. Specify a unique request ID so that
134171// if you must retry your request, the server will know to ignore the
134172// request if it has already been completed. For example, consider a
134173// situation where you make an initial request and the request times
134174// out. If you make the request again with the same request ID, the
134175// server can check if original operation with the same request ID was
134176// received, and if so, will ignore the second request. This prevents
134177// clients from accidentally creating duplicate commitments. The request
134178// ID must be a valid UUID with the exception that zero UUID is not
134179// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
134180// MixerMutationRequestBuilder
134181func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
134182	c.urlParams_.Set("requestId", requestId)
134183	return c
134184}
134185
134186// Fields allows partial responses to be retrieved. See
134187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134188// for more information.
134189func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
134190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134191	return c
134192}
134193
134194// Context sets the context to be used in this call's Do method. Any
134195// pending HTTP request will be aborted if the provided context is
134196// canceled.
134197func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
134198	c.ctx_ = ctx
134199	return c
134200}
134201
134202// Header returns an http.Header that can be modified by the caller to
134203// add HTTP headers to the request.
134204func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
134205	if c.header_ == nil {
134206		c.header_ = make(http.Header)
134207	}
134208	return c.header_
134209}
134210
134211func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
134212	reqHeaders := make(http.Header)
134213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134214	for k, v := range c.header_ {
134215		reqHeaders[k] = v
134216	}
134217	reqHeaders.Set("User-Agent", c.s.userAgent())
134218	var body io.Reader = nil
134219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
134220	if err != nil {
134221		return nil, err
134222	}
134223	reqHeaders.Set("Content-Type", "application/json")
134224	c.urlParams_.Set("alt", alt)
134225	c.urlParams_.Set("prettyPrint", "false")
134226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
134227	urls += "?" + c.urlParams_.Encode()
134228	req, err := http.NewRequest("POST", urls, body)
134229	if err != nil {
134230		return nil, err
134231	}
134232	req.Header = reqHeaders
134233	googleapi.Expand(req.URL, map[string]string{
134234		"project":          c.project,
134235		"region":           c.region,
134236		"targetHttpsProxy": c.targetHttpsProxy,
134237	})
134238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134239}
134240
134241// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
134242// Exactly one of *Operation or error will be non-nil. Any non-2xx
134243// status code is an error. Response headers are in either
134244// *Operation.ServerResponse.Header or (if a response was returned at
134245// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134246// to check whether the returned error was because
134247// http.StatusNotModified was returned.
134248func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134249	gensupport.SetOptions(c.urlParams_, opts...)
134250	res, err := c.doRequest("json")
134251	if res != nil && res.StatusCode == http.StatusNotModified {
134252		if res.Body != nil {
134253			res.Body.Close()
134254		}
134255		return nil, &googleapi.Error{
134256			Code:   res.StatusCode,
134257			Header: res.Header,
134258		}
134259	}
134260	if err != nil {
134261		return nil, err
134262	}
134263	defer googleapi.CloseBody(res)
134264	if err := googleapi.CheckResponse(res); err != nil {
134265		return nil, err
134266	}
134267	ret := &Operation{
134268		ServerResponse: googleapi.ServerResponse{
134269			Header:         res.Header,
134270			HTTPStatusCode: res.StatusCode,
134271		},
134272	}
134273	target := &ret
134274	if err := gensupport.DecodeResponse(target, res); err != nil {
134275		return nil, err
134276	}
134277	return ret, nil
134278	// {
134279	//   "description": "Changes the URL map for TargetHttpsProxy.",
134280	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
134281	//   "httpMethod": "POST",
134282	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
134283	//   "parameterOrder": [
134284	//     "project",
134285	//     "region",
134286	//     "targetHttpsProxy"
134287	//   ],
134288	//   "parameters": {
134289	//     "project": {
134290	//       "description": "Project ID for this request.",
134291	//       "location": "path",
134292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134293	//       "required": true,
134294	//       "type": "string"
134295	//     },
134296	//     "region": {
134297	//       "description": "Name of the region scoping this request.",
134298	//       "location": "path",
134299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134300	//       "required": true,
134301	//       "type": "string"
134302	//     },
134303	//     "requestId": {
134304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
134305	//       "location": "query",
134306	//       "type": "string"
134307	//     },
134308	//     "targetHttpsProxy": {
134309	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
134310	//       "location": "path",
134311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134312	//       "required": true,
134313	//       "type": "string"
134314	//     }
134315	//   },
134316	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
134317	//   "request": {
134318	//     "$ref": "UrlMapReference"
134319	//   },
134320	//   "response": {
134321	//     "$ref": "Operation"
134322	//   },
134323	//   "scopes": [
134324	//     "https://www.googleapis.com/auth/cloud-platform",
134325	//     "https://www.googleapis.com/auth/compute"
134326	//   ]
134327	// }
134328
134329}
134330
134331// method id "compute.regionUrlMaps.delete":
134332
134333type RegionUrlMapsDeleteCall struct {
134334	s          *Service
134335	project    string
134336	region     string
134337	urlMap     string
134338	urlParams_ gensupport.URLParams
134339	ctx_       context.Context
134340	header_    http.Header
134341}
134342
134343// Delete: Deletes the specified UrlMap resource.
134344//
134345// - project: Project ID for this request.
134346// - region: Name of the region scoping this request.
134347// - urlMap: Name of the UrlMap resource to delete.
134348func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
134349	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134350	c.project = project
134351	c.region = region
134352	c.urlMap = urlMap
134353	return c
134354}
134355
134356// RequestId sets the optional parameter "requestId": begin_interface:
134357// MixerMutationRequestBuilder Request ID to support idempotency.
134358func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
134359	c.urlParams_.Set("requestId", requestId)
134360	return c
134361}
134362
134363// Fields allows partial responses to be retrieved. See
134364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134365// for more information.
134366func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
134367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134368	return c
134369}
134370
134371// Context sets the context to be used in this call's Do method. Any
134372// pending HTTP request will be aborted if the provided context is
134373// canceled.
134374func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
134375	c.ctx_ = ctx
134376	return c
134377}
134378
134379// Header returns an http.Header that can be modified by the caller to
134380// add HTTP headers to the request.
134381func (c *RegionUrlMapsDeleteCall) Header() http.Header {
134382	if c.header_ == nil {
134383		c.header_ = make(http.Header)
134384	}
134385	return c.header_
134386}
134387
134388func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
134389	reqHeaders := make(http.Header)
134390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134391	for k, v := range c.header_ {
134392		reqHeaders[k] = v
134393	}
134394	reqHeaders.Set("User-Agent", c.s.userAgent())
134395	var body io.Reader = nil
134396	c.urlParams_.Set("alt", alt)
134397	c.urlParams_.Set("prettyPrint", "false")
134398	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
134399	urls += "?" + c.urlParams_.Encode()
134400	req, err := http.NewRequest("DELETE", urls, body)
134401	if err != nil {
134402		return nil, err
134403	}
134404	req.Header = reqHeaders
134405	googleapi.Expand(req.URL, map[string]string{
134406		"project": c.project,
134407		"region":  c.region,
134408		"urlMap":  c.urlMap,
134409	})
134410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134411}
134412
134413// Do executes the "compute.regionUrlMaps.delete" call.
134414// Exactly one of *Operation or error will be non-nil. Any non-2xx
134415// status code is an error. Response headers are in either
134416// *Operation.ServerResponse.Header or (if a response was returned at
134417// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134418// to check whether the returned error was because
134419// http.StatusNotModified was returned.
134420func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134421	gensupport.SetOptions(c.urlParams_, opts...)
134422	res, err := c.doRequest("json")
134423	if res != nil && res.StatusCode == http.StatusNotModified {
134424		if res.Body != nil {
134425			res.Body.Close()
134426		}
134427		return nil, &googleapi.Error{
134428			Code:   res.StatusCode,
134429			Header: res.Header,
134430		}
134431	}
134432	if err != nil {
134433		return nil, err
134434	}
134435	defer googleapi.CloseBody(res)
134436	if err := googleapi.CheckResponse(res); err != nil {
134437		return nil, err
134438	}
134439	ret := &Operation{
134440		ServerResponse: googleapi.ServerResponse{
134441			Header:         res.Header,
134442			HTTPStatusCode: res.StatusCode,
134443		},
134444	}
134445	target := &ret
134446	if err := gensupport.DecodeResponse(target, res); err != nil {
134447		return nil, err
134448	}
134449	return ret, nil
134450	// {
134451	//   "description": "Deletes the specified UrlMap resource.",
134452	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134453	//   "httpMethod": "DELETE",
134454	//   "id": "compute.regionUrlMaps.delete",
134455	//   "parameterOrder": [
134456	//     "project",
134457	//     "region",
134458	//     "urlMap"
134459	//   ],
134460	//   "parameters": {
134461	//     "project": {
134462	//       "description": "Project ID for this request.",
134463	//       "location": "path",
134464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134465	//       "required": true,
134466	//       "type": "string"
134467	//     },
134468	//     "region": {
134469	//       "description": "Name of the region scoping this request.",
134470	//       "location": "path",
134471	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134472	//       "required": true,
134473	//       "type": "string"
134474	//     },
134475	//     "requestId": {
134476	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
134477	//       "location": "query",
134478	//       "type": "string"
134479	//     },
134480	//     "urlMap": {
134481	//       "description": "Name of the UrlMap resource to delete.",
134482	//       "location": "path",
134483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134484	//       "required": true,
134485	//       "type": "string"
134486	//     }
134487	//   },
134488	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134489	//   "response": {
134490	//     "$ref": "Operation"
134491	//   },
134492	//   "scopes": [
134493	//     "https://www.googleapis.com/auth/cloud-platform",
134494	//     "https://www.googleapis.com/auth/compute"
134495	//   ]
134496	// }
134497
134498}
134499
134500// method id "compute.regionUrlMaps.get":
134501
134502type RegionUrlMapsGetCall struct {
134503	s            *Service
134504	project      string
134505	region       string
134506	urlMap       string
134507	urlParams_   gensupport.URLParams
134508	ifNoneMatch_ string
134509	ctx_         context.Context
134510	header_      http.Header
134511}
134512
134513// Get: Returns the specified UrlMap resource. Gets a list of available
134514// URL maps by making a list() request.
134515//
134516// - project: Project ID for this request.
134517// - region: Name of the region scoping this request.
134518// - urlMap: Name of the UrlMap resource to return.
134519func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
134520	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134521	c.project = project
134522	c.region = region
134523	c.urlMap = urlMap
134524	return c
134525}
134526
134527// Fields allows partial responses to be retrieved. See
134528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134529// for more information.
134530func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
134531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134532	return c
134533}
134534
134535// IfNoneMatch sets the optional parameter which makes the operation
134536// fail if the object's ETag matches the given value. This is useful for
134537// getting updates only after the object has changed since the last
134538// request. Use googleapi.IsNotModified to check whether the response
134539// error from Do is the result of In-None-Match.
134540func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
134541	c.ifNoneMatch_ = entityTag
134542	return c
134543}
134544
134545// Context sets the context to be used in this call's Do method. Any
134546// pending HTTP request will be aborted if the provided context is
134547// canceled.
134548func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
134549	c.ctx_ = ctx
134550	return c
134551}
134552
134553// Header returns an http.Header that can be modified by the caller to
134554// add HTTP headers to the request.
134555func (c *RegionUrlMapsGetCall) Header() http.Header {
134556	if c.header_ == nil {
134557		c.header_ = make(http.Header)
134558	}
134559	return c.header_
134560}
134561
134562func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
134563	reqHeaders := make(http.Header)
134564	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134565	for k, v := range c.header_ {
134566		reqHeaders[k] = v
134567	}
134568	reqHeaders.Set("User-Agent", c.s.userAgent())
134569	if c.ifNoneMatch_ != "" {
134570		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134571	}
134572	var body io.Reader = nil
134573	c.urlParams_.Set("alt", alt)
134574	c.urlParams_.Set("prettyPrint", "false")
134575	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
134576	urls += "?" + c.urlParams_.Encode()
134577	req, err := http.NewRequest("GET", urls, body)
134578	if err != nil {
134579		return nil, err
134580	}
134581	req.Header = reqHeaders
134582	googleapi.Expand(req.URL, map[string]string{
134583		"project": c.project,
134584		"region":  c.region,
134585		"urlMap":  c.urlMap,
134586	})
134587	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134588}
134589
134590// Do executes the "compute.regionUrlMaps.get" call.
134591// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
134592// code is an error. Response headers are in either
134593// *UrlMap.ServerResponse.Header or (if a response was returned at all)
134594// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
134595// check whether the returned error was because http.StatusNotModified
134596// was returned.
134597func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
134598	gensupport.SetOptions(c.urlParams_, opts...)
134599	res, err := c.doRequest("json")
134600	if res != nil && res.StatusCode == http.StatusNotModified {
134601		if res.Body != nil {
134602			res.Body.Close()
134603		}
134604		return nil, &googleapi.Error{
134605			Code:   res.StatusCode,
134606			Header: res.Header,
134607		}
134608	}
134609	if err != nil {
134610		return nil, err
134611	}
134612	defer googleapi.CloseBody(res)
134613	if err := googleapi.CheckResponse(res); err != nil {
134614		return nil, err
134615	}
134616	ret := &UrlMap{
134617		ServerResponse: googleapi.ServerResponse{
134618			Header:         res.Header,
134619			HTTPStatusCode: res.StatusCode,
134620		},
134621	}
134622	target := &ret
134623	if err := gensupport.DecodeResponse(target, res); err != nil {
134624		return nil, err
134625	}
134626	return ret, nil
134627	// {
134628	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
134629	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134630	//   "httpMethod": "GET",
134631	//   "id": "compute.regionUrlMaps.get",
134632	//   "parameterOrder": [
134633	//     "project",
134634	//     "region",
134635	//     "urlMap"
134636	//   ],
134637	//   "parameters": {
134638	//     "project": {
134639	//       "description": "Project ID for this request.",
134640	//       "location": "path",
134641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134642	//       "required": true,
134643	//       "type": "string"
134644	//     },
134645	//     "region": {
134646	//       "description": "Name of the region scoping this request.",
134647	//       "location": "path",
134648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134649	//       "required": true,
134650	//       "type": "string"
134651	//     },
134652	//     "urlMap": {
134653	//       "description": "Name of the UrlMap resource to return.",
134654	//       "location": "path",
134655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134656	//       "required": true,
134657	//       "type": "string"
134658	//     }
134659	//   },
134660	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134661	//   "response": {
134662	//     "$ref": "UrlMap"
134663	//   },
134664	//   "scopes": [
134665	//     "https://www.googleapis.com/auth/cloud-platform",
134666	//     "https://www.googleapis.com/auth/compute",
134667	//     "https://www.googleapis.com/auth/compute.readonly"
134668	//   ]
134669	// }
134670
134671}
134672
134673// method id "compute.regionUrlMaps.insert":
134674
134675type RegionUrlMapsInsertCall struct {
134676	s          *Service
134677	project    string
134678	region     string
134679	urlmap     *UrlMap
134680	urlParams_ gensupport.URLParams
134681	ctx_       context.Context
134682	header_    http.Header
134683}
134684
134685// Insert: Creates a UrlMap resource in the specified project using the
134686// data included in the request.
134687//
134688// - project: Project ID for this request.
134689// - region: Name of the region scoping this request.
134690func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
134691	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134692	c.project = project
134693	c.region = region
134694	c.urlmap = urlmap
134695	return c
134696}
134697
134698// RequestId sets the optional parameter "requestId": begin_interface:
134699// MixerMutationRequestBuilder Request ID to support idempotency.
134700func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
134701	c.urlParams_.Set("requestId", requestId)
134702	return c
134703}
134704
134705// Fields allows partial responses to be retrieved. See
134706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134707// for more information.
134708func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
134709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134710	return c
134711}
134712
134713// Context sets the context to be used in this call's Do method. Any
134714// pending HTTP request will be aborted if the provided context is
134715// canceled.
134716func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
134717	c.ctx_ = ctx
134718	return c
134719}
134720
134721// Header returns an http.Header that can be modified by the caller to
134722// add HTTP headers to the request.
134723func (c *RegionUrlMapsInsertCall) Header() http.Header {
134724	if c.header_ == nil {
134725		c.header_ = make(http.Header)
134726	}
134727	return c.header_
134728}
134729
134730func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
134731	reqHeaders := make(http.Header)
134732	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134733	for k, v := range c.header_ {
134734		reqHeaders[k] = v
134735	}
134736	reqHeaders.Set("User-Agent", c.s.userAgent())
134737	var body io.Reader = nil
134738	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
134739	if err != nil {
134740		return nil, err
134741	}
134742	reqHeaders.Set("Content-Type", "application/json")
134743	c.urlParams_.Set("alt", alt)
134744	c.urlParams_.Set("prettyPrint", "false")
134745	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
134746	urls += "?" + c.urlParams_.Encode()
134747	req, err := http.NewRequest("POST", urls, body)
134748	if err != nil {
134749		return nil, err
134750	}
134751	req.Header = reqHeaders
134752	googleapi.Expand(req.URL, map[string]string{
134753		"project": c.project,
134754		"region":  c.region,
134755	})
134756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134757}
134758
134759// Do executes the "compute.regionUrlMaps.insert" call.
134760// Exactly one of *Operation or error will be non-nil. Any non-2xx
134761// status code is an error. Response headers are in either
134762// *Operation.ServerResponse.Header or (if a response was returned at
134763// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134764// to check whether the returned error was because
134765// http.StatusNotModified was returned.
134766func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134767	gensupport.SetOptions(c.urlParams_, opts...)
134768	res, err := c.doRequest("json")
134769	if res != nil && res.StatusCode == http.StatusNotModified {
134770		if res.Body != nil {
134771			res.Body.Close()
134772		}
134773		return nil, &googleapi.Error{
134774			Code:   res.StatusCode,
134775			Header: res.Header,
134776		}
134777	}
134778	if err != nil {
134779		return nil, err
134780	}
134781	defer googleapi.CloseBody(res)
134782	if err := googleapi.CheckResponse(res); err != nil {
134783		return nil, err
134784	}
134785	ret := &Operation{
134786		ServerResponse: googleapi.ServerResponse{
134787			Header:         res.Header,
134788			HTTPStatusCode: res.StatusCode,
134789		},
134790	}
134791	target := &ret
134792	if err := gensupport.DecodeResponse(target, res); err != nil {
134793		return nil, err
134794	}
134795	return ret, nil
134796	// {
134797	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
134798	//   "flatPath": "projects/{project}/regions/{region}/urlMaps",
134799	//   "httpMethod": "POST",
134800	//   "id": "compute.regionUrlMaps.insert",
134801	//   "parameterOrder": [
134802	//     "project",
134803	//     "region"
134804	//   ],
134805	//   "parameters": {
134806	//     "project": {
134807	//       "description": "Project ID for this request.",
134808	//       "location": "path",
134809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134810	//       "required": true,
134811	//       "type": "string"
134812	//     },
134813	//     "region": {
134814	//       "description": "Name of the region scoping this request.",
134815	//       "location": "path",
134816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134817	//       "required": true,
134818	//       "type": "string"
134819	//     },
134820	//     "requestId": {
134821	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
134822	//       "location": "query",
134823	//       "type": "string"
134824	//     }
134825	//   },
134826	//   "path": "projects/{project}/regions/{region}/urlMaps",
134827	//   "request": {
134828	//     "$ref": "UrlMap"
134829	//   },
134830	//   "response": {
134831	//     "$ref": "Operation"
134832	//   },
134833	//   "scopes": [
134834	//     "https://www.googleapis.com/auth/cloud-platform",
134835	//     "https://www.googleapis.com/auth/compute"
134836	//   ]
134837	// }
134838
134839}
134840
134841// method id "compute.regionUrlMaps.list":
134842
134843type RegionUrlMapsListCall struct {
134844	s            *Service
134845	project      string
134846	region       string
134847	urlParams_   gensupport.URLParams
134848	ifNoneMatch_ string
134849	ctx_         context.Context
134850	header_      http.Header
134851}
134852
134853// List: Retrieves the list of UrlMap resources available to the
134854// specified project in the specified region.
134855//
134856// - project: Project ID for this request.
134857// - region: Name of the region scoping this request.
134858func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
134859	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134860	c.project = project
134861	c.region = region
134862	return c
134863}
134864
134865// Filter sets the optional parameter "filter": A filter expression that
134866// filters resources listed in the response. The expression must specify
134867// the field name, a comparison operator, and the value that you want to
134868// use for filtering. The value must be a string, a number, or a
134869// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134870// `<`. For example, if you are filtering Compute Engine instances, you
134871// can exclude instances named `example-instance` by specifying `name !=
134872// example-instance`. You can also filter nested fields. For example,
134873// you could specify `scheduling.automaticRestart = false` to include
134874// instances only if they are not scheduled for automatic restarts. You
134875// can use filtering on nested fields to filter based on resource
134876// labels. To filter on multiple expressions, provide each separate
134877// expression within parentheses. For example: ```
134878// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
134879// ``` By default, each expression is an `AND` expression. However, you
134880// can include `AND` and `OR` expressions explicitly. For example: ```
134881// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
134882// AND (scheduling.automaticRestart = true) ```
134883func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
134884	c.urlParams_.Set("filter", filter)
134885	return c
134886}
134887
134888// MaxResults sets the optional parameter "maxResults": The maximum
134889// number of results per page that should be returned. If the number of
134890// available results is larger than `maxResults`, Compute Engine returns
134891// a `nextPageToken` that can be used to get the next page of results in
134892// subsequent list requests. Acceptable values are `0` to `500`,
134893// inclusive. (Default: `500`)
134894func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
134895	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134896	return c
134897}
134898
134899// OrderBy sets the optional parameter "orderBy": Sorts list results by
134900// a certain order. By default, results are returned in alphanumerical
134901// order based on the resource name. You can also sort results in
134902// descending order based on the creation timestamp using
134903// `orderBy="creationTimestamp desc". This sorts results based on the
134904// `creationTimestamp` field in reverse chronological order (newest
134905// result first). Use this to sort resources like operations so that the
134906// newest operation is returned first. Currently, only sorting by `name`
134907// or `creationTimestamp desc` is supported.
134908func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
134909	c.urlParams_.Set("orderBy", orderBy)
134910	return c
134911}
134912
134913// PageToken sets the optional parameter "pageToken": Specifies a page
134914// token to use. Set `pageToken` to the `nextPageToken` returned by a
134915// previous list request to get the next page of results.
134916func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
134917	c.urlParams_.Set("pageToken", pageToken)
134918	return c
134919}
134920
134921// ReturnPartialSuccess sets the optional parameter
134922// "returnPartialSuccess": Opt-in for partial success behavior which
134923// provides partial results in case of failure. The default value is
134924// false.
134925func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
134926	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134927	return c
134928}
134929
134930// Fields allows partial responses to be retrieved. See
134931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134932// for more information.
134933func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
134934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134935	return c
134936}
134937
134938// IfNoneMatch sets the optional parameter which makes the operation
134939// fail if the object's ETag matches the given value. This is useful for
134940// getting updates only after the object has changed since the last
134941// request. Use googleapi.IsNotModified to check whether the response
134942// error from Do is the result of In-None-Match.
134943func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
134944	c.ifNoneMatch_ = entityTag
134945	return c
134946}
134947
134948// Context sets the context to be used in this call's Do method. Any
134949// pending HTTP request will be aborted if the provided context is
134950// canceled.
134951func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
134952	c.ctx_ = ctx
134953	return c
134954}
134955
134956// Header returns an http.Header that can be modified by the caller to
134957// add HTTP headers to the request.
134958func (c *RegionUrlMapsListCall) Header() http.Header {
134959	if c.header_ == nil {
134960		c.header_ = make(http.Header)
134961	}
134962	return c.header_
134963}
134964
134965func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
134966	reqHeaders := make(http.Header)
134967	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
134968	for k, v := range c.header_ {
134969		reqHeaders[k] = v
134970	}
134971	reqHeaders.Set("User-Agent", c.s.userAgent())
134972	if c.ifNoneMatch_ != "" {
134973		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134974	}
134975	var body io.Reader = nil
134976	c.urlParams_.Set("alt", alt)
134977	c.urlParams_.Set("prettyPrint", "false")
134978	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
134979	urls += "?" + c.urlParams_.Encode()
134980	req, err := http.NewRequest("GET", urls, body)
134981	if err != nil {
134982		return nil, err
134983	}
134984	req.Header = reqHeaders
134985	googleapi.Expand(req.URL, map[string]string{
134986		"project": c.project,
134987		"region":  c.region,
134988	})
134989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134990}
134991
134992// Do executes the "compute.regionUrlMaps.list" call.
134993// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
134994// status code is an error. Response headers are in either
134995// *UrlMapList.ServerResponse.Header or (if a response was returned at
134996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134997// to check whether the returned error was because
134998// http.StatusNotModified was returned.
134999func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
135000	gensupport.SetOptions(c.urlParams_, opts...)
135001	res, err := c.doRequest("json")
135002	if res != nil && res.StatusCode == http.StatusNotModified {
135003		if res.Body != nil {
135004			res.Body.Close()
135005		}
135006		return nil, &googleapi.Error{
135007			Code:   res.StatusCode,
135008			Header: res.Header,
135009		}
135010	}
135011	if err != nil {
135012		return nil, err
135013	}
135014	defer googleapi.CloseBody(res)
135015	if err := googleapi.CheckResponse(res); err != nil {
135016		return nil, err
135017	}
135018	ret := &UrlMapList{
135019		ServerResponse: googleapi.ServerResponse{
135020			Header:         res.Header,
135021			HTTPStatusCode: res.StatusCode,
135022		},
135023	}
135024	target := &ret
135025	if err := gensupport.DecodeResponse(target, res); err != nil {
135026		return nil, err
135027	}
135028	return ret, nil
135029	// {
135030	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
135031	//   "flatPath": "projects/{project}/regions/{region}/urlMaps",
135032	//   "httpMethod": "GET",
135033	//   "id": "compute.regionUrlMaps.list",
135034	//   "parameterOrder": [
135035	//     "project",
135036	//     "region"
135037	//   ],
135038	//   "parameters": {
135039	//     "filter": {
135040	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
135041	//       "location": "query",
135042	//       "type": "string"
135043	//     },
135044	//     "maxResults": {
135045	//       "default": "500",
135046	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135047	//       "format": "uint32",
135048	//       "location": "query",
135049	//       "minimum": "0",
135050	//       "type": "integer"
135051	//     },
135052	//     "orderBy": {
135053	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
135054	//       "location": "query",
135055	//       "type": "string"
135056	//     },
135057	//     "pageToken": {
135058	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135059	//       "location": "query",
135060	//       "type": "string"
135061	//     },
135062	//     "project": {
135063	//       "description": "Project ID for this request.",
135064	//       "location": "path",
135065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135066	//       "required": true,
135067	//       "type": "string"
135068	//     },
135069	//     "region": {
135070	//       "description": "Name of the region scoping this request.",
135071	//       "location": "path",
135072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135073	//       "required": true,
135074	//       "type": "string"
135075	//     },
135076	//     "returnPartialSuccess": {
135077	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
135078	//       "location": "query",
135079	//       "type": "boolean"
135080	//     }
135081	//   },
135082	//   "path": "projects/{project}/regions/{region}/urlMaps",
135083	//   "response": {
135084	//     "$ref": "UrlMapList"
135085	//   },
135086	//   "scopes": [
135087	//     "https://www.googleapis.com/auth/cloud-platform",
135088	//     "https://www.googleapis.com/auth/compute",
135089	//     "https://www.googleapis.com/auth/compute.readonly"
135090	//   ]
135091	// }
135092
135093}
135094
135095// Pages invokes f for each page of results.
135096// A non-nil error returned from f will halt the iteration.
135097// The provided context supersedes any context provided to the Context method.
135098func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
135099	c.ctx_ = ctx
135100	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135101	for {
135102		x, err := c.Do()
135103		if err != nil {
135104			return err
135105		}
135106		if err := f(x); err != nil {
135107			return err
135108		}
135109		if x.NextPageToken == "" {
135110			return nil
135111		}
135112		c.PageToken(x.NextPageToken)
135113	}
135114}
135115
135116// method id "compute.regionUrlMaps.patch":
135117
135118type RegionUrlMapsPatchCall struct {
135119	s          *Service
135120	project    string
135121	region     string
135122	urlMap     string
135123	urlmap     *UrlMap
135124	urlParams_ gensupport.URLParams
135125	ctx_       context.Context
135126	header_    http.Header
135127}
135128
135129// Patch: Patches the specified UrlMap resource with the data included
135130// in the request. This method supports PATCH semantics and uses JSON
135131// merge patch format and processing rules.
135132//
135133// - project: Project ID for this request.
135134// - region: Name of the region scoping this request.
135135// - urlMap: Name of the UrlMap resource to patch.
135136func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
135137	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135138	c.project = project
135139	c.region = region
135140	c.urlMap = urlMap
135141	c.urlmap = urlmap
135142	return c
135143}
135144
135145// RequestId sets the optional parameter "requestId": begin_interface:
135146// MixerMutationRequestBuilder Request ID to support idempotency.
135147func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
135148	c.urlParams_.Set("requestId", requestId)
135149	return c
135150}
135151
135152// Fields allows partial responses to be retrieved. See
135153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135154// for more information.
135155func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
135156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135157	return c
135158}
135159
135160// Context sets the context to be used in this call's Do method. Any
135161// pending HTTP request will be aborted if the provided context is
135162// canceled.
135163func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
135164	c.ctx_ = ctx
135165	return c
135166}
135167
135168// Header returns an http.Header that can be modified by the caller to
135169// add HTTP headers to the request.
135170func (c *RegionUrlMapsPatchCall) Header() http.Header {
135171	if c.header_ == nil {
135172		c.header_ = make(http.Header)
135173	}
135174	return c.header_
135175}
135176
135177func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
135178	reqHeaders := make(http.Header)
135179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
135180	for k, v := range c.header_ {
135181		reqHeaders[k] = v
135182	}
135183	reqHeaders.Set("User-Agent", c.s.userAgent())
135184	var body io.Reader = nil
135185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
135186	if err != nil {
135187		return nil, err
135188	}
135189	reqHeaders.Set("Content-Type", "application/json")
135190	c.urlParams_.Set("alt", alt)
135191	c.urlParams_.Set("prettyPrint", "false")
135192	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
135193	urls += "?" + c.urlParams_.Encode()
135194	req, err := http.NewRequest("PATCH", urls, body)
135195	if err != nil {
135196		return nil, err
135197	}
135198	req.Header = reqHeaders
135199	googleapi.Expand(req.URL, map[string]string{
135200		"project": c.project,
135201		"region":  c.region,
135202		"urlMap":  c.urlMap,
135203	})
135204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135205}
135206
135207// Do executes the "compute.regionUrlMaps.patch" call.
135208// Exactly one of *Operation or error will be non-nil. Any non-2xx
135209// status code is an error. Response headers are in either
135210// *Operation.ServerResponse.Header or (if a response was returned at
135211// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135212// to check whether the returned error was because
135213// http.StatusNotModified was returned.
135214func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135215	gensupport.SetOptions(c.urlParams_, opts...)
135216	res, err := c.doRequest("json")
135217	if res != nil && res.StatusCode == http.StatusNotModified {
135218		if res.Body != nil {
135219			res.Body.Close()
135220		}
135221		return nil, &googleapi.Error{
135222			Code:   res.StatusCode,
135223			Header: res.Header,
135224		}
135225	}
135226	if err != nil {
135227		return nil, err
135228	}
135229	defer googleapi.CloseBody(res)
135230	if err := googleapi.CheckResponse(res); err != nil {
135231		return nil, err
135232	}
135233	ret := &Operation{
135234		ServerResponse: googleapi.ServerResponse{
135235			Header:         res.Header,
135236			HTTPStatusCode: res.StatusCode,
135237		},
135238	}
135239	target := &ret
135240	if err := gensupport.DecodeResponse(target, res); err != nil {
135241		return nil, err
135242	}
135243	return ret, nil
135244	// {
135245	//   "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.",
135246	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135247	//   "httpMethod": "PATCH",
135248	//   "id": "compute.regionUrlMaps.patch",
135249	//   "parameterOrder": [
135250	//     "project",
135251	//     "region",
135252	//     "urlMap"
135253	//   ],
135254	//   "parameters": {
135255	//     "project": {
135256	//       "description": "Project ID for this request.",
135257	//       "location": "path",
135258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135259	//       "required": true,
135260	//       "type": "string"
135261	//     },
135262	//     "region": {
135263	//       "description": "Name of the region scoping this request.",
135264	//       "location": "path",
135265	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135266	//       "required": true,
135267	//       "type": "string"
135268	//     },
135269	//     "requestId": {
135270	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
135271	//       "location": "query",
135272	//       "type": "string"
135273	//     },
135274	//     "urlMap": {
135275	//       "description": "Name of the UrlMap resource to patch.",
135276	//       "location": "path",
135277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135278	//       "required": true,
135279	//       "type": "string"
135280	//     }
135281	//   },
135282	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135283	//   "request": {
135284	//     "$ref": "UrlMap"
135285	//   },
135286	//   "response": {
135287	//     "$ref": "Operation"
135288	//   },
135289	//   "scopes": [
135290	//     "https://www.googleapis.com/auth/cloud-platform",
135291	//     "https://www.googleapis.com/auth/compute"
135292	//   ]
135293	// }
135294
135295}
135296
135297// method id "compute.regionUrlMaps.update":
135298
135299type RegionUrlMapsUpdateCall struct {
135300	s          *Service
135301	project    string
135302	region     string
135303	urlMap     string
135304	urlmap     *UrlMap
135305	urlParams_ gensupport.URLParams
135306	ctx_       context.Context
135307	header_    http.Header
135308}
135309
135310// Update: Updates the specified UrlMap resource with the data included
135311// in the request.
135312//
135313// - project: Project ID for this request.
135314// - region: Name of the region scoping this request.
135315// - urlMap: Name of the UrlMap resource to update.
135316func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
135317	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135318	c.project = project
135319	c.region = region
135320	c.urlMap = urlMap
135321	c.urlmap = urlmap
135322	return c
135323}
135324
135325// RequestId sets the optional parameter "requestId": begin_interface:
135326// MixerMutationRequestBuilder Request ID to support idempotency.
135327func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
135328	c.urlParams_.Set("requestId", requestId)
135329	return c
135330}
135331
135332// Fields allows partial responses to be retrieved. See
135333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135334// for more information.
135335func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
135336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135337	return c
135338}
135339
135340// Context sets the context to be used in this call's Do method. Any
135341// pending HTTP request will be aborted if the provided context is
135342// canceled.
135343func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
135344	c.ctx_ = ctx
135345	return c
135346}
135347
135348// Header returns an http.Header that can be modified by the caller to
135349// add HTTP headers to the request.
135350func (c *RegionUrlMapsUpdateCall) Header() http.Header {
135351	if c.header_ == nil {
135352		c.header_ = make(http.Header)
135353	}
135354	return c.header_
135355}
135356
135357func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
135358	reqHeaders := make(http.Header)
135359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
135360	for k, v := range c.header_ {
135361		reqHeaders[k] = v
135362	}
135363	reqHeaders.Set("User-Agent", c.s.userAgent())
135364	var body io.Reader = nil
135365	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
135366	if err != nil {
135367		return nil, err
135368	}
135369	reqHeaders.Set("Content-Type", "application/json")
135370	c.urlParams_.Set("alt", alt)
135371	c.urlParams_.Set("prettyPrint", "false")
135372	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
135373	urls += "?" + c.urlParams_.Encode()
135374	req, err := http.NewRequest("PUT", urls, body)
135375	if err != nil {
135376		return nil, err
135377	}
135378	req.Header = reqHeaders
135379	googleapi.Expand(req.URL, map[string]string{
135380		"project": c.project,
135381		"region":  c.region,
135382		"urlMap":  c.urlMap,
135383	})
135384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135385}
135386
135387// Do executes the "compute.regionUrlMaps.update" call.
135388// Exactly one of *Operation or error will be non-nil. Any non-2xx
135389// status code is an error. Response headers are in either
135390// *Operation.ServerResponse.Header or (if a response was returned at
135391// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135392// to check whether the returned error was because
135393// http.StatusNotModified was returned.
135394func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135395	gensupport.SetOptions(c.urlParams_, opts...)
135396	res, err := c.doRequest("json")
135397	if res != nil && res.StatusCode == http.StatusNotModified {
135398		if res.Body != nil {
135399			res.Body.Close()
135400		}
135401		return nil, &googleapi.Error{
135402			Code:   res.StatusCode,
135403			Header: res.Header,
135404		}
135405	}
135406	if err != nil {
135407		return nil, err
135408	}
135409	defer googleapi.CloseBody(res)
135410	if err := googleapi.CheckResponse(res); err != nil {
135411		return nil, err
135412	}
135413	ret := &Operation{
135414		ServerResponse: googleapi.ServerResponse{
135415			Header:         res.Header,
135416			HTTPStatusCode: res.StatusCode,
135417		},
135418	}
135419	target := &ret
135420	if err := gensupport.DecodeResponse(target, res); err != nil {
135421		return nil, err
135422	}
135423	return ret, nil
135424	// {
135425	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
135426	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135427	//   "httpMethod": "PUT",
135428	//   "id": "compute.regionUrlMaps.update",
135429	//   "parameterOrder": [
135430	//     "project",
135431	//     "region",
135432	//     "urlMap"
135433	//   ],
135434	//   "parameters": {
135435	//     "project": {
135436	//       "description": "Project ID for this request.",
135437	//       "location": "path",
135438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135439	//       "required": true,
135440	//       "type": "string"
135441	//     },
135442	//     "region": {
135443	//       "description": "Name of the region scoping this request.",
135444	//       "location": "path",
135445	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135446	//       "required": true,
135447	//       "type": "string"
135448	//     },
135449	//     "requestId": {
135450	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
135451	//       "location": "query",
135452	//       "type": "string"
135453	//     },
135454	//     "urlMap": {
135455	//       "description": "Name of the UrlMap resource to update.",
135456	//       "location": "path",
135457	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135458	//       "required": true,
135459	//       "type": "string"
135460	//     }
135461	//   },
135462	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135463	//   "request": {
135464	//     "$ref": "UrlMap"
135465	//   },
135466	//   "response": {
135467	//     "$ref": "Operation"
135468	//   },
135469	//   "scopes": [
135470	//     "https://www.googleapis.com/auth/cloud-platform",
135471	//     "https://www.googleapis.com/auth/compute"
135472	//   ]
135473	// }
135474
135475}
135476
135477// method id "compute.regionUrlMaps.validate":
135478
135479type RegionUrlMapsValidateCall struct {
135480	s                            *Service
135481	project                      string
135482	region                       string
135483	urlMap                       string
135484	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
135485	urlParams_                   gensupport.URLParams
135486	ctx_                         context.Context
135487	header_                      http.Header
135488}
135489
135490// Validate: Runs static validation for the UrlMap. In particular, the
135491// tests of the provided UrlMap will be run. Calling this method does
135492// NOT create the UrlMap.
135493//
135494// - project: Project ID for this request.
135495// - region: Name of the region scoping this request.
135496// - urlMap: Name of the UrlMap resource to be validated as.
135497func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
135498	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135499	c.project = project
135500	c.region = region
135501	c.urlMap = urlMap
135502	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
135503	return c
135504}
135505
135506// Fields allows partial responses to be retrieved. See
135507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135508// for more information.
135509func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
135510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135511	return c
135512}
135513
135514// Context sets the context to be used in this call's Do method. Any
135515// pending HTTP request will be aborted if the provided context is
135516// canceled.
135517func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
135518	c.ctx_ = ctx
135519	return c
135520}
135521
135522// Header returns an http.Header that can be modified by the caller to
135523// add HTTP headers to the request.
135524func (c *RegionUrlMapsValidateCall) Header() http.Header {
135525	if c.header_ == nil {
135526		c.header_ = make(http.Header)
135527	}
135528	return c.header_
135529}
135530
135531func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
135532	reqHeaders := make(http.Header)
135533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
135534	for k, v := range c.header_ {
135535		reqHeaders[k] = v
135536	}
135537	reqHeaders.Set("User-Agent", c.s.userAgent())
135538	var body io.Reader = nil
135539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
135540	if err != nil {
135541		return nil, err
135542	}
135543	reqHeaders.Set("Content-Type", "application/json")
135544	c.urlParams_.Set("alt", alt)
135545	c.urlParams_.Set("prettyPrint", "false")
135546	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate")
135547	urls += "?" + c.urlParams_.Encode()
135548	req, err := http.NewRequest("POST", urls, body)
135549	if err != nil {
135550		return nil, err
135551	}
135552	req.Header = reqHeaders
135553	googleapi.Expand(req.URL, map[string]string{
135554		"project": c.project,
135555		"region":  c.region,
135556		"urlMap":  c.urlMap,
135557	})
135558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135559}
135560
135561// Do executes the "compute.regionUrlMaps.validate" call.
135562// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
135563// non-2xx status code is an error. Response headers are in either
135564// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
135565// returned at all) in error.(*googleapi.Error).Header. Use
135566// googleapi.IsNotModified to check whether the returned error was
135567// because http.StatusNotModified was returned.
135568func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
135569	gensupport.SetOptions(c.urlParams_, opts...)
135570	res, err := c.doRequest("json")
135571	if res != nil && res.StatusCode == http.StatusNotModified {
135572		if res.Body != nil {
135573			res.Body.Close()
135574		}
135575		return nil, &googleapi.Error{
135576			Code:   res.StatusCode,
135577			Header: res.Header,
135578		}
135579	}
135580	if err != nil {
135581		return nil, err
135582	}
135583	defer googleapi.CloseBody(res)
135584	if err := googleapi.CheckResponse(res); err != nil {
135585		return nil, err
135586	}
135587	ret := &UrlMapsValidateResponse{
135588		ServerResponse: googleapi.ServerResponse{
135589			Header:         res.Header,
135590			HTTPStatusCode: res.StatusCode,
135591		},
135592	}
135593	target := &ret
135594	if err := gensupport.DecodeResponse(target, res); err != nil {
135595		return nil, err
135596	}
135597	return ret, nil
135598	// {
135599	//   "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.",
135600	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
135601	//   "httpMethod": "POST",
135602	//   "id": "compute.regionUrlMaps.validate",
135603	//   "parameterOrder": [
135604	//     "project",
135605	//     "region",
135606	//     "urlMap"
135607	//   ],
135608	//   "parameters": {
135609	//     "project": {
135610	//       "description": "Project ID for this request.",
135611	//       "location": "path",
135612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135613	//       "required": true,
135614	//       "type": "string"
135615	//     },
135616	//     "region": {
135617	//       "description": "Name of the region scoping this request.",
135618	//       "location": "path",
135619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135620	//       "required": true,
135621	//       "type": "string"
135622	//     },
135623	//     "urlMap": {
135624	//       "description": "Name of the UrlMap resource to be validated as.",
135625	//       "location": "path",
135626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135627	//       "required": true,
135628	//       "type": "string"
135629	//     }
135630	//   },
135631	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
135632	//   "request": {
135633	//     "$ref": "RegionUrlMapsValidateRequest"
135634	//   },
135635	//   "response": {
135636	//     "$ref": "UrlMapsValidateResponse"
135637	//   },
135638	//   "scopes": [
135639	//     "https://www.googleapis.com/auth/cloud-platform",
135640	//     "https://www.googleapis.com/auth/compute"
135641	//   ]
135642	// }
135643
135644}
135645
135646// method id "compute.regions.get":
135647
135648type RegionsGetCall struct {
135649	s            *Service
135650	project      string
135651	region       string
135652	urlParams_   gensupport.URLParams
135653	ifNoneMatch_ string
135654	ctx_         context.Context
135655	header_      http.Header
135656}
135657
135658// Get: Returns the specified Region resource. Gets a list of available
135659// regions by making a list() request.
135660//
135661// - project: Project ID for this request.
135662// - region: Name of the region resource to return.
135663func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
135664	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135665	c.project = project
135666	c.region = region
135667	return c
135668}
135669
135670// Fields allows partial responses to be retrieved. See
135671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135672// for more information.
135673func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
135674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135675	return c
135676}
135677
135678// IfNoneMatch sets the optional parameter which makes the operation
135679// fail if the object's ETag matches the given value. This is useful for
135680// getting updates only after the object has changed since the last
135681// request. Use googleapi.IsNotModified to check whether the response
135682// error from Do is the result of In-None-Match.
135683func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
135684	c.ifNoneMatch_ = entityTag
135685	return c
135686}
135687
135688// Context sets the context to be used in this call's Do method. Any
135689// pending HTTP request will be aborted if the provided context is
135690// canceled.
135691func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
135692	c.ctx_ = ctx
135693	return c
135694}
135695
135696// Header returns an http.Header that can be modified by the caller to
135697// add HTTP headers to the request.
135698func (c *RegionsGetCall) Header() http.Header {
135699	if c.header_ == nil {
135700		c.header_ = make(http.Header)
135701	}
135702	return c.header_
135703}
135704
135705func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
135706	reqHeaders := make(http.Header)
135707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
135708	for k, v := range c.header_ {
135709		reqHeaders[k] = v
135710	}
135711	reqHeaders.Set("User-Agent", c.s.userAgent())
135712	if c.ifNoneMatch_ != "" {
135713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135714	}
135715	var body io.Reader = nil
135716	c.urlParams_.Set("alt", alt)
135717	c.urlParams_.Set("prettyPrint", "false")
135718	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}")
135719	urls += "?" + c.urlParams_.Encode()
135720	req, err := http.NewRequest("GET", urls, body)
135721	if err != nil {
135722		return nil, err
135723	}
135724	req.Header = reqHeaders
135725	googleapi.Expand(req.URL, map[string]string{
135726		"project": c.project,
135727		"region":  c.region,
135728	})
135729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135730}
135731
135732// Do executes the "compute.regions.get" call.
135733// Exactly one of *Region or error will be non-nil. Any non-2xx status
135734// code is an error. Response headers are in either
135735// *Region.ServerResponse.Header or (if a response was returned at all)
135736// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
135737// check whether the returned error was because http.StatusNotModified
135738// was returned.
135739func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
135740	gensupport.SetOptions(c.urlParams_, opts...)
135741	res, err := c.doRequest("json")
135742	if res != nil && res.StatusCode == http.StatusNotModified {
135743		if res.Body != nil {
135744			res.Body.Close()
135745		}
135746		return nil, &googleapi.Error{
135747			Code:   res.StatusCode,
135748			Header: res.Header,
135749		}
135750	}
135751	if err != nil {
135752		return nil, err
135753	}
135754	defer googleapi.CloseBody(res)
135755	if err := googleapi.CheckResponse(res); err != nil {
135756		return nil, err
135757	}
135758	ret := &Region{
135759		ServerResponse: googleapi.ServerResponse{
135760			Header:         res.Header,
135761			HTTPStatusCode: res.StatusCode,
135762		},
135763	}
135764	target := &ret
135765	if err := gensupport.DecodeResponse(target, res); err != nil {
135766		return nil, err
135767	}
135768	return ret, nil
135769	// {
135770	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
135771	//   "flatPath": "projects/{project}/regions/{region}",
135772	//   "httpMethod": "GET",
135773	//   "id": "compute.regions.get",
135774	//   "parameterOrder": [
135775	//     "project",
135776	//     "region"
135777	//   ],
135778	//   "parameters": {
135779	//     "project": {
135780	//       "description": "Project ID for this request.",
135781	//       "location": "path",
135782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135783	//       "required": true,
135784	//       "type": "string"
135785	//     },
135786	//     "region": {
135787	//       "description": "Name of the region resource to return.",
135788	//       "location": "path",
135789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135790	//       "required": true,
135791	//       "type": "string"
135792	//     }
135793	//   },
135794	//   "path": "projects/{project}/regions/{region}",
135795	//   "response": {
135796	//     "$ref": "Region"
135797	//   },
135798	//   "scopes": [
135799	//     "https://www.googleapis.com/auth/cloud-platform",
135800	//     "https://www.googleapis.com/auth/compute",
135801	//     "https://www.googleapis.com/auth/compute.readonly"
135802	//   ]
135803	// }
135804
135805}
135806
135807// method id "compute.regions.list":
135808
135809type RegionsListCall struct {
135810	s            *Service
135811	project      string
135812	urlParams_   gensupport.URLParams
135813	ifNoneMatch_ string
135814	ctx_         context.Context
135815	header_      http.Header
135816}
135817
135818// List: Retrieves the list of region resources available to the
135819// specified project.
135820//
135821// - project: Project ID for this request.
135822func (r *RegionsService) List(project string) *RegionsListCall {
135823	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135824	c.project = project
135825	return c
135826}
135827
135828// Filter sets the optional parameter "filter": A filter expression that
135829// filters resources listed in the response. The expression must specify
135830// the field name, a comparison operator, and the value that you want to
135831// use for filtering. The value must be a string, a number, or a
135832// boolean. The comparison operator must be either `=`, `!=`, `>`, or
135833// `<`. For example, if you are filtering Compute Engine instances, you
135834// can exclude instances named `example-instance` by specifying `name !=
135835// example-instance`. You can also filter nested fields. For example,
135836// you could specify `scheduling.automaticRestart = false` to include
135837// instances only if they are not scheduled for automatic restarts. You
135838// can use filtering on nested fields to filter based on resource
135839// labels. To filter on multiple expressions, provide each separate
135840// expression within parentheses. For example: ```
135841// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
135842// ``` By default, each expression is an `AND` expression. However, you
135843// can include `AND` and `OR` expressions explicitly. For example: ```
135844// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
135845// AND (scheduling.automaticRestart = true) ```
135846func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
135847	c.urlParams_.Set("filter", filter)
135848	return c
135849}
135850
135851// MaxResults sets the optional parameter "maxResults": The maximum
135852// number of results per page that should be returned. If the number of
135853// available results is larger than `maxResults`, Compute Engine returns
135854// a `nextPageToken` that can be used to get the next page of results in
135855// subsequent list requests. Acceptable values are `0` to `500`,
135856// inclusive. (Default: `500`)
135857func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
135858	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135859	return c
135860}
135861
135862// OrderBy sets the optional parameter "orderBy": Sorts list results by
135863// a certain order. By default, results are returned in alphanumerical
135864// order based on the resource name. You can also sort results in
135865// descending order based on the creation timestamp using
135866// `orderBy="creationTimestamp desc". This sorts results based on the
135867// `creationTimestamp` field in reverse chronological order (newest
135868// result first). Use this to sort resources like operations so that the
135869// newest operation is returned first. Currently, only sorting by `name`
135870// or `creationTimestamp desc` is supported.
135871func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
135872	c.urlParams_.Set("orderBy", orderBy)
135873	return c
135874}
135875
135876// PageToken sets the optional parameter "pageToken": Specifies a page
135877// token to use. Set `pageToken` to the `nextPageToken` returned by a
135878// previous list request to get the next page of results.
135879func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
135880	c.urlParams_.Set("pageToken", pageToken)
135881	return c
135882}
135883
135884// ReturnPartialSuccess sets the optional parameter
135885// "returnPartialSuccess": Opt-in for partial success behavior which
135886// provides partial results in case of failure. The default value is
135887// false.
135888func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
135889	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
135890	return c
135891}
135892
135893// Fields allows partial responses to be retrieved. See
135894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135895// for more information.
135896func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
135897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135898	return c
135899}
135900
135901// IfNoneMatch sets the optional parameter which makes the operation
135902// fail if the object's ETag matches the given value. This is useful for
135903// getting updates only after the object has changed since the last
135904// request. Use googleapi.IsNotModified to check whether the response
135905// error from Do is the result of In-None-Match.
135906func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
135907	c.ifNoneMatch_ = entityTag
135908	return c
135909}
135910
135911// Context sets the context to be used in this call's Do method. Any
135912// pending HTTP request will be aborted if the provided context is
135913// canceled.
135914func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
135915	c.ctx_ = ctx
135916	return c
135917}
135918
135919// Header returns an http.Header that can be modified by the caller to
135920// add HTTP headers to the request.
135921func (c *RegionsListCall) Header() http.Header {
135922	if c.header_ == nil {
135923		c.header_ = make(http.Header)
135924	}
135925	return c.header_
135926}
135927
135928func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
135929	reqHeaders := make(http.Header)
135930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
135931	for k, v := range c.header_ {
135932		reqHeaders[k] = v
135933	}
135934	reqHeaders.Set("User-Agent", c.s.userAgent())
135935	if c.ifNoneMatch_ != "" {
135936		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135937	}
135938	var body io.Reader = nil
135939	c.urlParams_.Set("alt", alt)
135940	c.urlParams_.Set("prettyPrint", "false")
135941	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions")
135942	urls += "?" + c.urlParams_.Encode()
135943	req, err := http.NewRequest("GET", urls, body)
135944	if err != nil {
135945		return nil, err
135946	}
135947	req.Header = reqHeaders
135948	googleapi.Expand(req.URL, map[string]string{
135949		"project": c.project,
135950	})
135951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135952}
135953
135954// Do executes the "compute.regions.list" call.
135955// Exactly one of *RegionList or error will be non-nil. Any non-2xx
135956// status code is an error. Response headers are in either
135957// *RegionList.ServerResponse.Header or (if a response was returned at
135958// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135959// to check whether the returned error was because
135960// http.StatusNotModified was returned.
135961func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
135962	gensupport.SetOptions(c.urlParams_, opts...)
135963	res, err := c.doRequest("json")
135964	if res != nil && res.StatusCode == http.StatusNotModified {
135965		if res.Body != nil {
135966			res.Body.Close()
135967		}
135968		return nil, &googleapi.Error{
135969			Code:   res.StatusCode,
135970			Header: res.Header,
135971		}
135972	}
135973	if err != nil {
135974		return nil, err
135975	}
135976	defer googleapi.CloseBody(res)
135977	if err := googleapi.CheckResponse(res); err != nil {
135978		return nil, err
135979	}
135980	ret := &RegionList{
135981		ServerResponse: googleapi.ServerResponse{
135982			Header:         res.Header,
135983			HTTPStatusCode: res.StatusCode,
135984		},
135985	}
135986	target := &ret
135987	if err := gensupport.DecodeResponse(target, res); err != nil {
135988		return nil, err
135989	}
135990	return ret, nil
135991	// {
135992	//   "description": "Retrieves the list of region resources available to the specified project.",
135993	//   "flatPath": "projects/{project}/regions",
135994	//   "httpMethod": "GET",
135995	//   "id": "compute.regions.list",
135996	//   "parameterOrder": [
135997	//     "project"
135998	//   ],
135999	//   "parameters": {
136000	//     "filter": {
136001	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136002	//       "location": "query",
136003	//       "type": "string"
136004	//     },
136005	//     "maxResults": {
136006	//       "default": "500",
136007	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136008	//       "format": "uint32",
136009	//       "location": "query",
136010	//       "minimum": "0",
136011	//       "type": "integer"
136012	//     },
136013	//     "orderBy": {
136014	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
136015	//       "location": "query",
136016	//       "type": "string"
136017	//     },
136018	//     "pageToken": {
136019	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136020	//       "location": "query",
136021	//       "type": "string"
136022	//     },
136023	//     "project": {
136024	//       "description": "Project ID for this request.",
136025	//       "location": "path",
136026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136027	//       "required": true,
136028	//       "type": "string"
136029	//     },
136030	//     "returnPartialSuccess": {
136031	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136032	//       "location": "query",
136033	//       "type": "boolean"
136034	//     }
136035	//   },
136036	//   "path": "projects/{project}/regions",
136037	//   "response": {
136038	//     "$ref": "RegionList"
136039	//   },
136040	//   "scopes": [
136041	//     "https://www.googleapis.com/auth/cloud-platform",
136042	//     "https://www.googleapis.com/auth/compute",
136043	//     "https://www.googleapis.com/auth/compute.readonly"
136044	//   ]
136045	// }
136046
136047}
136048
136049// Pages invokes f for each page of results.
136050// A non-nil error returned from f will halt the iteration.
136051// The provided context supersedes any context provided to the Context method.
136052func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
136053	c.ctx_ = ctx
136054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136055	for {
136056		x, err := c.Do()
136057		if err != nil {
136058			return err
136059		}
136060		if err := f(x); err != nil {
136061			return err
136062		}
136063		if x.NextPageToken == "" {
136064			return nil
136065		}
136066		c.PageToken(x.NextPageToken)
136067	}
136068}
136069
136070// method id "compute.reservations.aggregatedList":
136071
136072type ReservationsAggregatedListCall struct {
136073	s            *Service
136074	project      string
136075	urlParams_   gensupport.URLParams
136076	ifNoneMatch_ string
136077	ctx_         context.Context
136078	header_      http.Header
136079}
136080
136081// AggregatedList: Retrieves an aggregated list of reservations.
136082//
136083// - project: Project ID for this request.
136084func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
136085	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136086	c.project = project
136087	return c
136088}
136089
136090// Filter sets the optional parameter "filter": A filter expression that
136091// filters resources listed in the response. The expression must specify
136092// the field name, a comparison operator, and the value that you want to
136093// use for filtering. The value must be a string, a number, or a
136094// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136095// `<`. For example, if you are filtering Compute Engine instances, you
136096// can exclude instances named `example-instance` by specifying `name !=
136097// example-instance`. You can also filter nested fields. For example,
136098// you could specify `scheduling.automaticRestart = false` to include
136099// instances only if they are not scheduled for automatic restarts. You
136100// can use filtering on nested fields to filter based on resource
136101// labels. To filter on multiple expressions, provide each separate
136102// expression within parentheses. For example: ```
136103// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
136104// ``` By default, each expression is an `AND` expression. However, you
136105// can include `AND` and `OR` expressions explicitly. For example: ```
136106// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
136107// AND (scheduling.automaticRestart = true) ```
136108func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
136109	c.urlParams_.Set("filter", filter)
136110	return c
136111}
136112
136113// IncludeAllScopes sets the optional parameter "includeAllScopes":
136114// Indicates whether every visible scope for each scope type (zone,
136115// region, global) should be included in the response. For new resource
136116// types added after this field, the flag has no effect as new resource
136117// types will always include every visible scope for each scope type in
136118// response. For resource types which predate this field, if this flag
136119// is omitted or false, only scopes of the scope types where the
136120// resource type is expected to be found will be included.
136121func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
136122	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
136123	return c
136124}
136125
136126// MaxResults sets the optional parameter "maxResults": The maximum
136127// number of results per page that should be returned. If the number of
136128// available results is larger than `maxResults`, Compute Engine returns
136129// a `nextPageToken` that can be used to get the next page of results in
136130// subsequent list requests. Acceptable values are `0` to `500`,
136131// inclusive. (Default: `500`)
136132func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
136133	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136134	return c
136135}
136136
136137// OrderBy sets the optional parameter "orderBy": Sorts list results by
136138// a certain order. By default, results are returned in alphanumerical
136139// order based on the resource name. You can also sort results in
136140// descending order based on the creation timestamp using
136141// `orderBy="creationTimestamp desc". This sorts results based on the
136142// `creationTimestamp` field in reverse chronological order (newest
136143// result first). Use this to sort resources like operations so that the
136144// newest operation is returned first. Currently, only sorting by `name`
136145// or `creationTimestamp desc` is supported.
136146func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
136147	c.urlParams_.Set("orderBy", orderBy)
136148	return c
136149}
136150
136151// PageToken sets the optional parameter "pageToken": Specifies a page
136152// token to use. Set `pageToken` to the `nextPageToken` returned by a
136153// previous list request to get the next page of results.
136154func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
136155	c.urlParams_.Set("pageToken", pageToken)
136156	return c
136157}
136158
136159// ReturnPartialSuccess sets the optional parameter
136160// "returnPartialSuccess": Opt-in for partial success behavior which
136161// provides partial results in case of failure. The default value is
136162// false.
136163func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
136164	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136165	return c
136166}
136167
136168// Fields allows partial responses to be retrieved. See
136169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136170// for more information.
136171func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
136172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136173	return c
136174}
136175
136176// IfNoneMatch sets the optional parameter which makes the operation
136177// fail if the object's ETag matches the given value. This is useful for
136178// getting updates only after the object has changed since the last
136179// request. Use googleapi.IsNotModified to check whether the response
136180// error from Do is the result of In-None-Match.
136181func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
136182	c.ifNoneMatch_ = entityTag
136183	return c
136184}
136185
136186// Context sets the context to be used in this call's Do method. Any
136187// pending HTTP request will be aborted if the provided context is
136188// canceled.
136189func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
136190	c.ctx_ = ctx
136191	return c
136192}
136193
136194// Header returns an http.Header that can be modified by the caller to
136195// add HTTP headers to the request.
136196func (c *ReservationsAggregatedListCall) Header() http.Header {
136197	if c.header_ == nil {
136198		c.header_ = make(http.Header)
136199	}
136200	return c.header_
136201}
136202
136203func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
136204	reqHeaders := make(http.Header)
136205	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
136206	for k, v := range c.header_ {
136207		reqHeaders[k] = v
136208	}
136209	reqHeaders.Set("User-Agent", c.s.userAgent())
136210	if c.ifNoneMatch_ != "" {
136211		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136212	}
136213	var body io.Reader = nil
136214	c.urlParams_.Set("alt", alt)
136215	c.urlParams_.Set("prettyPrint", "false")
136216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations")
136217	urls += "?" + c.urlParams_.Encode()
136218	req, err := http.NewRequest("GET", urls, body)
136219	if err != nil {
136220		return nil, err
136221	}
136222	req.Header = reqHeaders
136223	googleapi.Expand(req.URL, map[string]string{
136224		"project": c.project,
136225	})
136226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136227}
136228
136229// Do executes the "compute.reservations.aggregatedList" call.
136230// Exactly one of *ReservationAggregatedList or error will be non-nil.
136231// Any non-2xx status code is an error. Response headers are in either
136232// *ReservationAggregatedList.ServerResponse.Header or (if a response
136233// was returned at all) in error.(*googleapi.Error).Header. Use
136234// googleapi.IsNotModified to check whether the returned error was
136235// because http.StatusNotModified was returned.
136236func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
136237	gensupport.SetOptions(c.urlParams_, opts...)
136238	res, err := c.doRequest("json")
136239	if res != nil && res.StatusCode == http.StatusNotModified {
136240		if res.Body != nil {
136241			res.Body.Close()
136242		}
136243		return nil, &googleapi.Error{
136244			Code:   res.StatusCode,
136245			Header: res.Header,
136246		}
136247	}
136248	if err != nil {
136249		return nil, err
136250	}
136251	defer googleapi.CloseBody(res)
136252	if err := googleapi.CheckResponse(res); err != nil {
136253		return nil, err
136254	}
136255	ret := &ReservationAggregatedList{
136256		ServerResponse: googleapi.ServerResponse{
136257			Header:         res.Header,
136258			HTTPStatusCode: res.StatusCode,
136259		},
136260	}
136261	target := &ret
136262	if err := gensupport.DecodeResponse(target, res); err != nil {
136263		return nil, err
136264	}
136265	return ret, nil
136266	// {
136267	//   "description": "Retrieves an aggregated list of reservations.",
136268	//   "flatPath": "projects/{project}/aggregated/reservations",
136269	//   "httpMethod": "GET",
136270	//   "id": "compute.reservations.aggregatedList",
136271	//   "parameterOrder": [
136272	//     "project"
136273	//   ],
136274	//   "parameters": {
136275	//     "filter": {
136276	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136277	//       "location": "query",
136278	//       "type": "string"
136279	//     },
136280	//     "includeAllScopes": {
136281	//       "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.",
136282	//       "location": "query",
136283	//       "type": "boolean"
136284	//     },
136285	//     "maxResults": {
136286	//       "default": "500",
136287	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136288	//       "format": "uint32",
136289	//       "location": "query",
136290	//       "minimum": "0",
136291	//       "type": "integer"
136292	//     },
136293	//     "orderBy": {
136294	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
136295	//       "location": "query",
136296	//       "type": "string"
136297	//     },
136298	//     "pageToken": {
136299	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136300	//       "location": "query",
136301	//       "type": "string"
136302	//     },
136303	//     "project": {
136304	//       "description": "Project ID for this request.",
136305	//       "location": "path",
136306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136307	//       "required": true,
136308	//       "type": "string"
136309	//     },
136310	//     "returnPartialSuccess": {
136311	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136312	//       "location": "query",
136313	//       "type": "boolean"
136314	//     }
136315	//   },
136316	//   "path": "projects/{project}/aggregated/reservations",
136317	//   "response": {
136318	//     "$ref": "ReservationAggregatedList"
136319	//   },
136320	//   "scopes": [
136321	//     "https://www.googleapis.com/auth/cloud-platform",
136322	//     "https://www.googleapis.com/auth/compute",
136323	//     "https://www.googleapis.com/auth/compute.readonly"
136324	//   ]
136325	// }
136326
136327}
136328
136329// Pages invokes f for each page of results.
136330// A non-nil error returned from f will halt the iteration.
136331// The provided context supersedes any context provided to the Context method.
136332func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
136333	c.ctx_ = ctx
136334	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136335	for {
136336		x, err := c.Do()
136337		if err != nil {
136338			return err
136339		}
136340		if err := f(x); err != nil {
136341			return err
136342		}
136343		if x.NextPageToken == "" {
136344			return nil
136345		}
136346		c.PageToken(x.NextPageToken)
136347	}
136348}
136349
136350// method id "compute.reservations.delete":
136351
136352type ReservationsDeleteCall struct {
136353	s           *Service
136354	project     string
136355	zone        string
136356	reservation string
136357	urlParams_  gensupport.URLParams
136358	ctx_        context.Context
136359	header_     http.Header
136360}
136361
136362// Delete: Deletes the specified reservation.
136363//
136364// - project: Project ID for this request.
136365// - reservation: Name of the reservation to delete.
136366// - zone: Name of the zone for this request.
136367func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
136368	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136369	c.project = project
136370	c.zone = zone
136371	c.reservation = reservation
136372	return c
136373}
136374
136375// RequestId sets the optional parameter "requestId": An optional
136376// request ID to identify requests. Specify a unique request ID so that
136377// if you must retry your request, the server will know to ignore the
136378// request if it has already been completed. For example, consider a
136379// situation where you make an initial request and the request times
136380// out. If you make the request again with the same request ID, the
136381// server can check if original operation with the same request ID was
136382// received, and if so, will ignore the second request. This prevents
136383// clients from accidentally creating duplicate commitments. The request
136384// ID must be a valid UUID with the exception that zero UUID is not
136385// supported ( 00000000-0000-0000-0000-000000000000).
136386func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
136387	c.urlParams_.Set("requestId", requestId)
136388	return c
136389}
136390
136391// Fields allows partial responses to be retrieved. See
136392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136393// for more information.
136394func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
136395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136396	return c
136397}
136398
136399// Context sets the context to be used in this call's Do method. Any
136400// pending HTTP request will be aborted if the provided context is
136401// canceled.
136402func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
136403	c.ctx_ = ctx
136404	return c
136405}
136406
136407// Header returns an http.Header that can be modified by the caller to
136408// add HTTP headers to the request.
136409func (c *ReservationsDeleteCall) Header() http.Header {
136410	if c.header_ == nil {
136411		c.header_ = make(http.Header)
136412	}
136413	return c.header_
136414}
136415
136416func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
136417	reqHeaders := make(http.Header)
136418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
136419	for k, v := range c.header_ {
136420		reqHeaders[k] = v
136421	}
136422	reqHeaders.Set("User-Agent", c.s.userAgent())
136423	var body io.Reader = nil
136424	c.urlParams_.Set("alt", alt)
136425	c.urlParams_.Set("prettyPrint", "false")
136426	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
136427	urls += "?" + c.urlParams_.Encode()
136428	req, err := http.NewRequest("DELETE", urls, body)
136429	if err != nil {
136430		return nil, err
136431	}
136432	req.Header = reqHeaders
136433	googleapi.Expand(req.URL, map[string]string{
136434		"project":     c.project,
136435		"zone":        c.zone,
136436		"reservation": c.reservation,
136437	})
136438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136439}
136440
136441// Do executes the "compute.reservations.delete" call.
136442// Exactly one of *Operation or error will be non-nil. Any non-2xx
136443// status code is an error. Response headers are in either
136444// *Operation.ServerResponse.Header or (if a response was returned at
136445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136446// to check whether the returned error was because
136447// http.StatusNotModified was returned.
136448func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136449	gensupport.SetOptions(c.urlParams_, opts...)
136450	res, err := c.doRequest("json")
136451	if res != nil && res.StatusCode == http.StatusNotModified {
136452		if res.Body != nil {
136453			res.Body.Close()
136454		}
136455		return nil, &googleapi.Error{
136456			Code:   res.StatusCode,
136457			Header: res.Header,
136458		}
136459	}
136460	if err != nil {
136461		return nil, err
136462	}
136463	defer googleapi.CloseBody(res)
136464	if err := googleapi.CheckResponse(res); err != nil {
136465		return nil, err
136466	}
136467	ret := &Operation{
136468		ServerResponse: googleapi.ServerResponse{
136469			Header:         res.Header,
136470			HTTPStatusCode: res.StatusCode,
136471		},
136472	}
136473	target := &ret
136474	if err := gensupport.DecodeResponse(target, res); err != nil {
136475		return nil, err
136476	}
136477	return ret, nil
136478	// {
136479	//   "description": "Deletes the specified reservation.",
136480	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}",
136481	//   "httpMethod": "DELETE",
136482	//   "id": "compute.reservations.delete",
136483	//   "parameterOrder": [
136484	//     "project",
136485	//     "zone",
136486	//     "reservation"
136487	//   ],
136488	//   "parameters": {
136489	//     "project": {
136490	//       "description": "Project ID for this request.",
136491	//       "location": "path",
136492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136493	//       "required": true,
136494	//       "type": "string"
136495	//     },
136496	//     "requestId": {
136497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
136498	//       "location": "query",
136499	//       "type": "string"
136500	//     },
136501	//     "reservation": {
136502	//       "description": "Name of the reservation to delete.",
136503	//       "location": "path",
136504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136505	//       "required": true,
136506	//       "type": "string"
136507	//     },
136508	//     "zone": {
136509	//       "description": "Name of the zone for this request.",
136510	//       "location": "path",
136511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136512	//       "required": true,
136513	//       "type": "string"
136514	//     }
136515	//   },
136516	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
136517	//   "response": {
136518	//     "$ref": "Operation"
136519	//   },
136520	//   "scopes": [
136521	//     "https://www.googleapis.com/auth/cloud-platform",
136522	//     "https://www.googleapis.com/auth/compute"
136523	//   ]
136524	// }
136525
136526}
136527
136528// method id "compute.reservations.get":
136529
136530type ReservationsGetCall struct {
136531	s            *Service
136532	project      string
136533	zone         string
136534	reservation  string
136535	urlParams_   gensupport.URLParams
136536	ifNoneMatch_ string
136537	ctx_         context.Context
136538	header_      http.Header
136539}
136540
136541// Get: Retrieves information about the specified reservation.
136542//
136543// - project: Project ID for this request.
136544// - reservation: Name of the reservation to retrieve.
136545// - zone: Name of the zone for this request.
136546func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
136547	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136548	c.project = project
136549	c.zone = zone
136550	c.reservation = reservation
136551	return c
136552}
136553
136554// Fields allows partial responses to be retrieved. See
136555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136556// for more information.
136557func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
136558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136559	return c
136560}
136561
136562// IfNoneMatch sets the optional parameter which makes the operation
136563// fail if the object's ETag matches the given value. This is useful for
136564// getting updates only after the object has changed since the last
136565// request. Use googleapi.IsNotModified to check whether the response
136566// error from Do is the result of In-None-Match.
136567func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
136568	c.ifNoneMatch_ = entityTag
136569	return c
136570}
136571
136572// Context sets the context to be used in this call's Do method. Any
136573// pending HTTP request will be aborted if the provided context is
136574// canceled.
136575func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
136576	c.ctx_ = ctx
136577	return c
136578}
136579
136580// Header returns an http.Header that can be modified by the caller to
136581// add HTTP headers to the request.
136582func (c *ReservationsGetCall) Header() http.Header {
136583	if c.header_ == nil {
136584		c.header_ = make(http.Header)
136585	}
136586	return c.header_
136587}
136588
136589func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
136590	reqHeaders := make(http.Header)
136591	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
136592	for k, v := range c.header_ {
136593		reqHeaders[k] = v
136594	}
136595	reqHeaders.Set("User-Agent", c.s.userAgent())
136596	if c.ifNoneMatch_ != "" {
136597		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136598	}
136599	var body io.Reader = nil
136600	c.urlParams_.Set("alt", alt)
136601	c.urlParams_.Set("prettyPrint", "false")
136602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
136603	urls += "?" + c.urlParams_.Encode()
136604	req, err := http.NewRequest("GET", urls, body)
136605	if err != nil {
136606		return nil, err
136607	}
136608	req.Header = reqHeaders
136609	googleapi.Expand(req.URL, map[string]string{
136610		"project":     c.project,
136611		"zone":        c.zone,
136612		"reservation": c.reservation,
136613	})
136614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136615}
136616
136617// Do executes the "compute.reservations.get" call.
136618// Exactly one of *Reservation or error will be non-nil. Any non-2xx
136619// status code is an error. Response headers are in either
136620// *Reservation.ServerResponse.Header or (if a response was returned at
136621// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136622// to check whether the returned error was because
136623// http.StatusNotModified was returned.
136624func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
136625	gensupport.SetOptions(c.urlParams_, opts...)
136626	res, err := c.doRequest("json")
136627	if res != nil && res.StatusCode == http.StatusNotModified {
136628		if res.Body != nil {
136629			res.Body.Close()
136630		}
136631		return nil, &googleapi.Error{
136632			Code:   res.StatusCode,
136633			Header: res.Header,
136634		}
136635	}
136636	if err != nil {
136637		return nil, err
136638	}
136639	defer googleapi.CloseBody(res)
136640	if err := googleapi.CheckResponse(res); err != nil {
136641		return nil, err
136642	}
136643	ret := &Reservation{
136644		ServerResponse: googleapi.ServerResponse{
136645			Header:         res.Header,
136646			HTTPStatusCode: res.StatusCode,
136647		},
136648	}
136649	target := &ret
136650	if err := gensupport.DecodeResponse(target, res); err != nil {
136651		return nil, err
136652	}
136653	return ret, nil
136654	// {
136655	//   "description": "Retrieves information about the specified reservation.",
136656	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}",
136657	//   "httpMethod": "GET",
136658	//   "id": "compute.reservations.get",
136659	//   "parameterOrder": [
136660	//     "project",
136661	//     "zone",
136662	//     "reservation"
136663	//   ],
136664	//   "parameters": {
136665	//     "project": {
136666	//       "description": "Project ID for this request.",
136667	//       "location": "path",
136668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136669	//       "required": true,
136670	//       "type": "string"
136671	//     },
136672	//     "reservation": {
136673	//       "description": "Name of the reservation to retrieve.",
136674	//       "location": "path",
136675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136676	//       "required": true,
136677	//       "type": "string"
136678	//     },
136679	//     "zone": {
136680	//       "description": "Name of the zone for this request.",
136681	//       "location": "path",
136682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136683	//       "required": true,
136684	//       "type": "string"
136685	//     }
136686	//   },
136687	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
136688	//   "response": {
136689	//     "$ref": "Reservation"
136690	//   },
136691	//   "scopes": [
136692	//     "https://www.googleapis.com/auth/cloud-platform",
136693	//     "https://www.googleapis.com/auth/compute",
136694	//     "https://www.googleapis.com/auth/compute.readonly"
136695	//   ]
136696	// }
136697
136698}
136699
136700// method id "compute.reservations.getIamPolicy":
136701
136702type ReservationsGetIamPolicyCall struct {
136703	s            *Service
136704	project      string
136705	zone         string
136706	resource     string
136707	urlParams_   gensupport.URLParams
136708	ifNoneMatch_ string
136709	ctx_         context.Context
136710	header_      http.Header
136711}
136712
136713// GetIamPolicy: Gets the access control policy for a resource. May be
136714// empty if no such policy or resource exists.
136715//
136716// - project: Project ID for this request.
136717// - resource: Name or id of the resource for this request.
136718// - zone: The name of the zone for this request.
136719func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
136720	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136721	c.project = project
136722	c.zone = zone
136723	c.resource = resource
136724	return c
136725}
136726
136727// OptionsRequestedPolicyVersion sets the optional parameter
136728// "optionsRequestedPolicyVersion": Requested IAM Policy version.
136729func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
136730	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
136731	return c
136732}
136733
136734// Fields allows partial responses to be retrieved. See
136735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136736// for more information.
136737func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
136738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136739	return c
136740}
136741
136742// IfNoneMatch sets the optional parameter which makes the operation
136743// fail if the object's ETag matches the given value. This is useful for
136744// getting updates only after the object has changed since the last
136745// request. Use googleapi.IsNotModified to check whether the response
136746// error from Do is the result of In-None-Match.
136747func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
136748	c.ifNoneMatch_ = entityTag
136749	return c
136750}
136751
136752// Context sets the context to be used in this call's Do method. Any
136753// pending HTTP request will be aborted if the provided context is
136754// canceled.
136755func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
136756	c.ctx_ = ctx
136757	return c
136758}
136759
136760// Header returns an http.Header that can be modified by the caller to
136761// add HTTP headers to the request.
136762func (c *ReservationsGetIamPolicyCall) Header() http.Header {
136763	if c.header_ == nil {
136764		c.header_ = make(http.Header)
136765	}
136766	return c.header_
136767}
136768
136769func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
136770	reqHeaders := make(http.Header)
136771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
136772	for k, v := range c.header_ {
136773		reqHeaders[k] = v
136774	}
136775	reqHeaders.Set("User-Agent", c.s.userAgent())
136776	if c.ifNoneMatch_ != "" {
136777		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136778	}
136779	var body io.Reader = nil
136780	c.urlParams_.Set("alt", alt)
136781	c.urlParams_.Set("prettyPrint", "false")
136782	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
136783	urls += "?" + c.urlParams_.Encode()
136784	req, err := http.NewRequest("GET", urls, body)
136785	if err != nil {
136786		return nil, err
136787	}
136788	req.Header = reqHeaders
136789	googleapi.Expand(req.URL, map[string]string{
136790		"project":  c.project,
136791		"zone":     c.zone,
136792		"resource": c.resource,
136793	})
136794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136795}
136796
136797// Do executes the "compute.reservations.getIamPolicy" call.
136798// Exactly one of *Policy or error will be non-nil. Any non-2xx status
136799// code is an error. Response headers are in either
136800// *Policy.ServerResponse.Header or (if a response was returned at all)
136801// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
136802// check whether the returned error was because http.StatusNotModified
136803// was returned.
136804func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
136805	gensupport.SetOptions(c.urlParams_, opts...)
136806	res, err := c.doRequest("json")
136807	if res != nil && res.StatusCode == http.StatusNotModified {
136808		if res.Body != nil {
136809			res.Body.Close()
136810		}
136811		return nil, &googleapi.Error{
136812			Code:   res.StatusCode,
136813			Header: res.Header,
136814		}
136815	}
136816	if err != nil {
136817		return nil, err
136818	}
136819	defer googleapi.CloseBody(res)
136820	if err := googleapi.CheckResponse(res); err != nil {
136821		return nil, err
136822	}
136823	ret := &Policy{
136824		ServerResponse: googleapi.ServerResponse{
136825			Header:         res.Header,
136826			HTTPStatusCode: res.StatusCode,
136827		},
136828	}
136829	target := &ret
136830	if err := gensupport.DecodeResponse(target, res); err != nil {
136831		return nil, err
136832	}
136833	return ret, nil
136834	// {
136835	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
136836	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
136837	//   "httpMethod": "GET",
136838	//   "id": "compute.reservations.getIamPolicy",
136839	//   "parameterOrder": [
136840	//     "project",
136841	//     "zone",
136842	//     "resource"
136843	//   ],
136844	//   "parameters": {
136845	//     "optionsRequestedPolicyVersion": {
136846	//       "description": "Requested IAM Policy version.",
136847	//       "format": "int32",
136848	//       "location": "query",
136849	//       "type": "integer"
136850	//     },
136851	//     "project": {
136852	//       "description": "Project ID for this request.",
136853	//       "location": "path",
136854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136855	//       "required": true,
136856	//       "type": "string"
136857	//     },
136858	//     "resource": {
136859	//       "description": "Name or id of the resource for this request.",
136860	//       "location": "path",
136861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136862	//       "required": true,
136863	//       "type": "string"
136864	//     },
136865	//     "zone": {
136866	//       "description": "The name of the zone for this request.",
136867	//       "location": "path",
136868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136869	//       "required": true,
136870	//       "type": "string"
136871	//     }
136872	//   },
136873	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
136874	//   "response": {
136875	//     "$ref": "Policy"
136876	//   },
136877	//   "scopes": [
136878	//     "https://www.googleapis.com/auth/cloud-platform",
136879	//     "https://www.googleapis.com/auth/compute",
136880	//     "https://www.googleapis.com/auth/compute.readonly"
136881	//   ]
136882	// }
136883
136884}
136885
136886// method id "compute.reservations.insert":
136887
136888type ReservationsInsertCall struct {
136889	s           *Service
136890	project     string
136891	zone        string
136892	reservation *Reservation
136893	urlParams_  gensupport.URLParams
136894	ctx_        context.Context
136895	header_     http.Header
136896}
136897
136898// Insert: Creates a new reservation. For more information, read
136899// Reserving zonal resources.
136900//
136901// - project: Project ID for this request.
136902// - zone: Name of the zone for this request.
136903func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
136904	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136905	c.project = project
136906	c.zone = zone
136907	c.reservation = reservation
136908	return c
136909}
136910
136911// RequestId sets the optional parameter "requestId": An optional
136912// request ID to identify requests. Specify a unique request ID so that
136913// if you must retry your request, the server will know to ignore the
136914// request if it has already been completed. For example, consider a
136915// situation where you make an initial request and the request times
136916// out. If you make the request again with the same request ID, the
136917// server can check if original operation with the same request ID was
136918// received, and if so, will ignore the second request. This prevents
136919// clients from accidentally creating duplicate commitments. The request
136920// ID must be a valid UUID with the exception that zero UUID is not
136921// supported ( 00000000-0000-0000-0000-000000000000).
136922func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
136923	c.urlParams_.Set("requestId", requestId)
136924	return c
136925}
136926
136927// Fields allows partial responses to be retrieved. See
136928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136929// for more information.
136930func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
136931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136932	return c
136933}
136934
136935// Context sets the context to be used in this call's Do method. Any
136936// pending HTTP request will be aborted if the provided context is
136937// canceled.
136938func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
136939	c.ctx_ = ctx
136940	return c
136941}
136942
136943// Header returns an http.Header that can be modified by the caller to
136944// add HTTP headers to the request.
136945func (c *ReservationsInsertCall) Header() http.Header {
136946	if c.header_ == nil {
136947		c.header_ = make(http.Header)
136948	}
136949	return c.header_
136950}
136951
136952func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
136953	reqHeaders := make(http.Header)
136954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
136955	for k, v := range c.header_ {
136956		reqHeaders[k] = v
136957	}
136958	reqHeaders.Set("User-Agent", c.s.userAgent())
136959	var body io.Reader = nil
136960	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
136961	if err != nil {
136962		return nil, err
136963	}
136964	reqHeaders.Set("Content-Type", "application/json")
136965	c.urlParams_.Set("alt", alt)
136966	c.urlParams_.Set("prettyPrint", "false")
136967	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
136968	urls += "?" + c.urlParams_.Encode()
136969	req, err := http.NewRequest("POST", urls, body)
136970	if err != nil {
136971		return nil, err
136972	}
136973	req.Header = reqHeaders
136974	googleapi.Expand(req.URL, map[string]string{
136975		"project": c.project,
136976		"zone":    c.zone,
136977	})
136978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136979}
136980
136981// Do executes the "compute.reservations.insert" call.
136982// Exactly one of *Operation or error will be non-nil. Any non-2xx
136983// status code is an error. Response headers are in either
136984// *Operation.ServerResponse.Header or (if a response was returned at
136985// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136986// to check whether the returned error was because
136987// http.StatusNotModified was returned.
136988func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136989	gensupport.SetOptions(c.urlParams_, opts...)
136990	res, err := c.doRequest("json")
136991	if res != nil && res.StatusCode == http.StatusNotModified {
136992		if res.Body != nil {
136993			res.Body.Close()
136994		}
136995		return nil, &googleapi.Error{
136996			Code:   res.StatusCode,
136997			Header: res.Header,
136998		}
136999	}
137000	if err != nil {
137001		return nil, err
137002	}
137003	defer googleapi.CloseBody(res)
137004	if err := googleapi.CheckResponse(res); err != nil {
137005		return nil, err
137006	}
137007	ret := &Operation{
137008		ServerResponse: googleapi.ServerResponse{
137009			Header:         res.Header,
137010			HTTPStatusCode: res.StatusCode,
137011		},
137012	}
137013	target := &ret
137014	if err := gensupport.DecodeResponse(target, res); err != nil {
137015		return nil, err
137016	}
137017	return ret, nil
137018	// {
137019	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
137020	//   "flatPath": "projects/{project}/zones/{zone}/reservations",
137021	//   "httpMethod": "POST",
137022	//   "id": "compute.reservations.insert",
137023	//   "parameterOrder": [
137024	//     "project",
137025	//     "zone"
137026	//   ],
137027	//   "parameters": {
137028	//     "project": {
137029	//       "description": "Project ID for this request.",
137030	//       "location": "path",
137031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137032	//       "required": true,
137033	//       "type": "string"
137034	//     },
137035	//     "requestId": {
137036	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
137037	//       "location": "query",
137038	//       "type": "string"
137039	//     },
137040	//     "zone": {
137041	//       "description": "Name of the zone for this request.",
137042	//       "location": "path",
137043	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137044	//       "required": true,
137045	//       "type": "string"
137046	//     }
137047	//   },
137048	//   "path": "projects/{project}/zones/{zone}/reservations",
137049	//   "request": {
137050	//     "$ref": "Reservation"
137051	//   },
137052	//   "response": {
137053	//     "$ref": "Operation"
137054	//   },
137055	//   "scopes": [
137056	//     "https://www.googleapis.com/auth/cloud-platform",
137057	//     "https://www.googleapis.com/auth/compute"
137058	//   ]
137059	// }
137060
137061}
137062
137063// method id "compute.reservations.list":
137064
137065type ReservationsListCall struct {
137066	s            *Service
137067	project      string
137068	zone         string
137069	urlParams_   gensupport.URLParams
137070	ifNoneMatch_ string
137071	ctx_         context.Context
137072	header_      http.Header
137073}
137074
137075// List: A list of all the reservations that have been configured for
137076// the specified project in specified zone.
137077//
137078// - project: Project ID for this request.
137079// - zone: Name of the zone for this request.
137080func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
137081	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137082	c.project = project
137083	c.zone = zone
137084	return c
137085}
137086
137087// Filter sets the optional parameter "filter": A filter expression that
137088// filters resources listed in the response. The expression must specify
137089// the field name, a comparison operator, and the value that you want to
137090// use for filtering. The value must be a string, a number, or a
137091// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137092// `<`. For example, if you are filtering Compute Engine instances, you
137093// can exclude instances named `example-instance` by specifying `name !=
137094// example-instance`. You can also filter nested fields. For example,
137095// you could specify `scheduling.automaticRestart = false` to include
137096// instances only if they are not scheduled for automatic restarts. You
137097// can use filtering on nested fields to filter based on resource
137098// labels. To filter on multiple expressions, provide each separate
137099// expression within parentheses. For example: ```
137100// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
137101// ``` By default, each expression is an `AND` expression. However, you
137102// can include `AND` and `OR` expressions explicitly. For example: ```
137103// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
137104// AND (scheduling.automaticRestart = true) ```
137105func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
137106	c.urlParams_.Set("filter", filter)
137107	return c
137108}
137109
137110// MaxResults sets the optional parameter "maxResults": The maximum
137111// number of results per page that should be returned. If the number of
137112// available results is larger than `maxResults`, Compute Engine returns
137113// a `nextPageToken` that can be used to get the next page of results in
137114// subsequent list requests. Acceptable values are `0` to `500`,
137115// inclusive. (Default: `500`)
137116func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
137117	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137118	return c
137119}
137120
137121// OrderBy sets the optional parameter "orderBy": Sorts list results by
137122// a certain order. By default, results are returned in alphanumerical
137123// order based on the resource name. You can also sort results in
137124// descending order based on the creation timestamp using
137125// `orderBy="creationTimestamp desc". This sorts results based on the
137126// `creationTimestamp` field in reverse chronological order (newest
137127// result first). Use this to sort resources like operations so that the
137128// newest operation is returned first. Currently, only sorting by `name`
137129// or `creationTimestamp desc` is supported.
137130func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
137131	c.urlParams_.Set("orderBy", orderBy)
137132	return c
137133}
137134
137135// PageToken sets the optional parameter "pageToken": Specifies a page
137136// token to use. Set `pageToken` to the `nextPageToken` returned by a
137137// previous list request to get the next page of results.
137138func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
137139	c.urlParams_.Set("pageToken", pageToken)
137140	return c
137141}
137142
137143// ReturnPartialSuccess sets the optional parameter
137144// "returnPartialSuccess": Opt-in for partial success behavior which
137145// provides partial results in case of failure. The default value is
137146// false.
137147func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
137148	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137149	return c
137150}
137151
137152// Fields allows partial responses to be retrieved. See
137153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137154// for more information.
137155func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
137156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137157	return c
137158}
137159
137160// IfNoneMatch sets the optional parameter which makes the operation
137161// fail if the object's ETag matches the given value. This is useful for
137162// getting updates only after the object has changed since the last
137163// request. Use googleapi.IsNotModified to check whether the response
137164// error from Do is the result of In-None-Match.
137165func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
137166	c.ifNoneMatch_ = entityTag
137167	return c
137168}
137169
137170// Context sets the context to be used in this call's Do method. Any
137171// pending HTTP request will be aborted if the provided context is
137172// canceled.
137173func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
137174	c.ctx_ = ctx
137175	return c
137176}
137177
137178// Header returns an http.Header that can be modified by the caller to
137179// add HTTP headers to the request.
137180func (c *ReservationsListCall) Header() http.Header {
137181	if c.header_ == nil {
137182		c.header_ = make(http.Header)
137183	}
137184	return c.header_
137185}
137186
137187func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
137188	reqHeaders := make(http.Header)
137189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
137190	for k, v := range c.header_ {
137191		reqHeaders[k] = v
137192	}
137193	reqHeaders.Set("User-Agent", c.s.userAgent())
137194	if c.ifNoneMatch_ != "" {
137195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137196	}
137197	var body io.Reader = nil
137198	c.urlParams_.Set("alt", alt)
137199	c.urlParams_.Set("prettyPrint", "false")
137200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
137201	urls += "?" + c.urlParams_.Encode()
137202	req, err := http.NewRequest("GET", urls, body)
137203	if err != nil {
137204		return nil, err
137205	}
137206	req.Header = reqHeaders
137207	googleapi.Expand(req.URL, map[string]string{
137208		"project": c.project,
137209		"zone":    c.zone,
137210	})
137211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137212}
137213
137214// Do executes the "compute.reservations.list" call.
137215// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
137216// status code is an error. Response headers are in either
137217// *ReservationList.ServerResponse.Header or (if a response was returned
137218// at all) in error.(*googleapi.Error).Header. Use
137219// googleapi.IsNotModified to check whether the returned error was
137220// because http.StatusNotModified was returned.
137221func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
137222	gensupport.SetOptions(c.urlParams_, opts...)
137223	res, err := c.doRequest("json")
137224	if res != nil && res.StatusCode == http.StatusNotModified {
137225		if res.Body != nil {
137226			res.Body.Close()
137227		}
137228		return nil, &googleapi.Error{
137229			Code:   res.StatusCode,
137230			Header: res.Header,
137231		}
137232	}
137233	if err != nil {
137234		return nil, err
137235	}
137236	defer googleapi.CloseBody(res)
137237	if err := googleapi.CheckResponse(res); err != nil {
137238		return nil, err
137239	}
137240	ret := &ReservationList{
137241		ServerResponse: googleapi.ServerResponse{
137242			Header:         res.Header,
137243			HTTPStatusCode: res.StatusCode,
137244		},
137245	}
137246	target := &ret
137247	if err := gensupport.DecodeResponse(target, res); err != nil {
137248		return nil, err
137249	}
137250	return ret, nil
137251	// {
137252	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
137253	//   "flatPath": "projects/{project}/zones/{zone}/reservations",
137254	//   "httpMethod": "GET",
137255	//   "id": "compute.reservations.list",
137256	//   "parameterOrder": [
137257	//     "project",
137258	//     "zone"
137259	//   ],
137260	//   "parameters": {
137261	//     "filter": {
137262	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137263	//       "location": "query",
137264	//       "type": "string"
137265	//     },
137266	//     "maxResults": {
137267	//       "default": "500",
137268	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137269	//       "format": "uint32",
137270	//       "location": "query",
137271	//       "minimum": "0",
137272	//       "type": "integer"
137273	//     },
137274	//     "orderBy": {
137275	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
137276	//       "location": "query",
137277	//       "type": "string"
137278	//     },
137279	//     "pageToken": {
137280	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137281	//       "location": "query",
137282	//       "type": "string"
137283	//     },
137284	//     "project": {
137285	//       "description": "Project ID for this request.",
137286	//       "location": "path",
137287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137288	//       "required": true,
137289	//       "type": "string"
137290	//     },
137291	//     "returnPartialSuccess": {
137292	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137293	//       "location": "query",
137294	//       "type": "boolean"
137295	//     },
137296	//     "zone": {
137297	//       "description": "Name of the zone for this request.",
137298	//       "location": "path",
137299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137300	//       "required": true,
137301	//       "type": "string"
137302	//     }
137303	//   },
137304	//   "path": "projects/{project}/zones/{zone}/reservations",
137305	//   "response": {
137306	//     "$ref": "ReservationList"
137307	//   },
137308	//   "scopes": [
137309	//     "https://www.googleapis.com/auth/cloud-platform",
137310	//     "https://www.googleapis.com/auth/compute",
137311	//     "https://www.googleapis.com/auth/compute.readonly"
137312	//   ]
137313	// }
137314
137315}
137316
137317// Pages invokes f for each page of results.
137318// A non-nil error returned from f will halt the iteration.
137319// The provided context supersedes any context provided to the Context method.
137320func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
137321	c.ctx_ = ctx
137322	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137323	for {
137324		x, err := c.Do()
137325		if err != nil {
137326			return err
137327		}
137328		if err := f(x); err != nil {
137329			return err
137330		}
137331		if x.NextPageToken == "" {
137332			return nil
137333		}
137334		c.PageToken(x.NextPageToken)
137335	}
137336}
137337
137338// method id "compute.reservations.resize":
137339
137340type ReservationsResizeCall struct {
137341	s                         *Service
137342	project                   string
137343	zone                      string
137344	reservation               string
137345	reservationsresizerequest *ReservationsResizeRequest
137346	urlParams_                gensupport.URLParams
137347	ctx_                      context.Context
137348	header_                   http.Header
137349}
137350
137351// Resize: Resizes the reservation (applicable to standalone
137352// reservations only). For more information, read Modifying
137353// reservations.
137354//
137355// - project: Project ID for this request.
137356// - reservation: Name of the reservation to update.
137357// - zone: Name of the zone for this request.
137358func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
137359	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137360	c.project = project
137361	c.zone = zone
137362	c.reservation = reservation
137363	c.reservationsresizerequest = reservationsresizerequest
137364	return c
137365}
137366
137367// RequestId sets the optional parameter "requestId": An optional
137368// request ID to identify requests. Specify a unique request ID so that
137369// if you must retry your request, the server will know to ignore the
137370// request if it has already been completed. For example, consider a
137371// situation where you make an initial request and the request times
137372// out. If you make the request again with the same request ID, the
137373// server can check if original operation with the same request ID was
137374// received, and if so, will ignore the second request. This prevents
137375// clients from accidentally creating duplicate commitments. The request
137376// ID must be a valid UUID with the exception that zero UUID is not
137377// supported ( 00000000-0000-0000-0000-000000000000).
137378func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
137379	c.urlParams_.Set("requestId", requestId)
137380	return c
137381}
137382
137383// Fields allows partial responses to be retrieved. See
137384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137385// for more information.
137386func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
137387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137388	return c
137389}
137390
137391// Context sets the context to be used in this call's Do method. Any
137392// pending HTTP request will be aborted if the provided context is
137393// canceled.
137394func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
137395	c.ctx_ = ctx
137396	return c
137397}
137398
137399// Header returns an http.Header that can be modified by the caller to
137400// add HTTP headers to the request.
137401func (c *ReservationsResizeCall) Header() http.Header {
137402	if c.header_ == nil {
137403		c.header_ = make(http.Header)
137404	}
137405	return c.header_
137406}
137407
137408func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
137409	reqHeaders := make(http.Header)
137410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
137411	for k, v := range c.header_ {
137412		reqHeaders[k] = v
137413	}
137414	reqHeaders.Set("User-Agent", c.s.userAgent())
137415	var body io.Reader = nil
137416	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
137417	if err != nil {
137418		return nil, err
137419	}
137420	reqHeaders.Set("Content-Type", "application/json")
137421	c.urlParams_.Set("alt", alt)
137422	c.urlParams_.Set("prettyPrint", "false")
137423	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize")
137424	urls += "?" + c.urlParams_.Encode()
137425	req, err := http.NewRequest("POST", urls, body)
137426	if err != nil {
137427		return nil, err
137428	}
137429	req.Header = reqHeaders
137430	googleapi.Expand(req.URL, map[string]string{
137431		"project":     c.project,
137432		"zone":        c.zone,
137433		"reservation": c.reservation,
137434	})
137435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137436}
137437
137438// Do executes the "compute.reservations.resize" call.
137439// Exactly one of *Operation or error will be non-nil. Any non-2xx
137440// status code is an error. Response headers are in either
137441// *Operation.ServerResponse.Header or (if a response was returned at
137442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137443// to check whether the returned error was because
137444// http.StatusNotModified was returned.
137445func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137446	gensupport.SetOptions(c.urlParams_, opts...)
137447	res, err := c.doRequest("json")
137448	if res != nil && res.StatusCode == http.StatusNotModified {
137449		if res.Body != nil {
137450			res.Body.Close()
137451		}
137452		return nil, &googleapi.Error{
137453			Code:   res.StatusCode,
137454			Header: res.Header,
137455		}
137456	}
137457	if err != nil {
137458		return nil, err
137459	}
137460	defer googleapi.CloseBody(res)
137461	if err := googleapi.CheckResponse(res); err != nil {
137462		return nil, err
137463	}
137464	ret := &Operation{
137465		ServerResponse: googleapi.ServerResponse{
137466			Header:         res.Header,
137467			HTTPStatusCode: res.StatusCode,
137468		},
137469	}
137470	target := &ret
137471	if err := gensupport.DecodeResponse(target, res); err != nil {
137472		return nil, err
137473	}
137474	return ret, nil
137475	// {
137476	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
137477	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
137478	//   "httpMethod": "POST",
137479	//   "id": "compute.reservations.resize",
137480	//   "parameterOrder": [
137481	//     "project",
137482	//     "zone",
137483	//     "reservation"
137484	//   ],
137485	//   "parameters": {
137486	//     "project": {
137487	//       "description": "Project ID for this request.",
137488	//       "location": "path",
137489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137490	//       "required": true,
137491	//       "type": "string"
137492	//     },
137493	//     "requestId": {
137494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
137495	//       "location": "query",
137496	//       "type": "string"
137497	//     },
137498	//     "reservation": {
137499	//       "description": "Name of the reservation to update.",
137500	//       "location": "path",
137501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137502	//       "required": true,
137503	//       "type": "string"
137504	//     },
137505	//     "zone": {
137506	//       "description": "Name of the zone for this request.",
137507	//       "location": "path",
137508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137509	//       "required": true,
137510	//       "type": "string"
137511	//     }
137512	//   },
137513	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
137514	//   "request": {
137515	//     "$ref": "ReservationsResizeRequest"
137516	//   },
137517	//   "response": {
137518	//     "$ref": "Operation"
137519	//   },
137520	//   "scopes": [
137521	//     "https://www.googleapis.com/auth/cloud-platform",
137522	//     "https://www.googleapis.com/auth/compute"
137523	//   ]
137524	// }
137525
137526}
137527
137528// method id "compute.reservations.setIamPolicy":
137529
137530type ReservationsSetIamPolicyCall struct {
137531	s                    *Service
137532	project              string
137533	zone                 string
137534	resource             string
137535	zonesetpolicyrequest *ZoneSetPolicyRequest
137536	urlParams_           gensupport.URLParams
137537	ctx_                 context.Context
137538	header_              http.Header
137539}
137540
137541// SetIamPolicy: Sets the access control policy on the specified
137542// resource. Replaces any existing policy.
137543//
137544// - project: Project ID for this request.
137545// - resource: Name or id of the resource for this request.
137546// - zone: The name of the zone for this request.
137547func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
137548	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137549	c.project = project
137550	c.zone = zone
137551	c.resource = resource
137552	c.zonesetpolicyrequest = zonesetpolicyrequest
137553	return c
137554}
137555
137556// Fields allows partial responses to be retrieved. See
137557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137558// for more information.
137559func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
137560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137561	return c
137562}
137563
137564// Context sets the context to be used in this call's Do method. Any
137565// pending HTTP request will be aborted if the provided context is
137566// canceled.
137567func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
137568	c.ctx_ = ctx
137569	return c
137570}
137571
137572// Header returns an http.Header that can be modified by the caller to
137573// add HTTP headers to the request.
137574func (c *ReservationsSetIamPolicyCall) Header() http.Header {
137575	if c.header_ == nil {
137576		c.header_ = make(http.Header)
137577	}
137578	return c.header_
137579}
137580
137581func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
137582	reqHeaders := make(http.Header)
137583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
137584	for k, v := range c.header_ {
137585		reqHeaders[k] = v
137586	}
137587	reqHeaders.Set("User-Agent", c.s.userAgent())
137588	var body io.Reader = nil
137589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
137590	if err != nil {
137591		return nil, err
137592	}
137593	reqHeaders.Set("Content-Type", "application/json")
137594	c.urlParams_.Set("alt", alt)
137595	c.urlParams_.Set("prettyPrint", "false")
137596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
137597	urls += "?" + c.urlParams_.Encode()
137598	req, err := http.NewRequest("POST", urls, body)
137599	if err != nil {
137600		return nil, err
137601	}
137602	req.Header = reqHeaders
137603	googleapi.Expand(req.URL, map[string]string{
137604		"project":  c.project,
137605		"zone":     c.zone,
137606		"resource": c.resource,
137607	})
137608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137609}
137610
137611// Do executes the "compute.reservations.setIamPolicy" call.
137612// Exactly one of *Policy or error will be non-nil. Any non-2xx status
137613// code is an error. Response headers are in either
137614// *Policy.ServerResponse.Header or (if a response was returned at all)
137615// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
137616// check whether the returned error was because http.StatusNotModified
137617// was returned.
137618func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
137619	gensupport.SetOptions(c.urlParams_, opts...)
137620	res, err := c.doRequest("json")
137621	if res != nil && res.StatusCode == http.StatusNotModified {
137622		if res.Body != nil {
137623			res.Body.Close()
137624		}
137625		return nil, &googleapi.Error{
137626			Code:   res.StatusCode,
137627			Header: res.Header,
137628		}
137629	}
137630	if err != nil {
137631		return nil, err
137632	}
137633	defer googleapi.CloseBody(res)
137634	if err := googleapi.CheckResponse(res); err != nil {
137635		return nil, err
137636	}
137637	ret := &Policy{
137638		ServerResponse: googleapi.ServerResponse{
137639			Header:         res.Header,
137640			HTTPStatusCode: res.StatusCode,
137641		},
137642	}
137643	target := &ret
137644	if err := gensupport.DecodeResponse(target, res); err != nil {
137645		return nil, err
137646	}
137647	return ret, nil
137648	// {
137649	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
137650	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
137651	//   "httpMethod": "POST",
137652	//   "id": "compute.reservations.setIamPolicy",
137653	//   "parameterOrder": [
137654	//     "project",
137655	//     "zone",
137656	//     "resource"
137657	//   ],
137658	//   "parameters": {
137659	//     "project": {
137660	//       "description": "Project ID for this request.",
137661	//       "location": "path",
137662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137663	//       "required": true,
137664	//       "type": "string"
137665	//     },
137666	//     "resource": {
137667	//       "description": "Name or id of the resource for this request.",
137668	//       "location": "path",
137669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137670	//       "required": true,
137671	//       "type": "string"
137672	//     },
137673	//     "zone": {
137674	//       "description": "The name of the zone for this request.",
137675	//       "location": "path",
137676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137677	//       "required": true,
137678	//       "type": "string"
137679	//     }
137680	//   },
137681	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
137682	//   "request": {
137683	//     "$ref": "ZoneSetPolicyRequest"
137684	//   },
137685	//   "response": {
137686	//     "$ref": "Policy"
137687	//   },
137688	//   "scopes": [
137689	//     "https://www.googleapis.com/auth/cloud-platform",
137690	//     "https://www.googleapis.com/auth/compute"
137691	//   ]
137692	// }
137693
137694}
137695
137696// method id "compute.reservations.testIamPermissions":
137697
137698type ReservationsTestIamPermissionsCall struct {
137699	s                      *Service
137700	project                string
137701	zone                   string
137702	resource               string
137703	testpermissionsrequest *TestPermissionsRequest
137704	urlParams_             gensupport.URLParams
137705	ctx_                   context.Context
137706	header_                http.Header
137707}
137708
137709// TestIamPermissions: Returns permissions that a caller has on the
137710// specified resource.
137711//
137712// - project: Project ID for this request.
137713// - resource: Name or id of the resource for this request.
137714// - zone: The name of the zone for this request.
137715func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
137716	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137717	c.project = project
137718	c.zone = zone
137719	c.resource = resource
137720	c.testpermissionsrequest = testpermissionsrequest
137721	return c
137722}
137723
137724// Fields allows partial responses to be retrieved. See
137725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137726// for more information.
137727func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
137728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137729	return c
137730}
137731
137732// Context sets the context to be used in this call's Do method. Any
137733// pending HTTP request will be aborted if the provided context is
137734// canceled.
137735func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
137736	c.ctx_ = ctx
137737	return c
137738}
137739
137740// Header returns an http.Header that can be modified by the caller to
137741// add HTTP headers to the request.
137742func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
137743	if c.header_ == nil {
137744		c.header_ = make(http.Header)
137745	}
137746	return c.header_
137747}
137748
137749func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137750	reqHeaders := make(http.Header)
137751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
137752	for k, v := range c.header_ {
137753		reqHeaders[k] = v
137754	}
137755	reqHeaders.Set("User-Agent", c.s.userAgent())
137756	var body io.Reader = nil
137757	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137758	if err != nil {
137759		return nil, err
137760	}
137761	reqHeaders.Set("Content-Type", "application/json")
137762	c.urlParams_.Set("alt", alt)
137763	c.urlParams_.Set("prettyPrint", "false")
137764	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
137765	urls += "?" + c.urlParams_.Encode()
137766	req, err := http.NewRequest("POST", urls, body)
137767	if err != nil {
137768		return nil, err
137769	}
137770	req.Header = reqHeaders
137771	googleapi.Expand(req.URL, map[string]string{
137772		"project":  c.project,
137773		"zone":     c.zone,
137774		"resource": c.resource,
137775	})
137776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137777}
137778
137779// Do executes the "compute.reservations.testIamPermissions" call.
137780// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137781// non-2xx status code is an error. Response headers are in either
137782// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137783// returned at all) in error.(*googleapi.Error).Header. Use
137784// googleapi.IsNotModified to check whether the returned error was
137785// because http.StatusNotModified was returned.
137786func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137787	gensupport.SetOptions(c.urlParams_, opts...)
137788	res, err := c.doRequest("json")
137789	if res != nil && res.StatusCode == http.StatusNotModified {
137790		if res.Body != nil {
137791			res.Body.Close()
137792		}
137793		return nil, &googleapi.Error{
137794			Code:   res.StatusCode,
137795			Header: res.Header,
137796		}
137797	}
137798	if err != nil {
137799		return nil, err
137800	}
137801	defer googleapi.CloseBody(res)
137802	if err := googleapi.CheckResponse(res); err != nil {
137803		return nil, err
137804	}
137805	ret := &TestPermissionsResponse{
137806		ServerResponse: googleapi.ServerResponse{
137807			Header:         res.Header,
137808			HTTPStatusCode: res.StatusCode,
137809		},
137810	}
137811	target := &ret
137812	if err := gensupport.DecodeResponse(target, res); err != nil {
137813		return nil, err
137814	}
137815	return ret, nil
137816	// {
137817	//   "description": "Returns permissions that a caller has on the specified resource.",
137818	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
137819	//   "httpMethod": "POST",
137820	//   "id": "compute.reservations.testIamPermissions",
137821	//   "parameterOrder": [
137822	//     "project",
137823	//     "zone",
137824	//     "resource"
137825	//   ],
137826	//   "parameters": {
137827	//     "project": {
137828	//       "description": "Project ID for this request.",
137829	//       "location": "path",
137830	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137831	//       "required": true,
137832	//       "type": "string"
137833	//     },
137834	//     "resource": {
137835	//       "description": "Name or id of the resource for this request.",
137836	//       "location": "path",
137837	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137838	//       "required": true,
137839	//       "type": "string"
137840	//     },
137841	//     "zone": {
137842	//       "description": "The name of the zone for this request.",
137843	//       "location": "path",
137844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137845	//       "required": true,
137846	//       "type": "string"
137847	//     }
137848	//   },
137849	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
137850	//   "request": {
137851	//     "$ref": "TestPermissionsRequest"
137852	//   },
137853	//   "response": {
137854	//     "$ref": "TestPermissionsResponse"
137855	//   },
137856	//   "scopes": [
137857	//     "https://www.googleapis.com/auth/cloud-platform",
137858	//     "https://www.googleapis.com/auth/compute",
137859	//     "https://www.googleapis.com/auth/compute.readonly"
137860	//   ]
137861	// }
137862
137863}
137864
137865// method id "compute.resourcePolicies.aggregatedList":
137866
137867type ResourcePoliciesAggregatedListCall struct {
137868	s            *Service
137869	project      string
137870	urlParams_   gensupport.URLParams
137871	ifNoneMatch_ string
137872	ctx_         context.Context
137873	header_      http.Header
137874}
137875
137876// AggregatedList: Retrieves an aggregated list of resource policies.
137877//
137878// - project: Project ID for this request.
137879func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
137880	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137881	c.project = project
137882	return c
137883}
137884
137885// Filter sets the optional parameter "filter": A filter expression that
137886// filters resources listed in the response. The expression must specify
137887// the field name, a comparison operator, and the value that you want to
137888// use for filtering. The value must be a string, a number, or a
137889// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137890// `<`. For example, if you are filtering Compute Engine instances, you
137891// can exclude instances named `example-instance` by specifying `name !=
137892// example-instance`. You can also filter nested fields. For example,
137893// you could specify `scheduling.automaticRestart = false` to include
137894// instances only if they are not scheduled for automatic restarts. You
137895// can use filtering on nested fields to filter based on resource
137896// labels. To filter on multiple expressions, provide each separate
137897// expression within parentheses. For example: ```
137898// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
137899// ``` By default, each expression is an `AND` expression. However, you
137900// can include `AND` and `OR` expressions explicitly. For example: ```
137901// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
137902// AND (scheduling.automaticRestart = true) ```
137903func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
137904	c.urlParams_.Set("filter", filter)
137905	return c
137906}
137907
137908// IncludeAllScopes sets the optional parameter "includeAllScopes":
137909// Indicates whether every visible scope for each scope type (zone,
137910// region, global) should be included in the response. For new resource
137911// types added after this field, the flag has no effect as new resource
137912// types will always include every visible scope for each scope type in
137913// response. For resource types which predate this field, if this flag
137914// is omitted or false, only scopes of the scope types where the
137915// resource type is expected to be found will be included.
137916func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
137917	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
137918	return c
137919}
137920
137921// MaxResults sets the optional parameter "maxResults": The maximum
137922// number of results per page that should be returned. If the number of
137923// available results is larger than `maxResults`, Compute Engine returns
137924// a `nextPageToken` that can be used to get the next page of results in
137925// subsequent list requests. Acceptable values are `0` to `500`,
137926// inclusive. (Default: `500`)
137927func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
137928	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137929	return c
137930}
137931
137932// OrderBy sets the optional parameter "orderBy": Sorts list results by
137933// a certain order. By default, results are returned in alphanumerical
137934// order based on the resource name. You can also sort results in
137935// descending order based on the creation timestamp using
137936// `orderBy="creationTimestamp desc". This sorts results based on the
137937// `creationTimestamp` field in reverse chronological order (newest
137938// result first). Use this to sort resources like operations so that the
137939// newest operation is returned first. Currently, only sorting by `name`
137940// or `creationTimestamp desc` is supported.
137941func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
137942	c.urlParams_.Set("orderBy", orderBy)
137943	return c
137944}
137945
137946// PageToken sets the optional parameter "pageToken": Specifies a page
137947// token to use. Set `pageToken` to the `nextPageToken` returned by a
137948// previous list request to get the next page of results.
137949func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
137950	c.urlParams_.Set("pageToken", pageToken)
137951	return c
137952}
137953
137954// ReturnPartialSuccess sets the optional parameter
137955// "returnPartialSuccess": Opt-in for partial success behavior which
137956// provides partial results in case of failure. The default value is
137957// false.
137958func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
137959	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137960	return c
137961}
137962
137963// Fields allows partial responses to be retrieved. See
137964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137965// for more information.
137966func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
137967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137968	return c
137969}
137970
137971// IfNoneMatch sets the optional parameter which makes the operation
137972// fail if the object's ETag matches the given value. This is useful for
137973// getting updates only after the object has changed since the last
137974// request. Use googleapi.IsNotModified to check whether the response
137975// error from Do is the result of In-None-Match.
137976func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
137977	c.ifNoneMatch_ = entityTag
137978	return c
137979}
137980
137981// Context sets the context to be used in this call's Do method. Any
137982// pending HTTP request will be aborted if the provided context is
137983// canceled.
137984func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
137985	c.ctx_ = ctx
137986	return c
137987}
137988
137989// Header returns an http.Header that can be modified by the caller to
137990// add HTTP headers to the request.
137991func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
137992	if c.header_ == nil {
137993		c.header_ = make(http.Header)
137994	}
137995	return c.header_
137996}
137997
137998func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
137999	reqHeaders := make(http.Header)
138000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138001	for k, v := range c.header_ {
138002		reqHeaders[k] = v
138003	}
138004	reqHeaders.Set("User-Agent", c.s.userAgent())
138005	if c.ifNoneMatch_ != "" {
138006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138007	}
138008	var body io.Reader = nil
138009	c.urlParams_.Set("alt", alt)
138010	c.urlParams_.Set("prettyPrint", "false")
138011	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies")
138012	urls += "?" + c.urlParams_.Encode()
138013	req, err := http.NewRequest("GET", urls, body)
138014	if err != nil {
138015		return nil, err
138016	}
138017	req.Header = reqHeaders
138018	googleapi.Expand(req.URL, map[string]string{
138019		"project": c.project,
138020	})
138021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138022}
138023
138024// Do executes the "compute.resourcePolicies.aggregatedList" call.
138025// Exactly one of *ResourcePolicyAggregatedList or error will be
138026// non-nil. Any non-2xx status code is an error. Response headers are in
138027// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
138028// response was returned at all) in error.(*googleapi.Error).Header. Use
138029// googleapi.IsNotModified to check whether the returned error was
138030// because http.StatusNotModified was returned.
138031func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
138032	gensupport.SetOptions(c.urlParams_, opts...)
138033	res, err := c.doRequest("json")
138034	if res != nil && res.StatusCode == http.StatusNotModified {
138035		if res.Body != nil {
138036			res.Body.Close()
138037		}
138038		return nil, &googleapi.Error{
138039			Code:   res.StatusCode,
138040			Header: res.Header,
138041		}
138042	}
138043	if err != nil {
138044		return nil, err
138045	}
138046	defer googleapi.CloseBody(res)
138047	if err := googleapi.CheckResponse(res); err != nil {
138048		return nil, err
138049	}
138050	ret := &ResourcePolicyAggregatedList{
138051		ServerResponse: googleapi.ServerResponse{
138052			Header:         res.Header,
138053			HTTPStatusCode: res.StatusCode,
138054		},
138055	}
138056	target := &ret
138057	if err := gensupport.DecodeResponse(target, res); err != nil {
138058		return nil, err
138059	}
138060	return ret, nil
138061	// {
138062	//   "description": "Retrieves an aggregated list of resource policies.",
138063	//   "flatPath": "projects/{project}/aggregated/resourcePolicies",
138064	//   "httpMethod": "GET",
138065	//   "id": "compute.resourcePolicies.aggregatedList",
138066	//   "parameterOrder": [
138067	//     "project"
138068	//   ],
138069	//   "parameters": {
138070	//     "filter": {
138071	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138072	//       "location": "query",
138073	//       "type": "string"
138074	//     },
138075	//     "includeAllScopes": {
138076	//       "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.",
138077	//       "location": "query",
138078	//       "type": "boolean"
138079	//     },
138080	//     "maxResults": {
138081	//       "default": "500",
138082	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138083	//       "format": "uint32",
138084	//       "location": "query",
138085	//       "minimum": "0",
138086	//       "type": "integer"
138087	//     },
138088	//     "orderBy": {
138089	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
138090	//       "location": "query",
138091	//       "type": "string"
138092	//     },
138093	//     "pageToken": {
138094	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138095	//       "location": "query",
138096	//       "type": "string"
138097	//     },
138098	//     "project": {
138099	//       "description": "Project ID for this request.",
138100	//       "location": "path",
138101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138102	//       "required": true,
138103	//       "type": "string"
138104	//     },
138105	//     "returnPartialSuccess": {
138106	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
138107	//       "location": "query",
138108	//       "type": "boolean"
138109	//     }
138110	//   },
138111	//   "path": "projects/{project}/aggregated/resourcePolicies",
138112	//   "response": {
138113	//     "$ref": "ResourcePolicyAggregatedList"
138114	//   },
138115	//   "scopes": [
138116	//     "https://www.googleapis.com/auth/cloud-platform",
138117	//     "https://www.googleapis.com/auth/compute",
138118	//     "https://www.googleapis.com/auth/compute.readonly"
138119	//   ]
138120	// }
138121
138122}
138123
138124// Pages invokes f for each page of results.
138125// A non-nil error returned from f will halt the iteration.
138126// The provided context supersedes any context provided to the Context method.
138127func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
138128	c.ctx_ = ctx
138129	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138130	for {
138131		x, err := c.Do()
138132		if err != nil {
138133			return err
138134		}
138135		if err := f(x); err != nil {
138136			return err
138137		}
138138		if x.NextPageToken == "" {
138139			return nil
138140		}
138141		c.PageToken(x.NextPageToken)
138142	}
138143}
138144
138145// method id "compute.resourcePolicies.delete":
138146
138147type ResourcePoliciesDeleteCall struct {
138148	s              *Service
138149	project        string
138150	region         string
138151	resourcePolicy string
138152	urlParams_     gensupport.URLParams
138153	ctx_           context.Context
138154	header_        http.Header
138155}
138156
138157// Delete: Deletes the specified resource policy.
138158//
138159// - project: Project ID for this request.
138160// - region: Name of the region for this request.
138161// - resourcePolicy: Name of the resource policy to delete.
138162func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
138163	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138164	c.project = project
138165	c.region = region
138166	c.resourcePolicy = resourcePolicy
138167	return c
138168}
138169
138170// RequestId sets the optional parameter "requestId": An optional
138171// request ID to identify requests. Specify a unique request ID so that
138172// if you must retry your request, the server will know to ignore the
138173// request if it has already been completed. For example, consider a
138174// situation where you make an initial request and the request times
138175// out. If you make the request again with the same request ID, the
138176// server can check if original operation with the same request ID was
138177// received, and if so, will ignore the second request. This prevents
138178// clients from accidentally creating duplicate commitments. The request
138179// ID must be a valid UUID with the exception that zero UUID is not
138180// supported ( 00000000-0000-0000-0000-000000000000).
138181func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
138182	c.urlParams_.Set("requestId", requestId)
138183	return c
138184}
138185
138186// Fields allows partial responses to be retrieved. See
138187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138188// for more information.
138189func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
138190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138191	return c
138192}
138193
138194// Context sets the context to be used in this call's Do method. Any
138195// pending HTTP request will be aborted if the provided context is
138196// canceled.
138197func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
138198	c.ctx_ = ctx
138199	return c
138200}
138201
138202// Header returns an http.Header that can be modified by the caller to
138203// add HTTP headers to the request.
138204func (c *ResourcePoliciesDeleteCall) Header() http.Header {
138205	if c.header_ == nil {
138206		c.header_ = make(http.Header)
138207	}
138208	return c.header_
138209}
138210
138211func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
138212	reqHeaders := make(http.Header)
138213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138214	for k, v := range c.header_ {
138215		reqHeaders[k] = v
138216	}
138217	reqHeaders.Set("User-Agent", c.s.userAgent())
138218	var body io.Reader = nil
138219	c.urlParams_.Set("alt", alt)
138220	c.urlParams_.Set("prettyPrint", "false")
138221	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
138222	urls += "?" + c.urlParams_.Encode()
138223	req, err := http.NewRequest("DELETE", urls, body)
138224	if err != nil {
138225		return nil, err
138226	}
138227	req.Header = reqHeaders
138228	googleapi.Expand(req.URL, map[string]string{
138229		"project":        c.project,
138230		"region":         c.region,
138231		"resourcePolicy": c.resourcePolicy,
138232	})
138233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138234}
138235
138236// Do executes the "compute.resourcePolicies.delete" call.
138237// Exactly one of *Operation or error will be non-nil. Any non-2xx
138238// status code is an error. Response headers are in either
138239// *Operation.ServerResponse.Header or (if a response was returned at
138240// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138241// to check whether the returned error was because
138242// http.StatusNotModified was returned.
138243func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138244	gensupport.SetOptions(c.urlParams_, opts...)
138245	res, err := c.doRequest("json")
138246	if res != nil && res.StatusCode == http.StatusNotModified {
138247		if res.Body != nil {
138248			res.Body.Close()
138249		}
138250		return nil, &googleapi.Error{
138251			Code:   res.StatusCode,
138252			Header: res.Header,
138253		}
138254	}
138255	if err != nil {
138256		return nil, err
138257	}
138258	defer googleapi.CloseBody(res)
138259	if err := googleapi.CheckResponse(res); err != nil {
138260		return nil, err
138261	}
138262	ret := &Operation{
138263		ServerResponse: googleapi.ServerResponse{
138264			Header:         res.Header,
138265			HTTPStatusCode: res.StatusCode,
138266		},
138267	}
138268	target := &ret
138269	if err := gensupport.DecodeResponse(target, res); err != nil {
138270		return nil, err
138271	}
138272	return ret, nil
138273	// {
138274	//   "description": "Deletes the specified resource policy.",
138275	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138276	//   "httpMethod": "DELETE",
138277	//   "id": "compute.resourcePolicies.delete",
138278	//   "parameterOrder": [
138279	//     "project",
138280	//     "region",
138281	//     "resourcePolicy"
138282	//   ],
138283	//   "parameters": {
138284	//     "project": {
138285	//       "description": "Project ID for this request.",
138286	//       "location": "path",
138287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138288	//       "required": true,
138289	//       "type": "string"
138290	//     },
138291	//     "region": {
138292	//       "description": "Name of the region for this request.",
138293	//       "location": "path",
138294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138295	//       "required": true,
138296	//       "type": "string"
138297	//     },
138298	//     "requestId": {
138299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
138300	//       "location": "query",
138301	//       "type": "string"
138302	//     },
138303	//     "resourcePolicy": {
138304	//       "description": "Name of the resource policy to delete.",
138305	//       "location": "path",
138306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138307	//       "required": true,
138308	//       "type": "string"
138309	//     }
138310	//   },
138311	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138312	//   "response": {
138313	//     "$ref": "Operation"
138314	//   },
138315	//   "scopes": [
138316	//     "https://www.googleapis.com/auth/cloud-platform",
138317	//     "https://www.googleapis.com/auth/compute"
138318	//   ]
138319	// }
138320
138321}
138322
138323// method id "compute.resourcePolicies.get":
138324
138325type ResourcePoliciesGetCall struct {
138326	s              *Service
138327	project        string
138328	region         string
138329	resourcePolicy string
138330	urlParams_     gensupport.URLParams
138331	ifNoneMatch_   string
138332	ctx_           context.Context
138333	header_        http.Header
138334}
138335
138336// Get: Retrieves all information of the specified resource policy.
138337//
138338// - project: Project ID for this request.
138339// - region: Name of the region for this request.
138340// - resourcePolicy: Name of the resource policy to retrieve.
138341func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
138342	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138343	c.project = project
138344	c.region = region
138345	c.resourcePolicy = resourcePolicy
138346	return c
138347}
138348
138349// Fields allows partial responses to be retrieved. See
138350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138351// for more information.
138352func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
138353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138354	return c
138355}
138356
138357// IfNoneMatch sets the optional parameter which makes the operation
138358// fail if the object's ETag matches the given value. This is useful for
138359// getting updates only after the object has changed since the last
138360// request. Use googleapi.IsNotModified to check whether the response
138361// error from Do is the result of In-None-Match.
138362func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
138363	c.ifNoneMatch_ = entityTag
138364	return c
138365}
138366
138367// Context sets the context to be used in this call's Do method. Any
138368// pending HTTP request will be aborted if the provided context is
138369// canceled.
138370func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
138371	c.ctx_ = ctx
138372	return c
138373}
138374
138375// Header returns an http.Header that can be modified by the caller to
138376// add HTTP headers to the request.
138377func (c *ResourcePoliciesGetCall) Header() http.Header {
138378	if c.header_ == nil {
138379		c.header_ = make(http.Header)
138380	}
138381	return c.header_
138382}
138383
138384func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
138385	reqHeaders := make(http.Header)
138386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138387	for k, v := range c.header_ {
138388		reqHeaders[k] = v
138389	}
138390	reqHeaders.Set("User-Agent", c.s.userAgent())
138391	if c.ifNoneMatch_ != "" {
138392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138393	}
138394	var body io.Reader = nil
138395	c.urlParams_.Set("alt", alt)
138396	c.urlParams_.Set("prettyPrint", "false")
138397	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
138398	urls += "?" + c.urlParams_.Encode()
138399	req, err := http.NewRequest("GET", urls, body)
138400	if err != nil {
138401		return nil, err
138402	}
138403	req.Header = reqHeaders
138404	googleapi.Expand(req.URL, map[string]string{
138405		"project":        c.project,
138406		"region":         c.region,
138407		"resourcePolicy": c.resourcePolicy,
138408	})
138409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138410}
138411
138412// Do executes the "compute.resourcePolicies.get" call.
138413// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
138414// status code is an error. Response headers are in either
138415// *ResourcePolicy.ServerResponse.Header or (if a response was returned
138416// at all) in error.(*googleapi.Error).Header. Use
138417// googleapi.IsNotModified to check whether the returned error was
138418// because http.StatusNotModified was returned.
138419func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
138420	gensupport.SetOptions(c.urlParams_, opts...)
138421	res, err := c.doRequest("json")
138422	if res != nil && res.StatusCode == http.StatusNotModified {
138423		if res.Body != nil {
138424			res.Body.Close()
138425		}
138426		return nil, &googleapi.Error{
138427			Code:   res.StatusCode,
138428			Header: res.Header,
138429		}
138430	}
138431	if err != nil {
138432		return nil, err
138433	}
138434	defer googleapi.CloseBody(res)
138435	if err := googleapi.CheckResponse(res); err != nil {
138436		return nil, err
138437	}
138438	ret := &ResourcePolicy{
138439		ServerResponse: googleapi.ServerResponse{
138440			Header:         res.Header,
138441			HTTPStatusCode: res.StatusCode,
138442		},
138443	}
138444	target := &ret
138445	if err := gensupport.DecodeResponse(target, res); err != nil {
138446		return nil, err
138447	}
138448	return ret, nil
138449	// {
138450	//   "description": "Retrieves all information of the specified resource policy.",
138451	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138452	//   "httpMethod": "GET",
138453	//   "id": "compute.resourcePolicies.get",
138454	//   "parameterOrder": [
138455	//     "project",
138456	//     "region",
138457	//     "resourcePolicy"
138458	//   ],
138459	//   "parameters": {
138460	//     "project": {
138461	//       "description": "Project ID for this request.",
138462	//       "location": "path",
138463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138464	//       "required": true,
138465	//       "type": "string"
138466	//     },
138467	//     "region": {
138468	//       "description": "Name of the region for this request.",
138469	//       "location": "path",
138470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138471	//       "required": true,
138472	//       "type": "string"
138473	//     },
138474	//     "resourcePolicy": {
138475	//       "description": "Name of the resource policy to retrieve.",
138476	//       "location": "path",
138477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138478	//       "required": true,
138479	//       "type": "string"
138480	//     }
138481	//   },
138482	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138483	//   "response": {
138484	//     "$ref": "ResourcePolicy"
138485	//   },
138486	//   "scopes": [
138487	//     "https://www.googleapis.com/auth/cloud-platform",
138488	//     "https://www.googleapis.com/auth/compute",
138489	//     "https://www.googleapis.com/auth/compute.readonly"
138490	//   ]
138491	// }
138492
138493}
138494
138495// method id "compute.resourcePolicies.getIamPolicy":
138496
138497type ResourcePoliciesGetIamPolicyCall struct {
138498	s            *Service
138499	project      string
138500	region       string
138501	resource     string
138502	urlParams_   gensupport.URLParams
138503	ifNoneMatch_ string
138504	ctx_         context.Context
138505	header_      http.Header
138506}
138507
138508// GetIamPolicy: Gets the access control policy for a resource. May be
138509// empty if no such policy or resource exists.
138510//
138511// - project: Project ID for this request.
138512// - region: The name of the region for this request.
138513// - resource: Name or id of the resource for this request.
138514func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
138515	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138516	c.project = project
138517	c.region = region
138518	c.resource = resource
138519	return c
138520}
138521
138522// OptionsRequestedPolicyVersion sets the optional parameter
138523// "optionsRequestedPolicyVersion": Requested IAM Policy version.
138524func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
138525	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
138526	return c
138527}
138528
138529// Fields allows partial responses to be retrieved. See
138530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138531// for more information.
138532func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
138533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138534	return c
138535}
138536
138537// IfNoneMatch sets the optional parameter which makes the operation
138538// fail if the object's ETag matches the given value. This is useful for
138539// getting updates only after the object has changed since the last
138540// request. Use googleapi.IsNotModified to check whether the response
138541// error from Do is the result of In-None-Match.
138542func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
138543	c.ifNoneMatch_ = entityTag
138544	return c
138545}
138546
138547// Context sets the context to be used in this call's Do method. Any
138548// pending HTTP request will be aborted if the provided context is
138549// canceled.
138550func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
138551	c.ctx_ = ctx
138552	return c
138553}
138554
138555// Header returns an http.Header that can be modified by the caller to
138556// add HTTP headers to the request.
138557func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
138558	if c.header_ == nil {
138559		c.header_ = make(http.Header)
138560	}
138561	return c.header_
138562}
138563
138564func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
138565	reqHeaders := make(http.Header)
138566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138567	for k, v := range c.header_ {
138568		reqHeaders[k] = v
138569	}
138570	reqHeaders.Set("User-Agent", c.s.userAgent())
138571	if c.ifNoneMatch_ != "" {
138572		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138573	}
138574	var body io.Reader = nil
138575	c.urlParams_.Set("alt", alt)
138576	c.urlParams_.Set("prettyPrint", "false")
138577	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
138578	urls += "?" + c.urlParams_.Encode()
138579	req, err := http.NewRequest("GET", urls, body)
138580	if err != nil {
138581		return nil, err
138582	}
138583	req.Header = reqHeaders
138584	googleapi.Expand(req.URL, map[string]string{
138585		"project":  c.project,
138586		"region":   c.region,
138587		"resource": c.resource,
138588	})
138589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138590}
138591
138592// Do executes the "compute.resourcePolicies.getIamPolicy" call.
138593// Exactly one of *Policy or error will be non-nil. Any non-2xx status
138594// code is an error. Response headers are in either
138595// *Policy.ServerResponse.Header or (if a response was returned at all)
138596// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
138597// check whether the returned error was because http.StatusNotModified
138598// was returned.
138599func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
138600	gensupport.SetOptions(c.urlParams_, opts...)
138601	res, err := c.doRequest("json")
138602	if res != nil && res.StatusCode == http.StatusNotModified {
138603		if res.Body != nil {
138604			res.Body.Close()
138605		}
138606		return nil, &googleapi.Error{
138607			Code:   res.StatusCode,
138608			Header: res.Header,
138609		}
138610	}
138611	if err != nil {
138612		return nil, err
138613	}
138614	defer googleapi.CloseBody(res)
138615	if err := googleapi.CheckResponse(res); err != nil {
138616		return nil, err
138617	}
138618	ret := &Policy{
138619		ServerResponse: googleapi.ServerResponse{
138620			Header:         res.Header,
138621			HTTPStatusCode: res.StatusCode,
138622		},
138623	}
138624	target := &ret
138625	if err := gensupport.DecodeResponse(target, res); err != nil {
138626		return nil, err
138627	}
138628	return ret, nil
138629	// {
138630	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
138631	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
138632	//   "httpMethod": "GET",
138633	//   "id": "compute.resourcePolicies.getIamPolicy",
138634	//   "parameterOrder": [
138635	//     "project",
138636	//     "region",
138637	//     "resource"
138638	//   ],
138639	//   "parameters": {
138640	//     "optionsRequestedPolicyVersion": {
138641	//       "description": "Requested IAM Policy version.",
138642	//       "format": "int32",
138643	//       "location": "query",
138644	//       "type": "integer"
138645	//     },
138646	//     "project": {
138647	//       "description": "Project ID for this request.",
138648	//       "location": "path",
138649	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138650	//       "required": true,
138651	//       "type": "string"
138652	//     },
138653	//     "region": {
138654	//       "description": "The name of the region for this request.",
138655	//       "location": "path",
138656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138657	//       "required": true,
138658	//       "type": "string"
138659	//     },
138660	//     "resource": {
138661	//       "description": "Name or id of the resource for this request.",
138662	//       "location": "path",
138663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138664	//       "required": true,
138665	//       "type": "string"
138666	//     }
138667	//   },
138668	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
138669	//   "response": {
138670	//     "$ref": "Policy"
138671	//   },
138672	//   "scopes": [
138673	//     "https://www.googleapis.com/auth/cloud-platform",
138674	//     "https://www.googleapis.com/auth/compute",
138675	//     "https://www.googleapis.com/auth/compute.readonly"
138676	//   ]
138677	// }
138678
138679}
138680
138681// method id "compute.resourcePolicies.insert":
138682
138683type ResourcePoliciesInsertCall struct {
138684	s              *Service
138685	project        string
138686	region         string
138687	resourcepolicy *ResourcePolicy
138688	urlParams_     gensupport.URLParams
138689	ctx_           context.Context
138690	header_        http.Header
138691}
138692
138693// Insert: Creates a new resource policy.
138694//
138695// - project: Project ID for this request.
138696// - region: Name of the region for this request.
138697func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
138698	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138699	c.project = project
138700	c.region = region
138701	c.resourcepolicy = resourcepolicy
138702	return c
138703}
138704
138705// RequestId sets the optional parameter "requestId": An optional
138706// request ID to identify requests. Specify a unique request ID so that
138707// if you must retry your request, the server will know to ignore the
138708// request if it has already been completed. For example, consider a
138709// situation where you make an initial request and the request times
138710// out. If you make the request again with the same request ID, the
138711// server can check if original operation with the same request ID was
138712// received, and if so, will ignore the second request. This prevents
138713// clients from accidentally creating duplicate commitments. The request
138714// ID must be a valid UUID with the exception that zero UUID is not
138715// supported ( 00000000-0000-0000-0000-000000000000).
138716func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
138717	c.urlParams_.Set("requestId", requestId)
138718	return c
138719}
138720
138721// Fields allows partial responses to be retrieved. See
138722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138723// for more information.
138724func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
138725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138726	return c
138727}
138728
138729// Context sets the context to be used in this call's Do method. Any
138730// pending HTTP request will be aborted if the provided context is
138731// canceled.
138732func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
138733	c.ctx_ = ctx
138734	return c
138735}
138736
138737// Header returns an http.Header that can be modified by the caller to
138738// add HTTP headers to the request.
138739func (c *ResourcePoliciesInsertCall) Header() http.Header {
138740	if c.header_ == nil {
138741		c.header_ = make(http.Header)
138742	}
138743	return c.header_
138744}
138745
138746func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
138747	reqHeaders := make(http.Header)
138748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138749	for k, v := range c.header_ {
138750		reqHeaders[k] = v
138751	}
138752	reqHeaders.Set("User-Agent", c.s.userAgent())
138753	var body io.Reader = nil
138754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
138755	if err != nil {
138756		return nil, err
138757	}
138758	reqHeaders.Set("Content-Type", "application/json")
138759	c.urlParams_.Set("alt", alt)
138760	c.urlParams_.Set("prettyPrint", "false")
138761	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
138762	urls += "?" + c.urlParams_.Encode()
138763	req, err := http.NewRequest("POST", urls, body)
138764	if err != nil {
138765		return nil, err
138766	}
138767	req.Header = reqHeaders
138768	googleapi.Expand(req.URL, map[string]string{
138769		"project": c.project,
138770		"region":  c.region,
138771	})
138772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138773}
138774
138775// Do executes the "compute.resourcePolicies.insert" call.
138776// Exactly one of *Operation or error will be non-nil. Any non-2xx
138777// status code is an error. Response headers are in either
138778// *Operation.ServerResponse.Header or (if a response was returned at
138779// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138780// to check whether the returned error was because
138781// http.StatusNotModified was returned.
138782func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138783	gensupport.SetOptions(c.urlParams_, opts...)
138784	res, err := c.doRequest("json")
138785	if res != nil && res.StatusCode == http.StatusNotModified {
138786		if res.Body != nil {
138787			res.Body.Close()
138788		}
138789		return nil, &googleapi.Error{
138790			Code:   res.StatusCode,
138791			Header: res.Header,
138792		}
138793	}
138794	if err != nil {
138795		return nil, err
138796	}
138797	defer googleapi.CloseBody(res)
138798	if err := googleapi.CheckResponse(res); err != nil {
138799		return nil, err
138800	}
138801	ret := &Operation{
138802		ServerResponse: googleapi.ServerResponse{
138803			Header:         res.Header,
138804			HTTPStatusCode: res.StatusCode,
138805		},
138806	}
138807	target := &ret
138808	if err := gensupport.DecodeResponse(target, res); err != nil {
138809		return nil, err
138810	}
138811	return ret, nil
138812	// {
138813	//   "description": "Creates a new resource policy.",
138814	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
138815	//   "httpMethod": "POST",
138816	//   "id": "compute.resourcePolicies.insert",
138817	//   "parameterOrder": [
138818	//     "project",
138819	//     "region"
138820	//   ],
138821	//   "parameters": {
138822	//     "project": {
138823	//       "description": "Project ID for this request.",
138824	//       "location": "path",
138825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138826	//       "required": true,
138827	//       "type": "string"
138828	//     },
138829	//     "region": {
138830	//       "description": "Name of the region for this request.",
138831	//       "location": "path",
138832	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138833	//       "required": true,
138834	//       "type": "string"
138835	//     },
138836	//     "requestId": {
138837	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
138838	//       "location": "query",
138839	//       "type": "string"
138840	//     }
138841	//   },
138842	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
138843	//   "request": {
138844	//     "$ref": "ResourcePolicy"
138845	//   },
138846	//   "response": {
138847	//     "$ref": "Operation"
138848	//   },
138849	//   "scopes": [
138850	//     "https://www.googleapis.com/auth/cloud-platform",
138851	//     "https://www.googleapis.com/auth/compute"
138852	//   ]
138853	// }
138854
138855}
138856
138857// method id "compute.resourcePolicies.list":
138858
138859type ResourcePoliciesListCall struct {
138860	s            *Service
138861	project      string
138862	region       string
138863	urlParams_   gensupport.URLParams
138864	ifNoneMatch_ string
138865	ctx_         context.Context
138866	header_      http.Header
138867}
138868
138869// List: A list all the resource policies that have been configured for
138870// the specified project in specified region.
138871//
138872// - project: Project ID for this request.
138873// - region: Name of the region for this request.
138874func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
138875	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138876	c.project = project
138877	c.region = region
138878	return c
138879}
138880
138881// Filter sets the optional parameter "filter": A filter expression that
138882// filters resources listed in the response. The expression must specify
138883// the field name, a comparison operator, and the value that you want to
138884// use for filtering. The value must be a string, a number, or a
138885// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138886// `<`. For example, if you are filtering Compute Engine instances, you
138887// can exclude instances named `example-instance` by specifying `name !=
138888// example-instance`. You can also filter nested fields. For example,
138889// you could specify `scheduling.automaticRestart = false` to include
138890// instances only if they are not scheduled for automatic restarts. You
138891// can use filtering on nested fields to filter based on resource
138892// labels. To filter on multiple expressions, provide each separate
138893// expression within parentheses. For example: ```
138894// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
138895// ``` By default, each expression is an `AND` expression. However, you
138896// can include `AND` and `OR` expressions explicitly. For example: ```
138897// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
138898// AND (scheduling.automaticRestart = true) ```
138899func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
138900	c.urlParams_.Set("filter", filter)
138901	return c
138902}
138903
138904// MaxResults sets the optional parameter "maxResults": The maximum
138905// number of results per page that should be returned. If the number of
138906// available results is larger than `maxResults`, Compute Engine returns
138907// a `nextPageToken` that can be used to get the next page of results in
138908// subsequent list requests. Acceptable values are `0` to `500`,
138909// inclusive. (Default: `500`)
138910func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
138911	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138912	return c
138913}
138914
138915// OrderBy sets the optional parameter "orderBy": Sorts list results by
138916// a certain order. By default, results are returned in alphanumerical
138917// order based on the resource name. You can also sort results in
138918// descending order based on the creation timestamp using
138919// `orderBy="creationTimestamp desc". This sorts results based on the
138920// `creationTimestamp` field in reverse chronological order (newest
138921// result first). Use this to sort resources like operations so that the
138922// newest operation is returned first. Currently, only sorting by `name`
138923// or `creationTimestamp desc` is supported.
138924func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
138925	c.urlParams_.Set("orderBy", orderBy)
138926	return c
138927}
138928
138929// PageToken sets the optional parameter "pageToken": Specifies a page
138930// token to use. Set `pageToken` to the `nextPageToken` returned by a
138931// previous list request to get the next page of results.
138932func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
138933	c.urlParams_.Set("pageToken", pageToken)
138934	return c
138935}
138936
138937// ReturnPartialSuccess sets the optional parameter
138938// "returnPartialSuccess": Opt-in for partial success behavior which
138939// provides partial results in case of failure. The default value is
138940// false.
138941func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
138942	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
138943	return c
138944}
138945
138946// Fields allows partial responses to be retrieved. See
138947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138948// for more information.
138949func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
138950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138951	return c
138952}
138953
138954// IfNoneMatch sets the optional parameter which makes the operation
138955// fail if the object's ETag matches the given value. This is useful for
138956// getting updates only after the object has changed since the last
138957// request. Use googleapi.IsNotModified to check whether the response
138958// error from Do is the result of In-None-Match.
138959func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
138960	c.ifNoneMatch_ = entityTag
138961	return c
138962}
138963
138964// Context sets the context to be used in this call's Do method. Any
138965// pending HTTP request will be aborted if the provided context is
138966// canceled.
138967func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
138968	c.ctx_ = ctx
138969	return c
138970}
138971
138972// Header returns an http.Header that can be modified by the caller to
138973// add HTTP headers to the request.
138974func (c *ResourcePoliciesListCall) Header() http.Header {
138975	if c.header_ == nil {
138976		c.header_ = make(http.Header)
138977	}
138978	return c.header_
138979}
138980
138981func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
138982	reqHeaders := make(http.Header)
138983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
138984	for k, v := range c.header_ {
138985		reqHeaders[k] = v
138986	}
138987	reqHeaders.Set("User-Agent", c.s.userAgent())
138988	if c.ifNoneMatch_ != "" {
138989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138990	}
138991	var body io.Reader = nil
138992	c.urlParams_.Set("alt", alt)
138993	c.urlParams_.Set("prettyPrint", "false")
138994	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
138995	urls += "?" + c.urlParams_.Encode()
138996	req, err := http.NewRequest("GET", urls, body)
138997	if err != nil {
138998		return nil, err
138999	}
139000	req.Header = reqHeaders
139001	googleapi.Expand(req.URL, map[string]string{
139002		"project": c.project,
139003		"region":  c.region,
139004	})
139005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139006}
139007
139008// Do executes the "compute.resourcePolicies.list" call.
139009// Exactly one of *ResourcePolicyList or error will be non-nil. Any
139010// non-2xx status code is an error. Response headers are in either
139011// *ResourcePolicyList.ServerResponse.Header or (if a response was
139012// returned at all) in error.(*googleapi.Error).Header. Use
139013// googleapi.IsNotModified to check whether the returned error was
139014// because http.StatusNotModified was returned.
139015func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
139016	gensupport.SetOptions(c.urlParams_, opts...)
139017	res, err := c.doRequest("json")
139018	if res != nil && res.StatusCode == http.StatusNotModified {
139019		if res.Body != nil {
139020			res.Body.Close()
139021		}
139022		return nil, &googleapi.Error{
139023			Code:   res.StatusCode,
139024			Header: res.Header,
139025		}
139026	}
139027	if err != nil {
139028		return nil, err
139029	}
139030	defer googleapi.CloseBody(res)
139031	if err := googleapi.CheckResponse(res); err != nil {
139032		return nil, err
139033	}
139034	ret := &ResourcePolicyList{
139035		ServerResponse: googleapi.ServerResponse{
139036			Header:         res.Header,
139037			HTTPStatusCode: res.StatusCode,
139038		},
139039	}
139040	target := &ret
139041	if err := gensupport.DecodeResponse(target, res); err != nil {
139042		return nil, err
139043	}
139044	return ret, nil
139045	// {
139046	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
139047	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
139048	//   "httpMethod": "GET",
139049	//   "id": "compute.resourcePolicies.list",
139050	//   "parameterOrder": [
139051	//     "project",
139052	//     "region"
139053	//   ],
139054	//   "parameters": {
139055	//     "filter": {
139056	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
139057	//       "location": "query",
139058	//       "type": "string"
139059	//     },
139060	//     "maxResults": {
139061	//       "default": "500",
139062	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139063	//       "format": "uint32",
139064	//       "location": "query",
139065	//       "minimum": "0",
139066	//       "type": "integer"
139067	//     },
139068	//     "orderBy": {
139069	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
139070	//       "location": "query",
139071	//       "type": "string"
139072	//     },
139073	//     "pageToken": {
139074	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139075	//       "location": "query",
139076	//       "type": "string"
139077	//     },
139078	//     "project": {
139079	//       "description": "Project ID for this request.",
139080	//       "location": "path",
139081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139082	//       "required": true,
139083	//       "type": "string"
139084	//     },
139085	//     "region": {
139086	//       "description": "Name of the region for this request.",
139087	//       "location": "path",
139088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139089	//       "required": true,
139090	//       "type": "string"
139091	//     },
139092	//     "returnPartialSuccess": {
139093	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
139094	//       "location": "query",
139095	//       "type": "boolean"
139096	//     }
139097	//   },
139098	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
139099	//   "response": {
139100	//     "$ref": "ResourcePolicyList"
139101	//   },
139102	//   "scopes": [
139103	//     "https://www.googleapis.com/auth/cloud-platform",
139104	//     "https://www.googleapis.com/auth/compute",
139105	//     "https://www.googleapis.com/auth/compute.readonly"
139106	//   ]
139107	// }
139108
139109}
139110
139111// Pages invokes f for each page of results.
139112// A non-nil error returned from f will halt the iteration.
139113// The provided context supersedes any context provided to the Context method.
139114func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
139115	c.ctx_ = ctx
139116	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139117	for {
139118		x, err := c.Do()
139119		if err != nil {
139120			return err
139121		}
139122		if err := f(x); err != nil {
139123			return err
139124		}
139125		if x.NextPageToken == "" {
139126			return nil
139127		}
139128		c.PageToken(x.NextPageToken)
139129	}
139130}
139131
139132// method id "compute.resourcePolicies.setIamPolicy":
139133
139134type ResourcePoliciesSetIamPolicyCall struct {
139135	s                      *Service
139136	project                string
139137	region                 string
139138	resource               string
139139	regionsetpolicyrequest *RegionSetPolicyRequest
139140	urlParams_             gensupport.URLParams
139141	ctx_                   context.Context
139142	header_                http.Header
139143}
139144
139145// SetIamPolicy: Sets the access control policy on the specified
139146// resource. Replaces any existing policy.
139147//
139148// - project: Project ID for this request.
139149// - region: The name of the region for this request.
139150// - resource: Name or id of the resource for this request.
139151func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
139152	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139153	c.project = project
139154	c.region = region
139155	c.resource = resource
139156	c.regionsetpolicyrequest = regionsetpolicyrequest
139157	return c
139158}
139159
139160// Fields allows partial responses to be retrieved. See
139161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139162// for more information.
139163func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
139164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139165	return c
139166}
139167
139168// Context sets the context to be used in this call's Do method. Any
139169// pending HTTP request will be aborted if the provided context is
139170// canceled.
139171func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
139172	c.ctx_ = ctx
139173	return c
139174}
139175
139176// Header returns an http.Header that can be modified by the caller to
139177// add HTTP headers to the request.
139178func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
139179	if c.header_ == nil {
139180		c.header_ = make(http.Header)
139181	}
139182	return c.header_
139183}
139184
139185func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
139186	reqHeaders := make(http.Header)
139187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
139188	for k, v := range c.header_ {
139189		reqHeaders[k] = v
139190	}
139191	reqHeaders.Set("User-Agent", c.s.userAgent())
139192	var body io.Reader = nil
139193	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
139194	if err != nil {
139195		return nil, err
139196	}
139197	reqHeaders.Set("Content-Type", "application/json")
139198	c.urlParams_.Set("alt", alt)
139199	c.urlParams_.Set("prettyPrint", "false")
139200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
139201	urls += "?" + c.urlParams_.Encode()
139202	req, err := http.NewRequest("POST", urls, body)
139203	if err != nil {
139204		return nil, err
139205	}
139206	req.Header = reqHeaders
139207	googleapi.Expand(req.URL, map[string]string{
139208		"project":  c.project,
139209		"region":   c.region,
139210		"resource": c.resource,
139211	})
139212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139213}
139214
139215// Do executes the "compute.resourcePolicies.setIamPolicy" call.
139216// Exactly one of *Policy or error will be non-nil. Any non-2xx status
139217// code is an error. Response headers are in either
139218// *Policy.ServerResponse.Header or (if a response was returned at all)
139219// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
139220// check whether the returned error was because http.StatusNotModified
139221// was returned.
139222func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
139223	gensupport.SetOptions(c.urlParams_, opts...)
139224	res, err := c.doRequest("json")
139225	if res != nil && res.StatusCode == http.StatusNotModified {
139226		if res.Body != nil {
139227			res.Body.Close()
139228		}
139229		return nil, &googleapi.Error{
139230			Code:   res.StatusCode,
139231			Header: res.Header,
139232		}
139233	}
139234	if err != nil {
139235		return nil, err
139236	}
139237	defer googleapi.CloseBody(res)
139238	if err := googleapi.CheckResponse(res); err != nil {
139239		return nil, err
139240	}
139241	ret := &Policy{
139242		ServerResponse: googleapi.ServerResponse{
139243			Header:         res.Header,
139244			HTTPStatusCode: res.StatusCode,
139245		},
139246	}
139247	target := &ret
139248	if err := gensupport.DecodeResponse(target, res); err != nil {
139249		return nil, err
139250	}
139251	return ret, nil
139252	// {
139253	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
139254	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
139255	//   "httpMethod": "POST",
139256	//   "id": "compute.resourcePolicies.setIamPolicy",
139257	//   "parameterOrder": [
139258	//     "project",
139259	//     "region",
139260	//     "resource"
139261	//   ],
139262	//   "parameters": {
139263	//     "project": {
139264	//       "description": "Project ID for this request.",
139265	//       "location": "path",
139266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139267	//       "required": true,
139268	//       "type": "string"
139269	//     },
139270	//     "region": {
139271	//       "description": "The name of the region for this request.",
139272	//       "location": "path",
139273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139274	//       "required": true,
139275	//       "type": "string"
139276	//     },
139277	//     "resource": {
139278	//       "description": "Name or id of the resource for this request.",
139279	//       "location": "path",
139280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139281	//       "required": true,
139282	//       "type": "string"
139283	//     }
139284	//   },
139285	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
139286	//   "request": {
139287	//     "$ref": "RegionSetPolicyRequest"
139288	//   },
139289	//   "response": {
139290	//     "$ref": "Policy"
139291	//   },
139292	//   "scopes": [
139293	//     "https://www.googleapis.com/auth/cloud-platform",
139294	//     "https://www.googleapis.com/auth/compute"
139295	//   ]
139296	// }
139297
139298}
139299
139300// method id "compute.resourcePolicies.testIamPermissions":
139301
139302type ResourcePoliciesTestIamPermissionsCall struct {
139303	s                      *Service
139304	project                string
139305	region                 string
139306	resource               string
139307	testpermissionsrequest *TestPermissionsRequest
139308	urlParams_             gensupport.URLParams
139309	ctx_                   context.Context
139310	header_                http.Header
139311}
139312
139313// TestIamPermissions: Returns permissions that a caller has on the
139314// specified resource.
139315//
139316// - project: Project ID for this request.
139317// - region: The name of the region for this request.
139318// - resource: Name or id of the resource for this request.
139319func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
139320	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139321	c.project = project
139322	c.region = region
139323	c.resource = resource
139324	c.testpermissionsrequest = testpermissionsrequest
139325	return c
139326}
139327
139328// Fields allows partial responses to be retrieved. See
139329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139330// for more information.
139331func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
139332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139333	return c
139334}
139335
139336// Context sets the context to be used in this call's Do method. Any
139337// pending HTTP request will be aborted if the provided context is
139338// canceled.
139339func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
139340	c.ctx_ = ctx
139341	return c
139342}
139343
139344// Header returns an http.Header that can be modified by the caller to
139345// add HTTP headers to the request.
139346func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
139347	if c.header_ == nil {
139348		c.header_ = make(http.Header)
139349	}
139350	return c.header_
139351}
139352
139353func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139354	reqHeaders := make(http.Header)
139355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
139356	for k, v := range c.header_ {
139357		reqHeaders[k] = v
139358	}
139359	reqHeaders.Set("User-Agent", c.s.userAgent())
139360	var body io.Reader = nil
139361	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139362	if err != nil {
139363		return nil, err
139364	}
139365	reqHeaders.Set("Content-Type", "application/json")
139366	c.urlParams_.Set("alt", alt)
139367	c.urlParams_.Set("prettyPrint", "false")
139368	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
139369	urls += "?" + c.urlParams_.Encode()
139370	req, err := http.NewRequest("POST", urls, body)
139371	if err != nil {
139372		return nil, err
139373	}
139374	req.Header = reqHeaders
139375	googleapi.Expand(req.URL, map[string]string{
139376		"project":  c.project,
139377		"region":   c.region,
139378		"resource": c.resource,
139379	})
139380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139381}
139382
139383// Do executes the "compute.resourcePolicies.testIamPermissions" call.
139384// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139385// non-2xx status code is an error. Response headers are in either
139386// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139387// returned at all) in error.(*googleapi.Error).Header. Use
139388// googleapi.IsNotModified to check whether the returned error was
139389// because http.StatusNotModified was returned.
139390func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139391	gensupport.SetOptions(c.urlParams_, opts...)
139392	res, err := c.doRequest("json")
139393	if res != nil && res.StatusCode == http.StatusNotModified {
139394		if res.Body != nil {
139395			res.Body.Close()
139396		}
139397		return nil, &googleapi.Error{
139398			Code:   res.StatusCode,
139399			Header: res.Header,
139400		}
139401	}
139402	if err != nil {
139403		return nil, err
139404	}
139405	defer googleapi.CloseBody(res)
139406	if err := googleapi.CheckResponse(res); err != nil {
139407		return nil, err
139408	}
139409	ret := &TestPermissionsResponse{
139410		ServerResponse: googleapi.ServerResponse{
139411			Header:         res.Header,
139412			HTTPStatusCode: res.StatusCode,
139413		},
139414	}
139415	target := &ret
139416	if err := gensupport.DecodeResponse(target, res); err != nil {
139417		return nil, err
139418	}
139419	return ret, nil
139420	// {
139421	//   "description": "Returns permissions that a caller has on the specified resource.",
139422	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
139423	//   "httpMethod": "POST",
139424	//   "id": "compute.resourcePolicies.testIamPermissions",
139425	//   "parameterOrder": [
139426	//     "project",
139427	//     "region",
139428	//     "resource"
139429	//   ],
139430	//   "parameters": {
139431	//     "project": {
139432	//       "description": "Project ID for this request.",
139433	//       "location": "path",
139434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139435	//       "required": true,
139436	//       "type": "string"
139437	//     },
139438	//     "region": {
139439	//       "description": "The name of the region for this request.",
139440	//       "location": "path",
139441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139442	//       "required": true,
139443	//       "type": "string"
139444	//     },
139445	//     "resource": {
139446	//       "description": "Name or id of the resource for this request.",
139447	//       "location": "path",
139448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139449	//       "required": true,
139450	//       "type": "string"
139451	//     }
139452	//   },
139453	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
139454	//   "request": {
139455	//     "$ref": "TestPermissionsRequest"
139456	//   },
139457	//   "response": {
139458	//     "$ref": "TestPermissionsResponse"
139459	//   },
139460	//   "scopes": [
139461	//     "https://www.googleapis.com/auth/cloud-platform",
139462	//     "https://www.googleapis.com/auth/compute",
139463	//     "https://www.googleapis.com/auth/compute.readonly"
139464	//   ]
139465	// }
139466
139467}
139468
139469// method id "compute.routers.aggregatedList":
139470
139471type RoutersAggregatedListCall struct {
139472	s            *Service
139473	project      string
139474	urlParams_   gensupport.URLParams
139475	ifNoneMatch_ string
139476	ctx_         context.Context
139477	header_      http.Header
139478}
139479
139480// AggregatedList: Retrieves an aggregated list of routers.
139481//
139482// - project: Project ID for this request.
139483func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
139484	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139485	c.project = project
139486	return c
139487}
139488
139489// Filter sets the optional parameter "filter": A filter expression that
139490// filters resources listed in the response. The expression must specify
139491// the field name, a comparison operator, and the value that you want to
139492// use for filtering. The value must be a string, a number, or a
139493// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139494// `<`. For example, if you are filtering Compute Engine instances, you
139495// can exclude instances named `example-instance` by specifying `name !=
139496// example-instance`. You can also filter nested fields. For example,
139497// you could specify `scheduling.automaticRestart = false` to include
139498// instances only if they are not scheduled for automatic restarts. You
139499// can use filtering on nested fields to filter based on resource
139500// labels. To filter on multiple expressions, provide each separate
139501// expression within parentheses. For example: ```
139502// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
139503// ``` By default, each expression is an `AND` expression. However, you
139504// can include `AND` and `OR` expressions explicitly. For example: ```
139505// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
139506// AND (scheduling.automaticRestart = true) ```
139507func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
139508	c.urlParams_.Set("filter", filter)
139509	return c
139510}
139511
139512// IncludeAllScopes sets the optional parameter "includeAllScopes":
139513// Indicates whether every visible scope for each scope type (zone,
139514// region, global) should be included in the response. For new resource
139515// types added after this field, the flag has no effect as new resource
139516// types will always include every visible scope for each scope type in
139517// response. For resource types which predate this field, if this flag
139518// is omitted or false, only scopes of the scope types where the
139519// resource type is expected to be found will be included.
139520func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
139521	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
139522	return c
139523}
139524
139525// MaxResults sets the optional parameter "maxResults": The maximum
139526// number of results per page that should be returned. If the number of
139527// available results is larger than `maxResults`, Compute Engine returns
139528// a `nextPageToken` that can be used to get the next page of results in
139529// subsequent list requests. Acceptable values are `0` to `500`,
139530// inclusive. (Default: `500`)
139531func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
139532	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139533	return c
139534}
139535
139536// OrderBy sets the optional parameter "orderBy": Sorts list results by
139537// a certain order. By default, results are returned in alphanumerical
139538// order based on the resource name. You can also sort results in
139539// descending order based on the creation timestamp using
139540// `orderBy="creationTimestamp desc". This sorts results based on the
139541// `creationTimestamp` field in reverse chronological order (newest
139542// result first). Use this to sort resources like operations so that the
139543// newest operation is returned first. Currently, only sorting by `name`
139544// or `creationTimestamp desc` is supported.
139545func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
139546	c.urlParams_.Set("orderBy", orderBy)
139547	return c
139548}
139549
139550// PageToken sets the optional parameter "pageToken": Specifies a page
139551// token to use. Set `pageToken` to the `nextPageToken` returned by a
139552// previous list request to get the next page of results.
139553func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
139554	c.urlParams_.Set("pageToken", pageToken)
139555	return c
139556}
139557
139558// ReturnPartialSuccess sets the optional parameter
139559// "returnPartialSuccess": Opt-in for partial success behavior which
139560// provides partial results in case of failure. The default value is
139561// false.
139562func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
139563	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139564	return c
139565}
139566
139567// Fields allows partial responses to be retrieved. See
139568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139569// for more information.
139570func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
139571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139572	return c
139573}
139574
139575// IfNoneMatch sets the optional parameter which makes the operation
139576// fail if the object's ETag matches the given value. This is useful for
139577// getting updates only after the object has changed since the last
139578// request. Use googleapi.IsNotModified to check whether the response
139579// error from Do is the result of In-None-Match.
139580func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
139581	c.ifNoneMatch_ = entityTag
139582	return c
139583}
139584
139585// Context sets the context to be used in this call's Do method. Any
139586// pending HTTP request will be aborted if the provided context is
139587// canceled.
139588func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
139589	c.ctx_ = ctx
139590	return c
139591}
139592
139593// Header returns an http.Header that can be modified by the caller to
139594// add HTTP headers to the request.
139595func (c *RoutersAggregatedListCall) Header() http.Header {
139596	if c.header_ == nil {
139597		c.header_ = make(http.Header)
139598	}
139599	return c.header_
139600}
139601
139602func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
139603	reqHeaders := make(http.Header)
139604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
139605	for k, v := range c.header_ {
139606		reqHeaders[k] = v
139607	}
139608	reqHeaders.Set("User-Agent", c.s.userAgent())
139609	if c.ifNoneMatch_ != "" {
139610		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139611	}
139612	var body io.Reader = nil
139613	c.urlParams_.Set("alt", alt)
139614	c.urlParams_.Set("prettyPrint", "false")
139615	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers")
139616	urls += "?" + c.urlParams_.Encode()
139617	req, err := http.NewRequest("GET", urls, body)
139618	if err != nil {
139619		return nil, err
139620	}
139621	req.Header = reqHeaders
139622	googleapi.Expand(req.URL, map[string]string{
139623		"project": c.project,
139624	})
139625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139626}
139627
139628// Do executes the "compute.routers.aggregatedList" call.
139629// Exactly one of *RouterAggregatedList or error will be non-nil. Any
139630// non-2xx status code is an error. Response headers are in either
139631// *RouterAggregatedList.ServerResponse.Header or (if a response was
139632// returned at all) in error.(*googleapi.Error).Header. Use
139633// googleapi.IsNotModified to check whether the returned error was
139634// because http.StatusNotModified was returned.
139635func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
139636	gensupport.SetOptions(c.urlParams_, opts...)
139637	res, err := c.doRequest("json")
139638	if res != nil && res.StatusCode == http.StatusNotModified {
139639		if res.Body != nil {
139640			res.Body.Close()
139641		}
139642		return nil, &googleapi.Error{
139643			Code:   res.StatusCode,
139644			Header: res.Header,
139645		}
139646	}
139647	if err != nil {
139648		return nil, err
139649	}
139650	defer googleapi.CloseBody(res)
139651	if err := googleapi.CheckResponse(res); err != nil {
139652		return nil, err
139653	}
139654	ret := &RouterAggregatedList{
139655		ServerResponse: googleapi.ServerResponse{
139656			Header:         res.Header,
139657			HTTPStatusCode: res.StatusCode,
139658		},
139659	}
139660	target := &ret
139661	if err := gensupport.DecodeResponse(target, res); err != nil {
139662		return nil, err
139663	}
139664	return ret, nil
139665	// {
139666	//   "description": "Retrieves an aggregated list of routers.",
139667	//   "flatPath": "projects/{project}/aggregated/routers",
139668	//   "httpMethod": "GET",
139669	//   "id": "compute.routers.aggregatedList",
139670	//   "parameterOrder": [
139671	//     "project"
139672	//   ],
139673	//   "parameters": {
139674	//     "filter": {
139675	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
139676	//       "location": "query",
139677	//       "type": "string"
139678	//     },
139679	//     "includeAllScopes": {
139680	//       "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.",
139681	//       "location": "query",
139682	//       "type": "boolean"
139683	//     },
139684	//     "maxResults": {
139685	//       "default": "500",
139686	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139687	//       "format": "uint32",
139688	//       "location": "query",
139689	//       "minimum": "0",
139690	//       "type": "integer"
139691	//     },
139692	//     "orderBy": {
139693	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
139694	//       "location": "query",
139695	//       "type": "string"
139696	//     },
139697	//     "pageToken": {
139698	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139699	//       "location": "query",
139700	//       "type": "string"
139701	//     },
139702	//     "project": {
139703	//       "description": "Project ID for this request.",
139704	//       "location": "path",
139705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139706	//       "required": true,
139707	//       "type": "string"
139708	//     },
139709	//     "returnPartialSuccess": {
139710	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
139711	//       "location": "query",
139712	//       "type": "boolean"
139713	//     }
139714	//   },
139715	//   "path": "projects/{project}/aggregated/routers",
139716	//   "response": {
139717	//     "$ref": "RouterAggregatedList"
139718	//   },
139719	//   "scopes": [
139720	//     "https://www.googleapis.com/auth/cloud-platform",
139721	//     "https://www.googleapis.com/auth/compute",
139722	//     "https://www.googleapis.com/auth/compute.readonly"
139723	//   ]
139724	// }
139725
139726}
139727
139728// Pages invokes f for each page of results.
139729// A non-nil error returned from f will halt the iteration.
139730// The provided context supersedes any context provided to the Context method.
139731func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
139732	c.ctx_ = ctx
139733	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139734	for {
139735		x, err := c.Do()
139736		if err != nil {
139737			return err
139738		}
139739		if err := f(x); err != nil {
139740			return err
139741		}
139742		if x.NextPageToken == "" {
139743			return nil
139744		}
139745		c.PageToken(x.NextPageToken)
139746	}
139747}
139748
139749// method id "compute.routers.delete":
139750
139751type RoutersDeleteCall struct {
139752	s          *Service
139753	project    string
139754	region     string
139755	router     string
139756	urlParams_ gensupport.URLParams
139757	ctx_       context.Context
139758	header_    http.Header
139759}
139760
139761// Delete: Deletes the specified Router resource.
139762//
139763// - project: Project ID for this request.
139764// - region: Name of the region for this request.
139765// - router: Name of the Router resource to delete.
139766func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
139767	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139768	c.project = project
139769	c.region = region
139770	c.router = router
139771	return c
139772}
139773
139774// RequestId sets the optional parameter "requestId": An optional
139775// request ID to identify requests. Specify a unique request ID so that
139776// if you must retry your request, the server will know to ignore the
139777// request if it has already been completed. For example, consider a
139778// situation where you make an initial request and the request times
139779// out. If you make the request again with the same request ID, the
139780// server can check if original operation with the same request ID was
139781// received, and if so, will ignore the second request. This prevents
139782// clients from accidentally creating duplicate commitments. The request
139783// ID must be a valid UUID with the exception that zero UUID is not
139784// supported ( 00000000-0000-0000-0000-000000000000).
139785func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
139786	c.urlParams_.Set("requestId", requestId)
139787	return c
139788}
139789
139790// Fields allows partial responses to be retrieved. See
139791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139792// for more information.
139793func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
139794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139795	return c
139796}
139797
139798// Context sets the context to be used in this call's Do method. Any
139799// pending HTTP request will be aborted if the provided context is
139800// canceled.
139801func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
139802	c.ctx_ = ctx
139803	return c
139804}
139805
139806// Header returns an http.Header that can be modified by the caller to
139807// add HTTP headers to the request.
139808func (c *RoutersDeleteCall) Header() http.Header {
139809	if c.header_ == nil {
139810		c.header_ = make(http.Header)
139811	}
139812	return c.header_
139813}
139814
139815func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
139816	reqHeaders := make(http.Header)
139817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
139818	for k, v := range c.header_ {
139819		reqHeaders[k] = v
139820	}
139821	reqHeaders.Set("User-Agent", c.s.userAgent())
139822	var body io.Reader = nil
139823	c.urlParams_.Set("alt", alt)
139824	c.urlParams_.Set("prettyPrint", "false")
139825	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
139826	urls += "?" + c.urlParams_.Encode()
139827	req, err := http.NewRequest("DELETE", urls, body)
139828	if err != nil {
139829		return nil, err
139830	}
139831	req.Header = reqHeaders
139832	googleapi.Expand(req.URL, map[string]string{
139833		"project": c.project,
139834		"region":  c.region,
139835		"router":  c.router,
139836	})
139837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139838}
139839
139840// Do executes the "compute.routers.delete" call.
139841// Exactly one of *Operation or error will be non-nil. Any non-2xx
139842// status code is an error. Response headers are in either
139843// *Operation.ServerResponse.Header or (if a response was returned at
139844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139845// to check whether the returned error was because
139846// http.StatusNotModified was returned.
139847func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139848	gensupport.SetOptions(c.urlParams_, opts...)
139849	res, err := c.doRequest("json")
139850	if res != nil && res.StatusCode == http.StatusNotModified {
139851		if res.Body != nil {
139852			res.Body.Close()
139853		}
139854		return nil, &googleapi.Error{
139855			Code:   res.StatusCode,
139856			Header: res.Header,
139857		}
139858	}
139859	if err != nil {
139860		return nil, err
139861	}
139862	defer googleapi.CloseBody(res)
139863	if err := googleapi.CheckResponse(res); err != nil {
139864		return nil, err
139865	}
139866	ret := &Operation{
139867		ServerResponse: googleapi.ServerResponse{
139868			Header:         res.Header,
139869			HTTPStatusCode: res.StatusCode,
139870		},
139871	}
139872	target := &ret
139873	if err := gensupport.DecodeResponse(target, res); err != nil {
139874		return nil, err
139875	}
139876	return ret, nil
139877	// {
139878	//   "description": "Deletes the specified Router resource.",
139879	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
139880	//   "httpMethod": "DELETE",
139881	//   "id": "compute.routers.delete",
139882	//   "parameterOrder": [
139883	//     "project",
139884	//     "region",
139885	//     "router"
139886	//   ],
139887	//   "parameters": {
139888	//     "project": {
139889	//       "description": "Project ID for this request.",
139890	//       "location": "path",
139891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139892	//       "required": true,
139893	//       "type": "string"
139894	//     },
139895	//     "region": {
139896	//       "description": "Name of the region for this request.",
139897	//       "location": "path",
139898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139899	//       "required": true,
139900	//       "type": "string"
139901	//     },
139902	//     "requestId": {
139903	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
139904	//       "location": "query",
139905	//       "type": "string"
139906	//     },
139907	//     "router": {
139908	//       "description": "Name of the Router resource to delete.",
139909	//       "location": "path",
139910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139911	//       "required": true,
139912	//       "type": "string"
139913	//     }
139914	//   },
139915	//   "path": "projects/{project}/regions/{region}/routers/{router}",
139916	//   "response": {
139917	//     "$ref": "Operation"
139918	//   },
139919	//   "scopes": [
139920	//     "https://www.googleapis.com/auth/cloud-platform",
139921	//     "https://www.googleapis.com/auth/compute"
139922	//   ]
139923	// }
139924
139925}
139926
139927// method id "compute.routers.get":
139928
139929type RoutersGetCall struct {
139930	s            *Service
139931	project      string
139932	region       string
139933	router       string
139934	urlParams_   gensupport.URLParams
139935	ifNoneMatch_ string
139936	ctx_         context.Context
139937	header_      http.Header
139938}
139939
139940// Get: Returns the specified Router resource. Gets a list of available
139941// routers by making a list() request.
139942//
139943// - project: Project ID for this request.
139944// - region: Name of the region for this request.
139945// - router: Name of the Router resource to return.
139946func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
139947	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139948	c.project = project
139949	c.region = region
139950	c.router = router
139951	return c
139952}
139953
139954// Fields allows partial responses to be retrieved. See
139955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139956// for more information.
139957func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
139958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139959	return c
139960}
139961
139962// IfNoneMatch sets the optional parameter which makes the operation
139963// fail if the object's ETag matches the given value. This is useful for
139964// getting updates only after the object has changed since the last
139965// request. Use googleapi.IsNotModified to check whether the response
139966// error from Do is the result of In-None-Match.
139967func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
139968	c.ifNoneMatch_ = entityTag
139969	return c
139970}
139971
139972// Context sets the context to be used in this call's Do method. Any
139973// pending HTTP request will be aborted if the provided context is
139974// canceled.
139975func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
139976	c.ctx_ = ctx
139977	return c
139978}
139979
139980// Header returns an http.Header that can be modified by the caller to
139981// add HTTP headers to the request.
139982func (c *RoutersGetCall) Header() http.Header {
139983	if c.header_ == nil {
139984		c.header_ = make(http.Header)
139985	}
139986	return c.header_
139987}
139988
139989func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
139990	reqHeaders := make(http.Header)
139991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
139992	for k, v := range c.header_ {
139993		reqHeaders[k] = v
139994	}
139995	reqHeaders.Set("User-Agent", c.s.userAgent())
139996	if c.ifNoneMatch_ != "" {
139997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139998	}
139999	var body io.Reader = nil
140000	c.urlParams_.Set("alt", alt)
140001	c.urlParams_.Set("prettyPrint", "false")
140002	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
140003	urls += "?" + c.urlParams_.Encode()
140004	req, err := http.NewRequest("GET", urls, body)
140005	if err != nil {
140006		return nil, err
140007	}
140008	req.Header = reqHeaders
140009	googleapi.Expand(req.URL, map[string]string{
140010		"project": c.project,
140011		"region":  c.region,
140012		"router":  c.router,
140013	})
140014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140015}
140016
140017// Do executes the "compute.routers.get" call.
140018// Exactly one of *Router or error will be non-nil. Any non-2xx status
140019// code is an error. Response headers are in either
140020// *Router.ServerResponse.Header or (if a response was returned at all)
140021// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140022// check whether the returned error was because http.StatusNotModified
140023// was returned.
140024func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
140025	gensupport.SetOptions(c.urlParams_, opts...)
140026	res, err := c.doRequest("json")
140027	if res != nil && res.StatusCode == http.StatusNotModified {
140028		if res.Body != nil {
140029			res.Body.Close()
140030		}
140031		return nil, &googleapi.Error{
140032			Code:   res.StatusCode,
140033			Header: res.Header,
140034		}
140035	}
140036	if err != nil {
140037		return nil, err
140038	}
140039	defer googleapi.CloseBody(res)
140040	if err := googleapi.CheckResponse(res); err != nil {
140041		return nil, err
140042	}
140043	ret := &Router{
140044		ServerResponse: googleapi.ServerResponse{
140045			Header:         res.Header,
140046			HTTPStatusCode: res.StatusCode,
140047		},
140048	}
140049	target := &ret
140050	if err := gensupport.DecodeResponse(target, res); err != nil {
140051		return nil, err
140052	}
140053	return ret, nil
140054	// {
140055	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
140056	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
140057	//   "httpMethod": "GET",
140058	//   "id": "compute.routers.get",
140059	//   "parameterOrder": [
140060	//     "project",
140061	//     "region",
140062	//     "router"
140063	//   ],
140064	//   "parameters": {
140065	//     "project": {
140066	//       "description": "Project ID for this request.",
140067	//       "location": "path",
140068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140069	//       "required": true,
140070	//       "type": "string"
140071	//     },
140072	//     "region": {
140073	//       "description": "Name of the region for this request.",
140074	//       "location": "path",
140075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140076	//       "required": true,
140077	//       "type": "string"
140078	//     },
140079	//     "router": {
140080	//       "description": "Name of the Router resource to return.",
140081	//       "location": "path",
140082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140083	//       "required": true,
140084	//       "type": "string"
140085	//     }
140086	//   },
140087	//   "path": "projects/{project}/regions/{region}/routers/{router}",
140088	//   "response": {
140089	//     "$ref": "Router"
140090	//   },
140091	//   "scopes": [
140092	//     "https://www.googleapis.com/auth/cloud-platform",
140093	//     "https://www.googleapis.com/auth/compute",
140094	//     "https://www.googleapis.com/auth/compute.readonly"
140095	//   ]
140096	// }
140097
140098}
140099
140100// method id "compute.routers.getNatMappingInfo":
140101
140102type RoutersGetNatMappingInfoCall struct {
140103	s            *Service
140104	project      string
140105	region       string
140106	router       string
140107	urlParams_   gensupport.URLParams
140108	ifNoneMatch_ string
140109	ctx_         context.Context
140110	header_      http.Header
140111}
140112
140113// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
140114// endpoints.
140115//
140116// - project: Project ID for this request.
140117// - region: Name of the region for this request.
140118// - router: Name of the Router resource to query for Nat Mapping
140119//   information of VM endpoints.
140120func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
140121	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140122	c.project = project
140123	c.region = region
140124	c.router = router
140125	return c
140126}
140127
140128// Filter sets the optional parameter "filter": A filter expression that
140129// filters resources listed in the response. The expression must specify
140130// the field name, a comparison operator, and the value that you want to
140131// use for filtering. The value must be a string, a number, or a
140132// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140133// `<`. For example, if you are filtering Compute Engine instances, you
140134// can exclude instances named `example-instance` by specifying `name !=
140135// example-instance`. You can also filter nested fields. For example,
140136// you could specify `scheduling.automaticRestart = false` to include
140137// instances only if they are not scheduled for automatic restarts. You
140138// can use filtering on nested fields to filter based on resource
140139// labels. To filter on multiple expressions, provide each separate
140140// expression within parentheses. For example: ```
140141// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
140142// ``` By default, each expression is an `AND` expression. However, you
140143// can include `AND` and `OR` expressions explicitly. For example: ```
140144// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
140145// AND (scheduling.automaticRestart = true) ```
140146func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
140147	c.urlParams_.Set("filter", filter)
140148	return c
140149}
140150
140151// MaxResults sets the optional parameter "maxResults": The maximum
140152// number of results per page that should be returned. If the number of
140153// available results is larger than `maxResults`, Compute Engine returns
140154// a `nextPageToken` that can be used to get the next page of results in
140155// subsequent list requests. Acceptable values are `0` to `500`,
140156// inclusive. (Default: `500`)
140157func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
140158	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140159	return c
140160}
140161
140162// OrderBy sets the optional parameter "orderBy": Sorts list results by
140163// a certain order. By default, results are returned in alphanumerical
140164// order based on the resource name. You can also sort results in
140165// descending order based on the creation timestamp using
140166// `orderBy="creationTimestamp desc". This sorts results based on the
140167// `creationTimestamp` field in reverse chronological order (newest
140168// result first). Use this to sort resources like operations so that the
140169// newest operation is returned first. Currently, only sorting by `name`
140170// or `creationTimestamp desc` is supported.
140171func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
140172	c.urlParams_.Set("orderBy", orderBy)
140173	return c
140174}
140175
140176// PageToken sets the optional parameter "pageToken": Specifies a page
140177// token to use. Set `pageToken` to the `nextPageToken` returned by a
140178// previous list request to get the next page of results.
140179func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
140180	c.urlParams_.Set("pageToken", pageToken)
140181	return c
140182}
140183
140184// ReturnPartialSuccess sets the optional parameter
140185// "returnPartialSuccess": Opt-in for partial success behavior which
140186// provides partial results in case of failure. The default value is
140187// false.
140188func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
140189	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140190	return c
140191}
140192
140193// Fields allows partial responses to be retrieved. See
140194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140195// for more information.
140196func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
140197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140198	return c
140199}
140200
140201// IfNoneMatch sets the optional parameter which makes the operation
140202// fail if the object's ETag matches the given value. This is useful for
140203// getting updates only after the object has changed since the last
140204// request. Use googleapi.IsNotModified to check whether the response
140205// error from Do is the result of In-None-Match.
140206func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
140207	c.ifNoneMatch_ = entityTag
140208	return c
140209}
140210
140211// Context sets the context to be used in this call's Do method. Any
140212// pending HTTP request will be aborted if the provided context is
140213// canceled.
140214func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
140215	c.ctx_ = ctx
140216	return c
140217}
140218
140219// Header returns an http.Header that can be modified by the caller to
140220// add HTTP headers to the request.
140221func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
140222	if c.header_ == nil {
140223		c.header_ = make(http.Header)
140224	}
140225	return c.header_
140226}
140227
140228func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
140229	reqHeaders := make(http.Header)
140230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
140231	for k, v := range c.header_ {
140232		reqHeaders[k] = v
140233	}
140234	reqHeaders.Set("User-Agent", c.s.userAgent())
140235	if c.ifNoneMatch_ != "" {
140236		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140237	}
140238	var body io.Reader = nil
140239	c.urlParams_.Set("alt", alt)
140240	c.urlParams_.Set("prettyPrint", "false")
140241	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo")
140242	urls += "?" + c.urlParams_.Encode()
140243	req, err := http.NewRequest("GET", urls, body)
140244	if err != nil {
140245		return nil, err
140246	}
140247	req.Header = reqHeaders
140248	googleapi.Expand(req.URL, map[string]string{
140249		"project": c.project,
140250		"region":  c.region,
140251		"router":  c.router,
140252	})
140253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140254}
140255
140256// Do executes the "compute.routers.getNatMappingInfo" call.
140257// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
140258// Any non-2xx status code is an error. Response headers are in either
140259// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
140260// was returned at all) in error.(*googleapi.Error).Header. Use
140261// googleapi.IsNotModified to check whether the returned error was
140262// because http.StatusNotModified was returned.
140263func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
140264	gensupport.SetOptions(c.urlParams_, opts...)
140265	res, err := c.doRequest("json")
140266	if res != nil && res.StatusCode == http.StatusNotModified {
140267		if res.Body != nil {
140268			res.Body.Close()
140269		}
140270		return nil, &googleapi.Error{
140271			Code:   res.StatusCode,
140272			Header: res.Header,
140273		}
140274	}
140275	if err != nil {
140276		return nil, err
140277	}
140278	defer googleapi.CloseBody(res)
140279	if err := googleapi.CheckResponse(res); err != nil {
140280		return nil, err
140281	}
140282	ret := &VmEndpointNatMappingsList{
140283		ServerResponse: googleapi.ServerResponse{
140284			Header:         res.Header,
140285			HTTPStatusCode: res.StatusCode,
140286		},
140287	}
140288	target := &ret
140289	if err := gensupport.DecodeResponse(target, res); err != nil {
140290		return nil, err
140291	}
140292	return ret, nil
140293	// {
140294	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
140295	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
140296	//   "httpMethod": "GET",
140297	//   "id": "compute.routers.getNatMappingInfo",
140298	//   "parameterOrder": [
140299	//     "project",
140300	//     "region",
140301	//     "router"
140302	//   ],
140303	//   "parameters": {
140304	//     "filter": {
140305	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140306	//       "location": "query",
140307	//       "type": "string"
140308	//     },
140309	//     "maxResults": {
140310	//       "default": "500",
140311	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140312	//       "format": "uint32",
140313	//       "location": "query",
140314	//       "minimum": "0",
140315	//       "type": "integer"
140316	//     },
140317	//     "orderBy": {
140318	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
140319	//       "location": "query",
140320	//       "type": "string"
140321	//     },
140322	//     "pageToken": {
140323	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140324	//       "location": "query",
140325	//       "type": "string"
140326	//     },
140327	//     "project": {
140328	//       "description": "Project ID for this request.",
140329	//       "location": "path",
140330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140331	//       "required": true,
140332	//       "type": "string"
140333	//     },
140334	//     "region": {
140335	//       "description": "Name of the region for this request.",
140336	//       "location": "path",
140337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140338	//       "required": true,
140339	//       "type": "string"
140340	//     },
140341	//     "returnPartialSuccess": {
140342	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140343	//       "location": "query",
140344	//       "type": "boolean"
140345	//     },
140346	//     "router": {
140347	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
140348	//       "location": "path",
140349	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140350	//       "required": true,
140351	//       "type": "string"
140352	//     }
140353	//   },
140354	//   "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
140355	//   "response": {
140356	//     "$ref": "VmEndpointNatMappingsList"
140357	//   },
140358	//   "scopes": [
140359	//     "https://www.googleapis.com/auth/cloud-platform",
140360	//     "https://www.googleapis.com/auth/compute",
140361	//     "https://www.googleapis.com/auth/compute.readonly"
140362	//   ]
140363	// }
140364
140365}
140366
140367// Pages invokes f for each page of results.
140368// A non-nil error returned from f will halt the iteration.
140369// The provided context supersedes any context provided to the Context method.
140370func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
140371	c.ctx_ = ctx
140372	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140373	for {
140374		x, err := c.Do()
140375		if err != nil {
140376			return err
140377		}
140378		if err := f(x); err != nil {
140379			return err
140380		}
140381		if x.NextPageToken == "" {
140382			return nil
140383		}
140384		c.PageToken(x.NextPageToken)
140385	}
140386}
140387
140388// method id "compute.routers.getRouterStatus":
140389
140390type RoutersGetRouterStatusCall struct {
140391	s            *Service
140392	project      string
140393	region       string
140394	router       string
140395	urlParams_   gensupport.URLParams
140396	ifNoneMatch_ string
140397	ctx_         context.Context
140398	header_      http.Header
140399}
140400
140401// GetRouterStatus: Retrieves runtime information of the specified
140402// router.
140403//
140404// - project: Project ID for this request.
140405// - region: Name of the region for this request.
140406// - router: Name of the Router resource to query.
140407func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
140408	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140409	c.project = project
140410	c.region = region
140411	c.router = router
140412	return c
140413}
140414
140415// Fields allows partial responses to be retrieved. See
140416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140417// for more information.
140418func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
140419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140420	return c
140421}
140422
140423// IfNoneMatch sets the optional parameter which makes the operation
140424// fail if the object's ETag matches the given value. This is useful for
140425// getting updates only after the object has changed since the last
140426// request. Use googleapi.IsNotModified to check whether the response
140427// error from Do is the result of In-None-Match.
140428func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
140429	c.ifNoneMatch_ = entityTag
140430	return c
140431}
140432
140433// Context sets the context to be used in this call's Do method. Any
140434// pending HTTP request will be aborted if the provided context is
140435// canceled.
140436func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
140437	c.ctx_ = ctx
140438	return c
140439}
140440
140441// Header returns an http.Header that can be modified by the caller to
140442// add HTTP headers to the request.
140443func (c *RoutersGetRouterStatusCall) Header() http.Header {
140444	if c.header_ == nil {
140445		c.header_ = make(http.Header)
140446	}
140447	return c.header_
140448}
140449
140450func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
140451	reqHeaders := make(http.Header)
140452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
140453	for k, v := range c.header_ {
140454		reqHeaders[k] = v
140455	}
140456	reqHeaders.Set("User-Agent", c.s.userAgent())
140457	if c.ifNoneMatch_ != "" {
140458		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140459	}
140460	var body io.Reader = nil
140461	c.urlParams_.Set("alt", alt)
140462	c.urlParams_.Set("prettyPrint", "false")
140463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus")
140464	urls += "?" + c.urlParams_.Encode()
140465	req, err := http.NewRequest("GET", urls, body)
140466	if err != nil {
140467		return nil, err
140468	}
140469	req.Header = reqHeaders
140470	googleapi.Expand(req.URL, map[string]string{
140471		"project": c.project,
140472		"region":  c.region,
140473		"router":  c.router,
140474	})
140475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140476}
140477
140478// Do executes the "compute.routers.getRouterStatus" call.
140479// Exactly one of *RouterStatusResponse or error will be non-nil. Any
140480// non-2xx status code is an error. Response headers are in either
140481// *RouterStatusResponse.ServerResponse.Header or (if a response was
140482// returned at all) in error.(*googleapi.Error).Header. Use
140483// googleapi.IsNotModified to check whether the returned error was
140484// because http.StatusNotModified was returned.
140485func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
140486	gensupport.SetOptions(c.urlParams_, opts...)
140487	res, err := c.doRequest("json")
140488	if res != nil && res.StatusCode == http.StatusNotModified {
140489		if res.Body != nil {
140490			res.Body.Close()
140491		}
140492		return nil, &googleapi.Error{
140493			Code:   res.StatusCode,
140494			Header: res.Header,
140495		}
140496	}
140497	if err != nil {
140498		return nil, err
140499	}
140500	defer googleapi.CloseBody(res)
140501	if err := googleapi.CheckResponse(res); err != nil {
140502		return nil, err
140503	}
140504	ret := &RouterStatusResponse{
140505		ServerResponse: googleapi.ServerResponse{
140506			Header:         res.Header,
140507			HTTPStatusCode: res.StatusCode,
140508		},
140509	}
140510	target := &ret
140511	if err := gensupport.DecodeResponse(target, res); err != nil {
140512		return nil, err
140513	}
140514	return ret, nil
140515	// {
140516	//   "description": "Retrieves runtime information of the specified router.",
140517	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
140518	//   "httpMethod": "GET",
140519	//   "id": "compute.routers.getRouterStatus",
140520	//   "parameterOrder": [
140521	//     "project",
140522	//     "region",
140523	//     "router"
140524	//   ],
140525	//   "parameters": {
140526	//     "project": {
140527	//       "description": "Project ID for this request.",
140528	//       "location": "path",
140529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140530	//       "required": true,
140531	//       "type": "string"
140532	//     },
140533	//     "region": {
140534	//       "description": "Name of the region for this request.",
140535	//       "location": "path",
140536	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140537	//       "required": true,
140538	//       "type": "string"
140539	//     },
140540	//     "router": {
140541	//       "description": "Name of the Router resource to query.",
140542	//       "location": "path",
140543	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140544	//       "required": true,
140545	//       "type": "string"
140546	//     }
140547	//   },
140548	//   "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
140549	//   "response": {
140550	//     "$ref": "RouterStatusResponse"
140551	//   },
140552	//   "scopes": [
140553	//     "https://www.googleapis.com/auth/cloud-platform",
140554	//     "https://www.googleapis.com/auth/compute",
140555	//     "https://www.googleapis.com/auth/compute.readonly"
140556	//   ]
140557	// }
140558
140559}
140560
140561// method id "compute.routers.insert":
140562
140563type RoutersInsertCall struct {
140564	s          *Service
140565	project    string
140566	region     string
140567	router     *Router
140568	urlParams_ gensupport.URLParams
140569	ctx_       context.Context
140570	header_    http.Header
140571}
140572
140573// Insert: Creates a Router resource in the specified project and region
140574// using the data included in the request.
140575//
140576// - project: Project ID for this request.
140577// - region: Name of the region for this request.
140578func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
140579	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140580	c.project = project
140581	c.region = region
140582	c.router = router
140583	return c
140584}
140585
140586// RequestId sets the optional parameter "requestId": An optional
140587// request ID to identify requests. Specify a unique request ID so that
140588// if you must retry your request, the server will know to ignore the
140589// request if it has already been completed. For example, consider a
140590// situation where you make an initial request and the request times
140591// out. If you make the request again with the same request ID, the
140592// server can check if original operation with the same request ID was
140593// received, and if so, will ignore the second request. This prevents
140594// clients from accidentally creating duplicate commitments. The request
140595// ID must be a valid UUID with the exception that zero UUID is not
140596// supported ( 00000000-0000-0000-0000-000000000000).
140597func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
140598	c.urlParams_.Set("requestId", requestId)
140599	return c
140600}
140601
140602// Fields allows partial responses to be retrieved. See
140603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140604// for more information.
140605func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
140606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140607	return c
140608}
140609
140610// Context sets the context to be used in this call's Do method. Any
140611// pending HTTP request will be aborted if the provided context is
140612// canceled.
140613func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
140614	c.ctx_ = ctx
140615	return c
140616}
140617
140618// Header returns an http.Header that can be modified by the caller to
140619// add HTTP headers to the request.
140620func (c *RoutersInsertCall) Header() http.Header {
140621	if c.header_ == nil {
140622		c.header_ = make(http.Header)
140623	}
140624	return c.header_
140625}
140626
140627func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
140628	reqHeaders := make(http.Header)
140629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
140630	for k, v := range c.header_ {
140631		reqHeaders[k] = v
140632	}
140633	reqHeaders.Set("User-Agent", c.s.userAgent())
140634	var body io.Reader = nil
140635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
140636	if err != nil {
140637		return nil, err
140638	}
140639	reqHeaders.Set("Content-Type", "application/json")
140640	c.urlParams_.Set("alt", alt)
140641	c.urlParams_.Set("prettyPrint", "false")
140642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
140643	urls += "?" + c.urlParams_.Encode()
140644	req, err := http.NewRequest("POST", urls, body)
140645	if err != nil {
140646		return nil, err
140647	}
140648	req.Header = reqHeaders
140649	googleapi.Expand(req.URL, map[string]string{
140650		"project": c.project,
140651		"region":  c.region,
140652	})
140653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140654}
140655
140656// Do executes the "compute.routers.insert" call.
140657// Exactly one of *Operation or error will be non-nil. Any non-2xx
140658// status code is an error. Response headers are in either
140659// *Operation.ServerResponse.Header or (if a response was returned at
140660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140661// to check whether the returned error was because
140662// http.StatusNotModified was returned.
140663func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140664	gensupport.SetOptions(c.urlParams_, opts...)
140665	res, err := c.doRequest("json")
140666	if res != nil && res.StatusCode == http.StatusNotModified {
140667		if res.Body != nil {
140668			res.Body.Close()
140669		}
140670		return nil, &googleapi.Error{
140671			Code:   res.StatusCode,
140672			Header: res.Header,
140673		}
140674	}
140675	if err != nil {
140676		return nil, err
140677	}
140678	defer googleapi.CloseBody(res)
140679	if err := googleapi.CheckResponse(res); err != nil {
140680		return nil, err
140681	}
140682	ret := &Operation{
140683		ServerResponse: googleapi.ServerResponse{
140684			Header:         res.Header,
140685			HTTPStatusCode: res.StatusCode,
140686		},
140687	}
140688	target := &ret
140689	if err := gensupport.DecodeResponse(target, res); err != nil {
140690		return nil, err
140691	}
140692	return ret, nil
140693	// {
140694	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
140695	//   "flatPath": "projects/{project}/regions/{region}/routers",
140696	//   "httpMethod": "POST",
140697	//   "id": "compute.routers.insert",
140698	//   "parameterOrder": [
140699	//     "project",
140700	//     "region"
140701	//   ],
140702	//   "parameters": {
140703	//     "project": {
140704	//       "description": "Project ID for this request.",
140705	//       "location": "path",
140706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140707	//       "required": true,
140708	//       "type": "string"
140709	//     },
140710	//     "region": {
140711	//       "description": "Name of the region for this request.",
140712	//       "location": "path",
140713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140714	//       "required": true,
140715	//       "type": "string"
140716	//     },
140717	//     "requestId": {
140718	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
140719	//       "location": "query",
140720	//       "type": "string"
140721	//     }
140722	//   },
140723	//   "path": "projects/{project}/regions/{region}/routers",
140724	//   "request": {
140725	//     "$ref": "Router"
140726	//   },
140727	//   "response": {
140728	//     "$ref": "Operation"
140729	//   },
140730	//   "scopes": [
140731	//     "https://www.googleapis.com/auth/cloud-platform",
140732	//     "https://www.googleapis.com/auth/compute"
140733	//   ]
140734	// }
140735
140736}
140737
140738// method id "compute.routers.list":
140739
140740type RoutersListCall struct {
140741	s            *Service
140742	project      string
140743	region       string
140744	urlParams_   gensupport.URLParams
140745	ifNoneMatch_ string
140746	ctx_         context.Context
140747	header_      http.Header
140748}
140749
140750// List: Retrieves a list of Router resources available to the specified
140751// project.
140752//
140753// - project: Project ID for this request.
140754// - region: Name of the region for this request.
140755func (r *RoutersService) List(project string, region string) *RoutersListCall {
140756	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140757	c.project = project
140758	c.region = region
140759	return c
140760}
140761
140762// Filter sets the optional parameter "filter": A filter expression that
140763// filters resources listed in the response. The expression must specify
140764// the field name, a comparison operator, and the value that you want to
140765// use for filtering. The value must be a string, a number, or a
140766// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140767// `<`. For example, if you are filtering Compute Engine instances, you
140768// can exclude instances named `example-instance` by specifying `name !=
140769// example-instance`. You can also filter nested fields. For example,
140770// you could specify `scheduling.automaticRestart = false` to include
140771// instances only if they are not scheduled for automatic restarts. You
140772// can use filtering on nested fields to filter based on resource
140773// labels. To filter on multiple expressions, provide each separate
140774// expression within parentheses. For example: ```
140775// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
140776// ``` By default, each expression is an `AND` expression. However, you
140777// can include `AND` and `OR` expressions explicitly. For example: ```
140778// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
140779// AND (scheduling.automaticRestart = true) ```
140780func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
140781	c.urlParams_.Set("filter", filter)
140782	return c
140783}
140784
140785// MaxResults sets the optional parameter "maxResults": The maximum
140786// number of results per page that should be returned. If the number of
140787// available results is larger than `maxResults`, Compute Engine returns
140788// a `nextPageToken` that can be used to get the next page of results in
140789// subsequent list requests. Acceptable values are `0` to `500`,
140790// inclusive. (Default: `500`)
140791func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
140792	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140793	return c
140794}
140795
140796// OrderBy sets the optional parameter "orderBy": Sorts list results by
140797// a certain order. By default, results are returned in alphanumerical
140798// order based on the resource name. You can also sort results in
140799// descending order based on the creation timestamp using
140800// `orderBy="creationTimestamp desc". This sorts results based on the
140801// `creationTimestamp` field in reverse chronological order (newest
140802// result first). Use this to sort resources like operations so that the
140803// newest operation is returned first. Currently, only sorting by `name`
140804// or `creationTimestamp desc` is supported.
140805func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
140806	c.urlParams_.Set("orderBy", orderBy)
140807	return c
140808}
140809
140810// PageToken sets the optional parameter "pageToken": Specifies a page
140811// token to use. Set `pageToken` to the `nextPageToken` returned by a
140812// previous list request to get the next page of results.
140813func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
140814	c.urlParams_.Set("pageToken", pageToken)
140815	return c
140816}
140817
140818// ReturnPartialSuccess sets the optional parameter
140819// "returnPartialSuccess": Opt-in for partial success behavior which
140820// provides partial results in case of failure. The default value is
140821// false.
140822func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
140823	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140824	return c
140825}
140826
140827// Fields allows partial responses to be retrieved. See
140828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140829// for more information.
140830func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
140831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140832	return c
140833}
140834
140835// IfNoneMatch sets the optional parameter which makes the operation
140836// fail if the object's ETag matches the given value. This is useful for
140837// getting updates only after the object has changed since the last
140838// request. Use googleapi.IsNotModified to check whether the response
140839// error from Do is the result of In-None-Match.
140840func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
140841	c.ifNoneMatch_ = entityTag
140842	return c
140843}
140844
140845// Context sets the context to be used in this call's Do method. Any
140846// pending HTTP request will be aborted if the provided context is
140847// canceled.
140848func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
140849	c.ctx_ = ctx
140850	return c
140851}
140852
140853// Header returns an http.Header that can be modified by the caller to
140854// add HTTP headers to the request.
140855func (c *RoutersListCall) Header() http.Header {
140856	if c.header_ == nil {
140857		c.header_ = make(http.Header)
140858	}
140859	return c.header_
140860}
140861
140862func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
140863	reqHeaders := make(http.Header)
140864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
140865	for k, v := range c.header_ {
140866		reqHeaders[k] = v
140867	}
140868	reqHeaders.Set("User-Agent", c.s.userAgent())
140869	if c.ifNoneMatch_ != "" {
140870		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140871	}
140872	var body io.Reader = nil
140873	c.urlParams_.Set("alt", alt)
140874	c.urlParams_.Set("prettyPrint", "false")
140875	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
140876	urls += "?" + c.urlParams_.Encode()
140877	req, err := http.NewRequest("GET", urls, body)
140878	if err != nil {
140879		return nil, err
140880	}
140881	req.Header = reqHeaders
140882	googleapi.Expand(req.URL, map[string]string{
140883		"project": c.project,
140884		"region":  c.region,
140885	})
140886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140887}
140888
140889// Do executes the "compute.routers.list" call.
140890// Exactly one of *RouterList or error will be non-nil. Any non-2xx
140891// status code is an error. Response headers are in either
140892// *RouterList.ServerResponse.Header or (if a response was returned at
140893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140894// to check whether the returned error was because
140895// http.StatusNotModified was returned.
140896func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
140897	gensupport.SetOptions(c.urlParams_, opts...)
140898	res, err := c.doRequest("json")
140899	if res != nil && res.StatusCode == http.StatusNotModified {
140900		if res.Body != nil {
140901			res.Body.Close()
140902		}
140903		return nil, &googleapi.Error{
140904			Code:   res.StatusCode,
140905			Header: res.Header,
140906		}
140907	}
140908	if err != nil {
140909		return nil, err
140910	}
140911	defer googleapi.CloseBody(res)
140912	if err := googleapi.CheckResponse(res); err != nil {
140913		return nil, err
140914	}
140915	ret := &RouterList{
140916		ServerResponse: googleapi.ServerResponse{
140917			Header:         res.Header,
140918			HTTPStatusCode: res.StatusCode,
140919		},
140920	}
140921	target := &ret
140922	if err := gensupport.DecodeResponse(target, res); err != nil {
140923		return nil, err
140924	}
140925	return ret, nil
140926	// {
140927	//   "description": "Retrieves a list of Router resources available to the specified project.",
140928	//   "flatPath": "projects/{project}/regions/{region}/routers",
140929	//   "httpMethod": "GET",
140930	//   "id": "compute.routers.list",
140931	//   "parameterOrder": [
140932	//     "project",
140933	//     "region"
140934	//   ],
140935	//   "parameters": {
140936	//     "filter": {
140937	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140938	//       "location": "query",
140939	//       "type": "string"
140940	//     },
140941	//     "maxResults": {
140942	//       "default": "500",
140943	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140944	//       "format": "uint32",
140945	//       "location": "query",
140946	//       "minimum": "0",
140947	//       "type": "integer"
140948	//     },
140949	//     "orderBy": {
140950	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
140951	//       "location": "query",
140952	//       "type": "string"
140953	//     },
140954	//     "pageToken": {
140955	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140956	//       "location": "query",
140957	//       "type": "string"
140958	//     },
140959	//     "project": {
140960	//       "description": "Project ID for this request.",
140961	//       "location": "path",
140962	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140963	//       "required": true,
140964	//       "type": "string"
140965	//     },
140966	//     "region": {
140967	//       "description": "Name of the region for this request.",
140968	//       "location": "path",
140969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140970	//       "required": true,
140971	//       "type": "string"
140972	//     },
140973	//     "returnPartialSuccess": {
140974	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140975	//       "location": "query",
140976	//       "type": "boolean"
140977	//     }
140978	//   },
140979	//   "path": "projects/{project}/regions/{region}/routers",
140980	//   "response": {
140981	//     "$ref": "RouterList"
140982	//   },
140983	//   "scopes": [
140984	//     "https://www.googleapis.com/auth/cloud-platform",
140985	//     "https://www.googleapis.com/auth/compute",
140986	//     "https://www.googleapis.com/auth/compute.readonly"
140987	//   ]
140988	// }
140989
140990}
140991
140992// Pages invokes f for each page of results.
140993// A non-nil error returned from f will halt the iteration.
140994// The provided context supersedes any context provided to the Context method.
140995func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
140996	c.ctx_ = ctx
140997	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140998	for {
140999		x, err := c.Do()
141000		if err != nil {
141001			return err
141002		}
141003		if err := f(x); err != nil {
141004			return err
141005		}
141006		if x.NextPageToken == "" {
141007			return nil
141008		}
141009		c.PageToken(x.NextPageToken)
141010	}
141011}
141012
141013// method id "compute.routers.patch":
141014
141015type RoutersPatchCall struct {
141016	s          *Service
141017	project    string
141018	region     string
141019	router     string
141020	router2    *Router
141021	urlParams_ gensupport.URLParams
141022	ctx_       context.Context
141023	header_    http.Header
141024}
141025
141026// Patch: Patches the specified Router resource with the data included
141027// in the request. This method supports PATCH semantics and uses JSON
141028// merge patch format and processing rules.
141029//
141030// - project: Project ID for this request.
141031// - region: Name of the region for this request.
141032// - router: Name of the Router resource to patch.
141033func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
141034	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141035	c.project = project
141036	c.region = region
141037	c.router = router
141038	c.router2 = router2
141039	return c
141040}
141041
141042// RequestId sets the optional parameter "requestId": An optional
141043// request ID to identify requests. Specify a unique request ID so that
141044// if you must retry your request, the server will know to ignore the
141045// request if it has already been completed. For example, consider a
141046// situation where you make an initial request and the request times
141047// out. If you make the request again with the same request ID, the
141048// server can check if original operation with the same request ID was
141049// received, and if so, will ignore the second request. This prevents
141050// clients from accidentally creating duplicate commitments. The request
141051// ID must be a valid UUID with the exception that zero UUID is not
141052// supported ( 00000000-0000-0000-0000-000000000000).
141053func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
141054	c.urlParams_.Set("requestId", requestId)
141055	return c
141056}
141057
141058// Fields allows partial responses to be retrieved. See
141059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141060// for more information.
141061func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
141062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141063	return c
141064}
141065
141066// Context sets the context to be used in this call's Do method. Any
141067// pending HTTP request will be aborted if the provided context is
141068// canceled.
141069func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
141070	c.ctx_ = ctx
141071	return c
141072}
141073
141074// Header returns an http.Header that can be modified by the caller to
141075// add HTTP headers to the request.
141076func (c *RoutersPatchCall) Header() http.Header {
141077	if c.header_ == nil {
141078		c.header_ = make(http.Header)
141079	}
141080	return c.header_
141081}
141082
141083func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
141084	reqHeaders := make(http.Header)
141085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141086	for k, v := range c.header_ {
141087		reqHeaders[k] = v
141088	}
141089	reqHeaders.Set("User-Agent", c.s.userAgent())
141090	var body io.Reader = nil
141091	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141092	if err != nil {
141093		return nil, err
141094	}
141095	reqHeaders.Set("Content-Type", "application/json")
141096	c.urlParams_.Set("alt", alt)
141097	c.urlParams_.Set("prettyPrint", "false")
141098	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
141099	urls += "?" + c.urlParams_.Encode()
141100	req, err := http.NewRequest("PATCH", urls, body)
141101	if err != nil {
141102		return nil, err
141103	}
141104	req.Header = reqHeaders
141105	googleapi.Expand(req.URL, map[string]string{
141106		"project": c.project,
141107		"region":  c.region,
141108		"router":  c.router,
141109	})
141110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141111}
141112
141113// Do executes the "compute.routers.patch" call.
141114// Exactly one of *Operation or error will be non-nil. Any non-2xx
141115// status code is an error. Response headers are in either
141116// *Operation.ServerResponse.Header or (if a response was returned at
141117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141118// to check whether the returned error was because
141119// http.StatusNotModified was returned.
141120func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141121	gensupport.SetOptions(c.urlParams_, opts...)
141122	res, err := c.doRequest("json")
141123	if res != nil && res.StatusCode == http.StatusNotModified {
141124		if res.Body != nil {
141125			res.Body.Close()
141126		}
141127		return nil, &googleapi.Error{
141128			Code:   res.StatusCode,
141129			Header: res.Header,
141130		}
141131	}
141132	if err != nil {
141133		return nil, err
141134	}
141135	defer googleapi.CloseBody(res)
141136	if err := googleapi.CheckResponse(res); err != nil {
141137		return nil, err
141138	}
141139	ret := &Operation{
141140		ServerResponse: googleapi.ServerResponse{
141141			Header:         res.Header,
141142			HTTPStatusCode: res.StatusCode,
141143		},
141144	}
141145	target := &ret
141146	if err := gensupport.DecodeResponse(target, res); err != nil {
141147		return nil, err
141148	}
141149	return ret, nil
141150	// {
141151	//   "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.",
141152	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
141153	//   "httpMethod": "PATCH",
141154	//   "id": "compute.routers.patch",
141155	//   "parameterOrder": [
141156	//     "project",
141157	//     "region",
141158	//     "router"
141159	//   ],
141160	//   "parameters": {
141161	//     "project": {
141162	//       "description": "Project ID for this request.",
141163	//       "location": "path",
141164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141165	//       "required": true,
141166	//       "type": "string"
141167	//     },
141168	//     "region": {
141169	//       "description": "Name of the region for this request.",
141170	//       "location": "path",
141171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141172	//       "required": true,
141173	//       "type": "string"
141174	//     },
141175	//     "requestId": {
141176	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141177	//       "location": "query",
141178	//       "type": "string"
141179	//     },
141180	//     "router": {
141181	//       "description": "Name of the Router resource to patch.",
141182	//       "location": "path",
141183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141184	//       "required": true,
141185	//       "type": "string"
141186	//     }
141187	//   },
141188	//   "path": "projects/{project}/regions/{region}/routers/{router}",
141189	//   "request": {
141190	//     "$ref": "Router"
141191	//   },
141192	//   "response": {
141193	//     "$ref": "Operation"
141194	//   },
141195	//   "scopes": [
141196	//     "https://www.googleapis.com/auth/cloud-platform",
141197	//     "https://www.googleapis.com/auth/compute"
141198	//   ]
141199	// }
141200
141201}
141202
141203// method id "compute.routers.preview":
141204
141205type RoutersPreviewCall struct {
141206	s          *Service
141207	project    string
141208	region     string
141209	router     string
141210	router2    *Router
141211	urlParams_ gensupport.URLParams
141212	ctx_       context.Context
141213	header_    http.Header
141214}
141215
141216// Preview: Preview fields auto-generated during router create and
141217// update operations. Calling this method does NOT create or update the
141218// router.
141219//
141220// - project: Project ID for this request.
141221// - region: Name of the region for this request.
141222// - router: Name of the Router resource to query.
141223func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
141224	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141225	c.project = project
141226	c.region = region
141227	c.router = router
141228	c.router2 = router2
141229	return c
141230}
141231
141232// Fields allows partial responses to be retrieved. See
141233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141234// for more information.
141235func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
141236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141237	return c
141238}
141239
141240// Context sets the context to be used in this call's Do method. Any
141241// pending HTTP request will be aborted if the provided context is
141242// canceled.
141243func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
141244	c.ctx_ = ctx
141245	return c
141246}
141247
141248// Header returns an http.Header that can be modified by the caller to
141249// add HTTP headers to the request.
141250func (c *RoutersPreviewCall) Header() http.Header {
141251	if c.header_ == nil {
141252		c.header_ = make(http.Header)
141253	}
141254	return c.header_
141255}
141256
141257func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
141258	reqHeaders := make(http.Header)
141259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141260	for k, v := range c.header_ {
141261		reqHeaders[k] = v
141262	}
141263	reqHeaders.Set("User-Agent", c.s.userAgent())
141264	var body io.Reader = nil
141265	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141266	if err != nil {
141267		return nil, err
141268	}
141269	reqHeaders.Set("Content-Type", "application/json")
141270	c.urlParams_.Set("alt", alt)
141271	c.urlParams_.Set("prettyPrint", "false")
141272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview")
141273	urls += "?" + c.urlParams_.Encode()
141274	req, err := http.NewRequest("POST", urls, body)
141275	if err != nil {
141276		return nil, err
141277	}
141278	req.Header = reqHeaders
141279	googleapi.Expand(req.URL, map[string]string{
141280		"project": c.project,
141281		"region":  c.region,
141282		"router":  c.router,
141283	})
141284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141285}
141286
141287// Do executes the "compute.routers.preview" call.
141288// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
141289// non-2xx status code is an error. Response headers are in either
141290// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
141291// returned at all) in error.(*googleapi.Error).Header. Use
141292// googleapi.IsNotModified to check whether the returned error was
141293// because http.StatusNotModified was returned.
141294func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
141295	gensupport.SetOptions(c.urlParams_, opts...)
141296	res, err := c.doRequest("json")
141297	if res != nil && res.StatusCode == http.StatusNotModified {
141298		if res.Body != nil {
141299			res.Body.Close()
141300		}
141301		return nil, &googleapi.Error{
141302			Code:   res.StatusCode,
141303			Header: res.Header,
141304		}
141305	}
141306	if err != nil {
141307		return nil, err
141308	}
141309	defer googleapi.CloseBody(res)
141310	if err := googleapi.CheckResponse(res); err != nil {
141311		return nil, err
141312	}
141313	ret := &RoutersPreviewResponse{
141314		ServerResponse: googleapi.ServerResponse{
141315			Header:         res.Header,
141316			HTTPStatusCode: res.StatusCode,
141317		},
141318	}
141319	target := &ret
141320	if err := gensupport.DecodeResponse(target, res); err != nil {
141321		return nil, err
141322	}
141323	return ret, nil
141324	// {
141325	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
141326	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview",
141327	//   "httpMethod": "POST",
141328	//   "id": "compute.routers.preview",
141329	//   "parameterOrder": [
141330	//     "project",
141331	//     "region",
141332	//     "router"
141333	//   ],
141334	//   "parameters": {
141335	//     "project": {
141336	//       "description": "Project ID for this request.",
141337	//       "location": "path",
141338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141339	//       "required": true,
141340	//       "type": "string"
141341	//     },
141342	//     "region": {
141343	//       "description": "Name of the region for this request.",
141344	//       "location": "path",
141345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141346	//       "required": true,
141347	//       "type": "string"
141348	//     },
141349	//     "router": {
141350	//       "description": "Name of the Router resource to query.",
141351	//       "location": "path",
141352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141353	//       "required": true,
141354	//       "type": "string"
141355	//     }
141356	//   },
141357	//   "path": "projects/{project}/regions/{region}/routers/{router}/preview",
141358	//   "request": {
141359	//     "$ref": "Router"
141360	//   },
141361	//   "response": {
141362	//     "$ref": "RoutersPreviewResponse"
141363	//   },
141364	//   "scopes": [
141365	//     "https://www.googleapis.com/auth/cloud-platform",
141366	//     "https://www.googleapis.com/auth/compute",
141367	//     "https://www.googleapis.com/auth/compute.readonly"
141368	//   ]
141369	// }
141370
141371}
141372
141373// method id "compute.routers.update":
141374
141375type RoutersUpdateCall struct {
141376	s          *Service
141377	project    string
141378	region     string
141379	router     string
141380	router2    *Router
141381	urlParams_ gensupport.URLParams
141382	ctx_       context.Context
141383	header_    http.Header
141384}
141385
141386// Update: Updates the specified Router resource with the data included
141387// in the request. This method conforms to PUT semantics, which requests
141388// that the state of the target resource be created or replaced with the
141389// state defined by the representation enclosed in the request message
141390// payload.
141391//
141392// - project: Project ID for this request.
141393// - region: Name of the region for this request.
141394// - router: Name of the Router resource to update.
141395func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
141396	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141397	c.project = project
141398	c.region = region
141399	c.router = router
141400	c.router2 = router2
141401	return c
141402}
141403
141404// RequestId sets the optional parameter "requestId": An optional
141405// request ID to identify requests. Specify a unique request ID so that
141406// if you must retry your request, the server will know to ignore the
141407// request if it has already been completed. For example, consider a
141408// situation where you make an initial request and the request times
141409// out. If you make the request again with the same request ID, the
141410// server can check if original operation with the same request ID was
141411// received, and if so, will ignore the second request. This prevents
141412// clients from accidentally creating duplicate commitments. The request
141413// ID must be a valid UUID with the exception that zero UUID is not
141414// supported ( 00000000-0000-0000-0000-000000000000).
141415func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
141416	c.urlParams_.Set("requestId", requestId)
141417	return c
141418}
141419
141420// Fields allows partial responses to be retrieved. See
141421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141422// for more information.
141423func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
141424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141425	return c
141426}
141427
141428// Context sets the context to be used in this call's Do method. Any
141429// pending HTTP request will be aborted if the provided context is
141430// canceled.
141431func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
141432	c.ctx_ = ctx
141433	return c
141434}
141435
141436// Header returns an http.Header that can be modified by the caller to
141437// add HTTP headers to the request.
141438func (c *RoutersUpdateCall) Header() http.Header {
141439	if c.header_ == nil {
141440		c.header_ = make(http.Header)
141441	}
141442	return c.header_
141443}
141444
141445func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
141446	reqHeaders := make(http.Header)
141447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141448	for k, v := range c.header_ {
141449		reqHeaders[k] = v
141450	}
141451	reqHeaders.Set("User-Agent", c.s.userAgent())
141452	var body io.Reader = nil
141453	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141454	if err != nil {
141455		return nil, err
141456	}
141457	reqHeaders.Set("Content-Type", "application/json")
141458	c.urlParams_.Set("alt", alt)
141459	c.urlParams_.Set("prettyPrint", "false")
141460	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
141461	urls += "?" + c.urlParams_.Encode()
141462	req, err := http.NewRequest("PUT", urls, body)
141463	if err != nil {
141464		return nil, err
141465	}
141466	req.Header = reqHeaders
141467	googleapi.Expand(req.URL, map[string]string{
141468		"project": c.project,
141469		"region":  c.region,
141470		"router":  c.router,
141471	})
141472	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141473}
141474
141475// Do executes the "compute.routers.update" call.
141476// Exactly one of *Operation or error will be non-nil. Any non-2xx
141477// status code is an error. Response headers are in either
141478// *Operation.ServerResponse.Header or (if a response was returned at
141479// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141480// to check whether the returned error was because
141481// http.StatusNotModified was returned.
141482func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141483	gensupport.SetOptions(c.urlParams_, opts...)
141484	res, err := c.doRequest("json")
141485	if res != nil && res.StatusCode == http.StatusNotModified {
141486		if res.Body != nil {
141487			res.Body.Close()
141488		}
141489		return nil, &googleapi.Error{
141490			Code:   res.StatusCode,
141491			Header: res.Header,
141492		}
141493	}
141494	if err != nil {
141495		return nil, err
141496	}
141497	defer googleapi.CloseBody(res)
141498	if err := googleapi.CheckResponse(res); err != nil {
141499		return nil, err
141500	}
141501	ret := &Operation{
141502		ServerResponse: googleapi.ServerResponse{
141503			Header:         res.Header,
141504			HTTPStatusCode: res.StatusCode,
141505		},
141506	}
141507	target := &ret
141508	if err := gensupport.DecodeResponse(target, res); err != nil {
141509		return nil, err
141510	}
141511	return ret, nil
141512	// {
141513	//   "description": "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.",
141514	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
141515	//   "httpMethod": "PUT",
141516	//   "id": "compute.routers.update",
141517	//   "parameterOrder": [
141518	//     "project",
141519	//     "region",
141520	//     "router"
141521	//   ],
141522	//   "parameters": {
141523	//     "project": {
141524	//       "description": "Project ID for this request.",
141525	//       "location": "path",
141526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141527	//       "required": true,
141528	//       "type": "string"
141529	//     },
141530	//     "region": {
141531	//       "description": "Name of the region for this request.",
141532	//       "location": "path",
141533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141534	//       "required": true,
141535	//       "type": "string"
141536	//     },
141537	//     "requestId": {
141538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141539	//       "location": "query",
141540	//       "type": "string"
141541	//     },
141542	//     "router": {
141543	//       "description": "Name of the Router resource to update.",
141544	//       "location": "path",
141545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141546	//       "required": true,
141547	//       "type": "string"
141548	//     }
141549	//   },
141550	//   "path": "projects/{project}/regions/{region}/routers/{router}",
141551	//   "request": {
141552	//     "$ref": "Router"
141553	//   },
141554	//   "response": {
141555	//     "$ref": "Operation"
141556	//   },
141557	//   "scopes": [
141558	//     "https://www.googleapis.com/auth/cloud-platform",
141559	//     "https://www.googleapis.com/auth/compute"
141560	//   ]
141561	// }
141562
141563}
141564
141565// method id "compute.routes.delete":
141566
141567type RoutesDeleteCall struct {
141568	s          *Service
141569	project    string
141570	route      string
141571	urlParams_ gensupport.URLParams
141572	ctx_       context.Context
141573	header_    http.Header
141574}
141575
141576// Delete: Deletes the specified Route resource.
141577//
141578// - project: Project ID for this request.
141579// - route: Name of the Route resource to delete.
141580func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
141581	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141582	c.project = project
141583	c.route = route
141584	return c
141585}
141586
141587// RequestId sets the optional parameter "requestId": An optional
141588// request ID to identify requests. Specify a unique request ID so that
141589// if you must retry your request, the server will know to ignore the
141590// request if it has already been completed. For example, consider a
141591// situation where you make an initial request and the request times
141592// out. If you make the request again with the same request ID, the
141593// server can check if original operation with the same request ID was
141594// received, and if so, will ignore the second request. This prevents
141595// clients from accidentally creating duplicate commitments. The request
141596// ID must be a valid UUID with the exception that zero UUID is not
141597// supported ( 00000000-0000-0000-0000-000000000000).
141598func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
141599	c.urlParams_.Set("requestId", requestId)
141600	return c
141601}
141602
141603// Fields allows partial responses to be retrieved. See
141604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141605// for more information.
141606func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
141607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141608	return c
141609}
141610
141611// Context sets the context to be used in this call's Do method. Any
141612// pending HTTP request will be aborted if the provided context is
141613// canceled.
141614func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
141615	c.ctx_ = ctx
141616	return c
141617}
141618
141619// Header returns an http.Header that can be modified by the caller to
141620// add HTTP headers to the request.
141621func (c *RoutesDeleteCall) Header() http.Header {
141622	if c.header_ == nil {
141623		c.header_ = make(http.Header)
141624	}
141625	return c.header_
141626}
141627
141628func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
141629	reqHeaders := make(http.Header)
141630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141631	for k, v := range c.header_ {
141632		reqHeaders[k] = v
141633	}
141634	reqHeaders.Set("User-Agent", c.s.userAgent())
141635	var body io.Reader = nil
141636	c.urlParams_.Set("alt", alt)
141637	c.urlParams_.Set("prettyPrint", "false")
141638	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
141639	urls += "?" + c.urlParams_.Encode()
141640	req, err := http.NewRequest("DELETE", urls, body)
141641	if err != nil {
141642		return nil, err
141643	}
141644	req.Header = reqHeaders
141645	googleapi.Expand(req.URL, map[string]string{
141646		"project": c.project,
141647		"route":   c.route,
141648	})
141649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141650}
141651
141652// Do executes the "compute.routes.delete" call.
141653// Exactly one of *Operation or error will be non-nil. Any non-2xx
141654// status code is an error. Response headers are in either
141655// *Operation.ServerResponse.Header or (if a response was returned at
141656// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141657// to check whether the returned error was because
141658// http.StatusNotModified was returned.
141659func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141660	gensupport.SetOptions(c.urlParams_, opts...)
141661	res, err := c.doRequest("json")
141662	if res != nil && res.StatusCode == http.StatusNotModified {
141663		if res.Body != nil {
141664			res.Body.Close()
141665		}
141666		return nil, &googleapi.Error{
141667			Code:   res.StatusCode,
141668			Header: res.Header,
141669		}
141670	}
141671	if err != nil {
141672		return nil, err
141673	}
141674	defer googleapi.CloseBody(res)
141675	if err := googleapi.CheckResponse(res); err != nil {
141676		return nil, err
141677	}
141678	ret := &Operation{
141679		ServerResponse: googleapi.ServerResponse{
141680			Header:         res.Header,
141681			HTTPStatusCode: res.StatusCode,
141682		},
141683	}
141684	target := &ret
141685	if err := gensupport.DecodeResponse(target, res); err != nil {
141686		return nil, err
141687	}
141688	return ret, nil
141689	// {
141690	//   "description": "Deletes the specified Route resource.",
141691	//   "flatPath": "projects/{project}/global/routes/{route}",
141692	//   "httpMethod": "DELETE",
141693	//   "id": "compute.routes.delete",
141694	//   "parameterOrder": [
141695	//     "project",
141696	//     "route"
141697	//   ],
141698	//   "parameters": {
141699	//     "project": {
141700	//       "description": "Project ID for this request.",
141701	//       "location": "path",
141702	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141703	//       "required": true,
141704	//       "type": "string"
141705	//     },
141706	//     "requestId": {
141707	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141708	//       "location": "query",
141709	//       "type": "string"
141710	//     },
141711	//     "route": {
141712	//       "description": "Name of the Route resource to delete.",
141713	//       "location": "path",
141714	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141715	//       "required": true,
141716	//       "type": "string"
141717	//     }
141718	//   },
141719	//   "path": "projects/{project}/global/routes/{route}",
141720	//   "response": {
141721	//     "$ref": "Operation"
141722	//   },
141723	//   "scopes": [
141724	//     "https://www.googleapis.com/auth/cloud-platform",
141725	//     "https://www.googleapis.com/auth/compute"
141726	//   ]
141727	// }
141728
141729}
141730
141731// method id "compute.routes.get":
141732
141733type RoutesGetCall struct {
141734	s            *Service
141735	project      string
141736	route        string
141737	urlParams_   gensupport.URLParams
141738	ifNoneMatch_ string
141739	ctx_         context.Context
141740	header_      http.Header
141741}
141742
141743// Get: Returns the specified Route resource. Gets a list of available
141744// routes by making a list() request.
141745//
141746// - project: Project ID for this request.
141747// - route: Name of the Route resource to return.
141748func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
141749	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141750	c.project = project
141751	c.route = route
141752	return c
141753}
141754
141755// Fields allows partial responses to be retrieved. See
141756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141757// for more information.
141758func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
141759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141760	return c
141761}
141762
141763// IfNoneMatch sets the optional parameter which makes the operation
141764// fail if the object's ETag matches the given value. This is useful for
141765// getting updates only after the object has changed since the last
141766// request. Use googleapi.IsNotModified to check whether the response
141767// error from Do is the result of In-None-Match.
141768func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
141769	c.ifNoneMatch_ = entityTag
141770	return c
141771}
141772
141773// Context sets the context to be used in this call's Do method. Any
141774// pending HTTP request will be aborted if the provided context is
141775// canceled.
141776func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
141777	c.ctx_ = ctx
141778	return c
141779}
141780
141781// Header returns an http.Header that can be modified by the caller to
141782// add HTTP headers to the request.
141783func (c *RoutesGetCall) Header() http.Header {
141784	if c.header_ == nil {
141785		c.header_ = make(http.Header)
141786	}
141787	return c.header_
141788}
141789
141790func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
141791	reqHeaders := make(http.Header)
141792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141793	for k, v := range c.header_ {
141794		reqHeaders[k] = v
141795	}
141796	reqHeaders.Set("User-Agent", c.s.userAgent())
141797	if c.ifNoneMatch_ != "" {
141798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141799	}
141800	var body io.Reader = nil
141801	c.urlParams_.Set("alt", alt)
141802	c.urlParams_.Set("prettyPrint", "false")
141803	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
141804	urls += "?" + c.urlParams_.Encode()
141805	req, err := http.NewRequest("GET", urls, body)
141806	if err != nil {
141807		return nil, err
141808	}
141809	req.Header = reqHeaders
141810	googleapi.Expand(req.URL, map[string]string{
141811		"project": c.project,
141812		"route":   c.route,
141813	})
141814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141815}
141816
141817// Do executes the "compute.routes.get" call.
141818// Exactly one of *Route or error will be non-nil. Any non-2xx status
141819// code is an error. Response headers are in either
141820// *Route.ServerResponse.Header or (if a response was returned at all)
141821// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
141822// check whether the returned error was because http.StatusNotModified
141823// was returned.
141824func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
141825	gensupport.SetOptions(c.urlParams_, opts...)
141826	res, err := c.doRequest("json")
141827	if res != nil && res.StatusCode == http.StatusNotModified {
141828		if res.Body != nil {
141829			res.Body.Close()
141830		}
141831		return nil, &googleapi.Error{
141832			Code:   res.StatusCode,
141833			Header: res.Header,
141834		}
141835	}
141836	if err != nil {
141837		return nil, err
141838	}
141839	defer googleapi.CloseBody(res)
141840	if err := googleapi.CheckResponse(res); err != nil {
141841		return nil, err
141842	}
141843	ret := &Route{
141844		ServerResponse: googleapi.ServerResponse{
141845			Header:         res.Header,
141846			HTTPStatusCode: res.StatusCode,
141847		},
141848	}
141849	target := &ret
141850	if err := gensupport.DecodeResponse(target, res); err != nil {
141851		return nil, err
141852	}
141853	return ret, nil
141854	// {
141855	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
141856	//   "flatPath": "projects/{project}/global/routes/{route}",
141857	//   "httpMethod": "GET",
141858	//   "id": "compute.routes.get",
141859	//   "parameterOrder": [
141860	//     "project",
141861	//     "route"
141862	//   ],
141863	//   "parameters": {
141864	//     "project": {
141865	//       "description": "Project ID for this request.",
141866	//       "location": "path",
141867	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141868	//       "required": true,
141869	//       "type": "string"
141870	//     },
141871	//     "route": {
141872	//       "description": "Name of the Route resource to return.",
141873	//       "location": "path",
141874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141875	//       "required": true,
141876	//       "type": "string"
141877	//     }
141878	//   },
141879	//   "path": "projects/{project}/global/routes/{route}",
141880	//   "response": {
141881	//     "$ref": "Route"
141882	//   },
141883	//   "scopes": [
141884	//     "https://www.googleapis.com/auth/cloud-platform",
141885	//     "https://www.googleapis.com/auth/compute",
141886	//     "https://www.googleapis.com/auth/compute.readonly"
141887	//   ]
141888	// }
141889
141890}
141891
141892// method id "compute.routes.insert":
141893
141894type RoutesInsertCall struct {
141895	s          *Service
141896	project    string
141897	route      *Route
141898	urlParams_ gensupport.URLParams
141899	ctx_       context.Context
141900	header_    http.Header
141901}
141902
141903// Insert: Creates a Route resource in the specified project using the
141904// data included in the request.
141905//
141906// - project: Project ID for this request.
141907func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
141908	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141909	c.project = project
141910	c.route = route
141911	return c
141912}
141913
141914// RequestId sets the optional parameter "requestId": An optional
141915// request ID to identify requests. Specify a unique request ID so that
141916// if you must retry your request, the server will know to ignore the
141917// request if it has already been completed. For example, consider a
141918// situation where you make an initial request and the request times
141919// out. If you make the request again with the same request ID, the
141920// server can check if original operation with the same request ID was
141921// received, and if so, will ignore the second request. This prevents
141922// clients from accidentally creating duplicate commitments. The request
141923// ID must be a valid UUID with the exception that zero UUID is not
141924// supported ( 00000000-0000-0000-0000-000000000000).
141925func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
141926	c.urlParams_.Set("requestId", requestId)
141927	return c
141928}
141929
141930// Fields allows partial responses to be retrieved. See
141931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141932// for more information.
141933func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
141934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141935	return c
141936}
141937
141938// Context sets the context to be used in this call's Do method. Any
141939// pending HTTP request will be aborted if the provided context is
141940// canceled.
141941func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
141942	c.ctx_ = ctx
141943	return c
141944}
141945
141946// Header returns an http.Header that can be modified by the caller to
141947// add HTTP headers to the request.
141948func (c *RoutesInsertCall) Header() http.Header {
141949	if c.header_ == nil {
141950		c.header_ = make(http.Header)
141951	}
141952	return c.header_
141953}
141954
141955func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
141956	reqHeaders := make(http.Header)
141957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
141958	for k, v := range c.header_ {
141959		reqHeaders[k] = v
141960	}
141961	reqHeaders.Set("User-Agent", c.s.userAgent())
141962	var body io.Reader = nil
141963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
141964	if err != nil {
141965		return nil, err
141966	}
141967	reqHeaders.Set("Content-Type", "application/json")
141968	c.urlParams_.Set("alt", alt)
141969	c.urlParams_.Set("prettyPrint", "false")
141970	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
141971	urls += "?" + c.urlParams_.Encode()
141972	req, err := http.NewRequest("POST", urls, body)
141973	if err != nil {
141974		return nil, err
141975	}
141976	req.Header = reqHeaders
141977	googleapi.Expand(req.URL, map[string]string{
141978		"project": c.project,
141979	})
141980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141981}
141982
141983// Do executes the "compute.routes.insert" call.
141984// Exactly one of *Operation or error will be non-nil. Any non-2xx
141985// status code is an error. Response headers are in either
141986// *Operation.ServerResponse.Header or (if a response was returned at
141987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141988// to check whether the returned error was because
141989// http.StatusNotModified was returned.
141990func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141991	gensupport.SetOptions(c.urlParams_, opts...)
141992	res, err := c.doRequest("json")
141993	if res != nil && res.StatusCode == http.StatusNotModified {
141994		if res.Body != nil {
141995			res.Body.Close()
141996		}
141997		return nil, &googleapi.Error{
141998			Code:   res.StatusCode,
141999			Header: res.Header,
142000		}
142001	}
142002	if err != nil {
142003		return nil, err
142004	}
142005	defer googleapi.CloseBody(res)
142006	if err := googleapi.CheckResponse(res); err != nil {
142007		return nil, err
142008	}
142009	ret := &Operation{
142010		ServerResponse: googleapi.ServerResponse{
142011			Header:         res.Header,
142012			HTTPStatusCode: res.StatusCode,
142013		},
142014	}
142015	target := &ret
142016	if err := gensupport.DecodeResponse(target, res); err != nil {
142017		return nil, err
142018	}
142019	return ret, nil
142020	// {
142021	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
142022	//   "flatPath": "projects/{project}/global/routes",
142023	//   "httpMethod": "POST",
142024	//   "id": "compute.routes.insert",
142025	//   "parameterOrder": [
142026	//     "project"
142027	//   ],
142028	//   "parameters": {
142029	//     "project": {
142030	//       "description": "Project ID for this request.",
142031	//       "location": "path",
142032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142033	//       "required": true,
142034	//       "type": "string"
142035	//     },
142036	//     "requestId": {
142037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
142038	//       "location": "query",
142039	//       "type": "string"
142040	//     }
142041	//   },
142042	//   "path": "projects/{project}/global/routes",
142043	//   "request": {
142044	//     "$ref": "Route"
142045	//   },
142046	//   "response": {
142047	//     "$ref": "Operation"
142048	//   },
142049	//   "scopes": [
142050	//     "https://www.googleapis.com/auth/cloud-platform",
142051	//     "https://www.googleapis.com/auth/compute"
142052	//   ]
142053	// }
142054
142055}
142056
142057// method id "compute.routes.list":
142058
142059type RoutesListCall struct {
142060	s            *Service
142061	project      string
142062	urlParams_   gensupport.URLParams
142063	ifNoneMatch_ string
142064	ctx_         context.Context
142065	header_      http.Header
142066}
142067
142068// List: Retrieves the list of Route resources available to the
142069// specified project.
142070//
142071// - project: Project ID for this request.
142072func (r *RoutesService) List(project string) *RoutesListCall {
142073	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142074	c.project = project
142075	return c
142076}
142077
142078// Filter sets the optional parameter "filter": A filter expression that
142079// filters resources listed in the response. The expression must specify
142080// the field name, a comparison operator, and the value that you want to
142081// use for filtering. The value must be a string, a number, or a
142082// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142083// `<`. For example, if you are filtering Compute Engine instances, you
142084// can exclude instances named `example-instance` by specifying `name !=
142085// example-instance`. You can also filter nested fields. For example,
142086// you could specify `scheduling.automaticRestart = false` to include
142087// instances only if they are not scheduled for automatic restarts. You
142088// can use filtering on nested fields to filter based on resource
142089// labels. To filter on multiple expressions, provide each separate
142090// expression within parentheses. For example: ```
142091// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
142092// ``` By default, each expression is an `AND` expression. However, you
142093// can include `AND` and `OR` expressions explicitly. For example: ```
142094// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
142095// AND (scheduling.automaticRestart = true) ```
142096func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
142097	c.urlParams_.Set("filter", filter)
142098	return c
142099}
142100
142101// MaxResults sets the optional parameter "maxResults": The maximum
142102// number of results per page that should be returned. If the number of
142103// available results is larger than `maxResults`, Compute Engine returns
142104// a `nextPageToken` that can be used to get the next page of results in
142105// subsequent list requests. Acceptable values are `0` to `500`,
142106// inclusive. (Default: `500`)
142107func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
142108	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142109	return c
142110}
142111
142112// OrderBy sets the optional parameter "orderBy": Sorts list results by
142113// a certain order. By default, results are returned in alphanumerical
142114// order based on the resource name. You can also sort results in
142115// descending order based on the creation timestamp using
142116// `orderBy="creationTimestamp desc". This sorts results based on the
142117// `creationTimestamp` field in reverse chronological order (newest
142118// result first). Use this to sort resources like operations so that the
142119// newest operation is returned first. Currently, only sorting by `name`
142120// or `creationTimestamp desc` is supported.
142121func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
142122	c.urlParams_.Set("orderBy", orderBy)
142123	return c
142124}
142125
142126// PageToken sets the optional parameter "pageToken": Specifies a page
142127// token to use. Set `pageToken` to the `nextPageToken` returned by a
142128// previous list request to get the next page of results.
142129func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
142130	c.urlParams_.Set("pageToken", pageToken)
142131	return c
142132}
142133
142134// ReturnPartialSuccess sets the optional parameter
142135// "returnPartialSuccess": Opt-in for partial success behavior which
142136// provides partial results in case of failure. The default value is
142137// false.
142138func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
142139	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142140	return c
142141}
142142
142143// Fields allows partial responses to be retrieved. See
142144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142145// for more information.
142146func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
142147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142148	return c
142149}
142150
142151// IfNoneMatch sets the optional parameter which makes the operation
142152// fail if the object's ETag matches the given value. This is useful for
142153// getting updates only after the object has changed since the last
142154// request. Use googleapi.IsNotModified to check whether the response
142155// error from Do is the result of In-None-Match.
142156func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
142157	c.ifNoneMatch_ = entityTag
142158	return c
142159}
142160
142161// Context sets the context to be used in this call's Do method. Any
142162// pending HTTP request will be aborted if the provided context is
142163// canceled.
142164func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
142165	c.ctx_ = ctx
142166	return c
142167}
142168
142169// Header returns an http.Header that can be modified by the caller to
142170// add HTTP headers to the request.
142171func (c *RoutesListCall) Header() http.Header {
142172	if c.header_ == nil {
142173		c.header_ = make(http.Header)
142174	}
142175	return c.header_
142176}
142177
142178func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
142179	reqHeaders := make(http.Header)
142180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
142181	for k, v := range c.header_ {
142182		reqHeaders[k] = v
142183	}
142184	reqHeaders.Set("User-Agent", c.s.userAgent())
142185	if c.ifNoneMatch_ != "" {
142186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142187	}
142188	var body io.Reader = nil
142189	c.urlParams_.Set("alt", alt)
142190	c.urlParams_.Set("prettyPrint", "false")
142191	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
142192	urls += "?" + c.urlParams_.Encode()
142193	req, err := http.NewRequest("GET", urls, body)
142194	if err != nil {
142195		return nil, err
142196	}
142197	req.Header = reqHeaders
142198	googleapi.Expand(req.URL, map[string]string{
142199		"project": c.project,
142200	})
142201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142202}
142203
142204// Do executes the "compute.routes.list" call.
142205// Exactly one of *RouteList or error will be non-nil. Any non-2xx
142206// status code is an error. Response headers are in either
142207// *RouteList.ServerResponse.Header or (if a response was returned at
142208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142209// to check whether the returned error was because
142210// http.StatusNotModified was returned.
142211func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
142212	gensupport.SetOptions(c.urlParams_, opts...)
142213	res, err := c.doRequest("json")
142214	if res != nil && res.StatusCode == http.StatusNotModified {
142215		if res.Body != nil {
142216			res.Body.Close()
142217		}
142218		return nil, &googleapi.Error{
142219			Code:   res.StatusCode,
142220			Header: res.Header,
142221		}
142222	}
142223	if err != nil {
142224		return nil, err
142225	}
142226	defer googleapi.CloseBody(res)
142227	if err := googleapi.CheckResponse(res); err != nil {
142228		return nil, err
142229	}
142230	ret := &RouteList{
142231		ServerResponse: googleapi.ServerResponse{
142232			Header:         res.Header,
142233			HTTPStatusCode: res.StatusCode,
142234		},
142235	}
142236	target := &ret
142237	if err := gensupport.DecodeResponse(target, res); err != nil {
142238		return nil, err
142239	}
142240	return ret, nil
142241	// {
142242	//   "description": "Retrieves the list of Route resources available to the specified project.",
142243	//   "flatPath": "projects/{project}/global/routes",
142244	//   "httpMethod": "GET",
142245	//   "id": "compute.routes.list",
142246	//   "parameterOrder": [
142247	//     "project"
142248	//   ],
142249	//   "parameters": {
142250	//     "filter": {
142251	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142252	//       "location": "query",
142253	//       "type": "string"
142254	//     },
142255	//     "maxResults": {
142256	//       "default": "500",
142257	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142258	//       "format": "uint32",
142259	//       "location": "query",
142260	//       "minimum": "0",
142261	//       "type": "integer"
142262	//     },
142263	//     "orderBy": {
142264	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
142265	//       "location": "query",
142266	//       "type": "string"
142267	//     },
142268	//     "pageToken": {
142269	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142270	//       "location": "query",
142271	//       "type": "string"
142272	//     },
142273	//     "project": {
142274	//       "description": "Project ID for this request.",
142275	//       "location": "path",
142276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142277	//       "required": true,
142278	//       "type": "string"
142279	//     },
142280	//     "returnPartialSuccess": {
142281	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
142282	//       "location": "query",
142283	//       "type": "boolean"
142284	//     }
142285	//   },
142286	//   "path": "projects/{project}/global/routes",
142287	//   "response": {
142288	//     "$ref": "RouteList"
142289	//   },
142290	//   "scopes": [
142291	//     "https://www.googleapis.com/auth/cloud-platform",
142292	//     "https://www.googleapis.com/auth/compute",
142293	//     "https://www.googleapis.com/auth/compute.readonly"
142294	//   ]
142295	// }
142296
142297}
142298
142299// Pages invokes f for each page of results.
142300// A non-nil error returned from f will halt the iteration.
142301// The provided context supersedes any context provided to the Context method.
142302func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
142303	c.ctx_ = ctx
142304	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142305	for {
142306		x, err := c.Do()
142307		if err != nil {
142308			return err
142309		}
142310		if err := f(x); err != nil {
142311			return err
142312		}
142313		if x.NextPageToken == "" {
142314			return nil
142315		}
142316		c.PageToken(x.NextPageToken)
142317	}
142318}
142319
142320// method id "compute.securityPolicies.addRule":
142321
142322type SecurityPoliciesAddRuleCall struct {
142323	s                  *Service
142324	project            string
142325	securityPolicy     string
142326	securitypolicyrule *SecurityPolicyRule
142327	urlParams_         gensupport.URLParams
142328	ctx_               context.Context
142329	header_            http.Header
142330}
142331
142332// AddRule: Inserts a rule into a security policy.
142333//
142334// - project: Project ID for this request.
142335// - securityPolicy: Name of the security policy to update.
142336func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
142337	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142338	c.project = project
142339	c.securityPolicy = securityPolicy
142340	c.securitypolicyrule = securitypolicyrule
142341	return c
142342}
142343
142344// Fields allows partial responses to be retrieved. See
142345// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142346// for more information.
142347func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
142348	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142349	return c
142350}
142351
142352// Context sets the context to be used in this call's Do method. Any
142353// pending HTTP request will be aborted if the provided context is
142354// canceled.
142355func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
142356	c.ctx_ = ctx
142357	return c
142358}
142359
142360// Header returns an http.Header that can be modified by the caller to
142361// add HTTP headers to the request.
142362func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
142363	if c.header_ == nil {
142364		c.header_ = make(http.Header)
142365	}
142366	return c.header_
142367}
142368
142369func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
142370	reqHeaders := make(http.Header)
142371	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
142372	for k, v := range c.header_ {
142373		reqHeaders[k] = v
142374	}
142375	reqHeaders.Set("User-Agent", c.s.userAgent())
142376	var body io.Reader = nil
142377	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
142378	if err != nil {
142379		return nil, err
142380	}
142381	reqHeaders.Set("Content-Type", "application/json")
142382	c.urlParams_.Set("alt", alt)
142383	c.urlParams_.Set("prettyPrint", "false")
142384	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule")
142385	urls += "?" + c.urlParams_.Encode()
142386	req, err := http.NewRequest("POST", urls, body)
142387	if err != nil {
142388		return nil, err
142389	}
142390	req.Header = reqHeaders
142391	googleapi.Expand(req.URL, map[string]string{
142392		"project":        c.project,
142393		"securityPolicy": c.securityPolicy,
142394	})
142395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142396}
142397
142398// Do executes the "compute.securityPolicies.addRule" call.
142399// Exactly one of *Operation or error will be non-nil. Any non-2xx
142400// status code is an error. Response headers are in either
142401// *Operation.ServerResponse.Header or (if a response was returned at
142402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142403// to check whether the returned error was because
142404// http.StatusNotModified was returned.
142405func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142406	gensupport.SetOptions(c.urlParams_, opts...)
142407	res, err := c.doRequest("json")
142408	if res != nil && res.StatusCode == http.StatusNotModified {
142409		if res.Body != nil {
142410			res.Body.Close()
142411		}
142412		return nil, &googleapi.Error{
142413			Code:   res.StatusCode,
142414			Header: res.Header,
142415		}
142416	}
142417	if err != nil {
142418		return nil, err
142419	}
142420	defer googleapi.CloseBody(res)
142421	if err := googleapi.CheckResponse(res); err != nil {
142422		return nil, err
142423	}
142424	ret := &Operation{
142425		ServerResponse: googleapi.ServerResponse{
142426			Header:         res.Header,
142427			HTTPStatusCode: res.StatusCode,
142428		},
142429	}
142430	target := &ret
142431	if err := gensupport.DecodeResponse(target, res); err != nil {
142432		return nil, err
142433	}
142434	return ret, nil
142435	// {
142436	//   "description": "Inserts a rule into a security policy.",
142437	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
142438	//   "httpMethod": "POST",
142439	//   "id": "compute.securityPolicies.addRule",
142440	//   "parameterOrder": [
142441	//     "project",
142442	//     "securityPolicy"
142443	//   ],
142444	//   "parameters": {
142445	//     "project": {
142446	//       "description": "Project ID for this request.",
142447	//       "location": "path",
142448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142449	//       "required": true,
142450	//       "type": "string"
142451	//     },
142452	//     "securityPolicy": {
142453	//       "description": "Name of the security policy to update.",
142454	//       "location": "path",
142455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142456	//       "required": true,
142457	//       "type": "string"
142458	//     }
142459	//   },
142460	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
142461	//   "request": {
142462	//     "$ref": "SecurityPolicyRule"
142463	//   },
142464	//   "response": {
142465	//     "$ref": "Operation"
142466	//   },
142467	//   "scopes": [
142468	//     "https://www.googleapis.com/auth/cloud-platform",
142469	//     "https://www.googleapis.com/auth/compute"
142470	//   ]
142471	// }
142472
142473}
142474
142475// method id "compute.securityPolicies.delete":
142476
142477type SecurityPoliciesDeleteCall struct {
142478	s              *Service
142479	project        string
142480	securityPolicy string
142481	urlParams_     gensupport.URLParams
142482	ctx_           context.Context
142483	header_        http.Header
142484}
142485
142486// Delete: Deletes the specified policy.
142487//
142488// - project: Project ID for this request.
142489// - securityPolicy: Name of the security policy to delete.
142490func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
142491	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142492	c.project = project
142493	c.securityPolicy = securityPolicy
142494	return c
142495}
142496
142497// RequestId sets the optional parameter "requestId": An optional
142498// request ID to identify requests. Specify a unique request ID so that
142499// if you must retry your request, the server will know to ignore the
142500// request if it has already been completed. For example, consider a
142501// situation where you make an initial request and the request times
142502// out. If you make the request again with the same request ID, the
142503// server can check if original operation with the same request ID was
142504// received, and if so, will ignore the second request. This prevents
142505// clients from accidentally creating duplicate commitments. The request
142506// ID must be a valid UUID with the exception that zero UUID is not
142507// supported ( 00000000-0000-0000-0000-000000000000).
142508func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
142509	c.urlParams_.Set("requestId", requestId)
142510	return c
142511}
142512
142513// Fields allows partial responses to be retrieved. See
142514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142515// for more information.
142516func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
142517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142518	return c
142519}
142520
142521// Context sets the context to be used in this call's Do method. Any
142522// pending HTTP request will be aborted if the provided context is
142523// canceled.
142524func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
142525	c.ctx_ = ctx
142526	return c
142527}
142528
142529// Header returns an http.Header that can be modified by the caller to
142530// add HTTP headers to the request.
142531func (c *SecurityPoliciesDeleteCall) Header() http.Header {
142532	if c.header_ == nil {
142533		c.header_ = make(http.Header)
142534	}
142535	return c.header_
142536}
142537
142538func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
142539	reqHeaders := make(http.Header)
142540	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
142541	for k, v := range c.header_ {
142542		reqHeaders[k] = v
142543	}
142544	reqHeaders.Set("User-Agent", c.s.userAgent())
142545	var body io.Reader = nil
142546	c.urlParams_.Set("alt", alt)
142547	c.urlParams_.Set("prettyPrint", "false")
142548	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
142549	urls += "?" + c.urlParams_.Encode()
142550	req, err := http.NewRequest("DELETE", urls, body)
142551	if err != nil {
142552		return nil, err
142553	}
142554	req.Header = reqHeaders
142555	googleapi.Expand(req.URL, map[string]string{
142556		"project":        c.project,
142557		"securityPolicy": c.securityPolicy,
142558	})
142559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142560}
142561
142562// Do executes the "compute.securityPolicies.delete" call.
142563// Exactly one of *Operation or error will be non-nil. Any non-2xx
142564// status code is an error. Response headers are in either
142565// *Operation.ServerResponse.Header or (if a response was returned at
142566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142567// to check whether the returned error was because
142568// http.StatusNotModified was returned.
142569func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142570	gensupport.SetOptions(c.urlParams_, opts...)
142571	res, err := c.doRequest("json")
142572	if res != nil && res.StatusCode == http.StatusNotModified {
142573		if res.Body != nil {
142574			res.Body.Close()
142575		}
142576		return nil, &googleapi.Error{
142577			Code:   res.StatusCode,
142578			Header: res.Header,
142579		}
142580	}
142581	if err != nil {
142582		return nil, err
142583	}
142584	defer googleapi.CloseBody(res)
142585	if err := googleapi.CheckResponse(res); err != nil {
142586		return nil, err
142587	}
142588	ret := &Operation{
142589		ServerResponse: googleapi.ServerResponse{
142590			Header:         res.Header,
142591			HTTPStatusCode: res.StatusCode,
142592		},
142593	}
142594	target := &ret
142595	if err := gensupport.DecodeResponse(target, res); err != nil {
142596		return nil, err
142597	}
142598	return ret, nil
142599	// {
142600	//   "description": "Deletes the specified policy.",
142601	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
142602	//   "httpMethod": "DELETE",
142603	//   "id": "compute.securityPolicies.delete",
142604	//   "parameterOrder": [
142605	//     "project",
142606	//     "securityPolicy"
142607	//   ],
142608	//   "parameters": {
142609	//     "project": {
142610	//       "description": "Project ID for this request.",
142611	//       "location": "path",
142612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142613	//       "required": true,
142614	//       "type": "string"
142615	//     },
142616	//     "requestId": {
142617	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
142618	//       "location": "query",
142619	//       "type": "string"
142620	//     },
142621	//     "securityPolicy": {
142622	//       "description": "Name of the security policy to delete.",
142623	//       "location": "path",
142624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142625	//       "required": true,
142626	//       "type": "string"
142627	//     }
142628	//   },
142629	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
142630	//   "response": {
142631	//     "$ref": "Operation"
142632	//   },
142633	//   "scopes": [
142634	//     "https://www.googleapis.com/auth/cloud-platform",
142635	//     "https://www.googleapis.com/auth/compute"
142636	//   ]
142637	// }
142638
142639}
142640
142641// method id "compute.securityPolicies.get":
142642
142643type SecurityPoliciesGetCall struct {
142644	s              *Service
142645	project        string
142646	securityPolicy string
142647	urlParams_     gensupport.URLParams
142648	ifNoneMatch_   string
142649	ctx_           context.Context
142650	header_        http.Header
142651}
142652
142653// Get: List all of the ordered rules present in a single specified
142654// policy.
142655//
142656// - project: Project ID for this request.
142657// - securityPolicy: Name of the security policy to get.
142658func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
142659	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142660	c.project = project
142661	c.securityPolicy = securityPolicy
142662	return c
142663}
142664
142665// Fields allows partial responses to be retrieved. See
142666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142667// for more information.
142668func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
142669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142670	return c
142671}
142672
142673// IfNoneMatch sets the optional parameter which makes the operation
142674// fail if the object's ETag matches the given value. This is useful for
142675// getting updates only after the object has changed since the last
142676// request. Use googleapi.IsNotModified to check whether the response
142677// error from Do is the result of In-None-Match.
142678func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
142679	c.ifNoneMatch_ = entityTag
142680	return c
142681}
142682
142683// Context sets the context to be used in this call's Do method. Any
142684// pending HTTP request will be aborted if the provided context is
142685// canceled.
142686func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
142687	c.ctx_ = ctx
142688	return c
142689}
142690
142691// Header returns an http.Header that can be modified by the caller to
142692// add HTTP headers to the request.
142693func (c *SecurityPoliciesGetCall) Header() http.Header {
142694	if c.header_ == nil {
142695		c.header_ = make(http.Header)
142696	}
142697	return c.header_
142698}
142699
142700func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
142701	reqHeaders := make(http.Header)
142702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
142703	for k, v := range c.header_ {
142704		reqHeaders[k] = v
142705	}
142706	reqHeaders.Set("User-Agent", c.s.userAgent())
142707	if c.ifNoneMatch_ != "" {
142708		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142709	}
142710	var body io.Reader = nil
142711	c.urlParams_.Set("alt", alt)
142712	c.urlParams_.Set("prettyPrint", "false")
142713	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
142714	urls += "?" + c.urlParams_.Encode()
142715	req, err := http.NewRequest("GET", urls, body)
142716	if err != nil {
142717		return nil, err
142718	}
142719	req.Header = reqHeaders
142720	googleapi.Expand(req.URL, map[string]string{
142721		"project":        c.project,
142722		"securityPolicy": c.securityPolicy,
142723	})
142724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142725}
142726
142727// Do executes the "compute.securityPolicies.get" call.
142728// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
142729// status code is an error. Response headers are in either
142730// *SecurityPolicy.ServerResponse.Header or (if a response was returned
142731// at all) in error.(*googleapi.Error).Header. Use
142732// googleapi.IsNotModified to check whether the returned error was
142733// because http.StatusNotModified was returned.
142734func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
142735	gensupport.SetOptions(c.urlParams_, opts...)
142736	res, err := c.doRequest("json")
142737	if res != nil && res.StatusCode == http.StatusNotModified {
142738		if res.Body != nil {
142739			res.Body.Close()
142740		}
142741		return nil, &googleapi.Error{
142742			Code:   res.StatusCode,
142743			Header: res.Header,
142744		}
142745	}
142746	if err != nil {
142747		return nil, err
142748	}
142749	defer googleapi.CloseBody(res)
142750	if err := googleapi.CheckResponse(res); err != nil {
142751		return nil, err
142752	}
142753	ret := &SecurityPolicy{
142754		ServerResponse: googleapi.ServerResponse{
142755			Header:         res.Header,
142756			HTTPStatusCode: res.StatusCode,
142757		},
142758	}
142759	target := &ret
142760	if err := gensupport.DecodeResponse(target, res); err != nil {
142761		return nil, err
142762	}
142763	return ret, nil
142764	// {
142765	//   "description": "List all of the ordered rules present in a single specified policy.",
142766	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
142767	//   "httpMethod": "GET",
142768	//   "id": "compute.securityPolicies.get",
142769	//   "parameterOrder": [
142770	//     "project",
142771	//     "securityPolicy"
142772	//   ],
142773	//   "parameters": {
142774	//     "project": {
142775	//       "description": "Project ID for this request.",
142776	//       "location": "path",
142777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142778	//       "required": true,
142779	//       "type": "string"
142780	//     },
142781	//     "securityPolicy": {
142782	//       "description": "Name of the security policy to get.",
142783	//       "location": "path",
142784	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142785	//       "required": true,
142786	//       "type": "string"
142787	//     }
142788	//   },
142789	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
142790	//   "response": {
142791	//     "$ref": "SecurityPolicy"
142792	//   },
142793	//   "scopes": [
142794	//     "https://www.googleapis.com/auth/cloud-platform",
142795	//     "https://www.googleapis.com/auth/compute",
142796	//     "https://www.googleapis.com/auth/compute.readonly"
142797	//   ]
142798	// }
142799
142800}
142801
142802// method id "compute.securityPolicies.getRule":
142803
142804type SecurityPoliciesGetRuleCall struct {
142805	s              *Service
142806	project        string
142807	securityPolicy string
142808	urlParams_     gensupport.URLParams
142809	ifNoneMatch_   string
142810	ctx_           context.Context
142811	header_        http.Header
142812}
142813
142814// GetRule: Gets a rule at the specified priority.
142815//
142816// - project: Project ID for this request.
142817// - securityPolicy: Name of the security policy to which the queried
142818//   rule belongs.
142819func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
142820	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142821	c.project = project
142822	c.securityPolicy = securityPolicy
142823	return c
142824}
142825
142826// Priority sets the optional parameter "priority": The priority of the
142827// rule to get from the security policy.
142828func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
142829	c.urlParams_.Set("priority", fmt.Sprint(priority))
142830	return c
142831}
142832
142833// Fields allows partial responses to be retrieved. See
142834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142835// for more information.
142836func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
142837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142838	return c
142839}
142840
142841// IfNoneMatch sets the optional parameter which makes the operation
142842// fail if the object's ETag matches the given value. This is useful for
142843// getting updates only after the object has changed since the last
142844// request. Use googleapi.IsNotModified to check whether the response
142845// error from Do is the result of In-None-Match.
142846func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
142847	c.ifNoneMatch_ = entityTag
142848	return c
142849}
142850
142851// Context sets the context to be used in this call's Do method. Any
142852// pending HTTP request will be aborted if the provided context is
142853// canceled.
142854func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
142855	c.ctx_ = ctx
142856	return c
142857}
142858
142859// Header returns an http.Header that can be modified by the caller to
142860// add HTTP headers to the request.
142861func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
142862	if c.header_ == nil {
142863		c.header_ = make(http.Header)
142864	}
142865	return c.header_
142866}
142867
142868func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
142869	reqHeaders := make(http.Header)
142870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
142871	for k, v := range c.header_ {
142872		reqHeaders[k] = v
142873	}
142874	reqHeaders.Set("User-Agent", c.s.userAgent())
142875	if c.ifNoneMatch_ != "" {
142876		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142877	}
142878	var body io.Reader = nil
142879	c.urlParams_.Set("alt", alt)
142880	c.urlParams_.Set("prettyPrint", "false")
142881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule")
142882	urls += "?" + c.urlParams_.Encode()
142883	req, err := http.NewRequest("GET", urls, body)
142884	if err != nil {
142885		return nil, err
142886	}
142887	req.Header = reqHeaders
142888	googleapi.Expand(req.URL, map[string]string{
142889		"project":        c.project,
142890		"securityPolicy": c.securityPolicy,
142891	})
142892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142893}
142894
142895// Do executes the "compute.securityPolicies.getRule" call.
142896// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
142897// non-2xx status code is an error. Response headers are in either
142898// *SecurityPolicyRule.ServerResponse.Header or (if a response was
142899// returned at all) in error.(*googleapi.Error).Header. Use
142900// googleapi.IsNotModified to check whether the returned error was
142901// because http.StatusNotModified was returned.
142902func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
142903	gensupport.SetOptions(c.urlParams_, opts...)
142904	res, err := c.doRequest("json")
142905	if res != nil && res.StatusCode == http.StatusNotModified {
142906		if res.Body != nil {
142907			res.Body.Close()
142908		}
142909		return nil, &googleapi.Error{
142910			Code:   res.StatusCode,
142911			Header: res.Header,
142912		}
142913	}
142914	if err != nil {
142915		return nil, err
142916	}
142917	defer googleapi.CloseBody(res)
142918	if err := googleapi.CheckResponse(res); err != nil {
142919		return nil, err
142920	}
142921	ret := &SecurityPolicyRule{
142922		ServerResponse: googleapi.ServerResponse{
142923			Header:         res.Header,
142924			HTTPStatusCode: res.StatusCode,
142925		},
142926	}
142927	target := &ret
142928	if err := gensupport.DecodeResponse(target, res); err != nil {
142929		return nil, err
142930	}
142931	return ret, nil
142932	// {
142933	//   "description": "Gets a rule at the specified priority.",
142934	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
142935	//   "httpMethod": "GET",
142936	//   "id": "compute.securityPolicies.getRule",
142937	//   "parameterOrder": [
142938	//     "project",
142939	//     "securityPolicy"
142940	//   ],
142941	//   "parameters": {
142942	//     "priority": {
142943	//       "description": "The priority of the rule to get from the security policy.",
142944	//       "format": "int32",
142945	//       "location": "query",
142946	//       "type": "integer"
142947	//     },
142948	//     "project": {
142949	//       "description": "Project ID for this request.",
142950	//       "location": "path",
142951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142952	//       "required": true,
142953	//       "type": "string"
142954	//     },
142955	//     "securityPolicy": {
142956	//       "description": "Name of the security policy to which the queried rule belongs.",
142957	//       "location": "path",
142958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142959	//       "required": true,
142960	//       "type": "string"
142961	//     }
142962	//   },
142963	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
142964	//   "response": {
142965	//     "$ref": "SecurityPolicyRule"
142966	//   },
142967	//   "scopes": [
142968	//     "https://www.googleapis.com/auth/cloud-platform",
142969	//     "https://www.googleapis.com/auth/compute",
142970	//     "https://www.googleapis.com/auth/compute.readonly"
142971	//   ]
142972	// }
142973
142974}
142975
142976// method id "compute.securityPolicies.insert":
142977
142978type SecurityPoliciesInsertCall struct {
142979	s              *Service
142980	project        string
142981	securitypolicy *SecurityPolicy
142982	urlParams_     gensupport.URLParams
142983	ctx_           context.Context
142984	header_        http.Header
142985}
142986
142987// Insert: Creates a new policy in the specified project using the data
142988// included in the request.
142989//
142990// - project: Project ID for this request.
142991func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
142992	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142993	c.project = project
142994	c.securitypolicy = securitypolicy
142995	return c
142996}
142997
142998// RequestId sets the optional parameter "requestId": An optional
142999// request ID to identify requests. Specify a unique request ID so that
143000// if you must retry your request, the server will know to ignore the
143001// request if it has already been completed. For example, consider a
143002// situation where you make an initial request and the request times
143003// out. If you make the request again with the same request ID, the
143004// server can check if original operation with the same request ID was
143005// received, and if so, will ignore the second request. This prevents
143006// clients from accidentally creating duplicate commitments. The request
143007// ID must be a valid UUID with the exception that zero UUID is not
143008// supported ( 00000000-0000-0000-0000-000000000000).
143009func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
143010	c.urlParams_.Set("requestId", requestId)
143011	return c
143012}
143013
143014// Fields allows partial responses to be retrieved. See
143015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143016// for more information.
143017func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
143018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143019	return c
143020}
143021
143022// Context sets the context to be used in this call's Do method. Any
143023// pending HTTP request will be aborted if the provided context is
143024// canceled.
143025func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
143026	c.ctx_ = ctx
143027	return c
143028}
143029
143030// Header returns an http.Header that can be modified by the caller to
143031// add HTTP headers to the request.
143032func (c *SecurityPoliciesInsertCall) Header() http.Header {
143033	if c.header_ == nil {
143034		c.header_ = make(http.Header)
143035	}
143036	return c.header_
143037}
143038
143039func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
143040	reqHeaders := make(http.Header)
143041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
143042	for k, v := range c.header_ {
143043		reqHeaders[k] = v
143044	}
143045	reqHeaders.Set("User-Agent", c.s.userAgent())
143046	var body io.Reader = nil
143047	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
143048	if err != nil {
143049		return nil, err
143050	}
143051	reqHeaders.Set("Content-Type", "application/json")
143052	c.urlParams_.Set("alt", alt)
143053	c.urlParams_.Set("prettyPrint", "false")
143054	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
143055	urls += "?" + c.urlParams_.Encode()
143056	req, err := http.NewRequest("POST", urls, body)
143057	if err != nil {
143058		return nil, err
143059	}
143060	req.Header = reqHeaders
143061	googleapi.Expand(req.URL, map[string]string{
143062		"project": c.project,
143063	})
143064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143065}
143066
143067// Do executes the "compute.securityPolicies.insert" call.
143068// Exactly one of *Operation or error will be non-nil. Any non-2xx
143069// status code is an error. Response headers are in either
143070// *Operation.ServerResponse.Header or (if a response was returned at
143071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143072// to check whether the returned error was because
143073// http.StatusNotModified was returned.
143074func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143075	gensupport.SetOptions(c.urlParams_, opts...)
143076	res, err := c.doRequest("json")
143077	if res != nil && res.StatusCode == http.StatusNotModified {
143078		if res.Body != nil {
143079			res.Body.Close()
143080		}
143081		return nil, &googleapi.Error{
143082			Code:   res.StatusCode,
143083			Header: res.Header,
143084		}
143085	}
143086	if err != nil {
143087		return nil, err
143088	}
143089	defer googleapi.CloseBody(res)
143090	if err := googleapi.CheckResponse(res); err != nil {
143091		return nil, err
143092	}
143093	ret := &Operation{
143094		ServerResponse: googleapi.ServerResponse{
143095			Header:         res.Header,
143096			HTTPStatusCode: res.StatusCode,
143097		},
143098	}
143099	target := &ret
143100	if err := gensupport.DecodeResponse(target, res); err != nil {
143101		return nil, err
143102	}
143103	return ret, nil
143104	// {
143105	//   "description": "Creates a new policy in the specified project using the data included in the request.",
143106	//   "flatPath": "projects/{project}/global/securityPolicies",
143107	//   "httpMethod": "POST",
143108	//   "id": "compute.securityPolicies.insert",
143109	//   "parameterOrder": [
143110	//     "project"
143111	//   ],
143112	//   "parameters": {
143113	//     "project": {
143114	//       "description": "Project ID for this request.",
143115	//       "location": "path",
143116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143117	//       "required": true,
143118	//       "type": "string"
143119	//     },
143120	//     "requestId": {
143121	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
143122	//       "location": "query",
143123	//       "type": "string"
143124	//     }
143125	//   },
143126	//   "path": "projects/{project}/global/securityPolicies",
143127	//   "request": {
143128	//     "$ref": "SecurityPolicy"
143129	//   },
143130	//   "response": {
143131	//     "$ref": "Operation"
143132	//   },
143133	//   "scopes": [
143134	//     "https://www.googleapis.com/auth/cloud-platform",
143135	//     "https://www.googleapis.com/auth/compute"
143136	//   ]
143137	// }
143138
143139}
143140
143141// method id "compute.securityPolicies.list":
143142
143143type SecurityPoliciesListCall struct {
143144	s            *Service
143145	project      string
143146	urlParams_   gensupport.URLParams
143147	ifNoneMatch_ string
143148	ctx_         context.Context
143149	header_      http.Header
143150}
143151
143152// List: List all the policies that have been configured for the
143153// specified project.
143154//
143155// - project: Project ID for this request.
143156func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
143157	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143158	c.project = project
143159	return c
143160}
143161
143162// Filter sets the optional parameter "filter": A filter expression that
143163// filters resources listed in the response. The expression must specify
143164// the field name, a comparison operator, and the value that you want to
143165// use for filtering. The value must be a string, a number, or a
143166// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143167// `<`. For example, if you are filtering Compute Engine instances, you
143168// can exclude instances named `example-instance` by specifying `name !=
143169// example-instance`. You can also filter nested fields. For example,
143170// you could specify `scheduling.automaticRestart = false` to include
143171// instances only if they are not scheduled for automatic restarts. You
143172// can use filtering on nested fields to filter based on resource
143173// labels. To filter on multiple expressions, provide each separate
143174// expression within parentheses. For example: ```
143175// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
143176// ``` By default, each expression is an `AND` expression. However, you
143177// can include `AND` and `OR` expressions explicitly. For example: ```
143178// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
143179// AND (scheduling.automaticRestart = true) ```
143180func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
143181	c.urlParams_.Set("filter", filter)
143182	return c
143183}
143184
143185// MaxResults sets the optional parameter "maxResults": The maximum
143186// number of results per page that should be returned. If the number of
143187// available results is larger than `maxResults`, Compute Engine returns
143188// a `nextPageToken` that can be used to get the next page of results in
143189// subsequent list requests. Acceptable values are `0` to `500`,
143190// inclusive. (Default: `500`)
143191func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
143192	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143193	return c
143194}
143195
143196// OrderBy sets the optional parameter "orderBy": Sorts list results by
143197// a certain order. By default, results are returned in alphanumerical
143198// order based on the resource name. You can also sort results in
143199// descending order based on the creation timestamp using
143200// `orderBy="creationTimestamp desc". This sorts results based on the
143201// `creationTimestamp` field in reverse chronological order (newest
143202// result first). Use this to sort resources like operations so that the
143203// newest operation is returned first. Currently, only sorting by `name`
143204// or `creationTimestamp desc` is supported.
143205func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
143206	c.urlParams_.Set("orderBy", orderBy)
143207	return c
143208}
143209
143210// PageToken sets the optional parameter "pageToken": Specifies a page
143211// token to use. Set `pageToken` to the `nextPageToken` returned by a
143212// previous list request to get the next page of results.
143213func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
143214	c.urlParams_.Set("pageToken", pageToken)
143215	return c
143216}
143217
143218// ReturnPartialSuccess sets the optional parameter
143219// "returnPartialSuccess": Opt-in for partial success behavior which
143220// provides partial results in case of failure. The default value is
143221// false.
143222func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
143223	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143224	return c
143225}
143226
143227// Fields allows partial responses to be retrieved. See
143228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143229// for more information.
143230func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
143231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143232	return c
143233}
143234
143235// IfNoneMatch sets the optional parameter which makes the operation
143236// fail if the object's ETag matches the given value. This is useful for
143237// getting updates only after the object has changed since the last
143238// request. Use googleapi.IsNotModified to check whether the response
143239// error from Do is the result of In-None-Match.
143240func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
143241	c.ifNoneMatch_ = entityTag
143242	return c
143243}
143244
143245// Context sets the context to be used in this call's Do method. Any
143246// pending HTTP request will be aborted if the provided context is
143247// canceled.
143248func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
143249	c.ctx_ = ctx
143250	return c
143251}
143252
143253// Header returns an http.Header that can be modified by the caller to
143254// add HTTP headers to the request.
143255func (c *SecurityPoliciesListCall) Header() http.Header {
143256	if c.header_ == nil {
143257		c.header_ = make(http.Header)
143258	}
143259	return c.header_
143260}
143261
143262func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
143263	reqHeaders := make(http.Header)
143264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
143265	for k, v := range c.header_ {
143266		reqHeaders[k] = v
143267	}
143268	reqHeaders.Set("User-Agent", c.s.userAgent())
143269	if c.ifNoneMatch_ != "" {
143270		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143271	}
143272	var body io.Reader = nil
143273	c.urlParams_.Set("alt", alt)
143274	c.urlParams_.Set("prettyPrint", "false")
143275	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
143276	urls += "?" + c.urlParams_.Encode()
143277	req, err := http.NewRequest("GET", urls, body)
143278	if err != nil {
143279		return nil, err
143280	}
143281	req.Header = reqHeaders
143282	googleapi.Expand(req.URL, map[string]string{
143283		"project": c.project,
143284	})
143285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143286}
143287
143288// Do executes the "compute.securityPolicies.list" call.
143289// Exactly one of *SecurityPolicyList or error will be non-nil. Any
143290// non-2xx status code is an error. Response headers are in either
143291// *SecurityPolicyList.ServerResponse.Header or (if a response was
143292// returned at all) in error.(*googleapi.Error).Header. Use
143293// googleapi.IsNotModified to check whether the returned error was
143294// because http.StatusNotModified was returned.
143295func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
143296	gensupport.SetOptions(c.urlParams_, opts...)
143297	res, err := c.doRequest("json")
143298	if res != nil && res.StatusCode == http.StatusNotModified {
143299		if res.Body != nil {
143300			res.Body.Close()
143301		}
143302		return nil, &googleapi.Error{
143303			Code:   res.StatusCode,
143304			Header: res.Header,
143305		}
143306	}
143307	if err != nil {
143308		return nil, err
143309	}
143310	defer googleapi.CloseBody(res)
143311	if err := googleapi.CheckResponse(res); err != nil {
143312		return nil, err
143313	}
143314	ret := &SecurityPolicyList{
143315		ServerResponse: googleapi.ServerResponse{
143316			Header:         res.Header,
143317			HTTPStatusCode: res.StatusCode,
143318		},
143319	}
143320	target := &ret
143321	if err := gensupport.DecodeResponse(target, res); err != nil {
143322		return nil, err
143323	}
143324	return ret, nil
143325	// {
143326	//   "description": "List all the policies that have been configured for the specified project.",
143327	//   "flatPath": "projects/{project}/global/securityPolicies",
143328	//   "httpMethod": "GET",
143329	//   "id": "compute.securityPolicies.list",
143330	//   "parameterOrder": [
143331	//     "project"
143332	//   ],
143333	//   "parameters": {
143334	//     "filter": {
143335	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143336	//       "location": "query",
143337	//       "type": "string"
143338	//     },
143339	//     "maxResults": {
143340	//       "default": "500",
143341	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143342	//       "format": "uint32",
143343	//       "location": "query",
143344	//       "minimum": "0",
143345	//       "type": "integer"
143346	//     },
143347	//     "orderBy": {
143348	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
143349	//       "location": "query",
143350	//       "type": "string"
143351	//     },
143352	//     "pageToken": {
143353	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143354	//       "location": "query",
143355	//       "type": "string"
143356	//     },
143357	//     "project": {
143358	//       "description": "Project ID for this request.",
143359	//       "location": "path",
143360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143361	//       "required": true,
143362	//       "type": "string"
143363	//     },
143364	//     "returnPartialSuccess": {
143365	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143366	//       "location": "query",
143367	//       "type": "boolean"
143368	//     }
143369	//   },
143370	//   "path": "projects/{project}/global/securityPolicies",
143371	//   "response": {
143372	//     "$ref": "SecurityPolicyList"
143373	//   },
143374	//   "scopes": [
143375	//     "https://www.googleapis.com/auth/cloud-platform",
143376	//     "https://www.googleapis.com/auth/compute",
143377	//     "https://www.googleapis.com/auth/compute.readonly"
143378	//   ]
143379	// }
143380
143381}
143382
143383// Pages invokes f for each page of results.
143384// A non-nil error returned from f will halt the iteration.
143385// The provided context supersedes any context provided to the Context method.
143386func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
143387	c.ctx_ = ctx
143388	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143389	for {
143390		x, err := c.Do()
143391		if err != nil {
143392			return err
143393		}
143394		if err := f(x); err != nil {
143395			return err
143396		}
143397		if x.NextPageToken == "" {
143398			return nil
143399		}
143400		c.PageToken(x.NextPageToken)
143401	}
143402}
143403
143404// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
143405
143406type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
143407	s            *Service
143408	project      string
143409	urlParams_   gensupport.URLParams
143410	ifNoneMatch_ string
143411	ctx_         context.Context
143412	header_      http.Header
143413}
143414
143415// ListPreconfiguredExpressionSets: Gets the current list of
143416// preconfigured Web Application Firewall (WAF) expressions.
143417//
143418// - project: Project ID for this request.
143419func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143420	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143421	c.project = project
143422	return c
143423}
143424
143425// Filter sets the optional parameter "filter": A filter expression that
143426// filters resources listed in the response. The expression must specify
143427// the field name, a comparison operator, and the value that you want to
143428// use for filtering. The value must be a string, a number, or a
143429// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143430// `<`. For example, if you are filtering Compute Engine instances, you
143431// can exclude instances named `example-instance` by specifying `name !=
143432// example-instance`. You can also filter nested fields. For example,
143433// you could specify `scheduling.automaticRestart = false` to include
143434// instances only if they are not scheduled for automatic restarts. You
143435// can use filtering on nested fields to filter based on resource
143436// labels. To filter on multiple expressions, provide each separate
143437// expression within parentheses. For example: ```
143438// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
143439// ``` By default, each expression is an `AND` expression. However, you
143440// can include `AND` and `OR` expressions explicitly. For example: ```
143441// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
143442// AND (scheduling.automaticRestart = true) ```
143443func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143444	c.urlParams_.Set("filter", filter)
143445	return c
143446}
143447
143448// MaxResults sets the optional parameter "maxResults": The maximum
143449// number of results per page that should be returned. If the number of
143450// available results is larger than `maxResults`, Compute Engine returns
143451// a `nextPageToken` that can be used to get the next page of results in
143452// subsequent list requests. Acceptable values are `0` to `500`,
143453// inclusive. (Default: `500`)
143454func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143455	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143456	return c
143457}
143458
143459// OrderBy sets the optional parameter "orderBy": Sorts list results by
143460// a certain order. By default, results are returned in alphanumerical
143461// order based on the resource name. You can also sort results in
143462// descending order based on the creation timestamp using
143463// `orderBy="creationTimestamp desc". This sorts results based on the
143464// `creationTimestamp` field in reverse chronological order (newest
143465// result first). Use this to sort resources like operations so that the
143466// newest operation is returned first. Currently, only sorting by `name`
143467// or `creationTimestamp desc` is supported.
143468func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143469	c.urlParams_.Set("orderBy", orderBy)
143470	return c
143471}
143472
143473// PageToken sets the optional parameter "pageToken": Specifies a page
143474// token to use. Set `pageToken` to the `nextPageToken` returned by a
143475// previous list request to get the next page of results.
143476func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143477	c.urlParams_.Set("pageToken", pageToken)
143478	return c
143479}
143480
143481// ReturnPartialSuccess sets the optional parameter
143482// "returnPartialSuccess": Opt-in for partial success behavior which
143483// provides partial results in case of failure. The default value is
143484// false.
143485func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143486	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143487	return c
143488}
143489
143490// Fields allows partial responses to be retrieved. See
143491// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143492// for more information.
143493func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143494	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143495	return c
143496}
143497
143498// IfNoneMatch sets the optional parameter which makes the operation
143499// fail if the object's ETag matches the given value. This is useful for
143500// getting updates only after the object has changed since the last
143501// request. Use googleapi.IsNotModified to check whether the response
143502// error from Do is the result of In-None-Match.
143503func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143504	c.ifNoneMatch_ = entityTag
143505	return c
143506}
143507
143508// Context sets the context to be used in this call's Do method. Any
143509// pending HTTP request will be aborted if the provided context is
143510// canceled.
143511func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143512	c.ctx_ = ctx
143513	return c
143514}
143515
143516// Header returns an http.Header that can be modified by the caller to
143517// add HTTP headers to the request.
143518func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
143519	if c.header_ == nil {
143520		c.header_ = make(http.Header)
143521	}
143522	return c.header_
143523}
143524
143525func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
143526	reqHeaders := make(http.Header)
143527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
143528	for k, v := range c.header_ {
143529		reqHeaders[k] = v
143530	}
143531	reqHeaders.Set("User-Agent", c.s.userAgent())
143532	if c.ifNoneMatch_ != "" {
143533		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143534	}
143535	var body io.Reader = nil
143536	c.urlParams_.Set("alt", alt)
143537	c.urlParams_.Set("prettyPrint", "false")
143538	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets")
143539	urls += "?" + c.urlParams_.Encode()
143540	req, err := http.NewRequest("GET", urls, body)
143541	if err != nil {
143542		return nil, err
143543	}
143544	req.Header = reqHeaders
143545	googleapi.Expand(req.URL, map[string]string{
143546		"project": c.project,
143547	})
143548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143549}
143550
143551// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
143552// Exactly one of
143553// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
143554// will be non-nil. Any non-2xx status code is an error. Response
143555// headers are in either
143556// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
143557// e.Header or (if a response was returned at all) in
143558// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
143559// whether the returned error was because http.StatusNotModified was
143560// returned.
143561func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
143562	gensupport.SetOptions(c.urlParams_, opts...)
143563	res, err := c.doRequest("json")
143564	if res != nil && res.StatusCode == http.StatusNotModified {
143565		if res.Body != nil {
143566			res.Body.Close()
143567		}
143568		return nil, &googleapi.Error{
143569			Code:   res.StatusCode,
143570			Header: res.Header,
143571		}
143572	}
143573	if err != nil {
143574		return nil, err
143575	}
143576	defer googleapi.CloseBody(res)
143577	if err := googleapi.CheckResponse(res); err != nil {
143578		return nil, err
143579	}
143580	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
143581		ServerResponse: googleapi.ServerResponse{
143582			Header:         res.Header,
143583			HTTPStatusCode: res.StatusCode,
143584		},
143585	}
143586	target := &ret
143587	if err := gensupport.DecodeResponse(target, res); err != nil {
143588		return nil, err
143589	}
143590	return ret, nil
143591	// {
143592	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
143593	//   "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
143594	//   "httpMethod": "GET",
143595	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
143596	//   "parameterOrder": [
143597	//     "project"
143598	//   ],
143599	//   "parameters": {
143600	//     "filter": {
143601	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143602	//       "location": "query",
143603	//       "type": "string"
143604	//     },
143605	//     "maxResults": {
143606	//       "default": "500",
143607	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143608	//       "format": "uint32",
143609	//       "location": "query",
143610	//       "minimum": "0",
143611	//       "type": "integer"
143612	//     },
143613	//     "orderBy": {
143614	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
143615	//       "location": "query",
143616	//       "type": "string"
143617	//     },
143618	//     "pageToken": {
143619	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143620	//       "location": "query",
143621	//       "type": "string"
143622	//     },
143623	//     "project": {
143624	//       "description": "Project ID for this request.",
143625	//       "location": "path",
143626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143627	//       "required": true,
143628	//       "type": "string"
143629	//     },
143630	//     "returnPartialSuccess": {
143631	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143632	//       "location": "query",
143633	//       "type": "boolean"
143634	//     }
143635	//   },
143636	//   "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
143637	//   "response": {
143638	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
143639	//   },
143640	//   "scopes": [
143641	//     "https://www.googleapis.com/auth/cloud-platform",
143642	//     "https://www.googleapis.com/auth/compute",
143643	//     "https://www.googleapis.com/auth/compute.readonly"
143644	//   ]
143645	// }
143646
143647}
143648
143649// method id "compute.securityPolicies.patch":
143650
143651type SecurityPoliciesPatchCall struct {
143652	s              *Service
143653	project        string
143654	securityPolicy string
143655	securitypolicy *SecurityPolicy
143656	urlParams_     gensupport.URLParams
143657	ctx_           context.Context
143658	header_        http.Header
143659}
143660
143661// Patch: Patches the specified policy with the data included in the
143662// request. This cannot be used to be update the rules in the policy.
143663// Please use the per rule methods like addRule, patchRule, and
143664// removeRule instead.
143665//
143666// - project: Project ID for this request.
143667// - securityPolicy: Name of the security policy to update.
143668func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
143669	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143670	c.project = project
143671	c.securityPolicy = securityPolicy
143672	c.securitypolicy = securitypolicy
143673	return c
143674}
143675
143676// RequestId sets the optional parameter "requestId": An optional
143677// request ID to identify requests. Specify a unique request ID so that
143678// if you must retry your request, the server will know to ignore the
143679// request if it has already been completed. For example, consider a
143680// situation where you make an initial request and the request times
143681// out. If you make the request again with the same request ID, the
143682// server can check if original operation with the same request ID was
143683// received, and if so, will ignore the second request. This prevents
143684// clients from accidentally creating duplicate commitments. The request
143685// ID must be a valid UUID with the exception that zero UUID is not
143686// supported ( 00000000-0000-0000-0000-000000000000).
143687func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
143688	c.urlParams_.Set("requestId", requestId)
143689	return c
143690}
143691
143692// Fields allows partial responses to be retrieved. See
143693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143694// for more information.
143695func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
143696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143697	return c
143698}
143699
143700// Context sets the context to be used in this call's Do method. Any
143701// pending HTTP request will be aborted if the provided context is
143702// canceled.
143703func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
143704	c.ctx_ = ctx
143705	return c
143706}
143707
143708// Header returns an http.Header that can be modified by the caller to
143709// add HTTP headers to the request.
143710func (c *SecurityPoliciesPatchCall) Header() http.Header {
143711	if c.header_ == nil {
143712		c.header_ = make(http.Header)
143713	}
143714	return c.header_
143715}
143716
143717func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
143718	reqHeaders := make(http.Header)
143719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
143720	for k, v := range c.header_ {
143721		reqHeaders[k] = v
143722	}
143723	reqHeaders.Set("User-Agent", c.s.userAgent())
143724	var body io.Reader = nil
143725	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
143726	if err != nil {
143727		return nil, err
143728	}
143729	reqHeaders.Set("Content-Type", "application/json")
143730	c.urlParams_.Set("alt", alt)
143731	c.urlParams_.Set("prettyPrint", "false")
143732	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
143733	urls += "?" + c.urlParams_.Encode()
143734	req, err := http.NewRequest("PATCH", urls, body)
143735	if err != nil {
143736		return nil, err
143737	}
143738	req.Header = reqHeaders
143739	googleapi.Expand(req.URL, map[string]string{
143740		"project":        c.project,
143741		"securityPolicy": c.securityPolicy,
143742	})
143743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143744}
143745
143746// Do executes the "compute.securityPolicies.patch" call.
143747// Exactly one of *Operation or error will be non-nil. Any non-2xx
143748// status code is an error. Response headers are in either
143749// *Operation.ServerResponse.Header or (if a response was returned at
143750// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143751// to check whether the returned error was because
143752// http.StatusNotModified was returned.
143753func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143754	gensupport.SetOptions(c.urlParams_, opts...)
143755	res, err := c.doRequest("json")
143756	if res != nil && res.StatusCode == http.StatusNotModified {
143757		if res.Body != nil {
143758			res.Body.Close()
143759		}
143760		return nil, &googleapi.Error{
143761			Code:   res.StatusCode,
143762			Header: res.Header,
143763		}
143764	}
143765	if err != nil {
143766		return nil, err
143767	}
143768	defer googleapi.CloseBody(res)
143769	if err := googleapi.CheckResponse(res); err != nil {
143770		return nil, err
143771	}
143772	ret := &Operation{
143773		ServerResponse: googleapi.ServerResponse{
143774			Header:         res.Header,
143775			HTTPStatusCode: res.StatusCode,
143776		},
143777	}
143778	target := &ret
143779	if err := gensupport.DecodeResponse(target, res); err != nil {
143780		return nil, err
143781	}
143782	return ret, nil
143783	// {
143784	//   "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.",
143785	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
143786	//   "httpMethod": "PATCH",
143787	//   "id": "compute.securityPolicies.patch",
143788	//   "parameterOrder": [
143789	//     "project",
143790	//     "securityPolicy"
143791	//   ],
143792	//   "parameters": {
143793	//     "project": {
143794	//       "description": "Project ID for this request.",
143795	//       "location": "path",
143796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143797	//       "required": true,
143798	//       "type": "string"
143799	//     },
143800	//     "requestId": {
143801	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
143802	//       "location": "query",
143803	//       "type": "string"
143804	//     },
143805	//     "securityPolicy": {
143806	//       "description": "Name of the security policy to update.",
143807	//       "location": "path",
143808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143809	//       "required": true,
143810	//       "type": "string"
143811	//     }
143812	//   },
143813	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
143814	//   "request": {
143815	//     "$ref": "SecurityPolicy"
143816	//   },
143817	//   "response": {
143818	//     "$ref": "Operation"
143819	//   },
143820	//   "scopes": [
143821	//     "https://www.googleapis.com/auth/cloud-platform",
143822	//     "https://www.googleapis.com/auth/compute"
143823	//   ]
143824	// }
143825
143826}
143827
143828// method id "compute.securityPolicies.patchRule":
143829
143830type SecurityPoliciesPatchRuleCall struct {
143831	s                  *Service
143832	project            string
143833	securityPolicy     string
143834	securitypolicyrule *SecurityPolicyRule
143835	urlParams_         gensupport.URLParams
143836	ctx_               context.Context
143837	header_            http.Header
143838}
143839
143840// PatchRule: Patches a rule at the specified priority.
143841//
143842// - project: Project ID for this request.
143843// - securityPolicy: Name of the security policy to update.
143844func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
143845	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143846	c.project = project
143847	c.securityPolicy = securityPolicy
143848	c.securitypolicyrule = securitypolicyrule
143849	return c
143850}
143851
143852// Priority sets the optional parameter "priority": The priority of the
143853// rule to patch.
143854func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
143855	c.urlParams_.Set("priority", fmt.Sprint(priority))
143856	return c
143857}
143858
143859// Fields allows partial responses to be retrieved. See
143860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143861// for more information.
143862func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
143863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143864	return c
143865}
143866
143867// Context sets the context to be used in this call's Do method. Any
143868// pending HTTP request will be aborted if the provided context is
143869// canceled.
143870func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
143871	c.ctx_ = ctx
143872	return c
143873}
143874
143875// Header returns an http.Header that can be modified by the caller to
143876// add HTTP headers to the request.
143877func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
143878	if c.header_ == nil {
143879		c.header_ = make(http.Header)
143880	}
143881	return c.header_
143882}
143883
143884func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
143885	reqHeaders := make(http.Header)
143886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
143887	for k, v := range c.header_ {
143888		reqHeaders[k] = v
143889	}
143890	reqHeaders.Set("User-Agent", c.s.userAgent())
143891	var body io.Reader = nil
143892	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
143893	if err != nil {
143894		return nil, err
143895	}
143896	reqHeaders.Set("Content-Type", "application/json")
143897	c.urlParams_.Set("alt", alt)
143898	c.urlParams_.Set("prettyPrint", "false")
143899	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule")
143900	urls += "?" + c.urlParams_.Encode()
143901	req, err := http.NewRequest("POST", urls, body)
143902	if err != nil {
143903		return nil, err
143904	}
143905	req.Header = reqHeaders
143906	googleapi.Expand(req.URL, map[string]string{
143907		"project":        c.project,
143908		"securityPolicy": c.securityPolicy,
143909	})
143910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143911}
143912
143913// Do executes the "compute.securityPolicies.patchRule" call.
143914// Exactly one of *Operation or error will be non-nil. Any non-2xx
143915// status code is an error. Response headers are in either
143916// *Operation.ServerResponse.Header or (if a response was returned at
143917// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143918// to check whether the returned error was because
143919// http.StatusNotModified was returned.
143920func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143921	gensupport.SetOptions(c.urlParams_, opts...)
143922	res, err := c.doRequest("json")
143923	if res != nil && res.StatusCode == http.StatusNotModified {
143924		if res.Body != nil {
143925			res.Body.Close()
143926		}
143927		return nil, &googleapi.Error{
143928			Code:   res.StatusCode,
143929			Header: res.Header,
143930		}
143931	}
143932	if err != nil {
143933		return nil, err
143934	}
143935	defer googleapi.CloseBody(res)
143936	if err := googleapi.CheckResponse(res); err != nil {
143937		return nil, err
143938	}
143939	ret := &Operation{
143940		ServerResponse: googleapi.ServerResponse{
143941			Header:         res.Header,
143942			HTTPStatusCode: res.StatusCode,
143943		},
143944	}
143945	target := &ret
143946	if err := gensupport.DecodeResponse(target, res); err != nil {
143947		return nil, err
143948	}
143949	return ret, nil
143950	// {
143951	//   "description": "Patches a rule at the specified priority.",
143952	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
143953	//   "httpMethod": "POST",
143954	//   "id": "compute.securityPolicies.patchRule",
143955	//   "parameterOrder": [
143956	//     "project",
143957	//     "securityPolicy"
143958	//   ],
143959	//   "parameters": {
143960	//     "priority": {
143961	//       "description": "The priority of the rule to patch.",
143962	//       "format": "int32",
143963	//       "location": "query",
143964	//       "type": "integer"
143965	//     },
143966	//     "project": {
143967	//       "description": "Project ID for this request.",
143968	//       "location": "path",
143969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143970	//       "required": true,
143971	//       "type": "string"
143972	//     },
143973	//     "securityPolicy": {
143974	//       "description": "Name of the security policy to update.",
143975	//       "location": "path",
143976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143977	//       "required": true,
143978	//       "type": "string"
143979	//     }
143980	//   },
143981	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
143982	//   "request": {
143983	//     "$ref": "SecurityPolicyRule"
143984	//   },
143985	//   "response": {
143986	//     "$ref": "Operation"
143987	//   },
143988	//   "scopes": [
143989	//     "https://www.googleapis.com/auth/cloud-platform",
143990	//     "https://www.googleapis.com/auth/compute"
143991	//   ]
143992	// }
143993
143994}
143995
143996// method id "compute.securityPolicies.removeRule":
143997
143998type SecurityPoliciesRemoveRuleCall struct {
143999	s              *Service
144000	project        string
144001	securityPolicy string
144002	urlParams_     gensupport.URLParams
144003	ctx_           context.Context
144004	header_        http.Header
144005}
144006
144007// RemoveRule: Deletes a rule at the specified priority.
144008//
144009// - project: Project ID for this request.
144010// - securityPolicy: Name of the security policy to update.
144011func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
144012	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144013	c.project = project
144014	c.securityPolicy = securityPolicy
144015	return c
144016}
144017
144018// Priority sets the optional parameter "priority": The priority of the
144019// rule to remove from the security policy.
144020func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
144021	c.urlParams_.Set("priority", fmt.Sprint(priority))
144022	return c
144023}
144024
144025// Fields allows partial responses to be retrieved. See
144026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144027// for more information.
144028func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
144029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144030	return c
144031}
144032
144033// Context sets the context to be used in this call's Do method. Any
144034// pending HTTP request will be aborted if the provided context is
144035// canceled.
144036func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
144037	c.ctx_ = ctx
144038	return c
144039}
144040
144041// Header returns an http.Header that can be modified by the caller to
144042// add HTTP headers to the request.
144043func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
144044	if c.header_ == nil {
144045		c.header_ = make(http.Header)
144046	}
144047	return c.header_
144048}
144049
144050func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
144051	reqHeaders := make(http.Header)
144052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
144053	for k, v := range c.header_ {
144054		reqHeaders[k] = v
144055	}
144056	reqHeaders.Set("User-Agent", c.s.userAgent())
144057	var body io.Reader = nil
144058	c.urlParams_.Set("alt", alt)
144059	c.urlParams_.Set("prettyPrint", "false")
144060	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule")
144061	urls += "?" + c.urlParams_.Encode()
144062	req, err := http.NewRequest("POST", urls, body)
144063	if err != nil {
144064		return nil, err
144065	}
144066	req.Header = reqHeaders
144067	googleapi.Expand(req.URL, map[string]string{
144068		"project":        c.project,
144069		"securityPolicy": c.securityPolicy,
144070	})
144071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144072}
144073
144074// Do executes the "compute.securityPolicies.removeRule" call.
144075// Exactly one of *Operation or error will be non-nil. Any non-2xx
144076// status code is an error. Response headers are in either
144077// *Operation.ServerResponse.Header or (if a response was returned at
144078// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144079// to check whether the returned error was because
144080// http.StatusNotModified was returned.
144081func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144082	gensupport.SetOptions(c.urlParams_, opts...)
144083	res, err := c.doRequest("json")
144084	if res != nil && res.StatusCode == http.StatusNotModified {
144085		if res.Body != nil {
144086			res.Body.Close()
144087		}
144088		return nil, &googleapi.Error{
144089			Code:   res.StatusCode,
144090			Header: res.Header,
144091		}
144092	}
144093	if err != nil {
144094		return nil, err
144095	}
144096	defer googleapi.CloseBody(res)
144097	if err := googleapi.CheckResponse(res); err != nil {
144098		return nil, err
144099	}
144100	ret := &Operation{
144101		ServerResponse: googleapi.ServerResponse{
144102			Header:         res.Header,
144103			HTTPStatusCode: res.StatusCode,
144104		},
144105	}
144106	target := &ret
144107	if err := gensupport.DecodeResponse(target, res); err != nil {
144108		return nil, err
144109	}
144110	return ret, nil
144111	// {
144112	//   "description": "Deletes a rule at the specified priority.",
144113	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
144114	//   "httpMethod": "POST",
144115	//   "id": "compute.securityPolicies.removeRule",
144116	//   "parameterOrder": [
144117	//     "project",
144118	//     "securityPolicy"
144119	//   ],
144120	//   "parameters": {
144121	//     "priority": {
144122	//       "description": "The priority of the rule to remove from the security policy.",
144123	//       "format": "int32",
144124	//       "location": "query",
144125	//       "type": "integer"
144126	//     },
144127	//     "project": {
144128	//       "description": "Project ID for this request.",
144129	//       "location": "path",
144130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144131	//       "required": true,
144132	//       "type": "string"
144133	//     },
144134	//     "securityPolicy": {
144135	//       "description": "Name of the security policy to update.",
144136	//       "location": "path",
144137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144138	//       "required": true,
144139	//       "type": "string"
144140	//     }
144141	//   },
144142	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
144143	//   "response": {
144144	//     "$ref": "Operation"
144145	//   },
144146	//   "scopes": [
144147	//     "https://www.googleapis.com/auth/cloud-platform",
144148	//     "https://www.googleapis.com/auth/compute"
144149	//   ]
144150	// }
144151
144152}
144153
144154// method id "compute.serviceAttachments.aggregatedList":
144155
144156type ServiceAttachmentsAggregatedListCall struct {
144157	s            *Service
144158	project      string
144159	urlParams_   gensupport.URLParams
144160	ifNoneMatch_ string
144161	ctx_         context.Context
144162	header_      http.Header
144163}
144164
144165// AggregatedList: Retrieves the list of all ServiceAttachment
144166// resources, regional and global, available to the specified project.
144167//
144168// - project: Name of the project scoping this request.
144169func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall {
144170	c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144171	c.project = project
144172	return c
144173}
144174
144175// Filter sets the optional parameter "filter": A filter expression that
144176// filters resources listed in the response. The expression must specify
144177// the field name, a comparison operator, and the value that you want to
144178// use for filtering. The value must be a string, a number, or a
144179// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144180// `<`. For example, if you are filtering Compute Engine instances, you
144181// can exclude instances named `example-instance` by specifying `name !=
144182// example-instance`. You can also filter nested fields. For example,
144183// you could specify `scheduling.automaticRestart = false` to include
144184// instances only if they are not scheduled for automatic restarts. You
144185// can use filtering on nested fields to filter based on resource
144186// labels. To filter on multiple expressions, provide each separate
144187// expression within parentheses. For example: ```
144188// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
144189// ``` By default, each expression is an `AND` expression. However, you
144190// can include `AND` and `OR` expressions explicitly. For example: ```
144191// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
144192// AND (scheduling.automaticRestart = true) ```
144193func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall {
144194	c.urlParams_.Set("filter", filter)
144195	return c
144196}
144197
144198// IncludeAllScopes sets the optional parameter "includeAllScopes":
144199// Indicates whether every visible scope for each scope type (zone,
144200// region, global) should be included in the response. For new resource
144201// types added after this field, the flag has no effect as new resource
144202// types will always include every visible scope for each scope type in
144203// response. For resource types which predate this field, if this flag
144204// is omitted or false, only scopes of the scope types where the
144205// resource type is expected to be found will be included.
144206func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall {
144207	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
144208	return c
144209}
144210
144211// MaxResults sets the optional parameter "maxResults": The maximum
144212// number of results per page that should be returned. If the number of
144213// available results is larger than `maxResults`, Compute Engine returns
144214// a `nextPageToken` that can be used to get the next page of results in
144215// subsequent list requests. Acceptable values are `0` to `500`,
144216// inclusive. (Default: `500`)
144217func (c *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall {
144218	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144219	return c
144220}
144221
144222// OrderBy sets the optional parameter "orderBy": Sorts list results by
144223// a certain order. By default, results are returned in alphanumerical
144224// order based on the resource name. You can also sort results in
144225// descending order based on the creation timestamp using
144226// `orderBy="creationTimestamp desc". This sorts results based on the
144227// `creationTimestamp` field in reverse chronological order (newest
144228// result first). Use this to sort resources like operations so that the
144229// newest operation is returned first. Currently, only sorting by `name`
144230// or `creationTimestamp desc` is supported.
144231func (c *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall {
144232	c.urlParams_.Set("orderBy", orderBy)
144233	return c
144234}
144235
144236// PageToken sets the optional parameter "pageToken": Specifies a page
144237// token to use. Set `pageToken` to the `nextPageToken` returned by a
144238// previous list request to get the next page of results.
144239func (c *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall {
144240	c.urlParams_.Set("pageToken", pageToken)
144241	return c
144242}
144243
144244// ReturnPartialSuccess sets the optional parameter
144245// "returnPartialSuccess": Opt-in for partial success behavior which
144246// provides partial results in case of failure. The default value is
144247// false.
144248func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall {
144249	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144250	return c
144251}
144252
144253// Fields allows partial responses to be retrieved. See
144254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144255// for more information.
144256func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall {
144257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144258	return c
144259}
144260
144261// IfNoneMatch sets the optional parameter which makes the operation
144262// fail if the object's ETag matches the given value. This is useful for
144263// getting updates only after the object has changed since the last
144264// request. Use googleapi.IsNotModified to check whether the response
144265// error from Do is the result of In-None-Match.
144266func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall {
144267	c.ifNoneMatch_ = entityTag
144268	return c
144269}
144270
144271// Context sets the context to be used in this call's Do method. Any
144272// pending HTTP request will be aborted if the provided context is
144273// canceled.
144274func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall {
144275	c.ctx_ = ctx
144276	return c
144277}
144278
144279// Header returns an http.Header that can be modified by the caller to
144280// add HTTP headers to the request.
144281func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header {
144282	if c.header_ == nil {
144283		c.header_ = make(http.Header)
144284	}
144285	return c.header_
144286}
144287
144288func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
144289	reqHeaders := make(http.Header)
144290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
144291	for k, v := range c.header_ {
144292		reqHeaders[k] = v
144293	}
144294	reqHeaders.Set("User-Agent", c.s.userAgent())
144295	if c.ifNoneMatch_ != "" {
144296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144297	}
144298	var body io.Reader = nil
144299	c.urlParams_.Set("alt", alt)
144300	c.urlParams_.Set("prettyPrint", "false")
144301	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments")
144302	urls += "?" + c.urlParams_.Encode()
144303	req, err := http.NewRequest("GET", urls, body)
144304	if err != nil {
144305		return nil, err
144306	}
144307	req.Header = reqHeaders
144308	googleapi.Expand(req.URL, map[string]string{
144309		"project": c.project,
144310	})
144311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144312}
144313
144314// Do executes the "compute.serviceAttachments.aggregatedList" call.
144315// Exactly one of *ServiceAttachmentAggregatedList or error will be
144316// non-nil. Any non-2xx status code is an error. Response headers are in
144317// either *ServiceAttachmentAggregatedList.ServerResponse.Header or (if
144318// a response was returned at all) in error.(*googleapi.Error).Header.
144319// Use googleapi.IsNotModified to check whether the returned error was
144320// because http.StatusNotModified was returned.
144321func (c *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, error) {
144322	gensupport.SetOptions(c.urlParams_, opts...)
144323	res, err := c.doRequest("json")
144324	if res != nil && res.StatusCode == http.StatusNotModified {
144325		if res.Body != nil {
144326			res.Body.Close()
144327		}
144328		return nil, &googleapi.Error{
144329			Code:   res.StatusCode,
144330			Header: res.Header,
144331		}
144332	}
144333	if err != nil {
144334		return nil, err
144335	}
144336	defer googleapi.CloseBody(res)
144337	if err := googleapi.CheckResponse(res); err != nil {
144338		return nil, err
144339	}
144340	ret := &ServiceAttachmentAggregatedList{
144341		ServerResponse: googleapi.ServerResponse{
144342			Header:         res.Header,
144343			HTTPStatusCode: res.StatusCode,
144344		},
144345	}
144346	target := &ret
144347	if err := gensupport.DecodeResponse(target, res); err != nil {
144348		return nil, err
144349	}
144350	return ret, nil
144351	// {
144352	//   "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.",
144353	//   "flatPath": "projects/{project}/aggregated/serviceAttachments",
144354	//   "httpMethod": "GET",
144355	//   "id": "compute.serviceAttachments.aggregatedList",
144356	//   "parameterOrder": [
144357	//     "project"
144358	//   ],
144359	//   "parameters": {
144360	//     "filter": {
144361	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144362	//       "location": "query",
144363	//       "type": "string"
144364	//     },
144365	//     "includeAllScopes": {
144366	//       "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.",
144367	//       "location": "query",
144368	//       "type": "boolean"
144369	//     },
144370	//     "maxResults": {
144371	//       "default": "500",
144372	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144373	//       "format": "uint32",
144374	//       "location": "query",
144375	//       "minimum": "0",
144376	//       "type": "integer"
144377	//     },
144378	//     "orderBy": {
144379	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
144380	//       "location": "query",
144381	//       "type": "string"
144382	//     },
144383	//     "pageToken": {
144384	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144385	//       "location": "query",
144386	//       "type": "string"
144387	//     },
144388	//     "project": {
144389	//       "description": "Name of the project scoping this request.",
144390	//       "location": "path",
144391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144392	//       "required": true,
144393	//       "type": "string"
144394	//     },
144395	//     "returnPartialSuccess": {
144396	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144397	//       "location": "query",
144398	//       "type": "boolean"
144399	//     }
144400	//   },
144401	//   "path": "projects/{project}/aggregated/serviceAttachments",
144402	//   "response": {
144403	//     "$ref": "ServiceAttachmentAggregatedList"
144404	//   },
144405	//   "scopes": [
144406	//     "https://www.googleapis.com/auth/cloud-platform",
144407	//     "https://www.googleapis.com/auth/compute",
144408	//     "https://www.googleapis.com/auth/compute.readonly"
144409	//   ]
144410	// }
144411
144412}
144413
144414// Pages invokes f for each page of results.
144415// A non-nil error returned from f will halt the iteration.
144416// The provided context supersedes any context provided to the Context method.
144417func (c *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error {
144418	c.ctx_ = ctx
144419	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144420	for {
144421		x, err := c.Do()
144422		if err != nil {
144423			return err
144424		}
144425		if err := f(x); err != nil {
144426			return err
144427		}
144428		if x.NextPageToken == "" {
144429			return nil
144430		}
144431		c.PageToken(x.NextPageToken)
144432	}
144433}
144434
144435// method id "compute.serviceAttachments.delete":
144436
144437type ServiceAttachmentsDeleteCall struct {
144438	s                 *Service
144439	project           string
144440	region            string
144441	serviceAttachment string
144442	urlParams_        gensupport.URLParams
144443	ctx_              context.Context
144444	header_           http.Header
144445}
144446
144447// Delete: Deletes the specified ServiceAttachment in the given scope
144448//
144449// - project: Project ID for this request.
144450// - region: Name of the region of this request.
144451// - serviceAttachment: Name of the ServiceAttachment resource to
144452//   delete.
144453func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall {
144454	c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144455	c.project = project
144456	c.region = region
144457	c.serviceAttachment = serviceAttachment
144458	return c
144459}
144460
144461// RequestId sets the optional parameter "requestId": An optional
144462// request ID to identify requests. Specify a unique request ID so that
144463// if you must retry your request, the server will know to ignore the
144464// request if it has already been completed. For example, consider a
144465// situation where you make an initial request and the request times
144466// out. If you make the request again with the same request ID, the
144467// server can check if original operation with the same request ID was
144468// received, and if so, will ignore the second request. This prevents
144469// clients from accidentally creating duplicate commitments. The request
144470// ID must be a valid UUID with the exception that zero UUID is not
144471// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
144472// MixerMutationRequestBuilder
144473func (c *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall {
144474	c.urlParams_.Set("requestId", requestId)
144475	return c
144476}
144477
144478// Fields allows partial responses to be retrieved. See
144479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144480// for more information.
144481func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall {
144482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144483	return c
144484}
144485
144486// Context sets the context to be used in this call's Do method. Any
144487// pending HTTP request will be aborted if the provided context is
144488// canceled.
144489func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall {
144490	c.ctx_ = ctx
144491	return c
144492}
144493
144494// Header returns an http.Header that can be modified by the caller to
144495// add HTTP headers to the request.
144496func (c *ServiceAttachmentsDeleteCall) Header() http.Header {
144497	if c.header_ == nil {
144498		c.header_ = make(http.Header)
144499	}
144500	return c.header_
144501}
144502
144503func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
144504	reqHeaders := make(http.Header)
144505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
144506	for k, v := range c.header_ {
144507		reqHeaders[k] = v
144508	}
144509	reqHeaders.Set("User-Agent", c.s.userAgent())
144510	var body io.Reader = nil
144511	c.urlParams_.Set("alt", alt)
144512	c.urlParams_.Set("prettyPrint", "false")
144513	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
144514	urls += "?" + c.urlParams_.Encode()
144515	req, err := http.NewRequest("DELETE", urls, body)
144516	if err != nil {
144517		return nil, err
144518	}
144519	req.Header = reqHeaders
144520	googleapi.Expand(req.URL, map[string]string{
144521		"project":           c.project,
144522		"region":            c.region,
144523		"serviceAttachment": c.serviceAttachment,
144524	})
144525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144526}
144527
144528// Do executes the "compute.serviceAttachments.delete" call.
144529// Exactly one of *Operation or error will be non-nil. Any non-2xx
144530// status code is an error. Response headers are in either
144531// *Operation.ServerResponse.Header or (if a response was returned at
144532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144533// to check whether the returned error was because
144534// http.StatusNotModified was returned.
144535func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144536	gensupport.SetOptions(c.urlParams_, opts...)
144537	res, err := c.doRequest("json")
144538	if res != nil && res.StatusCode == http.StatusNotModified {
144539		if res.Body != nil {
144540			res.Body.Close()
144541		}
144542		return nil, &googleapi.Error{
144543			Code:   res.StatusCode,
144544			Header: res.Header,
144545		}
144546	}
144547	if err != nil {
144548		return nil, err
144549	}
144550	defer googleapi.CloseBody(res)
144551	if err := googleapi.CheckResponse(res); err != nil {
144552		return nil, err
144553	}
144554	ret := &Operation{
144555		ServerResponse: googleapi.ServerResponse{
144556			Header:         res.Header,
144557			HTTPStatusCode: res.StatusCode,
144558		},
144559	}
144560	target := &ret
144561	if err := gensupport.DecodeResponse(target, res); err != nil {
144562		return nil, err
144563	}
144564	return ret, nil
144565	// {
144566	//   "description": "Deletes the specified ServiceAttachment in the given scope",
144567	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144568	//   "httpMethod": "DELETE",
144569	//   "id": "compute.serviceAttachments.delete",
144570	//   "parameterOrder": [
144571	//     "project",
144572	//     "region",
144573	//     "serviceAttachment"
144574	//   ],
144575	//   "parameters": {
144576	//     "project": {
144577	//       "description": "Project ID for this request.",
144578	//       "location": "path",
144579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144580	//       "required": true,
144581	//       "type": "string"
144582	//     },
144583	//     "region": {
144584	//       "description": "Name of the region of this request.",
144585	//       "location": "path",
144586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144587	//       "required": true,
144588	//       "type": "string"
144589	//     },
144590	//     "requestId": {
144591	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
144592	//       "location": "query",
144593	//       "type": "string"
144594	//     },
144595	//     "serviceAttachment": {
144596	//       "description": "Name of the ServiceAttachment resource to delete.",
144597	//       "location": "path",
144598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144599	//       "required": true,
144600	//       "type": "string"
144601	//     }
144602	//   },
144603	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144604	//   "response": {
144605	//     "$ref": "Operation"
144606	//   },
144607	//   "scopes": [
144608	//     "https://www.googleapis.com/auth/cloud-platform",
144609	//     "https://www.googleapis.com/auth/compute"
144610	//   ]
144611	// }
144612
144613}
144614
144615// method id "compute.serviceAttachments.get":
144616
144617type ServiceAttachmentsGetCall struct {
144618	s                 *Service
144619	project           string
144620	region            string
144621	serviceAttachment string
144622	urlParams_        gensupport.URLParams
144623	ifNoneMatch_      string
144624	ctx_              context.Context
144625	header_           http.Header
144626}
144627
144628// Get: Returns the specified ServiceAttachment resource in the given
144629// scope.
144630//
144631// - project: Project ID for this request.
144632// - region: Name of the region of this request.
144633// - serviceAttachment: Name of the ServiceAttachment resource to
144634//   return.
144635func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall {
144636	c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144637	c.project = project
144638	c.region = region
144639	c.serviceAttachment = serviceAttachment
144640	return c
144641}
144642
144643// Fields allows partial responses to be retrieved. See
144644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144645// for more information.
144646func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall {
144647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144648	return c
144649}
144650
144651// IfNoneMatch sets the optional parameter which makes the operation
144652// fail if the object's ETag matches the given value. This is useful for
144653// getting updates only after the object has changed since the last
144654// request. Use googleapi.IsNotModified to check whether the response
144655// error from Do is the result of In-None-Match.
144656func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall {
144657	c.ifNoneMatch_ = entityTag
144658	return c
144659}
144660
144661// Context sets the context to be used in this call's Do method. Any
144662// pending HTTP request will be aborted if the provided context is
144663// canceled.
144664func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall {
144665	c.ctx_ = ctx
144666	return c
144667}
144668
144669// Header returns an http.Header that can be modified by the caller to
144670// add HTTP headers to the request.
144671func (c *ServiceAttachmentsGetCall) Header() http.Header {
144672	if c.header_ == nil {
144673		c.header_ = make(http.Header)
144674	}
144675	return c.header_
144676}
144677
144678func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
144679	reqHeaders := make(http.Header)
144680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
144681	for k, v := range c.header_ {
144682		reqHeaders[k] = v
144683	}
144684	reqHeaders.Set("User-Agent", c.s.userAgent())
144685	if c.ifNoneMatch_ != "" {
144686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144687	}
144688	var body io.Reader = nil
144689	c.urlParams_.Set("alt", alt)
144690	c.urlParams_.Set("prettyPrint", "false")
144691	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
144692	urls += "?" + c.urlParams_.Encode()
144693	req, err := http.NewRequest("GET", urls, body)
144694	if err != nil {
144695		return nil, err
144696	}
144697	req.Header = reqHeaders
144698	googleapi.Expand(req.URL, map[string]string{
144699		"project":           c.project,
144700		"region":            c.region,
144701		"serviceAttachment": c.serviceAttachment,
144702	})
144703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144704}
144705
144706// Do executes the "compute.serviceAttachments.get" call.
144707// Exactly one of *ServiceAttachment or error will be non-nil. Any
144708// non-2xx status code is an error. Response headers are in either
144709// *ServiceAttachment.ServerResponse.Header or (if a response was
144710// returned at all) in error.(*googleapi.Error).Header. Use
144711// googleapi.IsNotModified to check whether the returned error was
144712// because http.StatusNotModified was returned.
144713func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) {
144714	gensupport.SetOptions(c.urlParams_, opts...)
144715	res, err := c.doRequest("json")
144716	if res != nil && res.StatusCode == http.StatusNotModified {
144717		if res.Body != nil {
144718			res.Body.Close()
144719		}
144720		return nil, &googleapi.Error{
144721			Code:   res.StatusCode,
144722			Header: res.Header,
144723		}
144724	}
144725	if err != nil {
144726		return nil, err
144727	}
144728	defer googleapi.CloseBody(res)
144729	if err := googleapi.CheckResponse(res); err != nil {
144730		return nil, err
144731	}
144732	ret := &ServiceAttachment{
144733		ServerResponse: googleapi.ServerResponse{
144734			Header:         res.Header,
144735			HTTPStatusCode: res.StatusCode,
144736		},
144737	}
144738	target := &ret
144739	if err := gensupport.DecodeResponse(target, res); err != nil {
144740		return nil, err
144741	}
144742	return ret, nil
144743	// {
144744	//   "description": "Returns the specified ServiceAttachment resource in the given scope.",
144745	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144746	//   "httpMethod": "GET",
144747	//   "id": "compute.serviceAttachments.get",
144748	//   "parameterOrder": [
144749	//     "project",
144750	//     "region",
144751	//     "serviceAttachment"
144752	//   ],
144753	//   "parameters": {
144754	//     "project": {
144755	//       "description": "Project ID for this request.",
144756	//       "location": "path",
144757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144758	//       "required": true,
144759	//       "type": "string"
144760	//     },
144761	//     "region": {
144762	//       "description": "Name of the region of this request.",
144763	//       "location": "path",
144764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144765	//       "required": true,
144766	//       "type": "string"
144767	//     },
144768	//     "serviceAttachment": {
144769	//       "description": "Name of the ServiceAttachment resource to return.",
144770	//       "location": "path",
144771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144772	//       "required": true,
144773	//       "type": "string"
144774	//     }
144775	//   },
144776	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144777	//   "response": {
144778	//     "$ref": "ServiceAttachment"
144779	//   },
144780	//   "scopes": [
144781	//     "https://www.googleapis.com/auth/cloud-platform",
144782	//     "https://www.googleapis.com/auth/compute",
144783	//     "https://www.googleapis.com/auth/compute.readonly"
144784	//   ]
144785	// }
144786
144787}
144788
144789// method id "compute.serviceAttachments.getIamPolicy":
144790
144791type ServiceAttachmentsGetIamPolicyCall struct {
144792	s            *Service
144793	project      string
144794	region       string
144795	resource     string
144796	urlParams_   gensupport.URLParams
144797	ifNoneMatch_ string
144798	ctx_         context.Context
144799	header_      http.Header
144800}
144801
144802// GetIamPolicy: Gets the access control policy for a resource. May be
144803// empty if no such policy or resource exists.
144804//
144805// - project: Project ID for this request.
144806// - region: The name of the region for this request.
144807// - resource: Name or id of the resource for this request.
144808func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall {
144809	c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144810	c.project = project
144811	c.region = region
144812	c.resource = resource
144813	return c
144814}
144815
144816// OptionsRequestedPolicyVersion sets the optional parameter
144817// "optionsRequestedPolicyVersion": Requested IAM Policy version.
144818func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall {
144819	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
144820	return c
144821}
144822
144823// Fields allows partial responses to be retrieved. See
144824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144825// for more information.
144826func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall {
144827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144828	return c
144829}
144830
144831// IfNoneMatch sets the optional parameter which makes the operation
144832// fail if the object's ETag matches the given value. This is useful for
144833// getting updates only after the object has changed since the last
144834// request. Use googleapi.IsNotModified to check whether the response
144835// error from Do is the result of In-None-Match.
144836func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall {
144837	c.ifNoneMatch_ = entityTag
144838	return c
144839}
144840
144841// Context sets the context to be used in this call's Do method. Any
144842// pending HTTP request will be aborted if the provided context is
144843// canceled.
144844func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall {
144845	c.ctx_ = ctx
144846	return c
144847}
144848
144849// Header returns an http.Header that can be modified by the caller to
144850// add HTTP headers to the request.
144851func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header {
144852	if c.header_ == nil {
144853		c.header_ = make(http.Header)
144854	}
144855	return c.header_
144856}
144857
144858func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
144859	reqHeaders := make(http.Header)
144860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
144861	for k, v := range c.header_ {
144862		reqHeaders[k] = v
144863	}
144864	reqHeaders.Set("User-Agent", c.s.userAgent())
144865	if c.ifNoneMatch_ != "" {
144866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144867	}
144868	var body io.Reader = nil
144869	c.urlParams_.Set("alt", alt)
144870	c.urlParams_.Set("prettyPrint", "false")
144871	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy")
144872	urls += "?" + c.urlParams_.Encode()
144873	req, err := http.NewRequest("GET", urls, body)
144874	if err != nil {
144875		return nil, err
144876	}
144877	req.Header = reqHeaders
144878	googleapi.Expand(req.URL, map[string]string{
144879		"project":  c.project,
144880		"region":   c.region,
144881		"resource": c.resource,
144882	})
144883	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144884}
144885
144886// Do executes the "compute.serviceAttachments.getIamPolicy" call.
144887// Exactly one of *Policy or error will be non-nil. Any non-2xx status
144888// code is an error. Response headers are in either
144889// *Policy.ServerResponse.Header or (if a response was returned at all)
144890// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
144891// check whether the returned error was because http.StatusNotModified
144892// was returned.
144893func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
144894	gensupport.SetOptions(c.urlParams_, opts...)
144895	res, err := c.doRequest("json")
144896	if res != nil && res.StatusCode == http.StatusNotModified {
144897		if res.Body != nil {
144898			res.Body.Close()
144899		}
144900		return nil, &googleapi.Error{
144901			Code:   res.StatusCode,
144902			Header: res.Header,
144903		}
144904	}
144905	if err != nil {
144906		return nil, err
144907	}
144908	defer googleapi.CloseBody(res)
144909	if err := googleapi.CheckResponse(res); err != nil {
144910		return nil, err
144911	}
144912	ret := &Policy{
144913		ServerResponse: googleapi.ServerResponse{
144914			Header:         res.Header,
144915			HTTPStatusCode: res.StatusCode,
144916		},
144917	}
144918	target := &ret
144919	if err := gensupport.DecodeResponse(target, res); err != nil {
144920		return nil, err
144921	}
144922	return ret, nil
144923	// {
144924	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
144925	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
144926	//   "httpMethod": "GET",
144927	//   "id": "compute.serviceAttachments.getIamPolicy",
144928	//   "parameterOrder": [
144929	//     "project",
144930	//     "region",
144931	//     "resource"
144932	//   ],
144933	//   "parameters": {
144934	//     "optionsRequestedPolicyVersion": {
144935	//       "description": "Requested IAM Policy version.",
144936	//       "format": "int32",
144937	//       "location": "query",
144938	//       "type": "integer"
144939	//     },
144940	//     "project": {
144941	//       "description": "Project ID for this request.",
144942	//       "location": "path",
144943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144944	//       "required": true,
144945	//       "type": "string"
144946	//     },
144947	//     "region": {
144948	//       "description": "The name of the region for this request.",
144949	//       "location": "path",
144950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144951	//       "required": true,
144952	//       "type": "string"
144953	//     },
144954	//     "resource": {
144955	//       "description": "Name or id of the resource for this request.",
144956	//       "location": "path",
144957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144958	//       "required": true,
144959	//       "type": "string"
144960	//     }
144961	//   },
144962	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
144963	//   "response": {
144964	//     "$ref": "Policy"
144965	//   },
144966	//   "scopes": [
144967	//     "https://www.googleapis.com/auth/cloud-platform",
144968	//     "https://www.googleapis.com/auth/compute",
144969	//     "https://www.googleapis.com/auth/compute.readonly"
144970	//   ]
144971	// }
144972
144973}
144974
144975// method id "compute.serviceAttachments.insert":
144976
144977type ServiceAttachmentsInsertCall struct {
144978	s                 *Service
144979	project           string
144980	region            string
144981	serviceattachment *ServiceAttachment
144982	urlParams_        gensupport.URLParams
144983	ctx_              context.Context
144984	header_           http.Header
144985}
144986
144987// Insert: Creates a ServiceAttachment in the specified project in the
144988// given scope using the parameters that are included in the request.
144989//
144990// - project: Project ID for this request.
144991// - region: Name of the region of this request.
144992func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall {
144993	c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144994	c.project = project
144995	c.region = region
144996	c.serviceattachment = serviceattachment
144997	return c
144998}
144999
145000// RequestId sets the optional parameter "requestId": An optional
145001// request ID to identify requests. Specify a unique request ID so that
145002// if you must retry your request, the server will know to ignore the
145003// request if it has already been completed. For example, consider a
145004// situation where you make an initial request and the request times
145005// out. If you make the request again with the same request ID, the
145006// server can check if original operation with the same request ID was
145007// received, and if so, will ignore the second request. This prevents
145008// clients from accidentally creating duplicate commitments. The request
145009// ID must be a valid UUID with the exception that zero UUID is not
145010// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
145011// MixerMutationRequestBuilder
145012func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall {
145013	c.urlParams_.Set("requestId", requestId)
145014	return c
145015}
145016
145017// Fields allows partial responses to be retrieved. See
145018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145019// for more information.
145020func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall {
145021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145022	return c
145023}
145024
145025// Context sets the context to be used in this call's Do method. Any
145026// pending HTTP request will be aborted if the provided context is
145027// canceled.
145028func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall {
145029	c.ctx_ = ctx
145030	return c
145031}
145032
145033// Header returns an http.Header that can be modified by the caller to
145034// add HTTP headers to the request.
145035func (c *ServiceAttachmentsInsertCall) Header() http.Header {
145036	if c.header_ == nil {
145037		c.header_ = make(http.Header)
145038	}
145039	return c.header_
145040}
145041
145042func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
145043	reqHeaders := make(http.Header)
145044	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
145045	for k, v := range c.header_ {
145046		reqHeaders[k] = v
145047	}
145048	reqHeaders.Set("User-Agent", c.s.userAgent())
145049	var body io.Reader = nil
145050	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
145051	if err != nil {
145052		return nil, err
145053	}
145054	reqHeaders.Set("Content-Type", "application/json")
145055	c.urlParams_.Set("alt", alt)
145056	c.urlParams_.Set("prettyPrint", "false")
145057	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
145058	urls += "?" + c.urlParams_.Encode()
145059	req, err := http.NewRequest("POST", urls, body)
145060	if err != nil {
145061		return nil, err
145062	}
145063	req.Header = reqHeaders
145064	googleapi.Expand(req.URL, map[string]string{
145065		"project": c.project,
145066		"region":  c.region,
145067	})
145068	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145069}
145070
145071// Do executes the "compute.serviceAttachments.insert" call.
145072// Exactly one of *Operation or error will be non-nil. Any non-2xx
145073// status code is an error. Response headers are in either
145074// *Operation.ServerResponse.Header or (if a response was returned at
145075// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145076// to check whether the returned error was because
145077// http.StatusNotModified was returned.
145078func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145079	gensupport.SetOptions(c.urlParams_, opts...)
145080	res, err := c.doRequest("json")
145081	if res != nil && res.StatusCode == http.StatusNotModified {
145082		if res.Body != nil {
145083			res.Body.Close()
145084		}
145085		return nil, &googleapi.Error{
145086			Code:   res.StatusCode,
145087			Header: res.Header,
145088		}
145089	}
145090	if err != nil {
145091		return nil, err
145092	}
145093	defer googleapi.CloseBody(res)
145094	if err := googleapi.CheckResponse(res); err != nil {
145095		return nil, err
145096	}
145097	ret := &Operation{
145098		ServerResponse: googleapi.ServerResponse{
145099			Header:         res.Header,
145100			HTTPStatusCode: res.StatusCode,
145101		},
145102	}
145103	target := &ret
145104	if err := gensupport.DecodeResponse(target, res); err != nil {
145105		return nil, err
145106	}
145107	return ret, nil
145108	// {
145109	//   "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.",
145110	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments",
145111	//   "httpMethod": "POST",
145112	//   "id": "compute.serviceAttachments.insert",
145113	//   "parameterOrder": [
145114	//     "project",
145115	//     "region"
145116	//   ],
145117	//   "parameters": {
145118	//     "project": {
145119	//       "description": "Project ID for this request.",
145120	//       "location": "path",
145121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145122	//       "required": true,
145123	//       "type": "string"
145124	//     },
145125	//     "region": {
145126	//       "description": "Name of the region of this request.",
145127	//       "location": "path",
145128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145129	//       "required": true,
145130	//       "type": "string"
145131	//     },
145132	//     "requestId": {
145133	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
145134	//       "location": "query",
145135	//       "type": "string"
145136	//     }
145137	//   },
145138	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
145139	//   "request": {
145140	//     "$ref": "ServiceAttachment"
145141	//   },
145142	//   "response": {
145143	//     "$ref": "Operation"
145144	//   },
145145	//   "scopes": [
145146	//     "https://www.googleapis.com/auth/cloud-platform",
145147	//     "https://www.googleapis.com/auth/compute"
145148	//   ]
145149	// }
145150
145151}
145152
145153// method id "compute.serviceAttachments.list":
145154
145155type ServiceAttachmentsListCall struct {
145156	s            *Service
145157	project      string
145158	region       string
145159	urlParams_   gensupport.URLParams
145160	ifNoneMatch_ string
145161	ctx_         context.Context
145162	header_      http.Header
145163}
145164
145165// List: Lists the ServiceAttachments for a project in the given scope.
145166//
145167// - project: Project ID for this request.
145168// - region: Name of the region of this request.
145169func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall {
145170	c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145171	c.project = project
145172	c.region = region
145173	return c
145174}
145175
145176// Filter sets the optional parameter "filter": A filter expression that
145177// filters resources listed in the response. The expression must specify
145178// the field name, a comparison operator, and the value that you want to
145179// use for filtering. The value must be a string, a number, or a
145180// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145181// `<`. For example, if you are filtering Compute Engine instances, you
145182// can exclude instances named `example-instance` by specifying `name !=
145183// example-instance`. You can also filter nested fields. For example,
145184// you could specify `scheduling.automaticRestart = false` to include
145185// instances only if they are not scheduled for automatic restarts. You
145186// can use filtering on nested fields to filter based on resource
145187// labels. To filter on multiple expressions, provide each separate
145188// expression within parentheses. For example: ```
145189// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
145190// ``` By default, each expression is an `AND` expression. However, you
145191// can include `AND` and `OR` expressions explicitly. For example: ```
145192// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
145193// AND (scheduling.automaticRestart = true) ```
145194func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall {
145195	c.urlParams_.Set("filter", filter)
145196	return c
145197}
145198
145199// MaxResults sets the optional parameter "maxResults": The maximum
145200// number of results per page that should be returned. If the number of
145201// available results is larger than `maxResults`, Compute Engine returns
145202// a `nextPageToken` that can be used to get the next page of results in
145203// subsequent list requests. Acceptable values are `0` to `500`,
145204// inclusive. (Default: `500`)
145205func (c *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall {
145206	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145207	return c
145208}
145209
145210// OrderBy sets the optional parameter "orderBy": Sorts list results by
145211// a certain order. By default, results are returned in alphanumerical
145212// order based on the resource name. You can also sort results in
145213// descending order based on the creation timestamp using
145214// `orderBy="creationTimestamp desc". This sorts results based on the
145215// `creationTimestamp` field in reverse chronological order (newest
145216// result first). Use this to sort resources like operations so that the
145217// newest operation is returned first. Currently, only sorting by `name`
145218// or `creationTimestamp desc` is supported.
145219func (c *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall {
145220	c.urlParams_.Set("orderBy", orderBy)
145221	return c
145222}
145223
145224// PageToken sets the optional parameter "pageToken": Specifies a page
145225// token to use. Set `pageToken` to the `nextPageToken` returned by a
145226// previous list request to get the next page of results.
145227func (c *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall {
145228	c.urlParams_.Set("pageToken", pageToken)
145229	return c
145230}
145231
145232// ReturnPartialSuccess sets the optional parameter
145233// "returnPartialSuccess": Opt-in for partial success behavior which
145234// provides partial results in case of failure. The default value is
145235// false.
145236func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall {
145237	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145238	return c
145239}
145240
145241// Fields allows partial responses to be retrieved. See
145242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145243// for more information.
145244func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall {
145245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145246	return c
145247}
145248
145249// IfNoneMatch sets the optional parameter which makes the operation
145250// fail if the object's ETag matches the given value. This is useful for
145251// getting updates only after the object has changed since the last
145252// request. Use googleapi.IsNotModified to check whether the response
145253// error from Do is the result of In-None-Match.
145254func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall {
145255	c.ifNoneMatch_ = entityTag
145256	return c
145257}
145258
145259// Context sets the context to be used in this call's Do method. Any
145260// pending HTTP request will be aborted if the provided context is
145261// canceled.
145262func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall {
145263	c.ctx_ = ctx
145264	return c
145265}
145266
145267// Header returns an http.Header that can be modified by the caller to
145268// add HTTP headers to the request.
145269func (c *ServiceAttachmentsListCall) Header() http.Header {
145270	if c.header_ == nil {
145271		c.header_ = make(http.Header)
145272	}
145273	return c.header_
145274}
145275
145276func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
145277	reqHeaders := make(http.Header)
145278	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
145279	for k, v := range c.header_ {
145280		reqHeaders[k] = v
145281	}
145282	reqHeaders.Set("User-Agent", c.s.userAgent())
145283	if c.ifNoneMatch_ != "" {
145284		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145285	}
145286	var body io.Reader = nil
145287	c.urlParams_.Set("alt", alt)
145288	c.urlParams_.Set("prettyPrint", "false")
145289	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
145290	urls += "?" + c.urlParams_.Encode()
145291	req, err := http.NewRequest("GET", urls, body)
145292	if err != nil {
145293		return nil, err
145294	}
145295	req.Header = reqHeaders
145296	googleapi.Expand(req.URL, map[string]string{
145297		"project": c.project,
145298		"region":  c.region,
145299	})
145300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145301}
145302
145303// Do executes the "compute.serviceAttachments.list" call.
145304// Exactly one of *ServiceAttachmentList or error will be non-nil. Any
145305// non-2xx status code is an error. Response headers are in either
145306// *ServiceAttachmentList.ServerResponse.Header or (if a response was
145307// returned at all) in error.(*googleapi.Error).Header. Use
145308// googleapi.IsNotModified to check whether the returned error was
145309// because http.StatusNotModified was returned.
145310func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) {
145311	gensupport.SetOptions(c.urlParams_, opts...)
145312	res, err := c.doRequest("json")
145313	if res != nil && res.StatusCode == http.StatusNotModified {
145314		if res.Body != nil {
145315			res.Body.Close()
145316		}
145317		return nil, &googleapi.Error{
145318			Code:   res.StatusCode,
145319			Header: res.Header,
145320		}
145321	}
145322	if err != nil {
145323		return nil, err
145324	}
145325	defer googleapi.CloseBody(res)
145326	if err := googleapi.CheckResponse(res); err != nil {
145327		return nil, err
145328	}
145329	ret := &ServiceAttachmentList{
145330		ServerResponse: googleapi.ServerResponse{
145331			Header:         res.Header,
145332			HTTPStatusCode: res.StatusCode,
145333		},
145334	}
145335	target := &ret
145336	if err := gensupport.DecodeResponse(target, res); err != nil {
145337		return nil, err
145338	}
145339	return ret, nil
145340	// {
145341	//   "description": "Lists the ServiceAttachments for a project in the given scope.",
145342	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments",
145343	//   "httpMethod": "GET",
145344	//   "id": "compute.serviceAttachments.list",
145345	//   "parameterOrder": [
145346	//     "project",
145347	//     "region"
145348	//   ],
145349	//   "parameters": {
145350	//     "filter": {
145351	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145352	//       "location": "query",
145353	//       "type": "string"
145354	//     },
145355	//     "maxResults": {
145356	//       "default": "500",
145357	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145358	//       "format": "uint32",
145359	//       "location": "query",
145360	//       "minimum": "0",
145361	//       "type": "integer"
145362	//     },
145363	//     "orderBy": {
145364	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
145365	//       "location": "query",
145366	//       "type": "string"
145367	//     },
145368	//     "pageToken": {
145369	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145370	//       "location": "query",
145371	//       "type": "string"
145372	//     },
145373	//     "project": {
145374	//       "description": "Project ID for this request.",
145375	//       "location": "path",
145376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145377	//       "required": true,
145378	//       "type": "string"
145379	//     },
145380	//     "region": {
145381	//       "description": "Name of the region of this request.",
145382	//       "location": "path",
145383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145384	//       "required": true,
145385	//       "type": "string"
145386	//     },
145387	//     "returnPartialSuccess": {
145388	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
145389	//       "location": "query",
145390	//       "type": "boolean"
145391	//     }
145392	//   },
145393	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
145394	//   "response": {
145395	//     "$ref": "ServiceAttachmentList"
145396	//   },
145397	//   "scopes": [
145398	//     "https://www.googleapis.com/auth/cloud-platform",
145399	//     "https://www.googleapis.com/auth/compute",
145400	//     "https://www.googleapis.com/auth/compute.readonly"
145401	//   ]
145402	// }
145403
145404}
145405
145406// Pages invokes f for each page of results.
145407// A non-nil error returned from f will halt the iteration.
145408// The provided context supersedes any context provided to the Context method.
145409func (c *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error {
145410	c.ctx_ = ctx
145411	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145412	for {
145413		x, err := c.Do()
145414		if err != nil {
145415			return err
145416		}
145417		if err := f(x); err != nil {
145418			return err
145419		}
145420		if x.NextPageToken == "" {
145421			return nil
145422		}
145423		c.PageToken(x.NextPageToken)
145424	}
145425}
145426
145427// method id "compute.serviceAttachments.patch":
145428
145429type ServiceAttachmentsPatchCall struct {
145430	s                 *Service
145431	project           string
145432	region            string
145433	serviceAttachment string
145434	serviceattachment *ServiceAttachment
145435	urlParams_        gensupport.URLParams
145436	ctx_              context.Context
145437	header_           http.Header
145438}
145439
145440// Patch: Patches the specified ServiceAttachment resource with the data
145441// included in the request. This method supports PATCH semantics and
145442// uses JSON merge patch format and processing rules.
145443//
145444// - project: Project ID for this request.
145445// - region: The region scoping this request and should conform to
145446//   RFC1035.
145447// - serviceAttachment: The resource id of the ServiceAttachment to
145448//   patch. It should conform to RFC1035 resource name or be a string
145449//   form on an unsigned long number.
145450func (r *ServiceAttachmentsService) Patch(project string, region string, serviceAttachment string, serviceattachment *ServiceAttachment) *ServiceAttachmentsPatchCall {
145451	c := &ServiceAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145452	c.project = project
145453	c.region = region
145454	c.serviceAttachment = serviceAttachment
145455	c.serviceattachment = serviceattachment
145456	return c
145457}
145458
145459// RequestId sets the optional parameter "requestId": An optional
145460// request ID to identify requests. Specify a unique request ID so that
145461// if you must retry your request, the server will know to ignore the
145462// request if it has already been completed. For example, consider a
145463// situation where you make an initial request and the request times
145464// out. If you make the request again with the same request ID, the
145465// server can check if original operation with the same request ID was
145466// received, and if so, will ignore the second request. This prevents
145467// clients from accidentally creating duplicate commitments. The request
145468// ID must be a valid UUID with the exception that zero UUID is not
145469// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
145470// MixerMutationRequestBuilder
145471func (c *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttachmentsPatchCall {
145472	c.urlParams_.Set("requestId", requestId)
145473	return c
145474}
145475
145476// Fields allows partial responses to be retrieved. See
145477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145478// for more information.
145479func (c *ServiceAttachmentsPatchCall) Fields(s ...googleapi.Field) *ServiceAttachmentsPatchCall {
145480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145481	return c
145482}
145483
145484// Context sets the context to be used in this call's Do method. Any
145485// pending HTTP request will be aborted if the provided context is
145486// canceled.
145487func (c *ServiceAttachmentsPatchCall) Context(ctx context.Context) *ServiceAttachmentsPatchCall {
145488	c.ctx_ = ctx
145489	return c
145490}
145491
145492// Header returns an http.Header that can be modified by the caller to
145493// add HTTP headers to the request.
145494func (c *ServiceAttachmentsPatchCall) Header() http.Header {
145495	if c.header_ == nil {
145496		c.header_ = make(http.Header)
145497	}
145498	return c.header_
145499}
145500
145501func (c *ServiceAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
145502	reqHeaders := make(http.Header)
145503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
145504	for k, v := range c.header_ {
145505		reqHeaders[k] = v
145506	}
145507	reqHeaders.Set("User-Agent", c.s.userAgent())
145508	var body io.Reader = nil
145509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
145510	if err != nil {
145511		return nil, err
145512	}
145513	reqHeaders.Set("Content-Type", "application/json")
145514	c.urlParams_.Set("alt", alt)
145515	c.urlParams_.Set("prettyPrint", "false")
145516	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
145517	urls += "?" + c.urlParams_.Encode()
145518	req, err := http.NewRequest("PATCH", urls, body)
145519	if err != nil {
145520		return nil, err
145521	}
145522	req.Header = reqHeaders
145523	googleapi.Expand(req.URL, map[string]string{
145524		"project":           c.project,
145525		"region":            c.region,
145526		"serviceAttachment": c.serviceAttachment,
145527	})
145528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145529}
145530
145531// Do executes the "compute.serviceAttachments.patch" call.
145532// Exactly one of *Operation or error will be non-nil. Any non-2xx
145533// status code is an error. Response headers are in either
145534// *Operation.ServerResponse.Header or (if a response was returned at
145535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145536// to check whether the returned error was because
145537// http.StatusNotModified was returned.
145538func (c *ServiceAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145539	gensupport.SetOptions(c.urlParams_, opts...)
145540	res, err := c.doRequest("json")
145541	if res != nil && res.StatusCode == http.StatusNotModified {
145542		if res.Body != nil {
145543			res.Body.Close()
145544		}
145545		return nil, &googleapi.Error{
145546			Code:   res.StatusCode,
145547			Header: res.Header,
145548		}
145549	}
145550	if err != nil {
145551		return nil, err
145552	}
145553	defer googleapi.CloseBody(res)
145554	if err := googleapi.CheckResponse(res); err != nil {
145555		return nil, err
145556	}
145557	ret := &Operation{
145558		ServerResponse: googleapi.ServerResponse{
145559			Header:         res.Header,
145560			HTTPStatusCode: res.StatusCode,
145561		},
145562	}
145563	target := &ret
145564	if err := gensupport.DecodeResponse(target, res); err != nil {
145565		return nil, err
145566	}
145567	return ret, nil
145568	// {
145569	//   "description": "Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
145570	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
145571	//   "httpMethod": "PATCH",
145572	//   "id": "compute.serviceAttachments.patch",
145573	//   "parameterOrder": [
145574	//     "project",
145575	//     "region",
145576	//     "serviceAttachment"
145577	//   ],
145578	//   "parameters": {
145579	//     "project": {
145580	//       "description": "Project ID for this request.",
145581	//       "location": "path",
145582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145583	//       "required": true,
145584	//       "type": "string"
145585	//     },
145586	//     "region": {
145587	//       "description": "The region scoping this request and should conform to RFC1035.",
145588	//       "location": "path",
145589	//       "required": true,
145590	//       "type": "string"
145591	//     },
145592	//     "requestId": {
145593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
145594	//       "location": "query",
145595	//       "type": "string"
145596	//     },
145597	//     "serviceAttachment": {
145598	//       "description": "The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.",
145599	//       "location": "path",
145600	//       "required": true,
145601	//       "type": "string"
145602	//     }
145603	//   },
145604	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
145605	//   "request": {
145606	//     "$ref": "ServiceAttachment"
145607	//   },
145608	//   "response": {
145609	//     "$ref": "Operation"
145610	//   },
145611	//   "scopes": [
145612	//     "https://www.googleapis.com/auth/cloud-platform",
145613	//     "https://www.googleapis.com/auth/compute"
145614	//   ]
145615	// }
145616
145617}
145618
145619// method id "compute.serviceAttachments.setIamPolicy":
145620
145621type ServiceAttachmentsSetIamPolicyCall struct {
145622	s                      *Service
145623	project                string
145624	region                 string
145625	resource               string
145626	regionsetpolicyrequest *RegionSetPolicyRequest
145627	urlParams_             gensupport.URLParams
145628	ctx_                   context.Context
145629	header_                http.Header
145630}
145631
145632// SetIamPolicy: Sets the access control policy on the specified
145633// resource. Replaces any existing policy.
145634//
145635// - project: Project ID for this request.
145636// - region: The name of the region for this request.
145637// - resource: Name or id of the resource for this request.
145638func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall {
145639	c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145640	c.project = project
145641	c.region = region
145642	c.resource = resource
145643	c.regionsetpolicyrequest = regionsetpolicyrequest
145644	return c
145645}
145646
145647// Fields allows partial responses to be retrieved. See
145648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145649// for more information.
145650func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall {
145651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145652	return c
145653}
145654
145655// Context sets the context to be used in this call's Do method. Any
145656// pending HTTP request will be aborted if the provided context is
145657// canceled.
145658func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall {
145659	c.ctx_ = ctx
145660	return c
145661}
145662
145663// Header returns an http.Header that can be modified by the caller to
145664// add HTTP headers to the request.
145665func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header {
145666	if c.header_ == nil {
145667		c.header_ = make(http.Header)
145668	}
145669	return c.header_
145670}
145671
145672func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
145673	reqHeaders := make(http.Header)
145674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
145675	for k, v := range c.header_ {
145676		reqHeaders[k] = v
145677	}
145678	reqHeaders.Set("User-Agent", c.s.userAgent())
145679	var body io.Reader = nil
145680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
145681	if err != nil {
145682		return nil, err
145683	}
145684	reqHeaders.Set("Content-Type", "application/json")
145685	c.urlParams_.Set("alt", alt)
145686	c.urlParams_.Set("prettyPrint", "false")
145687	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy")
145688	urls += "?" + c.urlParams_.Encode()
145689	req, err := http.NewRequest("POST", urls, body)
145690	if err != nil {
145691		return nil, err
145692	}
145693	req.Header = reqHeaders
145694	googleapi.Expand(req.URL, map[string]string{
145695		"project":  c.project,
145696		"region":   c.region,
145697		"resource": c.resource,
145698	})
145699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145700}
145701
145702// Do executes the "compute.serviceAttachments.setIamPolicy" call.
145703// Exactly one of *Policy or error will be non-nil. Any non-2xx status
145704// code is an error. Response headers are in either
145705// *Policy.ServerResponse.Header or (if a response was returned at all)
145706// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145707// check whether the returned error was because http.StatusNotModified
145708// was returned.
145709func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
145710	gensupport.SetOptions(c.urlParams_, opts...)
145711	res, err := c.doRequest("json")
145712	if res != nil && res.StatusCode == http.StatusNotModified {
145713		if res.Body != nil {
145714			res.Body.Close()
145715		}
145716		return nil, &googleapi.Error{
145717			Code:   res.StatusCode,
145718			Header: res.Header,
145719		}
145720	}
145721	if err != nil {
145722		return nil, err
145723	}
145724	defer googleapi.CloseBody(res)
145725	if err := googleapi.CheckResponse(res); err != nil {
145726		return nil, err
145727	}
145728	ret := &Policy{
145729		ServerResponse: googleapi.ServerResponse{
145730			Header:         res.Header,
145731			HTTPStatusCode: res.StatusCode,
145732		},
145733	}
145734	target := &ret
145735	if err := gensupport.DecodeResponse(target, res); err != nil {
145736		return nil, err
145737	}
145738	return ret, nil
145739	// {
145740	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
145741	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
145742	//   "httpMethod": "POST",
145743	//   "id": "compute.serviceAttachments.setIamPolicy",
145744	//   "parameterOrder": [
145745	//     "project",
145746	//     "region",
145747	//     "resource"
145748	//   ],
145749	//   "parameters": {
145750	//     "project": {
145751	//       "description": "Project ID for this request.",
145752	//       "location": "path",
145753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145754	//       "required": true,
145755	//       "type": "string"
145756	//     },
145757	//     "region": {
145758	//       "description": "The name of the region for this request.",
145759	//       "location": "path",
145760	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145761	//       "required": true,
145762	//       "type": "string"
145763	//     },
145764	//     "resource": {
145765	//       "description": "Name or id of the resource for this request.",
145766	//       "location": "path",
145767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145768	//       "required": true,
145769	//       "type": "string"
145770	//     }
145771	//   },
145772	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
145773	//   "request": {
145774	//     "$ref": "RegionSetPolicyRequest"
145775	//   },
145776	//   "response": {
145777	//     "$ref": "Policy"
145778	//   },
145779	//   "scopes": [
145780	//     "https://www.googleapis.com/auth/cloud-platform",
145781	//     "https://www.googleapis.com/auth/compute"
145782	//   ]
145783	// }
145784
145785}
145786
145787// method id "compute.serviceAttachments.testIamPermissions":
145788
145789type ServiceAttachmentsTestIamPermissionsCall struct {
145790	s                      *Service
145791	project                string
145792	region                 string
145793	resource               string
145794	testpermissionsrequest *TestPermissionsRequest
145795	urlParams_             gensupport.URLParams
145796	ctx_                   context.Context
145797	header_                http.Header
145798}
145799
145800// TestIamPermissions: Returns permissions that a caller has on the
145801// specified resource.
145802//
145803// - project: Project ID for this request.
145804// - region: The name of the region for this request.
145805// - resource: Name or id of the resource for this request.
145806func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall {
145807	c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145808	c.project = project
145809	c.region = region
145810	c.resource = resource
145811	c.testpermissionsrequest = testpermissionsrequest
145812	return c
145813}
145814
145815// Fields allows partial responses to be retrieved. See
145816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145817// for more information.
145818func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall {
145819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145820	return c
145821}
145822
145823// Context sets the context to be used in this call's Do method. Any
145824// pending HTTP request will be aborted if the provided context is
145825// canceled.
145826func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall {
145827	c.ctx_ = ctx
145828	return c
145829}
145830
145831// Header returns an http.Header that can be modified by the caller to
145832// add HTTP headers to the request.
145833func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header {
145834	if c.header_ == nil {
145835		c.header_ = make(http.Header)
145836	}
145837	return c.header_
145838}
145839
145840func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145841	reqHeaders := make(http.Header)
145842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
145843	for k, v := range c.header_ {
145844		reqHeaders[k] = v
145845	}
145846	reqHeaders.Set("User-Agent", c.s.userAgent())
145847	var body io.Reader = nil
145848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145849	if err != nil {
145850		return nil, err
145851	}
145852	reqHeaders.Set("Content-Type", "application/json")
145853	c.urlParams_.Set("alt", alt)
145854	c.urlParams_.Set("prettyPrint", "false")
145855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions")
145856	urls += "?" + c.urlParams_.Encode()
145857	req, err := http.NewRequest("POST", urls, body)
145858	if err != nil {
145859		return nil, err
145860	}
145861	req.Header = reqHeaders
145862	googleapi.Expand(req.URL, map[string]string{
145863		"project":  c.project,
145864		"region":   c.region,
145865		"resource": c.resource,
145866	})
145867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145868}
145869
145870// Do executes the "compute.serviceAttachments.testIamPermissions" call.
145871// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145872// non-2xx status code is an error. Response headers are in either
145873// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145874// returned at all) in error.(*googleapi.Error).Header. Use
145875// googleapi.IsNotModified to check whether the returned error was
145876// because http.StatusNotModified was returned.
145877func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145878	gensupport.SetOptions(c.urlParams_, opts...)
145879	res, err := c.doRequest("json")
145880	if res != nil && res.StatusCode == http.StatusNotModified {
145881		if res.Body != nil {
145882			res.Body.Close()
145883		}
145884		return nil, &googleapi.Error{
145885			Code:   res.StatusCode,
145886			Header: res.Header,
145887		}
145888	}
145889	if err != nil {
145890		return nil, err
145891	}
145892	defer googleapi.CloseBody(res)
145893	if err := googleapi.CheckResponse(res); err != nil {
145894		return nil, err
145895	}
145896	ret := &TestPermissionsResponse{
145897		ServerResponse: googleapi.ServerResponse{
145898			Header:         res.Header,
145899			HTTPStatusCode: res.StatusCode,
145900		},
145901	}
145902	target := &ret
145903	if err := gensupport.DecodeResponse(target, res); err != nil {
145904		return nil, err
145905	}
145906	return ret, nil
145907	// {
145908	//   "description": "Returns permissions that a caller has on the specified resource.",
145909	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
145910	//   "httpMethod": "POST",
145911	//   "id": "compute.serviceAttachments.testIamPermissions",
145912	//   "parameterOrder": [
145913	//     "project",
145914	//     "region",
145915	//     "resource"
145916	//   ],
145917	//   "parameters": {
145918	//     "project": {
145919	//       "description": "Project ID for this request.",
145920	//       "location": "path",
145921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145922	//       "required": true,
145923	//       "type": "string"
145924	//     },
145925	//     "region": {
145926	//       "description": "The name of the region for this request.",
145927	//       "location": "path",
145928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145929	//       "required": true,
145930	//       "type": "string"
145931	//     },
145932	//     "resource": {
145933	//       "description": "Name or id of the resource for this request.",
145934	//       "location": "path",
145935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145936	//       "required": true,
145937	//       "type": "string"
145938	//     }
145939	//   },
145940	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
145941	//   "request": {
145942	//     "$ref": "TestPermissionsRequest"
145943	//   },
145944	//   "response": {
145945	//     "$ref": "TestPermissionsResponse"
145946	//   },
145947	//   "scopes": [
145948	//     "https://www.googleapis.com/auth/cloud-platform",
145949	//     "https://www.googleapis.com/auth/compute",
145950	//     "https://www.googleapis.com/auth/compute.readonly"
145951	//   ]
145952	// }
145953
145954}
145955
145956// method id "compute.snapshots.delete":
145957
145958type SnapshotsDeleteCall struct {
145959	s          *Service
145960	project    string
145961	snapshot   string
145962	urlParams_ gensupport.URLParams
145963	ctx_       context.Context
145964	header_    http.Header
145965}
145966
145967// Delete: Deletes the specified Snapshot resource. Keep in mind that
145968// deleting a single snapshot might not necessarily delete all the data
145969// on that snapshot. If any data on the snapshot that is marked for
145970// deletion is needed for subsequent snapshots, the data will be moved
145971// to the next corresponding snapshot. For more information, see
145972// Deleting snapshots.
145973//
145974// - project: Project ID for this request.
145975// - snapshot: Name of the Snapshot resource to delete.
145976func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
145977	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145978	c.project = project
145979	c.snapshot = snapshot
145980	return c
145981}
145982
145983// RequestId sets the optional parameter "requestId": An optional
145984// request ID to identify requests. Specify a unique request ID so that
145985// if you must retry your request, the server will know to ignore the
145986// request if it has already been completed. For example, consider a
145987// situation where you make an initial request and the request times
145988// out. If you make the request again with the same request ID, the
145989// server can check if original operation with the same request ID was
145990// received, and if so, will ignore the second request. This prevents
145991// clients from accidentally creating duplicate commitments. The request
145992// ID must be a valid UUID with the exception that zero UUID is not
145993// supported ( 00000000-0000-0000-0000-000000000000).
145994func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
145995	c.urlParams_.Set("requestId", requestId)
145996	return c
145997}
145998
145999// Fields allows partial responses to be retrieved. See
146000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146001// for more information.
146002func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
146003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146004	return c
146005}
146006
146007// Context sets the context to be used in this call's Do method. Any
146008// pending HTTP request will be aborted if the provided context is
146009// canceled.
146010func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
146011	c.ctx_ = ctx
146012	return c
146013}
146014
146015// Header returns an http.Header that can be modified by the caller to
146016// add HTTP headers to the request.
146017func (c *SnapshotsDeleteCall) Header() http.Header {
146018	if c.header_ == nil {
146019		c.header_ = make(http.Header)
146020	}
146021	return c.header_
146022}
146023
146024func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
146025	reqHeaders := make(http.Header)
146026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146027	for k, v := range c.header_ {
146028		reqHeaders[k] = v
146029	}
146030	reqHeaders.Set("User-Agent", c.s.userAgent())
146031	var body io.Reader = nil
146032	c.urlParams_.Set("alt", alt)
146033	c.urlParams_.Set("prettyPrint", "false")
146034	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
146035	urls += "?" + c.urlParams_.Encode()
146036	req, err := http.NewRequest("DELETE", urls, body)
146037	if err != nil {
146038		return nil, err
146039	}
146040	req.Header = reqHeaders
146041	googleapi.Expand(req.URL, map[string]string{
146042		"project":  c.project,
146043		"snapshot": c.snapshot,
146044	})
146045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146046}
146047
146048// Do executes the "compute.snapshots.delete" call.
146049// Exactly one of *Operation or error will be non-nil. Any non-2xx
146050// status code is an error. Response headers are in either
146051// *Operation.ServerResponse.Header or (if a response was returned at
146052// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146053// to check whether the returned error was because
146054// http.StatusNotModified was returned.
146055func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146056	gensupport.SetOptions(c.urlParams_, opts...)
146057	res, err := c.doRequest("json")
146058	if res != nil && res.StatusCode == http.StatusNotModified {
146059		if res.Body != nil {
146060			res.Body.Close()
146061		}
146062		return nil, &googleapi.Error{
146063			Code:   res.StatusCode,
146064			Header: res.Header,
146065		}
146066	}
146067	if err != nil {
146068		return nil, err
146069	}
146070	defer googleapi.CloseBody(res)
146071	if err := googleapi.CheckResponse(res); err != nil {
146072		return nil, err
146073	}
146074	ret := &Operation{
146075		ServerResponse: googleapi.ServerResponse{
146076			Header:         res.Header,
146077			HTTPStatusCode: res.StatusCode,
146078		},
146079	}
146080	target := &ret
146081	if err := gensupport.DecodeResponse(target, res); err != nil {
146082		return nil, err
146083	}
146084	return ret, nil
146085	// {
146086	//   "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. For more information, see Deleting snapshots.",
146087	//   "flatPath": "projects/{project}/global/snapshots/{snapshot}",
146088	//   "httpMethod": "DELETE",
146089	//   "id": "compute.snapshots.delete",
146090	//   "parameterOrder": [
146091	//     "project",
146092	//     "snapshot"
146093	//   ],
146094	//   "parameters": {
146095	//     "project": {
146096	//       "description": "Project ID for this request.",
146097	//       "location": "path",
146098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146099	//       "required": true,
146100	//       "type": "string"
146101	//     },
146102	//     "requestId": {
146103	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
146104	//       "location": "query",
146105	//       "type": "string"
146106	//     },
146107	//     "snapshot": {
146108	//       "description": "Name of the Snapshot resource to delete.",
146109	//       "location": "path",
146110	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146111	//       "required": true,
146112	//       "type": "string"
146113	//     }
146114	//   },
146115	//   "path": "projects/{project}/global/snapshots/{snapshot}",
146116	//   "response": {
146117	//     "$ref": "Operation"
146118	//   },
146119	//   "scopes": [
146120	//     "https://www.googleapis.com/auth/cloud-platform",
146121	//     "https://www.googleapis.com/auth/compute"
146122	//   ]
146123	// }
146124
146125}
146126
146127// method id "compute.snapshots.get":
146128
146129type SnapshotsGetCall struct {
146130	s            *Service
146131	project      string
146132	snapshot     string
146133	urlParams_   gensupport.URLParams
146134	ifNoneMatch_ string
146135	ctx_         context.Context
146136	header_      http.Header
146137}
146138
146139// Get: Returns the specified Snapshot resource. Gets a list of
146140// available snapshots by making a list() request.
146141//
146142// - project: Project ID for this request.
146143// - snapshot: Name of the Snapshot resource to return.
146144func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
146145	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146146	c.project = project
146147	c.snapshot = snapshot
146148	return c
146149}
146150
146151// Fields allows partial responses to be retrieved. See
146152// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146153// for more information.
146154func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
146155	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146156	return c
146157}
146158
146159// IfNoneMatch sets the optional parameter which makes the operation
146160// fail if the object's ETag matches the given value. This is useful for
146161// getting updates only after the object has changed since the last
146162// request. Use googleapi.IsNotModified to check whether the response
146163// error from Do is the result of In-None-Match.
146164func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
146165	c.ifNoneMatch_ = entityTag
146166	return c
146167}
146168
146169// Context sets the context to be used in this call's Do method. Any
146170// pending HTTP request will be aborted if the provided context is
146171// canceled.
146172func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
146173	c.ctx_ = ctx
146174	return c
146175}
146176
146177// Header returns an http.Header that can be modified by the caller to
146178// add HTTP headers to the request.
146179func (c *SnapshotsGetCall) Header() http.Header {
146180	if c.header_ == nil {
146181		c.header_ = make(http.Header)
146182	}
146183	return c.header_
146184}
146185
146186func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
146187	reqHeaders := make(http.Header)
146188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146189	for k, v := range c.header_ {
146190		reqHeaders[k] = v
146191	}
146192	reqHeaders.Set("User-Agent", c.s.userAgent())
146193	if c.ifNoneMatch_ != "" {
146194		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146195	}
146196	var body io.Reader = nil
146197	c.urlParams_.Set("alt", alt)
146198	c.urlParams_.Set("prettyPrint", "false")
146199	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
146200	urls += "?" + c.urlParams_.Encode()
146201	req, err := http.NewRequest("GET", urls, body)
146202	if err != nil {
146203		return nil, err
146204	}
146205	req.Header = reqHeaders
146206	googleapi.Expand(req.URL, map[string]string{
146207		"project":  c.project,
146208		"snapshot": c.snapshot,
146209	})
146210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146211}
146212
146213// Do executes the "compute.snapshots.get" call.
146214// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
146215// code is an error. Response headers are in either
146216// *Snapshot.ServerResponse.Header or (if a response was returned at
146217// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146218// to check whether the returned error was because
146219// http.StatusNotModified was returned.
146220func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
146221	gensupport.SetOptions(c.urlParams_, opts...)
146222	res, err := c.doRequest("json")
146223	if res != nil && res.StatusCode == http.StatusNotModified {
146224		if res.Body != nil {
146225			res.Body.Close()
146226		}
146227		return nil, &googleapi.Error{
146228			Code:   res.StatusCode,
146229			Header: res.Header,
146230		}
146231	}
146232	if err != nil {
146233		return nil, err
146234	}
146235	defer googleapi.CloseBody(res)
146236	if err := googleapi.CheckResponse(res); err != nil {
146237		return nil, err
146238	}
146239	ret := &Snapshot{
146240		ServerResponse: googleapi.ServerResponse{
146241			Header:         res.Header,
146242			HTTPStatusCode: res.StatusCode,
146243		},
146244	}
146245	target := &ret
146246	if err := gensupport.DecodeResponse(target, res); err != nil {
146247		return nil, err
146248	}
146249	return ret, nil
146250	// {
146251	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
146252	//   "flatPath": "projects/{project}/global/snapshots/{snapshot}",
146253	//   "httpMethod": "GET",
146254	//   "id": "compute.snapshots.get",
146255	//   "parameterOrder": [
146256	//     "project",
146257	//     "snapshot"
146258	//   ],
146259	//   "parameters": {
146260	//     "project": {
146261	//       "description": "Project ID for this request.",
146262	//       "location": "path",
146263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146264	//       "required": true,
146265	//       "type": "string"
146266	//     },
146267	//     "snapshot": {
146268	//       "description": "Name of the Snapshot resource to return.",
146269	//       "location": "path",
146270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146271	//       "required": true,
146272	//       "type": "string"
146273	//     }
146274	//   },
146275	//   "path": "projects/{project}/global/snapshots/{snapshot}",
146276	//   "response": {
146277	//     "$ref": "Snapshot"
146278	//   },
146279	//   "scopes": [
146280	//     "https://www.googleapis.com/auth/cloud-platform",
146281	//     "https://www.googleapis.com/auth/compute",
146282	//     "https://www.googleapis.com/auth/compute.readonly"
146283	//   ]
146284	// }
146285
146286}
146287
146288// method id "compute.snapshots.getIamPolicy":
146289
146290type SnapshotsGetIamPolicyCall struct {
146291	s            *Service
146292	project      string
146293	resource     string
146294	urlParams_   gensupport.URLParams
146295	ifNoneMatch_ string
146296	ctx_         context.Context
146297	header_      http.Header
146298}
146299
146300// GetIamPolicy: Gets the access control policy for a resource. May be
146301// empty if no such policy or resource exists.
146302//
146303// - project: Project ID for this request.
146304// - resource: Name or id of the resource for this request.
146305func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
146306	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146307	c.project = project
146308	c.resource = resource
146309	return c
146310}
146311
146312// OptionsRequestedPolicyVersion sets the optional parameter
146313// "optionsRequestedPolicyVersion": Requested IAM Policy version.
146314func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
146315	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
146316	return c
146317}
146318
146319// Fields allows partial responses to be retrieved. See
146320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146321// for more information.
146322func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
146323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146324	return c
146325}
146326
146327// IfNoneMatch sets the optional parameter which makes the operation
146328// fail if the object's ETag matches the given value. This is useful for
146329// getting updates only after the object has changed since the last
146330// request. Use googleapi.IsNotModified to check whether the response
146331// error from Do is the result of In-None-Match.
146332func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
146333	c.ifNoneMatch_ = entityTag
146334	return c
146335}
146336
146337// Context sets the context to be used in this call's Do method. Any
146338// pending HTTP request will be aborted if the provided context is
146339// canceled.
146340func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
146341	c.ctx_ = ctx
146342	return c
146343}
146344
146345// Header returns an http.Header that can be modified by the caller to
146346// add HTTP headers to the request.
146347func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
146348	if c.header_ == nil {
146349		c.header_ = make(http.Header)
146350	}
146351	return c.header_
146352}
146353
146354func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146355	reqHeaders := make(http.Header)
146356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146357	for k, v := range c.header_ {
146358		reqHeaders[k] = v
146359	}
146360	reqHeaders.Set("User-Agent", c.s.userAgent())
146361	if c.ifNoneMatch_ != "" {
146362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146363	}
146364	var body io.Reader = nil
146365	c.urlParams_.Set("alt", alt)
146366	c.urlParams_.Set("prettyPrint", "false")
146367	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy")
146368	urls += "?" + c.urlParams_.Encode()
146369	req, err := http.NewRequest("GET", urls, body)
146370	if err != nil {
146371		return nil, err
146372	}
146373	req.Header = reqHeaders
146374	googleapi.Expand(req.URL, map[string]string{
146375		"project":  c.project,
146376		"resource": c.resource,
146377	})
146378	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146379}
146380
146381// Do executes the "compute.snapshots.getIamPolicy" call.
146382// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146383// code is an error. Response headers are in either
146384// *Policy.ServerResponse.Header or (if a response was returned at all)
146385// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146386// check whether the returned error was because http.StatusNotModified
146387// was returned.
146388func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146389	gensupport.SetOptions(c.urlParams_, opts...)
146390	res, err := c.doRequest("json")
146391	if res != nil && res.StatusCode == http.StatusNotModified {
146392		if res.Body != nil {
146393			res.Body.Close()
146394		}
146395		return nil, &googleapi.Error{
146396			Code:   res.StatusCode,
146397			Header: res.Header,
146398		}
146399	}
146400	if err != nil {
146401		return nil, err
146402	}
146403	defer googleapi.CloseBody(res)
146404	if err := googleapi.CheckResponse(res); err != nil {
146405		return nil, err
146406	}
146407	ret := &Policy{
146408		ServerResponse: googleapi.ServerResponse{
146409			Header:         res.Header,
146410			HTTPStatusCode: res.StatusCode,
146411		},
146412	}
146413	target := &ret
146414	if err := gensupport.DecodeResponse(target, res); err != nil {
146415		return nil, err
146416	}
146417	return ret, nil
146418	// {
146419	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
146420	//   "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
146421	//   "httpMethod": "GET",
146422	//   "id": "compute.snapshots.getIamPolicy",
146423	//   "parameterOrder": [
146424	//     "project",
146425	//     "resource"
146426	//   ],
146427	//   "parameters": {
146428	//     "optionsRequestedPolicyVersion": {
146429	//       "description": "Requested IAM Policy version.",
146430	//       "format": "int32",
146431	//       "location": "query",
146432	//       "type": "integer"
146433	//     },
146434	//     "project": {
146435	//       "description": "Project ID for this request.",
146436	//       "location": "path",
146437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146438	//       "required": true,
146439	//       "type": "string"
146440	//     },
146441	//     "resource": {
146442	//       "description": "Name or id of the resource for this request.",
146443	//       "location": "path",
146444	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146445	//       "required": true,
146446	//       "type": "string"
146447	//     }
146448	//   },
146449	//   "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
146450	//   "response": {
146451	//     "$ref": "Policy"
146452	//   },
146453	//   "scopes": [
146454	//     "https://www.googleapis.com/auth/cloud-platform",
146455	//     "https://www.googleapis.com/auth/compute",
146456	//     "https://www.googleapis.com/auth/compute.readonly"
146457	//   ]
146458	// }
146459
146460}
146461
146462// method id "compute.snapshots.list":
146463
146464type SnapshotsListCall struct {
146465	s            *Service
146466	project      string
146467	urlParams_   gensupport.URLParams
146468	ifNoneMatch_ string
146469	ctx_         context.Context
146470	header_      http.Header
146471}
146472
146473// List: Retrieves the list of Snapshot resources contained within the
146474// specified project.
146475//
146476// - project: Project ID for this request.
146477func (r *SnapshotsService) List(project string) *SnapshotsListCall {
146478	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146479	c.project = project
146480	return c
146481}
146482
146483// Filter sets the optional parameter "filter": A filter expression that
146484// filters resources listed in the response. The expression must specify
146485// the field name, a comparison operator, and the value that you want to
146486// use for filtering. The value must be a string, a number, or a
146487// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146488// `<`. For example, if you are filtering Compute Engine instances, you
146489// can exclude instances named `example-instance` by specifying `name !=
146490// example-instance`. You can also filter nested fields. For example,
146491// you could specify `scheduling.automaticRestart = false` to include
146492// instances only if they are not scheduled for automatic restarts. You
146493// can use filtering on nested fields to filter based on resource
146494// labels. To filter on multiple expressions, provide each separate
146495// expression within parentheses. For example: ```
146496// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
146497// ``` By default, each expression is an `AND` expression. However, you
146498// can include `AND` and `OR` expressions explicitly. For example: ```
146499// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
146500// AND (scheduling.automaticRestart = true) ```
146501func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
146502	c.urlParams_.Set("filter", filter)
146503	return c
146504}
146505
146506// MaxResults sets the optional parameter "maxResults": The maximum
146507// number of results per page that should be returned. If the number of
146508// available results is larger than `maxResults`, Compute Engine returns
146509// a `nextPageToken` that can be used to get the next page of results in
146510// subsequent list requests. Acceptable values are `0` to `500`,
146511// inclusive. (Default: `500`)
146512func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
146513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146514	return c
146515}
146516
146517// OrderBy sets the optional parameter "orderBy": Sorts list results by
146518// a certain order. By default, results are returned in alphanumerical
146519// order based on the resource name. You can also sort results in
146520// descending order based on the creation timestamp using
146521// `orderBy="creationTimestamp desc". This sorts results based on the
146522// `creationTimestamp` field in reverse chronological order (newest
146523// result first). Use this to sort resources like operations so that the
146524// newest operation is returned first. Currently, only sorting by `name`
146525// or `creationTimestamp desc` is supported.
146526func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
146527	c.urlParams_.Set("orderBy", orderBy)
146528	return c
146529}
146530
146531// PageToken sets the optional parameter "pageToken": Specifies a page
146532// token to use. Set `pageToken` to the `nextPageToken` returned by a
146533// previous list request to get the next page of results.
146534func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
146535	c.urlParams_.Set("pageToken", pageToken)
146536	return c
146537}
146538
146539// ReturnPartialSuccess sets the optional parameter
146540// "returnPartialSuccess": Opt-in for partial success behavior which
146541// provides partial results in case of failure. The default value is
146542// false.
146543func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
146544	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
146545	return c
146546}
146547
146548// Fields allows partial responses to be retrieved. See
146549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146550// for more information.
146551func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
146552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146553	return c
146554}
146555
146556// IfNoneMatch sets the optional parameter which makes the operation
146557// fail if the object's ETag matches the given value. This is useful for
146558// getting updates only after the object has changed since the last
146559// request. Use googleapi.IsNotModified to check whether the response
146560// error from Do is the result of In-None-Match.
146561func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
146562	c.ifNoneMatch_ = entityTag
146563	return c
146564}
146565
146566// Context sets the context to be used in this call's Do method. Any
146567// pending HTTP request will be aborted if the provided context is
146568// canceled.
146569func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
146570	c.ctx_ = ctx
146571	return c
146572}
146573
146574// Header returns an http.Header that can be modified by the caller to
146575// add HTTP headers to the request.
146576func (c *SnapshotsListCall) Header() http.Header {
146577	if c.header_ == nil {
146578		c.header_ = make(http.Header)
146579	}
146580	return c.header_
146581}
146582
146583func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
146584	reqHeaders := make(http.Header)
146585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146586	for k, v := range c.header_ {
146587		reqHeaders[k] = v
146588	}
146589	reqHeaders.Set("User-Agent", c.s.userAgent())
146590	if c.ifNoneMatch_ != "" {
146591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146592	}
146593	var body io.Reader = nil
146594	c.urlParams_.Set("alt", alt)
146595	c.urlParams_.Set("prettyPrint", "false")
146596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
146597	urls += "?" + c.urlParams_.Encode()
146598	req, err := http.NewRequest("GET", urls, body)
146599	if err != nil {
146600		return nil, err
146601	}
146602	req.Header = reqHeaders
146603	googleapi.Expand(req.URL, map[string]string{
146604		"project": c.project,
146605	})
146606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146607}
146608
146609// Do executes the "compute.snapshots.list" call.
146610// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
146611// status code is an error. Response headers are in either
146612// *SnapshotList.ServerResponse.Header or (if a response was returned at
146613// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146614// to check whether the returned error was because
146615// http.StatusNotModified was returned.
146616func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
146617	gensupport.SetOptions(c.urlParams_, opts...)
146618	res, err := c.doRequest("json")
146619	if res != nil && res.StatusCode == http.StatusNotModified {
146620		if res.Body != nil {
146621			res.Body.Close()
146622		}
146623		return nil, &googleapi.Error{
146624			Code:   res.StatusCode,
146625			Header: res.Header,
146626		}
146627	}
146628	if err != nil {
146629		return nil, err
146630	}
146631	defer googleapi.CloseBody(res)
146632	if err := googleapi.CheckResponse(res); err != nil {
146633		return nil, err
146634	}
146635	ret := &SnapshotList{
146636		ServerResponse: googleapi.ServerResponse{
146637			Header:         res.Header,
146638			HTTPStatusCode: res.StatusCode,
146639		},
146640	}
146641	target := &ret
146642	if err := gensupport.DecodeResponse(target, res); err != nil {
146643		return nil, err
146644	}
146645	return ret, nil
146646	// {
146647	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
146648	//   "flatPath": "projects/{project}/global/snapshots",
146649	//   "httpMethod": "GET",
146650	//   "id": "compute.snapshots.list",
146651	//   "parameterOrder": [
146652	//     "project"
146653	//   ],
146654	//   "parameters": {
146655	//     "filter": {
146656	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
146657	//       "location": "query",
146658	//       "type": "string"
146659	//     },
146660	//     "maxResults": {
146661	//       "default": "500",
146662	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146663	//       "format": "uint32",
146664	//       "location": "query",
146665	//       "minimum": "0",
146666	//       "type": "integer"
146667	//     },
146668	//     "orderBy": {
146669	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
146670	//       "location": "query",
146671	//       "type": "string"
146672	//     },
146673	//     "pageToken": {
146674	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146675	//       "location": "query",
146676	//       "type": "string"
146677	//     },
146678	//     "project": {
146679	//       "description": "Project ID for this request.",
146680	//       "location": "path",
146681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146682	//       "required": true,
146683	//       "type": "string"
146684	//     },
146685	//     "returnPartialSuccess": {
146686	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
146687	//       "location": "query",
146688	//       "type": "boolean"
146689	//     }
146690	//   },
146691	//   "path": "projects/{project}/global/snapshots",
146692	//   "response": {
146693	//     "$ref": "SnapshotList"
146694	//   },
146695	//   "scopes": [
146696	//     "https://www.googleapis.com/auth/cloud-platform",
146697	//     "https://www.googleapis.com/auth/compute",
146698	//     "https://www.googleapis.com/auth/compute.readonly"
146699	//   ]
146700	// }
146701
146702}
146703
146704// Pages invokes f for each page of results.
146705// A non-nil error returned from f will halt the iteration.
146706// The provided context supersedes any context provided to the Context method.
146707func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
146708	c.ctx_ = ctx
146709	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146710	for {
146711		x, err := c.Do()
146712		if err != nil {
146713			return err
146714		}
146715		if err := f(x); err != nil {
146716			return err
146717		}
146718		if x.NextPageToken == "" {
146719			return nil
146720		}
146721		c.PageToken(x.NextPageToken)
146722	}
146723}
146724
146725// method id "compute.snapshots.setIamPolicy":
146726
146727type SnapshotsSetIamPolicyCall struct {
146728	s                      *Service
146729	project                string
146730	resource               string
146731	globalsetpolicyrequest *GlobalSetPolicyRequest
146732	urlParams_             gensupport.URLParams
146733	ctx_                   context.Context
146734	header_                http.Header
146735}
146736
146737// SetIamPolicy: Sets the access control policy on the specified
146738// resource. Replaces any existing policy.
146739//
146740// - project: Project ID for this request.
146741// - resource: Name or id of the resource for this request.
146742func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
146743	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146744	c.project = project
146745	c.resource = resource
146746	c.globalsetpolicyrequest = globalsetpolicyrequest
146747	return c
146748}
146749
146750// Fields allows partial responses to be retrieved. See
146751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146752// for more information.
146753func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
146754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146755	return c
146756}
146757
146758// Context sets the context to be used in this call's Do method. Any
146759// pending HTTP request will be aborted if the provided context is
146760// canceled.
146761func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
146762	c.ctx_ = ctx
146763	return c
146764}
146765
146766// Header returns an http.Header that can be modified by the caller to
146767// add HTTP headers to the request.
146768func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
146769	if c.header_ == nil {
146770		c.header_ = make(http.Header)
146771	}
146772	return c.header_
146773}
146774
146775func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146776	reqHeaders := make(http.Header)
146777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146778	for k, v := range c.header_ {
146779		reqHeaders[k] = v
146780	}
146781	reqHeaders.Set("User-Agent", c.s.userAgent())
146782	var body io.Reader = nil
146783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
146784	if err != nil {
146785		return nil, err
146786	}
146787	reqHeaders.Set("Content-Type", "application/json")
146788	c.urlParams_.Set("alt", alt)
146789	c.urlParams_.Set("prettyPrint", "false")
146790	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy")
146791	urls += "?" + c.urlParams_.Encode()
146792	req, err := http.NewRequest("POST", urls, body)
146793	if err != nil {
146794		return nil, err
146795	}
146796	req.Header = reqHeaders
146797	googleapi.Expand(req.URL, map[string]string{
146798		"project":  c.project,
146799		"resource": c.resource,
146800	})
146801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146802}
146803
146804// Do executes the "compute.snapshots.setIamPolicy" call.
146805// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146806// code is an error. Response headers are in either
146807// *Policy.ServerResponse.Header or (if a response was returned at all)
146808// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146809// check whether the returned error was because http.StatusNotModified
146810// was returned.
146811func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146812	gensupport.SetOptions(c.urlParams_, opts...)
146813	res, err := c.doRequest("json")
146814	if res != nil && res.StatusCode == http.StatusNotModified {
146815		if res.Body != nil {
146816			res.Body.Close()
146817		}
146818		return nil, &googleapi.Error{
146819			Code:   res.StatusCode,
146820			Header: res.Header,
146821		}
146822	}
146823	if err != nil {
146824		return nil, err
146825	}
146826	defer googleapi.CloseBody(res)
146827	if err := googleapi.CheckResponse(res); err != nil {
146828		return nil, err
146829	}
146830	ret := &Policy{
146831		ServerResponse: googleapi.ServerResponse{
146832			Header:         res.Header,
146833			HTTPStatusCode: res.StatusCode,
146834		},
146835	}
146836	target := &ret
146837	if err := gensupport.DecodeResponse(target, res); err != nil {
146838		return nil, err
146839	}
146840	return ret, nil
146841	// {
146842	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
146843	//   "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
146844	//   "httpMethod": "POST",
146845	//   "id": "compute.snapshots.setIamPolicy",
146846	//   "parameterOrder": [
146847	//     "project",
146848	//     "resource"
146849	//   ],
146850	//   "parameters": {
146851	//     "project": {
146852	//       "description": "Project ID for this request.",
146853	//       "location": "path",
146854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146855	//       "required": true,
146856	//       "type": "string"
146857	//     },
146858	//     "resource": {
146859	//       "description": "Name or id of the resource for this request.",
146860	//       "location": "path",
146861	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146862	//       "required": true,
146863	//       "type": "string"
146864	//     }
146865	//   },
146866	//   "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
146867	//   "request": {
146868	//     "$ref": "GlobalSetPolicyRequest"
146869	//   },
146870	//   "response": {
146871	//     "$ref": "Policy"
146872	//   },
146873	//   "scopes": [
146874	//     "https://www.googleapis.com/auth/cloud-platform",
146875	//     "https://www.googleapis.com/auth/compute"
146876	//   ]
146877	// }
146878
146879}
146880
146881// method id "compute.snapshots.setLabels":
146882
146883type SnapshotsSetLabelsCall struct {
146884	s                      *Service
146885	project                string
146886	resource               string
146887	globalsetlabelsrequest *GlobalSetLabelsRequest
146888	urlParams_             gensupport.URLParams
146889	ctx_                   context.Context
146890	header_                http.Header
146891}
146892
146893// SetLabels: Sets the labels on a snapshot. To learn more about labels,
146894// read the Labeling Resources documentation.
146895//
146896// - project: Project ID for this request.
146897// - resource: Name or id of the resource for this request.
146898func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
146899	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146900	c.project = project
146901	c.resource = resource
146902	c.globalsetlabelsrequest = globalsetlabelsrequest
146903	return c
146904}
146905
146906// Fields allows partial responses to be retrieved. See
146907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146908// for more information.
146909func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
146910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146911	return c
146912}
146913
146914// Context sets the context to be used in this call's Do method. Any
146915// pending HTTP request will be aborted if the provided context is
146916// canceled.
146917func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
146918	c.ctx_ = ctx
146919	return c
146920}
146921
146922// Header returns an http.Header that can be modified by the caller to
146923// add HTTP headers to the request.
146924func (c *SnapshotsSetLabelsCall) Header() http.Header {
146925	if c.header_ == nil {
146926		c.header_ = make(http.Header)
146927	}
146928	return c.header_
146929}
146930
146931func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
146932	reqHeaders := make(http.Header)
146933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
146934	for k, v := range c.header_ {
146935		reqHeaders[k] = v
146936	}
146937	reqHeaders.Set("User-Agent", c.s.userAgent())
146938	var body io.Reader = nil
146939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
146940	if err != nil {
146941		return nil, err
146942	}
146943	reqHeaders.Set("Content-Type", "application/json")
146944	c.urlParams_.Set("alt", alt)
146945	c.urlParams_.Set("prettyPrint", "false")
146946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels")
146947	urls += "?" + c.urlParams_.Encode()
146948	req, err := http.NewRequest("POST", urls, body)
146949	if err != nil {
146950		return nil, err
146951	}
146952	req.Header = reqHeaders
146953	googleapi.Expand(req.URL, map[string]string{
146954		"project":  c.project,
146955		"resource": c.resource,
146956	})
146957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146958}
146959
146960// Do executes the "compute.snapshots.setLabels" call.
146961// Exactly one of *Operation or error will be non-nil. Any non-2xx
146962// status code is an error. Response headers are in either
146963// *Operation.ServerResponse.Header or (if a response was returned at
146964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146965// to check whether the returned error was because
146966// http.StatusNotModified was returned.
146967func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146968	gensupport.SetOptions(c.urlParams_, opts...)
146969	res, err := c.doRequest("json")
146970	if res != nil && res.StatusCode == http.StatusNotModified {
146971		if res.Body != nil {
146972			res.Body.Close()
146973		}
146974		return nil, &googleapi.Error{
146975			Code:   res.StatusCode,
146976			Header: res.Header,
146977		}
146978	}
146979	if err != nil {
146980		return nil, err
146981	}
146982	defer googleapi.CloseBody(res)
146983	if err := googleapi.CheckResponse(res); err != nil {
146984		return nil, err
146985	}
146986	ret := &Operation{
146987		ServerResponse: googleapi.ServerResponse{
146988			Header:         res.Header,
146989			HTTPStatusCode: res.StatusCode,
146990		},
146991	}
146992	target := &ret
146993	if err := gensupport.DecodeResponse(target, res); err != nil {
146994		return nil, err
146995	}
146996	return ret, nil
146997	// {
146998	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
146999	//   "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels",
147000	//   "httpMethod": "POST",
147001	//   "id": "compute.snapshots.setLabels",
147002	//   "parameterOrder": [
147003	//     "project",
147004	//     "resource"
147005	//   ],
147006	//   "parameters": {
147007	//     "project": {
147008	//       "description": "Project ID for this request.",
147009	//       "location": "path",
147010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147011	//       "required": true,
147012	//       "type": "string"
147013	//     },
147014	//     "resource": {
147015	//       "description": "Name or id of the resource for this request.",
147016	//       "location": "path",
147017	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147018	//       "required": true,
147019	//       "type": "string"
147020	//     }
147021	//   },
147022	//   "path": "projects/{project}/global/snapshots/{resource}/setLabels",
147023	//   "request": {
147024	//     "$ref": "GlobalSetLabelsRequest"
147025	//   },
147026	//   "response": {
147027	//     "$ref": "Operation"
147028	//   },
147029	//   "scopes": [
147030	//     "https://www.googleapis.com/auth/cloud-platform",
147031	//     "https://www.googleapis.com/auth/compute"
147032	//   ]
147033	// }
147034
147035}
147036
147037// method id "compute.snapshots.testIamPermissions":
147038
147039type SnapshotsTestIamPermissionsCall struct {
147040	s                      *Service
147041	project                string
147042	resource               string
147043	testpermissionsrequest *TestPermissionsRequest
147044	urlParams_             gensupport.URLParams
147045	ctx_                   context.Context
147046	header_                http.Header
147047}
147048
147049// TestIamPermissions: Returns permissions that a caller has on the
147050// specified resource.
147051//
147052// - project: Project ID for this request.
147053// - resource: Name or id of the resource for this request.
147054func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
147055	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147056	c.project = project
147057	c.resource = resource
147058	c.testpermissionsrequest = testpermissionsrequest
147059	return c
147060}
147061
147062// Fields allows partial responses to be retrieved. See
147063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147064// for more information.
147065func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
147066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147067	return c
147068}
147069
147070// Context sets the context to be used in this call's Do method. Any
147071// pending HTTP request will be aborted if the provided context is
147072// canceled.
147073func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
147074	c.ctx_ = ctx
147075	return c
147076}
147077
147078// Header returns an http.Header that can be modified by the caller to
147079// add HTTP headers to the request.
147080func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
147081	if c.header_ == nil {
147082		c.header_ = make(http.Header)
147083	}
147084	return c.header_
147085}
147086
147087func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147088	reqHeaders := make(http.Header)
147089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
147090	for k, v := range c.header_ {
147091		reqHeaders[k] = v
147092	}
147093	reqHeaders.Set("User-Agent", c.s.userAgent())
147094	var body io.Reader = nil
147095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147096	if err != nil {
147097		return nil, err
147098	}
147099	reqHeaders.Set("Content-Type", "application/json")
147100	c.urlParams_.Set("alt", alt)
147101	c.urlParams_.Set("prettyPrint", "false")
147102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions")
147103	urls += "?" + c.urlParams_.Encode()
147104	req, err := http.NewRequest("POST", urls, body)
147105	if err != nil {
147106		return nil, err
147107	}
147108	req.Header = reqHeaders
147109	googleapi.Expand(req.URL, map[string]string{
147110		"project":  c.project,
147111		"resource": c.resource,
147112	})
147113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147114}
147115
147116// Do executes the "compute.snapshots.testIamPermissions" call.
147117// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147118// non-2xx status code is an error. Response headers are in either
147119// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147120// returned at all) in error.(*googleapi.Error).Header. Use
147121// googleapi.IsNotModified to check whether the returned error was
147122// because http.StatusNotModified was returned.
147123func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147124	gensupport.SetOptions(c.urlParams_, opts...)
147125	res, err := c.doRequest("json")
147126	if res != nil && res.StatusCode == http.StatusNotModified {
147127		if res.Body != nil {
147128			res.Body.Close()
147129		}
147130		return nil, &googleapi.Error{
147131			Code:   res.StatusCode,
147132			Header: res.Header,
147133		}
147134	}
147135	if err != nil {
147136		return nil, err
147137	}
147138	defer googleapi.CloseBody(res)
147139	if err := googleapi.CheckResponse(res); err != nil {
147140		return nil, err
147141	}
147142	ret := &TestPermissionsResponse{
147143		ServerResponse: googleapi.ServerResponse{
147144			Header:         res.Header,
147145			HTTPStatusCode: res.StatusCode,
147146		},
147147	}
147148	target := &ret
147149	if err := gensupport.DecodeResponse(target, res); err != nil {
147150		return nil, err
147151	}
147152	return ret, nil
147153	// {
147154	//   "description": "Returns permissions that a caller has on the specified resource.",
147155	//   "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
147156	//   "httpMethod": "POST",
147157	//   "id": "compute.snapshots.testIamPermissions",
147158	//   "parameterOrder": [
147159	//     "project",
147160	//     "resource"
147161	//   ],
147162	//   "parameters": {
147163	//     "project": {
147164	//       "description": "Project ID for this request.",
147165	//       "location": "path",
147166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147167	//       "required": true,
147168	//       "type": "string"
147169	//     },
147170	//     "resource": {
147171	//       "description": "Name or id of the resource for this request.",
147172	//       "location": "path",
147173	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147174	//       "required": true,
147175	//       "type": "string"
147176	//     }
147177	//   },
147178	//   "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
147179	//   "request": {
147180	//     "$ref": "TestPermissionsRequest"
147181	//   },
147182	//   "response": {
147183	//     "$ref": "TestPermissionsResponse"
147184	//   },
147185	//   "scopes": [
147186	//     "https://www.googleapis.com/auth/cloud-platform",
147187	//     "https://www.googleapis.com/auth/compute",
147188	//     "https://www.googleapis.com/auth/compute.readonly"
147189	//   ]
147190	// }
147191
147192}
147193
147194// method id "compute.sslCertificates.aggregatedList":
147195
147196type SslCertificatesAggregatedListCall struct {
147197	s            *Service
147198	project      string
147199	urlParams_   gensupport.URLParams
147200	ifNoneMatch_ string
147201	ctx_         context.Context
147202	header_      http.Header
147203}
147204
147205// AggregatedList: Retrieves the list of all SslCertificate resources,
147206// regional and global, available to the specified project.
147207//
147208// - project: Name of the project scoping this request.
147209func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
147210	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147211	c.project = project
147212	return c
147213}
147214
147215// Filter sets the optional parameter "filter": A filter expression that
147216// filters resources listed in the response. The expression must specify
147217// the field name, a comparison operator, and the value that you want to
147218// use for filtering. The value must be a string, a number, or a
147219// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147220// `<`. For example, if you are filtering Compute Engine instances, you
147221// can exclude instances named `example-instance` by specifying `name !=
147222// example-instance`. You can also filter nested fields. For example,
147223// you could specify `scheduling.automaticRestart = false` to include
147224// instances only if they are not scheduled for automatic restarts. You
147225// can use filtering on nested fields to filter based on resource
147226// labels. To filter on multiple expressions, provide each separate
147227// expression within parentheses. For example: ```
147228// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
147229// ``` By default, each expression is an `AND` expression. However, you
147230// can include `AND` and `OR` expressions explicitly. For example: ```
147231// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
147232// AND (scheduling.automaticRestart = true) ```
147233func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
147234	c.urlParams_.Set("filter", filter)
147235	return c
147236}
147237
147238// IncludeAllScopes sets the optional parameter "includeAllScopes":
147239// Indicates whether every visible scope for each scope type (zone,
147240// region, global) should be included in the response. For new resource
147241// types added after this field, the flag has no effect as new resource
147242// types will always include every visible scope for each scope type in
147243// response. For resource types which predate this field, if this flag
147244// is omitted or false, only scopes of the scope types where the
147245// resource type is expected to be found will be included.
147246func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
147247	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
147248	return c
147249}
147250
147251// MaxResults sets the optional parameter "maxResults": The maximum
147252// number of results per page that should be returned. If the number of
147253// available results is larger than `maxResults`, Compute Engine returns
147254// a `nextPageToken` that can be used to get the next page of results in
147255// subsequent list requests. Acceptable values are `0` to `500`,
147256// inclusive. (Default: `500`)
147257func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
147258	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147259	return c
147260}
147261
147262// OrderBy sets the optional parameter "orderBy": Sorts list results by
147263// a certain order. By default, results are returned in alphanumerical
147264// order based on the resource name. You can also sort results in
147265// descending order based on the creation timestamp using
147266// `orderBy="creationTimestamp desc". This sorts results based on the
147267// `creationTimestamp` field in reverse chronological order (newest
147268// result first). Use this to sort resources like operations so that the
147269// newest operation is returned first. Currently, only sorting by `name`
147270// or `creationTimestamp desc` is supported.
147271func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
147272	c.urlParams_.Set("orderBy", orderBy)
147273	return c
147274}
147275
147276// PageToken sets the optional parameter "pageToken": Specifies a page
147277// token to use. Set `pageToken` to the `nextPageToken` returned by a
147278// previous list request to get the next page of results.
147279func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
147280	c.urlParams_.Set("pageToken", pageToken)
147281	return c
147282}
147283
147284// ReturnPartialSuccess sets the optional parameter
147285// "returnPartialSuccess": Opt-in for partial success behavior which
147286// provides partial results in case of failure. The default value is
147287// false.
147288func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
147289	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147290	return c
147291}
147292
147293// Fields allows partial responses to be retrieved. See
147294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147295// for more information.
147296func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
147297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147298	return c
147299}
147300
147301// IfNoneMatch sets the optional parameter which makes the operation
147302// fail if the object's ETag matches the given value. This is useful for
147303// getting updates only after the object has changed since the last
147304// request. Use googleapi.IsNotModified to check whether the response
147305// error from Do is the result of In-None-Match.
147306func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
147307	c.ifNoneMatch_ = entityTag
147308	return c
147309}
147310
147311// Context sets the context to be used in this call's Do method. Any
147312// pending HTTP request will be aborted if the provided context is
147313// canceled.
147314func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
147315	c.ctx_ = ctx
147316	return c
147317}
147318
147319// Header returns an http.Header that can be modified by the caller to
147320// add HTTP headers to the request.
147321func (c *SslCertificatesAggregatedListCall) Header() http.Header {
147322	if c.header_ == nil {
147323		c.header_ = make(http.Header)
147324	}
147325	return c.header_
147326}
147327
147328func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147329	reqHeaders := make(http.Header)
147330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
147331	for k, v := range c.header_ {
147332		reqHeaders[k] = v
147333	}
147334	reqHeaders.Set("User-Agent", c.s.userAgent())
147335	if c.ifNoneMatch_ != "" {
147336		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147337	}
147338	var body io.Reader = nil
147339	c.urlParams_.Set("alt", alt)
147340	c.urlParams_.Set("prettyPrint", "false")
147341	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates")
147342	urls += "?" + c.urlParams_.Encode()
147343	req, err := http.NewRequest("GET", urls, body)
147344	if err != nil {
147345		return nil, err
147346	}
147347	req.Header = reqHeaders
147348	googleapi.Expand(req.URL, map[string]string{
147349		"project": c.project,
147350	})
147351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147352}
147353
147354// Do executes the "compute.sslCertificates.aggregatedList" call.
147355// Exactly one of *SslCertificateAggregatedList or error will be
147356// non-nil. Any non-2xx status code is an error. Response headers are in
147357// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
147358// response was returned at all) in error.(*googleapi.Error).Header. Use
147359// googleapi.IsNotModified to check whether the returned error was
147360// because http.StatusNotModified was returned.
147361func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
147362	gensupport.SetOptions(c.urlParams_, opts...)
147363	res, err := c.doRequest("json")
147364	if res != nil && res.StatusCode == http.StatusNotModified {
147365		if res.Body != nil {
147366			res.Body.Close()
147367		}
147368		return nil, &googleapi.Error{
147369			Code:   res.StatusCode,
147370			Header: res.Header,
147371		}
147372	}
147373	if err != nil {
147374		return nil, err
147375	}
147376	defer googleapi.CloseBody(res)
147377	if err := googleapi.CheckResponse(res); err != nil {
147378		return nil, err
147379	}
147380	ret := &SslCertificateAggregatedList{
147381		ServerResponse: googleapi.ServerResponse{
147382			Header:         res.Header,
147383			HTTPStatusCode: res.StatusCode,
147384		},
147385	}
147386	target := &ret
147387	if err := gensupport.DecodeResponse(target, res); err != nil {
147388		return nil, err
147389	}
147390	return ret, nil
147391	// {
147392	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
147393	//   "flatPath": "projects/{project}/aggregated/sslCertificates",
147394	//   "httpMethod": "GET",
147395	//   "id": "compute.sslCertificates.aggregatedList",
147396	//   "parameterOrder": [
147397	//     "project"
147398	//   ],
147399	//   "parameters": {
147400	//     "filter": {
147401	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147402	//       "location": "query",
147403	//       "type": "string"
147404	//     },
147405	//     "includeAllScopes": {
147406	//       "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.",
147407	//       "location": "query",
147408	//       "type": "boolean"
147409	//     },
147410	//     "maxResults": {
147411	//       "default": "500",
147412	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147413	//       "format": "uint32",
147414	//       "location": "query",
147415	//       "minimum": "0",
147416	//       "type": "integer"
147417	//     },
147418	//     "orderBy": {
147419	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
147420	//       "location": "query",
147421	//       "type": "string"
147422	//     },
147423	//     "pageToken": {
147424	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147425	//       "location": "query",
147426	//       "type": "string"
147427	//     },
147428	//     "project": {
147429	//       "description": "Name of the project scoping this request.",
147430	//       "location": "path",
147431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147432	//       "required": true,
147433	//       "type": "string"
147434	//     },
147435	//     "returnPartialSuccess": {
147436	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
147437	//       "location": "query",
147438	//       "type": "boolean"
147439	//     }
147440	//   },
147441	//   "path": "projects/{project}/aggregated/sslCertificates",
147442	//   "response": {
147443	//     "$ref": "SslCertificateAggregatedList"
147444	//   },
147445	//   "scopes": [
147446	//     "https://www.googleapis.com/auth/cloud-platform",
147447	//     "https://www.googleapis.com/auth/compute",
147448	//     "https://www.googleapis.com/auth/compute.readonly"
147449	//   ]
147450	// }
147451
147452}
147453
147454// Pages invokes f for each page of results.
147455// A non-nil error returned from f will halt the iteration.
147456// The provided context supersedes any context provided to the Context method.
147457func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
147458	c.ctx_ = ctx
147459	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147460	for {
147461		x, err := c.Do()
147462		if err != nil {
147463			return err
147464		}
147465		if err := f(x); err != nil {
147466			return err
147467		}
147468		if x.NextPageToken == "" {
147469			return nil
147470		}
147471		c.PageToken(x.NextPageToken)
147472	}
147473}
147474
147475// method id "compute.sslCertificates.delete":
147476
147477type SslCertificatesDeleteCall struct {
147478	s              *Service
147479	project        string
147480	sslCertificate string
147481	urlParams_     gensupport.URLParams
147482	ctx_           context.Context
147483	header_        http.Header
147484}
147485
147486// Delete: Deletes the specified SslCertificate resource.
147487//
147488// - project: Project ID for this request.
147489// - sslCertificate: Name of the SslCertificate resource to delete.
147490func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
147491	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147492	c.project = project
147493	c.sslCertificate = sslCertificate
147494	return c
147495}
147496
147497// RequestId sets the optional parameter "requestId": An optional
147498// request ID to identify requests. Specify a unique request ID so that
147499// if you must retry your request, the server will know to ignore the
147500// request if it has already been completed. For example, consider a
147501// situation where you make an initial request and the request times
147502// out. If you make the request again with the same request ID, the
147503// server can check if original operation with the same request ID was
147504// received, and if so, will ignore the second request. This prevents
147505// clients from accidentally creating duplicate commitments. The request
147506// ID must be a valid UUID with the exception that zero UUID is not
147507// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
147508// MixerMutationRequestBuilder
147509func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
147510	c.urlParams_.Set("requestId", requestId)
147511	return c
147512}
147513
147514// Fields allows partial responses to be retrieved. See
147515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147516// for more information.
147517func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
147518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147519	return c
147520}
147521
147522// Context sets the context to be used in this call's Do method. Any
147523// pending HTTP request will be aborted if the provided context is
147524// canceled.
147525func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
147526	c.ctx_ = ctx
147527	return c
147528}
147529
147530// Header returns an http.Header that can be modified by the caller to
147531// add HTTP headers to the request.
147532func (c *SslCertificatesDeleteCall) Header() http.Header {
147533	if c.header_ == nil {
147534		c.header_ = make(http.Header)
147535	}
147536	return c.header_
147537}
147538
147539func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
147540	reqHeaders := make(http.Header)
147541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
147542	for k, v := range c.header_ {
147543		reqHeaders[k] = v
147544	}
147545	reqHeaders.Set("User-Agent", c.s.userAgent())
147546	var body io.Reader = nil
147547	c.urlParams_.Set("alt", alt)
147548	c.urlParams_.Set("prettyPrint", "false")
147549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
147550	urls += "?" + c.urlParams_.Encode()
147551	req, err := http.NewRequest("DELETE", urls, body)
147552	if err != nil {
147553		return nil, err
147554	}
147555	req.Header = reqHeaders
147556	googleapi.Expand(req.URL, map[string]string{
147557		"project":        c.project,
147558		"sslCertificate": c.sslCertificate,
147559	})
147560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147561}
147562
147563// Do executes the "compute.sslCertificates.delete" call.
147564// Exactly one of *Operation or error will be non-nil. Any non-2xx
147565// status code is an error. Response headers are in either
147566// *Operation.ServerResponse.Header or (if a response was returned at
147567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147568// to check whether the returned error was because
147569// http.StatusNotModified was returned.
147570func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147571	gensupport.SetOptions(c.urlParams_, opts...)
147572	res, err := c.doRequest("json")
147573	if res != nil && res.StatusCode == http.StatusNotModified {
147574		if res.Body != nil {
147575			res.Body.Close()
147576		}
147577		return nil, &googleapi.Error{
147578			Code:   res.StatusCode,
147579			Header: res.Header,
147580		}
147581	}
147582	if err != nil {
147583		return nil, err
147584	}
147585	defer googleapi.CloseBody(res)
147586	if err := googleapi.CheckResponse(res); err != nil {
147587		return nil, err
147588	}
147589	ret := &Operation{
147590		ServerResponse: googleapi.ServerResponse{
147591			Header:         res.Header,
147592			HTTPStatusCode: res.StatusCode,
147593		},
147594	}
147595	target := &ret
147596	if err := gensupport.DecodeResponse(target, res); err != nil {
147597		return nil, err
147598	}
147599	return ret, nil
147600	// {
147601	//   "description": "Deletes the specified SslCertificate resource.",
147602	//   "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
147603	//   "httpMethod": "DELETE",
147604	//   "id": "compute.sslCertificates.delete",
147605	//   "parameterOrder": [
147606	//     "project",
147607	//     "sslCertificate"
147608	//   ],
147609	//   "parameters": {
147610	//     "project": {
147611	//       "description": "Project ID for this request.",
147612	//       "location": "path",
147613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147614	//       "required": true,
147615	//       "type": "string"
147616	//     },
147617	//     "requestId": {
147618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
147619	//       "location": "query",
147620	//       "type": "string"
147621	//     },
147622	//     "sslCertificate": {
147623	//       "description": "Name of the SslCertificate resource to delete.",
147624	//       "location": "path",
147625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147626	//       "required": true,
147627	//       "type": "string"
147628	//     }
147629	//   },
147630	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
147631	//   "response": {
147632	//     "$ref": "Operation"
147633	//   },
147634	//   "scopes": [
147635	//     "https://www.googleapis.com/auth/cloud-platform",
147636	//     "https://www.googleapis.com/auth/compute"
147637	//   ]
147638	// }
147639
147640}
147641
147642// method id "compute.sslCertificates.get":
147643
147644type SslCertificatesGetCall struct {
147645	s              *Service
147646	project        string
147647	sslCertificate string
147648	urlParams_     gensupport.URLParams
147649	ifNoneMatch_   string
147650	ctx_           context.Context
147651	header_        http.Header
147652}
147653
147654// Get: Returns the specified SslCertificate resource. Gets a list of
147655// available SSL certificates by making a list() request.
147656//
147657// - project: Project ID for this request.
147658// - sslCertificate: Name of the SslCertificate resource to return.
147659func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
147660	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147661	c.project = project
147662	c.sslCertificate = sslCertificate
147663	return c
147664}
147665
147666// Fields allows partial responses to be retrieved. See
147667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147668// for more information.
147669func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
147670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147671	return c
147672}
147673
147674// IfNoneMatch sets the optional parameter which makes the operation
147675// fail if the object's ETag matches the given value. This is useful for
147676// getting updates only after the object has changed since the last
147677// request. Use googleapi.IsNotModified to check whether the response
147678// error from Do is the result of In-None-Match.
147679func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
147680	c.ifNoneMatch_ = entityTag
147681	return c
147682}
147683
147684// Context sets the context to be used in this call's Do method. Any
147685// pending HTTP request will be aborted if the provided context is
147686// canceled.
147687func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
147688	c.ctx_ = ctx
147689	return c
147690}
147691
147692// Header returns an http.Header that can be modified by the caller to
147693// add HTTP headers to the request.
147694func (c *SslCertificatesGetCall) Header() http.Header {
147695	if c.header_ == nil {
147696		c.header_ = make(http.Header)
147697	}
147698	return c.header_
147699}
147700
147701func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
147702	reqHeaders := make(http.Header)
147703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
147704	for k, v := range c.header_ {
147705		reqHeaders[k] = v
147706	}
147707	reqHeaders.Set("User-Agent", c.s.userAgent())
147708	if c.ifNoneMatch_ != "" {
147709		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147710	}
147711	var body io.Reader = nil
147712	c.urlParams_.Set("alt", alt)
147713	c.urlParams_.Set("prettyPrint", "false")
147714	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
147715	urls += "?" + c.urlParams_.Encode()
147716	req, err := http.NewRequest("GET", urls, body)
147717	if err != nil {
147718		return nil, err
147719	}
147720	req.Header = reqHeaders
147721	googleapi.Expand(req.URL, map[string]string{
147722		"project":        c.project,
147723		"sslCertificate": c.sslCertificate,
147724	})
147725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147726}
147727
147728// Do executes the "compute.sslCertificates.get" call.
147729// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
147730// status code is an error. Response headers are in either
147731// *SslCertificate.ServerResponse.Header or (if a response was returned
147732// at all) in error.(*googleapi.Error).Header. Use
147733// googleapi.IsNotModified to check whether the returned error was
147734// because http.StatusNotModified was returned.
147735func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
147736	gensupport.SetOptions(c.urlParams_, opts...)
147737	res, err := c.doRequest("json")
147738	if res != nil && res.StatusCode == http.StatusNotModified {
147739		if res.Body != nil {
147740			res.Body.Close()
147741		}
147742		return nil, &googleapi.Error{
147743			Code:   res.StatusCode,
147744			Header: res.Header,
147745		}
147746	}
147747	if err != nil {
147748		return nil, err
147749	}
147750	defer googleapi.CloseBody(res)
147751	if err := googleapi.CheckResponse(res); err != nil {
147752		return nil, err
147753	}
147754	ret := &SslCertificate{
147755		ServerResponse: googleapi.ServerResponse{
147756			Header:         res.Header,
147757			HTTPStatusCode: res.StatusCode,
147758		},
147759	}
147760	target := &ret
147761	if err := gensupport.DecodeResponse(target, res); err != nil {
147762		return nil, err
147763	}
147764	return ret, nil
147765	// {
147766	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
147767	//   "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
147768	//   "httpMethod": "GET",
147769	//   "id": "compute.sslCertificates.get",
147770	//   "parameterOrder": [
147771	//     "project",
147772	//     "sslCertificate"
147773	//   ],
147774	//   "parameters": {
147775	//     "project": {
147776	//       "description": "Project ID for this request.",
147777	//       "location": "path",
147778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147779	//       "required": true,
147780	//       "type": "string"
147781	//     },
147782	//     "sslCertificate": {
147783	//       "description": "Name of the SslCertificate resource to return.",
147784	//       "location": "path",
147785	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147786	//       "required": true,
147787	//       "type": "string"
147788	//     }
147789	//   },
147790	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
147791	//   "response": {
147792	//     "$ref": "SslCertificate"
147793	//   },
147794	//   "scopes": [
147795	//     "https://www.googleapis.com/auth/cloud-platform",
147796	//     "https://www.googleapis.com/auth/compute",
147797	//     "https://www.googleapis.com/auth/compute.readonly"
147798	//   ]
147799	// }
147800
147801}
147802
147803// method id "compute.sslCertificates.insert":
147804
147805type SslCertificatesInsertCall struct {
147806	s              *Service
147807	project        string
147808	sslcertificate *SslCertificate
147809	urlParams_     gensupport.URLParams
147810	ctx_           context.Context
147811	header_        http.Header
147812}
147813
147814// Insert: Creates a SslCertificate resource in the specified project
147815// using the data included in the request.
147816//
147817// - project: Project ID for this request.
147818func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
147819	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147820	c.project = project
147821	c.sslcertificate = sslcertificate
147822	return c
147823}
147824
147825// RequestId sets the optional parameter "requestId": An optional
147826// request ID to identify requests. Specify a unique request ID so that
147827// if you must retry your request, the server will know to ignore the
147828// request if it has already been completed. For example, consider a
147829// situation where you make an initial request and the request times
147830// out. If you make the request again with the same request ID, the
147831// server can check if original operation with the same request ID was
147832// received, and if so, will ignore the second request. This prevents
147833// clients from accidentally creating duplicate commitments. The request
147834// ID must be a valid UUID with the exception that zero UUID is not
147835// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
147836// MixerMutationRequestBuilder
147837func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
147838	c.urlParams_.Set("requestId", requestId)
147839	return c
147840}
147841
147842// Fields allows partial responses to be retrieved. See
147843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147844// for more information.
147845func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
147846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147847	return c
147848}
147849
147850// Context sets the context to be used in this call's Do method. Any
147851// pending HTTP request will be aborted if the provided context is
147852// canceled.
147853func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
147854	c.ctx_ = ctx
147855	return c
147856}
147857
147858// Header returns an http.Header that can be modified by the caller to
147859// add HTTP headers to the request.
147860func (c *SslCertificatesInsertCall) Header() http.Header {
147861	if c.header_ == nil {
147862		c.header_ = make(http.Header)
147863	}
147864	return c.header_
147865}
147866
147867func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
147868	reqHeaders := make(http.Header)
147869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
147870	for k, v := range c.header_ {
147871		reqHeaders[k] = v
147872	}
147873	reqHeaders.Set("User-Agent", c.s.userAgent())
147874	var body io.Reader = nil
147875	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
147876	if err != nil {
147877		return nil, err
147878	}
147879	reqHeaders.Set("Content-Type", "application/json")
147880	c.urlParams_.Set("alt", alt)
147881	c.urlParams_.Set("prettyPrint", "false")
147882	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
147883	urls += "?" + c.urlParams_.Encode()
147884	req, err := http.NewRequest("POST", urls, body)
147885	if err != nil {
147886		return nil, err
147887	}
147888	req.Header = reqHeaders
147889	googleapi.Expand(req.URL, map[string]string{
147890		"project": c.project,
147891	})
147892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147893}
147894
147895// Do executes the "compute.sslCertificates.insert" call.
147896// Exactly one of *Operation or error will be non-nil. Any non-2xx
147897// status code is an error. Response headers are in either
147898// *Operation.ServerResponse.Header or (if a response was returned at
147899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147900// to check whether the returned error was because
147901// http.StatusNotModified was returned.
147902func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147903	gensupport.SetOptions(c.urlParams_, opts...)
147904	res, err := c.doRequest("json")
147905	if res != nil && res.StatusCode == http.StatusNotModified {
147906		if res.Body != nil {
147907			res.Body.Close()
147908		}
147909		return nil, &googleapi.Error{
147910			Code:   res.StatusCode,
147911			Header: res.Header,
147912		}
147913	}
147914	if err != nil {
147915		return nil, err
147916	}
147917	defer googleapi.CloseBody(res)
147918	if err := googleapi.CheckResponse(res); err != nil {
147919		return nil, err
147920	}
147921	ret := &Operation{
147922		ServerResponse: googleapi.ServerResponse{
147923			Header:         res.Header,
147924			HTTPStatusCode: res.StatusCode,
147925		},
147926	}
147927	target := &ret
147928	if err := gensupport.DecodeResponse(target, res); err != nil {
147929		return nil, err
147930	}
147931	return ret, nil
147932	// {
147933	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
147934	//   "flatPath": "projects/{project}/global/sslCertificates",
147935	//   "httpMethod": "POST",
147936	//   "id": "compute.sslCertificates.insert",
147937	//   "parameterOrder": [
147938	//     "project"
147939	//   ],
147940	//   "parameters": {
147941	//     "project": {
147942	//       "description": "Project ID for this request.",
147943	//       "location": "path",
147944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147945	//       "required": true,
147946	//       "type": "string"
147947	//     },
147948	//     "requestId": {
147949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
147950	//       "location": "query",
147951	//       "type": "string"
147952	//     }
147953	//   },
147954	//   "path": "projects/{project}/global/sslCertificates",
147955	//   "request": {
147956	//     "$ref": "SslCertificate"
147957	//   },
147958	//   "response": {
147959	//     "$ref": "Operation"
147960	//   },
147961	//   "scopes": [
147962	//     "https://www.googleapis.com/auth/cloud-platform",
147963	//     "https://www.googleapis.com/auth/compute"
147964	//   ]
147965	// }
147966
147967}
147968
147969// method id "compute.sslCertificates.list":
147970
147971type SslCertificatesListCall struct {
147972	s            *Service
147973	project      string
147974	urlParams_   gensupport.URLParams
147975	ifNoneMatch_ string
147976	ctx_         context.Context
147977	header_      http.Header
147978}
147979
147980// List: Retrieves the list of SslCertificate resources available to the
147981// specified project.
147982//
147983// - project: Project ID for this request.
147984func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
147985	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147986	c.project = project
147987	return c
147988}
147989
147990// Filter sets the optional parameter "filter": A filter expression that
147991// filters resources listed in the response. The expression must specify
147992// the field name, a comparison operator, and the value that you want to
147993// use for filtering. The value must be a string, a number, or a
147994// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147995// `<`. For example, if you are filtering Compute Engine instances, you
147996// can exclude instances named `example-instance` by specifying `name !=
147997// example-instance`. You can also filter nested fields. For example,
147998// you could specify `scheduling.automaticRestart = false` to include
147999// instances only if they are not scheduled for automatic restarts. You
148000// can use filtering on nested fields to filter based on resource
148001// labels. To filter on multiple expressions, provide each separate
148002// expression within parentheses. For example: ```
148003// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
148004// ``` By default, each expression is an `AND` expression. However, you
148005// can include `AND` and `OR` expressions explicitly. For example: ```
148006// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
148007// AND (scheduling.automaticRestart = true) ```
148008func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
148009	c.urlParams_.Set("filter", filter)
148010	return c
148011}
148012
148013// MaxResults sets the optional parameter "maxResults": The maximum
148014// number of results per page that should be returned. If the number of
148015// available results is larger than `maxResults`, Compute Engine returns
148016// a `nextPageToken` that can be used to get the next page of results in
148017// subsequent list requests. Acceptable values are `0` to `500`,
148018// inclusive. (Default: `500`)
148019func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
148020	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148021	return c
148022}
148023
148024// OrderBy sets the optional parameter "orderBy": Sorts list results by
148025// a certain order. By default, results are returned in alphanumerical
148026// order based on the resource name. You can also sort results in
148027// descending order based on the creation timestamp using
148028// `orderBy="creationTimestamp desc". This sorts results based on the
148029// `creationTimestamp` field in reverse chronological order (newest
148030// result first). Use this to sort resources like operations so that the
148031// newest operation is returned first. Currently, only sorting by `name`
148032// or `creationTimestamp desc` is supported.
148033func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
148034	c.urlParams_.Set("orderBy", orderBy)
148035	return c
148036}
148037
148038// PageToken sets the optional parameter "pageToken": Specifies a page
148039// token to use. Set `pageToken` to the `nextPageToken` returned by a
148040// previous list request to get the next page of results.
148041func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
148042	c.urlParams_.Set("pageToken", pageToken)
148043	return c
148044}
148045
148046// ReturnPartialSuccess sets the optional parameter
148047// "returnPartialSuccess": Opt-in for partial success behavior which
148048// provides partial results in case of failure. The default value is
148049// false.
148050func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
148051	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148052	return c
148053}
148054
148055// Fields allows partial responses to be retrieved. See
148056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148057// for more information.
148058func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
148059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148060	return c
148061}
148062
148063// IfNoneMatch sets the optional parameter which makes the operation
148064// fail if the object's ETag matches the given value. This is useful for
148065// getting updates only after the object has changed since the last
148066// request. Use googleapi.IsNotModified to check whether the response
148067// error from Do is the result of In-None-Match.
148068func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
148069	c.ifNoneMatch_ = entityTag
148070	return c
148071}
148072
148073// Context sets the context to be used in this call's Do method. Any
148074// pending HTTP request will be aborted if the provided context is
148075// canceled.
148076func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
148077	c.ctx_ = ctx
148078	return c
148079}
148080
148081// Header returns an http.Header that can be modified by the caller to
148082// add HTTP headers to the request.
148083func (c *SslCertificatesListCall) Header() http.Header {
148084	if c.header_ == nil {
148085		c.header_ = make(http.Header)
148086	}
148087	return c.header_
148088}
148089
148090func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
148091	reqHeaders := make(http.Header)
148092	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
148093	for k, v := range c.header_ {
148094		reqHeaders[k] = v
148095	}
148096	reqHeaders.Set("User-Agent", c.s.userAgent())
148097	if c.ifNoneMatch_ != "" {
148098		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148099	}
148100	var body io.Reader = nil
148101	c.urlParams_.Set("alt", alt)
148102	c.urlParams_.Set("prettyPrint", "false")
148103	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
148104	urls += "?" + c.urlParams_.Encode()
148105	req, err := http.NewRequest("GET", urls, body)
148106	if err != nil {
148107		return nil, err
148108	}
148109	req.Header = reqHeaders
148110	googleapi.Expand(req.URL, map[string]string{
148111		"project": c.project,
148112	})
148113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148114}
148115
148116// Do executes the "compute.sslCertificates.list" call.
148117// Exactly one of *SslCertificateList or error will be non-nil. Any
148118// non-2xx status code is an error. Response headers are in either
148119// *SslCertificateList.ServerResponse.Header or (if a response was
148120// returned at all) in error.(*googleapi.Error).Header. Use
148121// googleapi.IsNotModified to check whether the returned error was
148122// because http.StatusNotModified was returned.
148123func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
148124	gensupport.SetOptions(c.urlParams_, opts...)
148125	res, err := c.doRequest("json")
148126	if res != nil && res.StatusCode == http.StatusNotModified {
148127		if res.Body != nil {
148128			res.Body.Close()
148129		}
148130		return nil, &googleapi.Error{
148131			Code:   res.StatusCode,
148132			Header: res.Header,
148133		}
148134	}
148135	if err != nil {
148136		return nil, err
148137	}
148138	defer googleapi.CloseBody(res)
148139	if err := googleapi.CheckResponse(res); err != nil {
148140		return nil, err
148141	}
148142	ret := &SslCertificateList{
148143		ServerResponse: googleapi.ServerResponse{
148144			Header:         res.Header,
148145			HTTPStatusCode: res.StatusCode,
148146		},
148147	}
148148	target := &ret
148149	if err := gensupport.DecodeResponse(target, res); err != nil {
148150		return nil, err
148151	}
148152	return ret, nil
148153	// {
148154	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
148155	//   "flatPath": "projects/{project}/global/sslCertificates",
148156	//   "httpMethod": "GET",
148157	//   "id": "compute.sslCertificates.list",
148158	//   "parameterOrder": [
148159	//     "project"
148160	//   ],
148161	//   "parameters": {
148162	//     "filter": {
148163	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148164	//       "location": "query",
148165	//       "type": "string"
148166	//     },
148167	//     "maxResults": {
148168	//       "default": "500",
148169	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148170	//       "format": "uint32",
148171	//       "location": "query",
148172	//       "minimum": "0",
148173	//       "type": "integer"
148174	//     },
148175	//     "orderBy": {
148176	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
148177	//       "location": "query",
148178	//       "type": "string"
148179	//     },
148180	//     "pageToken": {
148181	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148182	//       "location": "query",
148183	//       "type": "string"
148184	//     },
148185	//     "project": {
148186	//       "description": "Project ID for this request.",
148187	//       "location": "path",
148188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148189	//       "required": true,
148190	//       "type": "string"
148191	//     },
148192	//     "returnPartialSuccess": {
148193	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148194	//       "location": "query",
148195	//       "type": "boolean"
148196	//     }
148197	//   },
148198	//   "path": "projects/{project}/global/sslCertificates",
148199	//   "response": {
148200	//     "$ref": "SslCertificateList"
148201	//   },
148202	//   "scopes": [
148203	//     "https://www.googleapis.com/auth/cloud-platform",
148204	//     "https://www.googleapis.com/auth/compute",
148205	//     "https://www.googleapis.com/auth/compute.readonly"
148206	//   ]
148207	// }
148208
148209}
148210
148211// Pages invokes f for each page of results.
148212// A non-nil error returned from f will halt the iteration.
148213// The provided context supersedes any context provided to the Context method.
148214func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
148215	c.ctx_ = ctx
148216	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148217	for {
148218		x, err := c.Do()
148219		if err != nil {
148220			return err
148221		}
148222		if err := f(x); err != nil {
148223			return err
148224		}
148225		if x.NextPageToken == "" {
148226			return nil
148227		}
148228		c.PageToken(x.NextPageToken)
148229	}
148230}
148231
148232// method id "compute.sslPolicies.delete":
148233
148234type SslPoliciesDeleteCall struct {
148235	s          *Service
148236	project    string
148237	sslPolicy  string
148238	urlParams_ gensupport.URLParams
148239	ctx_       context.Context
148240	header_    http.Header
148241}
148242
148243// Delete: Deletes the specified SSL policy. The SSL policy resource can
148244// be deleted only if it is not in use by any TargetHttpsProxy or
148245// TargetSslProxy resources.
148246//
148247// - project: Project ID for this request.
148248// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63
148249//   characters long, and comply with RFC1035.
148250func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
148251	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148252	c.project = project
148253	c.sslPolicy = sslPolicy
148254	return c
148255}
148256
148257// RequestId sets the optional parameter "requestId": An optional
148258// request ID to identify requests. Specify a unique request ID so that
148259// if you must retry your request, the server will know to ignore the
148260// request if it has already been completed. For example, consider a
148261// situation where you make an initial request and the request times
148262// out. If you make the request again with the same request ID, the
148263// server can check if original operation with the same request ID was
148264// received, and if so, will ignore the second request. This prevents
148265// clients from accidentally creating duplicate commitments. The request
148266// ID must be a valid UUID with the exception that zero UUID is not
148267// supported ( 00000000-0000-0000-0000-000000000000).
148268func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
148269	c.urlParams_.Set("requestId", requestId)
148270	return c
148271}
148272
148273// Fields allows partial responses to be retrieved. See
148274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148275// for more information.
148276func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
148277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148278	return c
148279}
148280
148281// Context sets the context to be used in this call's Do method. Any
148282// pending HTTP request will be aborted if the provided context is
148283// canceled.
148284func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
148285	c.ctx_ = ctx
148286	return c
148287}
148288
148289// Header returns an http.Header that can be modified by the caller to
148290// add HTTP headers to the request.
148291func (c *SslPoliciesDeleteCall) Header() http.Header {
148292	if c.header_ == nil {
148293		c.header_ = make(http.Header)
148294	}
148295	return c.header_
148296}
148297
148298func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
148299	reqHeaders := make(http.Header)
148300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
148301	for k, v := range c.header_ {
148302		reqHeaders[k] = v
148303	}
148304	reqHeaders.Set("User-Agent", c.s.userAgent())
148305	var body io.Reader = nil
148306	c.urlParams_.Set("alt", alt)
148307	c.urlParams_.Set("prettyPrint", "false")
148308	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
148309	urls += "?" + c.urlParams_.Encode()
148310	req, err := http.NewRequest("DELETE", urls, body)
148311	if err != nil {
148312		return nil, err
148313	}
148314	req.Header = reqHeaders
148315	googleapi.Expand(req.URL, map[string]string{
148316		"project":   c.project,
148317		"sslPolicy": c.sslPolicy,
148318	})
148319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148320}
148321
148322// Do executes the "compute.sslPolicies.delete" call.
148323// Exactly one of *Operation or error will be non-nil. Any non-2xx
148324// status code is an error. Response headers are in either
148325// *Operation.ServerResponse.Header or (if a response was returned at
148326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148327// to check whether the returned error was because
148328// http.StatusNotModified was returned.
148329func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148330	gensupport.SetOptions(c.urlParams_, opts...)
148331	res, err := c.doRequest("json")
148332	if res != nil && res.StatusCode == http.StatusNotModified {
148333		if res.Body != nil {
148334			res.Body.Close()
148335		}
148336		return nil, &googleapi.Error{
148337			Code:   res.StatusCode,
148338			Header: res.Header,
148339		}
148340	}
148341	if err != nil {
148342		return nil, err
148343	}
148344	defer googleapi.CloseBody(res)
148345	if err := googleapi.CheckResponse(res); err != nil {
148346		return nil, err
148347	}
148348	ret := &Operation{
148349		ServerResponse: googleapi.ServerResponse{
148350			Header:         res.Header,
148351			HTTPStatusCode: res.StatusCode,
148352		},
148353	}
148354	target := &ret
148355	if err := gensupport.DecodeResponse(target, res); err != nil {
148356		return nil, err
148357	}
148358	return ret, nil
148359	// {
148360	//   "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.",
148361	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
148362	//   "httpMethod": "DELETE",
148363	//   "id": "compute.sslPolicies.delete",
148364	//   "parameterOrder": [
148365	//     "project",
148366	//     "sslPolicy"
148367	//   ],
148368	//   "parameters": {
148369	//     "project": {
148370	//       "description": "Project ID for this request.",
148371	//       "location": "path",
148372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148373	//       "required": true,
148374	//       "type": "string"
148375	//     },
148376	//     "requestId": {
148377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
148378	//       "location": "query",
148379	//       "type": "string"
148380	//     },
148381	//     "sslPolicy": {
148382	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
148383	//       "location": "path",
148384	//       "required": true,
148385	//       "type": "string"
148386	//     }
148387	//   },
148388	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
148389	//   "response": {
148390	//     "$ref": "Operation"
148391	//   },
148392	//   "scopes": [
148393	//     "https://www.googleapis.com/auth/cloud-platform",
148394	//     "https://www.googleapis.com/auth/compute"
148395	//   ]
148396	// }
148397
148398}
148399
148400// method id "compute.sslPolicies.get":
148401
148402type SslPoliciesGetCall struct {
148403	s            *Service
148404	project      string
148405	sslPolicy    string
148406	urlParams_   gensupport.URLParams
148407	ifNoneMatch_ string
148408	ctx_         context.Context
148409	header_      http.Header
148410}
148411
148412// Get: Lists all of the ordered rules present in a single specified
148413// policy.
148414//
148415// - project: Project ID for this request.
148416// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
148417//   characters long, and comply with RFC1035.
148418func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
148419	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148420	c.project = project
148421	c.sslPolicy = sslPolicy
148422	return c
148423}
148424
148425// Fields allows partial responses to be retrieved. See
148426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148427// for more information.
148428func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
148429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148430	return c
148431}
148432
148433// IfNoneMatch sets the optional parameter which makes the operation
148434// fail if the object's ETag matches the given value. This is useful for
148435// getting updates only after the object has changed since the last
148436// request. Use googleapi.IsNotModified to check whether the response
148437// error from Do is the result of In-None-Match.
148438func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
148439	c.ifNoneMatch_ = entityTag
148440	return c
148441}
148442
148443// Context sets the context to be used in this call's Do method. Any
148444// pending HTTP request will be aborted if the provided context is
148445// canceled.
148446func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
148447	c.ctx_ = ctx
148448	return c
148449}
148450
148451// Header returns an http.Header that can be modified by the caller to
148452// add HTTP headers to the request.
148453func (c *SslPoliciesGetCall) Header() http.Header {
148454	if c.header_ == nil {
148455		c.header_ = make(http.Header)
148456	}
148457	return c.header_
148458}
148459
148460func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
148461	reqHeaders := make(http.Header)
148462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
148463	for k, v := range c.header_ {
148464		reqHeaders[k] = v
148465	}
148466	reqHeaders.Set("User-Agent", c.s.userAgent())
148467	if c.ifNoneMatch_ != "" {
148468		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148469	}
148470	var body io.Reader = nil
148471	c.urlParams_.Set("alt", alt)
148472	c.urlParams_.Set("prettyPrint", "false")
148473	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
148474	urls += "?" + c.urlParams_.Encode()
148475	req, err := http.NewRequest("GET", urls, body)
148476	if err != nil {
148477		return nil, err
148478	}
148479	req.Header = reqHeaders
148480	googleapi.Expand(req.URL, map[string]string{
148481		"project":   c.project,
148482		"sslPolicy": c.sslPolicy,
148483	})
148484	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148485}
148486
148487// Do executes the "compute.sslPolicies.get" call.
148488// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
148489// status code is an error. Response headers are in either
148490// *SslPolicy.ServerResponse.Header or (if a response was returned at
148491// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148492// to check whether the returned error was because
148493// http.StatusNotModified was returned.
148494func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
148495	gensupport.SetOptions(c.urlParams_, opts...)
148496	res, err := c.doRequest("json")
148497	if res != nil && res.StatusCode == http.StatusNotModified {
148498		if res.Body != nil {
148499			res.Body.Close()
148500		}
148501		return nil, &googleapi.Error{
148502			Code:   res.StatusCode,
148503			Header: res.Header,
148504		}
148505	}
148506	if err != nil {
148507		return nil, err
148508	}
148509	defer googleapi.CloseBody(res)
148510	if err := googleapi.CheckResponse(res); err != nil {
148511		return nil, err
148512	}
148513	ret := &SslPolicy{
148514		ServerResponse: googleapi.ServerResponse{
148515			Header:         res.Header,
148516			HTTPStatusCode: res.StatusCode,
148517		},
148518	}
148519	target := &ret
148520	if err := gensupport.DecodeResponse(target, res); err != nil {
148521		return nil, err
148522	}
148523	return ret, nil
148524	// {
148525	//   "description": "Lists all of the ordered rules present in a single specified policy.",
148526	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
148527	//   "httpMethod": "GET",
148528	//   "id": "compute.sslPolicies.get",
148529	//   "parameterOrder": [
148530	//     "project",
148531	//     "sslPolicy"
148532	//   ],
148533	//   "parameters": {
148534	//     "project": {
148535	//       "description": "Project ID for this request.",
148536	//       "location": "path",
148537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148538	//       "required": true,
148539	//       "type": "string"
148540	//     },
148541	//     "sslPolicy": {
148542	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
148543	//       "location": "path",
148544	//       "required": true,
148545	//       "type": "string"
148546	//     }
148547	//   },
148548	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
148549	//   "response": {
148550	//     "$ref": "SslPolicy"
148551	//   },
148552	//   "scopes": [
148553	//     "https://www.googleapis.com/auth/cloud-platform",
148554	//     "https://www.googleapis.com/auth/compute",
148555	//     "https://www.googleapis.com/auth/compute.readonly"
148556	//   ]
148557	// }
148558
148559}
148560
148561// method id "compute.sslPolicies.insert":
148562
148563type SslPoliciesInsertCall struct {
148564	s          *Service
148565	project    string
148566	sslpolicy  *SslPolicy
148567	urlParams_ gensupport.URLParams
148568	ctx_       context.Context
148569	header_    http.Header
148570}
148571
148572// Insert: Returns the specified SSL policy resource. Gets a list of
148573// available SSL policies by making a list() request.
148574//
148575// - project: Project ID for this request.
148576func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
148577	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148578	c.project = project
148579	c.sslpolicy = sslpolicy
148580	return c
148581}
148582
148583// RequestId sets the optional parameter "requestId": An optional
148584// request ID to identify requests. Specify a unique request ID so that
148585// if you must retry your request, the server will know to ignore the
148586// request if it has already been completed. For example, consider a
148587// situation where you make an initial request and the request times
148588// out. If you make the request again with the same request ID, the
148589// server can check if original operation with the same request ID was
148590// received, and if so, will ignore the second request. This prevents
148591// clients from accidentally creating duplicate commitments. The request
148592// ID must be a valid UUID with the exception that zero UUID is not
148593// supported ( 00000000-0000-0000-0000-000000000000).
148594func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
148595	c.urlParams_.Set("requestId", requestId)
148596	return c
148597}
148598
148599// Fields allows partial responses to be retrieved. See
148600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148601// for more information.
148602func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
148603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148604	return c
148605}
148606
148607// Context sets the context to be used in this call's Do method. Any
148608// pending HTTP request will be aborted if the provided context is
148609// canceled.
148610func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
148611	c.ctx_ = ctx
148612	return c
148613}
148614
148615// Header returns an http.Header that can be modified by the caller to
148616// add HTTP headers to the request.
148617func (c *SslPoliciesInsertCall) Header() http.Header {
148618	if c.header_ == nil {
148619		c.header_ = make(http.Header)
148620	}
148621	return c.header_
148622}
148623
148624func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
148625	reqHeaders := make(http.Header)
148626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
148627	for k, v := range c.header_ {
148628		reqHeaders[k] = v
148629	}
148630	reqHeaders.Set("User-Agent", c.s.userAgent())
148631	var body io.Reader = nil
148632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
148633	if err != nil {
148634		return nil, err
148635	}
148636	reqHeaders.Set("Content-Type", "application/json")
148637	c.urlParams_.Set("alt", alt)
148638	c.urlParams_.Set("prettyPrint", "false")
148639	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
148640	urls += "?" + c.urlParams_.Encode()
148641	req, err := http.NewRequest("POST", urls, body)
148642	if err != nil {
148643		return nil, err
148644	}
148645	req.Header = reqHeaders
148646	googleapi.Expand(req.URL, map[string]string{
148647		"project": c.project,
148648	})
148649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148650}
148651
148652// Do executes the "compute.sslPolicies.insert" call.
148653// Exactly one of *Operation or error will be non-nil. Any non-2xx
148654// status code is an error. Response headers are in either
148655// *Operation.ServerResponse.Header or (if a response was returned at
148656// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148657// to check whether the returned error was because
148658// http.StatusNotModified was returned.
148659func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148660	gensupport.SetOptions(c.urlParams_, opts...)
148661	res, err := c.doRequest("json")
148662	if res != nil && res.StatusCode == http.StatusNotModified {
148663		if res.Body != nil {
148664			res.Body.Close()
148665		}
148666		return nil, &googleapi.Error{
148667			Code:   res.StatusCode,
148668			Header: res.Header,
148669		}
148670	}
148671	if err != nil {
148672		return nil, err
148673	}
148674	defer googleapi.CloseBody(res)
148675	if err := googleapi.CheckResponse(res); err != nil {
148676		return nil, err
148677	}
148678	ret := &Operation{
148679		ServerResponse: googleapi.ServerResponse{
148680			Header:         res.Header,
148681			HTTPStatusCode: res.StatusCode,
148682		},
148683	}
148684	target := &ret
148685	if err := gensupport.DecodeResponse(target, res); err != nil {
148686		return nil, err
148687	}
148688	return ret, nil
148689	// {
148690	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
148691	//   "flatPath": "projects/{project}/global/sslPolicies",
148692	//   "httpMethod": "POST",
148693	//   "id": "compute.sslPolicies.insert",
148694	//   "parameterOrder": [
148695	//     "project"
148696	//   ],
148697	//   "parameters": {
148698	//     "project": {
148699	//       "description": "Project ID for this request.",
148700	//       "location": "path",
148701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148702	//       "required": true,
148703	//       "type": "string"
148704	//     },
148705	//     "requestId": {
148706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
148707	//       "location": "query",
148708	//       "type": "string"
148709	//     }
148710	//   },
148711	//   "path": "projects/{project}/global/sslPolicies",
148712	//   "request": {
148713	//     "$ref": "SslPolicy"
148714	//   },
148715	//   "response": {
148716	//     "$ref": "Operation"
148717	//   },
148718	//   "scopes": [
148719	//     "https://www.googleapis.com/auth/cloud-platform",
148720	//     "https://www.googleapis.com/auth/compute"
148721	//   ]
148722	// }
148723
148724}
148725
148726// method id "compute.sslPolicies.list":
148727
148728type SslPoliciesListCall struct {
148729	s            *Service
148730	project      string
148731	urlParams_   gensupport.URLParams
148732	ifNoneMatch_ string
148733	ctx_         context.Context
148734	header_      http.Header
148735}
148736
148737// List: Lists all the SSL policies that have been configured for the
148738// specified project.
148739//
148740// - project: Project ID for this request.
148741func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
148742	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148743	c.project = project
148744	return c
148745}
148746
148747// Filter sets the optional parameter "filter": A filter expression that
148748// filters resources listed in the response. The expression must specify
148749// the field name, a comparison operator, and the value that you want to
148750// use for filtering. The value must be a string, a number, or a
148751// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148752// `<`. For example, if you are filtering Compute Engine instances, you
148753// can exclude instances named `example-instance` by specifying `name !=
148754// example-instance`. You can also filter nested fields. For example,
148755// you could specify `scheduling.automaticRestart = false` to include
148756// instances only if they are not scheduled for automatic restarts. You
148757// can use filtering on nested fields to filter based on resource
148758// labels. To filter on multiple expressions, provide each separate
148759// expression within parentheses. For example: ```
148760// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
148761// ``` By default, each expression is an `AND` expression. However, you
148762// can include `AND` and `OR` expressions explicitly. For example: ```
148763// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
148764// AND (scheduling.automaticRestart = true) ```
148765func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
148766	c.urlParams_.Set("filter", filter)
148767	return c
148768}
148769
148770// MaxResults sets the optional parameter "maxResults": The maximum
148771// number of results per page that should be returned. If the number of
148772// available results is larger than `maxResults`, Compute Engine returns
148773// a `nextPageToken` that can be used to get the next page of results in
148774// subsequent list requests. Acceptable values are `0` to `500`,
148775// inclusive. (Default: `500`)
148776func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
148777	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148778	return c
148779}
148780
148781// OrderBy sets the optional parameter "orderBy": Sorts list results by
148782// a certain order. By default, results are returned in alphanumerical
148783// order based on the resource name. You can also sort results in
148784// descending order based on the creation timestamp using
148785// `orderBy="creationTimestamp desc". This sorts results based on the
148786// `creationTimestamp` field in reverse chronological order (newest
148787// result first). Use this to sort resources like operations so that the
148788// newest operation is returned first. Currently, only sorting by `name`
148789// or `creationTimestamp desc` is supported.
148790func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
148791	c.urlParams_.Set("orderBy", orderBy)
148792	return c
148793}
148794
148795// PageToken sets the optional parameter "pageToken": Specifies a page
148796// token to use. Set `pageToken` to the `nextPageToken` returned by a
148797// previous list request to get the next page of results.
148798func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
148799	c.urlParams_.Set("pageToken", pageToken)
148800	return c
148801}
148802
148803// ReturnPartialSuccess sets the optional parameter
148804// "returnPartialSuccess": Opt-in for partial success behavior which
148805// provides partial results in case of failure. The default value is
148806// false.
148807func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
148808	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148809	return c
148810}
148811
148812// Fields allows partial responses to be retrieved. See
148813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148814// for more information.
148815func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
148816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148817	return c
148818}
148819
148820// IfNoneMatch sets the optional parameter which makes the operation
148821// fail if the object's ETag matches the given value. This is useful for
148822// getting updates only after the object has changed since the last
148823// request. Use googleapi.IsNotModified to check whether the response
148824// error from Do is the result of In-None-Match.
148825func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
148826	c.ifNoneMatch_ = entityTag
148827	return c
148828}
148829
148830// Context sets the context to be used in this call's Do method. Any
148831// pending HTTP request will be aborted if the provided context is
148832// canceled.
148833func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
148834	c.ctx_ = ctx
148835	return c
148836}
148837
148838// Header returns an http.Header that can be modified by the caller to
148839// add HTTP headers to the request.
148840func (c *SslPoliciesListCall) Header() http.Header {
148841	if c.header_ == nil {
148842		c.header_ = make(http.Header)
148843	}
148844	return c.header_
148845}
148846
148847func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
148848	reqHeaders := make(http.Header)
148849	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
148850	for k, v := range c.header_ {
148851		reqHeaders[k] = v
148852	}
148853	reqHeaders.Set("User-Agent", c.s.userAgent())
148854	if c.ifNoneMatch_ != "" {
148855		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148856	}
148857	var body io.Reader = nil
148858	c.urlParams_.Set("alt", alt)
148859	c.urlParams_.Set("prettyPrint", "false")
148860	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
148861	urls += "?" + c.urlParams_.Encode()
148862	req, err := http.NewRequest("GET", urls, body)
148863	if err != nil {
148864		return nil, err
148865	}
148866	req.Header = reqHeaders
148867	googleapi.Expand(req.URL, map[string]string{
148868		"project": c.project,
148869	})
148870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148871}
148872
148873// Do executes the "compute.sslPolicies.list" call.
148874// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
148875// status code is an error. Response headers are in either
148876// *SslPoliciesList.ServerResponse.Header or (if a response was returned
148877// at all) in error.(*googleapi.Error).Header. Use
148878// googleapi.IsNotModified to check whether the returned error was
148879// because http.StatusNotModified was returned.
148880func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
148881	gensupport.SetOptions(c.urlParams_, opts...)
148882	res, err := c.doRequest("json")
148883	if res != nil && res.StatusCode == http.StatusNotModified {
148884		if res.Body != nil {
148885			res.Body.Close()
148886		}
148887		return nil, &googleapi.Error{
148888			Code:   res.StatusCode,
148889			Header: res.Header,
148890		}
148891	}
148892	if err != nil {
148893		return nil, err
148894	}
148895	defer googleapi.CloseBody(res)
148896	if err := googleapi.CheckResponse(res); err != nil {
148897		return nil, err
148898	}
148899	ret := &SslPoliciesList{
148900		ServerResponse: googleapi.ServerResponse{
148901			Header:         res.Header,
148902			HTTPStatusCode: res.StatusCode,
148903		},
148904	}
148905	target := &ret
148906	if err := gensupport.DecodeResponse(target, res); err != nil {
148907		return nil, err
148908	}
148909	return ret, nil
148910	// {
148911	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
148912	//   "flatPath": "projects/{project}/global/sslPolicies",
148913	//   "httpMethod": "GET",
148914	//   "id": "compute.sslPolicies.list",
148915	//   "parameterOrder": [
148916	//     "project"
148917	//   ],
148918	//   "parameters": {
148919	//     "filter": {
148920	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148921	//       "location": "query",
148922	//       "type": "string"
148923	//     },
148924	//     "maxResults": {
148925	//       "default": "500",
148926	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148927	//       "format": "uint32",
148928	//       "location": "query",
148929	//       "minimum": "0",
148930	//       "type": "integer"
148931	//     },
148932	//     "orderBy": {
148933	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
148934	//       "location": "query",
148935	//       "type": "string"
148936	//     },
148937	//     "pageToken": {
148938	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148939	//       "location": "query",
148940	//       "type": "string"
148941	//     },
148942	//     "project": {
148943	//       "description": "Project ID for this request.",
148944	//       "location": "path",
148945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148946	//       "required": true,
148947	//       "type": "string"
148948	//     },
148949	//     "returnPartialSuccess": {
148950	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148951	//       "location": "query",
148952	//       "type": "boolean"
148953	//     }
148954	//   },
148955	//   "path": "projects/{project}/global/sslPolicies",
148956	//   "response": {
148957	//     "$ref": "SslPoliciesList"
148958	//   },
148959	//   "scopes": [
148960	//     "https://www.googleapis.com/auth/cloud-platform",
148961	//     "https://www.googleapis.com/auth/compute",
148962	//     "https://www.googleapis.com/auth/compute.readonly"
148963	//   ]
148964	// }
148965
148966}
148967
148968// Pages invokes f for each page of results.
148969// A non-nil error returned from f will halt the iteration.
148970// The provided context supersedes any context provided to the Context method.
148971func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
148972	c.ctx_ = ctx
148973	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148974	for {
148975		x, err := c.Do()
148976		if err != nil {
148977			return err
148978		}
148979		if err := f(x); err != nil {
148980			return err
148981		}
148982		if x.NextPageToken == "" {
148983			return nil
148984		}
148985		c.PageToken(x.NextPageToken)
148986	}
148987}
148988
148989// method id "compute.sslPolicies.listAvailableFeatures":
148990
148991type SslPoliciesListAvailableFeaturesCall struct {
148992	s            *Service
148993	project      string
148994	urlParams_   gensupport.URLParams
148995	ifNoneMatch_ string
148996	ctx_         context.Context
148997	header_      http.Header
148998}
148999
149000// ListAvailableFeatures: Lists all features that can be specified in
149001// the SSL policy when using custom profile.
149002//
149003// - project: Project ID for this request.
149004func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
149005	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149006	c.project = project
149007	return c
149008}
149009
149010// Filter sets the optional parameter "filter": A filter expression that
149011// filters resources listed in the response. The expression must specify
149012// the field name, a comparison operator, and the value that you want to
149013// use for filtering. The value must be a string, a number, or a
149014// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149015// `<`. For example, if you are filtering Compute Engine instances, you
149016// can exclude instances named `example-instance` by specifying `name !=
149017// example-instance`. You can also filter nested fields. For example,
149018// you could specify `scheduling.automaticRestart = false` to include
149019// instances only if they are not scheduled for automatic restarts. You
149020// can use filtering on nested fields to filter based on resource
149021// labels. To filter on multiple expressions, provide each separate
149022// expression within parentheses. For example: ```
149023// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
149024// ``` By default, each expression is an `AND` expression. However, you
149025// can include `AND` and `OR` expressions explicitly. For example: ```
149026// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
149027// AND (scheduling.automaticRestart = true) ```
149028func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
149029	c.urlParams_.Set("filter", filter)
149030	return c
149031}
149032
149033// MaxResults sets the optional parameter "maxResults": The maximum
149034// number of results per page that should be returned. If the number of
149035// available results is larger than `maxResults`, Compute Engine returns
149036// a `nextPageToken` that can be used to get the next page of results in
149037// subsequent list requests. Acceptable values are `0` to `500`,
149038// inclusive. (Default: `500`)
149039func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
149040	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149041	return c
149042}
149043
149044// OrderBy sets the optional parameter "orderBy": Sorts list results by
149045// a certain order. By default, results are returned in alphanumerical
149046// order based on the resource name. You can also sort results in
149047// descending order based on the creation timestamp using
149048// `orderBy="creationTimestamp desc". This sorts results based on the
149049// `creationTimestamp` field in reverse chronological order (newest
149050// result first). Use this to sort resources like operations so that the
149051// newest operation is returned first. Currently, only sorting by `name`
149052// or `creationTimestamp desc` is supported.
149053func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
149054	c.urlParams_.Set("orderBy", orderBy)
149055	return c
149056}
149057
149058// PageToken sets the optional parameter "pageToken": Specifies a page
149059// token to use. Set `pageToken` to the `nextPageToken` returned by a
149060// previous list request to get the next page of results.
149061func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
149062	c.urlParams_.Set("pageToken", pageToken)
149063	return c
149064}
149065
149066// ReturnPartialSuccess sets the optional parameter
149067// "returnPartialSuccess": Opt-in for partial success behavior which
149068// provides partial results in case of failure. The default value is
149069// false.
149070func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
149071	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149072	return c
149073}
149074
149075// Fields allows partial responses to be retrieved. See
149076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149077// for more information.
149078func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
149079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149080	return c
149081}
149082
149083// IfNoneMatch sets the optional parameter which makes the operation
149084// fail if the object's ETag matches the given value. This is useful for
149085// getting updates only after the object has changed since the last
149086// request. Use googleapi.IsNotModified to check whether the response
149087// error from Do is the result of In-None-Match.
149088func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
149089	c.ifNoneMatch_ = entityTag
149090	return c
149091}
149092
149093// Context sets the context to be used in this call's Do method. Any
149094// pending HTTP request will be aborted if the provided context is
149095// canceled.
149096func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
149097	c.ctx_ = ctx
149098	return c
149099}
149100
149101// Header returns an http.Header that can be modified by the caller to
149102// add HTTP headers to the request.
149103func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
149104	if c.header_ == nil {
149105		c.header_ = make(http.Header)
149106	}
149107	return c.header_
149108}
149109
149110func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
149111	reqHeaders := make(http.Header)
149112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
149113	for k, v := range c.header_ {
149114		reqHeaders[k] = v
149115	}
149116	reqHeaders.Set("User-Agent", c.s.userAgent())
149117	if c.ifNoneMatch_ != "" {
149118		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149119	}
149120	var body io.Reader = nil
149121	c.urlParams_.Set("alt", alt)
149122	c.urlParams_.Set("prettyPrint", "false")
149123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures")
149124	urls += "?" + c.urlParams_.Encode()
149125	req, err := http.NewRequest("GET", urls, body)
149126	if err != nil {
149127		return nil, err
149128	}
149129	req.Header = reqHeaders
149130	googleapi.Expand(req.URL, map[string]string{
149131		"project": c.project,
149132	})
149133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149134}
149135
149136// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
149137// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
149138// will be non-nil. Any non-2xx status code is an error. Response
149139// headers are in either
149140// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
149141// (if a response was returned at all) in
149142// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
149143// whether the returned error was because http.StatusNotModified was
149144// returned.
149145func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
149146	gensupport.SetOptions(c.urlParams_, opts...)
149147	res, err := c.doRequest("json")
149148	if res != nil && res.StatusCode == http.StatusNotModified {
149149		if res.Body != nil {
149150			res.Body.Close()
149151		}
149152		return nil, &googleapi.Error{
149153			Code:   res.StatusCode,
149154			Header: res.Header,
149155		}
149156	}
149157	if err != nil {
149158		return nil, err
149159	}
149160	defer googleapi.CloseBody(res)
149161	if err := googleapi.CheckResponse(res); err != nil {
149162		return nil, err
149163	}
149164	ret := &SslPoliciesListAvailableFeaturesResponse{
149165		ServerResponse: googleapi.ServerResponse{
149166			Header:         res.Header,
149167			HTTPStatusCode: res.StatusCode,
149168		},
149169	}
149170	target := &ret
149171	if err := gensupport.DecodeResponse(target, res); err != nil {
149172		return nil, err
149173	}
149174	return ret, nil
149175	// {
149176	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
149177	//   "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures",
149178	//   "httpMethod": "GET",
149179	//   "id": "compute.sslPolicies.listAvailableFeatures",
149180	//   "parameterOrder": [
149181	//     "project"
149182	//   ],
149183	//   "parameters": {
149184	//     "filter": {
149185	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149186	//       "location": "query",
149187	//       "type": "string"
149188	//     },
149189	//     "maxResults": {
149190	//       "default": "500",
149191	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149192	//       "format": "uint32",
149193	//       "location": "query",
149194	//       "minimum": "0",
149195	//       "type": "integer"
149196	//     },
149197	//     "orderBy": {
149198	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
149199	//       "location": "query",
149200	//       "type": "string"
149201	//     },
149202	//     "pageToken": {
149203	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149204	//       "location": "query",
149205	//       "type": "string"
149206	//     },
149207	//     "project": {
149208	//       "description": "Project ID for this request.",
149209	//       "location": "path",
149210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149211	//       "required": true,
149212	//       "type": "string"
149213	//     },
149214	//     "returnPartialSuccess": {
149215	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149216	//       "location": "query",
149217	//       "type": "boolean"
149218	//     }
149219	//   },
149220	//   "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
149221	//   "response": {
149222	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
149223	//   },
149224	//   "scopes": [
149225	//     "https://www.googleapis.com/auth/cloud-platform",
149226	//     "https://www.googleapis.com/auth/compute",
149227	//     "https://www.googleapis.com/auth/compute.readonly"
149228	//   ]
149229	// }
149230
149231}
149232
149233// method id "compute.sslPolicies.patch":
149234
149235type SslPoliciesPatchCall struct {
149236	s          *Service
149237	project    string
149238	sslPolicy  string
149239	sslpolicy  *SslPolicy
149240	urlParams_ gensupport.URLParams
149241	ctx_       context.Context
149242	header_    http.Header
149243}
149244
149245// Patch: Patches the specified SSL policy with the data included in the
149246// request.
149247//
149248// - project: Project ID for this request.
149249// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
149250//   characters long, and comply with RFC1035.
149251func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
149252	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149253	c.project = project
149254	c.sslPolicy = sslPolicy
149255	c.sslpolicy = sslpolicy
149256	return c
149257}
149258
149259// RequestId sets the optional parameter "requestId": An optional
149260// request ID to identify requests. Specify a unique request ID so that
149261// if you must retry your request, the server will know to ignore the
149262// request if it has already been completed. For example, consider a
149263// situation where you make an initial request and the request times
149264// out. If you make the request again with the same request ID, the
149265// server can check if original operation with the same request ID was
149266// received, and if so, will ignore the second request. This prevents
149267// clients from accidentally creating duplicate commitments. The request
149268// ID must be a valid UUID with the exception that zero UUID is not
149269// supported ( 00000000-0000-0000-0000-000000000000).
149270func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
149271	c.urlParams_.Set("requestId", requestId)
149272	return c
149273}
149274
149275// Fields allows partial responses to be retrieved. See
149276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149277// for more information.
149278func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
149279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149280	return c
149281}
149282
149283// Context sets the context to be used in this call's Do method. Any
149284// pending HTTP request will be aborted if the provided context is
149285// canceled.
149286func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
149287	c.ctx_ = ctx
149288	return c
149289}
149290
149291// Header returns an http.Header that can be modified by the caller to
149292// add HTTP headers to the request.
149293func (c *SslPoliciesPatchCall) Header() http.Header {
149294	if c.header_ == nil {
149295		c.header_ = make(http.Header)
149296	}
149297	return c.header_
149298}
149299
149300func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
149301	reqHeaders := make(http.Header)
149302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
149303	for k, v := range c.header_ {
149304		reqHeaders[k] = v
149305	}
149306	reqHeaders.Set("User-Agent", c.s.userAgent())
149307	var body io.Reader = nil
149308	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
149309	if err != nil {
149310		return nil, err
149311	}
149312	reqHeaders.Set("Content-Type", "application/json")
149313	c.urlParams_.Set("alt", alt)
149314	c.urlParams_.Set("prettyPrint", "false")
149315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
149316	urls += "?" + c.urlParams_.Encode()
149317	req, err := http.NewRequest("PATCH", urls, body)
149318	if err != nil {
149319		return nil, err
149320	}
149321	req.Header = reqHeaders
149322	googleapi.Expand(req.URL, map[string]string{
149323		"project":   c.project,
149324		"sslPolicy": c.sslPolicy,
149325	})
149326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149327}
149328
149329// Do executes the "compute.sslPolicies.patch" call.
149330// Exactly one of *Operation or error will be non-nil. Any non-2xx
149331// status code is an error. Response headers are in either
149332// *Operation.ServerResponse.Header or (if a response was returned at
149333// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149334// to check whether the returned error was because
149335// http.StatusNotModified was returned.
149336func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149337	gensupport.SetOptions(c.urlParams_, opts...)
149338	res, err := c.doRequest("json")
149339	if res != nil && res.StatusCode == http.StatusNotModified {
149340		if res.Body != nil {
149341			res.Body.Close()
149342		}
149343		return nil, &googleapi.Error{
149344			Code:   res.StatusCode,
149345			Header: res.Header,
149346		}
149347	}
149348	if err != nil {
149349		return nil, err
149350	}
149351	defer googleapi.CloseBody(res)
149352	if err := googleapi.CheckResponse(res); err != nil {
149353		return nil, err
149354	}
149355	ret := &Operation{
149356		ServerResponse: googleapi.ServerResponse{
149357			Header:         res.Header,
149358			HTTPStatusCode: res.StatusCode,
149359		},
149360	}
149361	target := &ret
149362	if err := gensupport.DecodeResponse(target, res); err != nil {
149363		return nil, err
149364	}
149365	return ret, nil
149366	// {
149367	//   "description": "Patches the specified SSL policy with the data included in the request.",
149368	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
149369	//   "httpMethod": "PATCH",
149370	//   "id": "compute.sslPolicies.patch",
149371	//   "parameterOrder": [
149372	//     "project",
149373	//     "sslPolicy"
149374	//   ],
149375	//   "parameters": {
149376	//     "project": {
149377	//       "description": "Project ID for this request.",
149378	//       "location": "path",
149379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149380	//       "required": true,
149381	//       "type": "string"
149382	//     },
149383	//     "requestId": {
149384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
149385	//       "location": "query",
149386	//       "type": "string"
149387	//     },
149388	//     "sslPolicy": {
149389	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
149390	//       "location": "path",
149391	//       "required": true,
149392	//       "type": "string"
149393	//     }
149394	//   },
149395	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
149396	//   "request": {
149397	//     "$ref": "SslPolicy"
149398	//   },
149399	//   "response": {
149400	//     "$ref": "Operation"
149401	//   },
149402	//   "scopes": [
149403	//     "https://www.googleapis.com/auth/cloud-platform",
149404	//     "https://www.googleapis.com/auth/compute"
149405	//   ]
149406	// }
149407
149408}
149409
149410// method id "compute.subnetworks.aggregatedList":
149411
149412type SubnetworksAggregatedListCall struct {
149413	s            *Service
149414	project      string
149415	urlParams_   gensupport.URLParams
149416	ifNoneMatch_ string
149417	ctx_         context.Context
149418	header_      http.Header
149419}
149420
149421// AggregatedList: Retrieves an aggregated list of subnetworks.
149422//
149423// - project: Project ID for this request.
149424func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
149425	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149426	c.project = project
149427	return c
149428}
149429
149430// Filter sets the optional parameter "filter": A filter expression that
149431// filters resources listed in the response. The expression must specify
149432// the field name, a comparison operator, and the value that you want to
149433// use for filtering. The value must be a string, a number, or a
149434// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149435// `<`. For example, if you are filtering Compute Engine instances, you
149436// can exclude instances named `example-instance` by specifying `name !=
149437// example-instance`. You can also filter nested fields. For example,
149438// you could specify `scheduling.automaticRestart = false` to include
149439// instances only if they are not scheduled for automatic restarts. You
149440// can use filtering on nested fields to filter based on resource
149441// labels. To filter on multiple expressions, provide each separate
149442// expression within parentheses. For example: ```
149443// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
149444// ``` By default, each expression is an `AND` expression. However, you
149445// can include `AND` and `OR` expressions explicitly. For example: ```
149446// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
149447// AND (scheduling.automaticRestart = true) ```
149448func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
149449	c.urlParams_.Set("filter", filter)
149450	return c
149451}
149452
149453// IncludeAllScopes sets the optional parameter "includeAllScopes":
149454// Indicates whether every visible scope for each scope type (zone,
149455// region, global) should be included in the response. For new resource
149456// types added after this field, the flag has no effect as new resource
149457// types will always include every visible scope for each scope type in
149458// response. For resource types which predate this field, if this flag
149459// is omitted or false, only scopes of the scope types where the
149460// resource type is expected to be found will be included.
149461func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
149462	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149463	return c
149464}
149465
149466// MaxResults sets the optional parameter "maxResults": The maximum
149467// number of results per page that should be returned. If the number of
149468// available results is larger than `maxResults`, Compute Engine returns
149469// a `nextPageToken` that can be used to get the next page of results in
149470// subsequent list requests. Acceptable values are `0` to `500`,
149471// inclusive. (Default: `500`)
149472func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
149473	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149474	return c
149475}
149476
149477// OrderBy sets the optional parameter "orderBy": Sorts list results by
149478// a certain order. By default, results are returned in alphanumerical
149479// order based on the resource name. You can also sort results in
149480// descending order based on the creation timestamp using
149481// `orderBy="creationTimestamp desc". This sorts results based on the
149482// `creationTimestamp` field in reverse chronological order (newest
149483// result first). Use this to sort resources like operations so that the
149484// newest operation is returned first. Currently, only sorting by `name`
149485// or `creationTimestamp desc` is supported.
149486func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
149487	c.urlParams_.Set("orderBy", orderBy)
149488	return c
149489}
149490
149491// PageToken sets the optional parameter "pageToken": Specifies a page
149492// token to use. Set `pageToken` to the `nextPageToken` returned by a
149493// previous list request to get the next page of results.
149494func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
149495	c.urlParams_.Set("pageToken", pageToken)
149496	return c
149497}
149498
149499// ReturnPartialSuccess sets the optional parameter
149500// "returnPartialSuccess": Opt-in for partial success behavior which
149501// provides partial results in case of failure. The default value is
149502// false.
149503func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
149504	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149505	return c
149506}
149507
149508// Fields allows partial responses to be retrieved. See
149509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149510// for more information.
149511func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
149512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149513	return c
149514}
149515
149516// IfNoneMatch sets the optional parameter which makes the operation
149517// fail if the object's ETag matches the given value. This is useful for
149518// getting updates only after the object has changed since the last
149519// request. Use googleapi.IsNotModified to check whether the response
149520// error from Do is the result of In-None-Match.
149521func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
149522	c.ifNoneMatch_ = entityTag
149523	return c
149524}
149525
149526// Context sets the context to be used in this call's Do method. Any
149527// pending HTTP request will be aborted if the provided context is
149528// canceled.
149529func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
149530	c.ctx_ = ctx
149531	return c
149532}
149533
149534// Header returns an http.Header that can be modified by the caller to
149535// add HTTP headers to the request.
149536func (c *SubnetworksAggregatedListCall) Header() http.Header {
149537	if c.header_ == nil {
149538		c.header_ = make(http.Header)
149539	}
149540	return c.header_
149541}
149542
149543func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149544	reqHeaders := make(http.Header)
149545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
149546	for k, v := range c.header_ {
149547		reqHeaders[k] = v
149548	}
149549	reqHeaders.Set("User-Agent", c.s.userAgent())
149550	if c.ifNoneMatch_ != "" {
149551		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149552	}
149553	var body io.Reader = nil
149554	c.urlParams_.Set("alt", alt)
149555	c.urlParams_.Set("prettyPrint", "false")
149556	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks")
149557	urls += "?" + c.urlParams_.Encode()
149558	req, err := http.NewRequest("GET", urls, body)
149559	if err != nil {
149560		return nil, err
149561	}
149562	req.Header = reqHeaders
149563	googleapi.Expand(req.URL, map[string]string{
149564		"project": c.project,
149565	})
149566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149567}
149568
149569// Do executes the "compute.subnetworks.aggregatedList" call.
149570// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
149571// Any non-2xx status code is an error. Response headers are in either
149572// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
149573// returned at all) in error.(*googleapi.Error).Header. Use
149574// googleapi.IsNotModified to check whether the returned error was
149575// because http.StatusNotModified was returned.
149576func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
149577	gensupport.SetOptions(c.urlParams_, opts...)
149578	res, err := c.doRequest("json")
149579	if res != nil && res.StatusCode == http.StatusNotModified {
149580		if res.Body != nil {
149581			res.Body.Close()
149582		}
149583		return nil, &googleapi.Error{
149584			Code:   res.StatusCode,
149585			Header: res.Header,
149586		}
149587	}
149588	if err != nil {
149589		return nil, err
149590	}
149591	defer googleapi.CloseBody(res)
149592	if err := googleapi.CheckResponse(res); err != nil {
149593		return nil, err
149594	}
149595	ret := &SubnetworkAggregatedList{
149596		ServerResponse: googleapi.ServerResponse{
149597			Header:         res.Header,
149598			HTTPStatusCode: res.StatusCode,
149599		},
149600	}
149601	target := &ret
149602	if err := gensupport.DecodeResponse(target, res); err != nil {
149603		return nil, err
149604	}
149605	return ret, nil
149606	// {
149607	//   "description": "Retrieves an aggregated list of subnetworks.",
149608	//   "flatPath": "projects/{project}/aggregated/subnetworks",
149609	//   "httpMethod": "GET",
149610	//   "id": "compute.subnetworks.aggregatedList",
149611	//   "parameterOrder": [
149612	//     "project"
149613	//   ],
149614	//   "parameters": {
149615	//     "filter": {
149616	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149617	//       "location": "query",
149618	//       "type": "string"
149619	//     },
149620	//     "includeAllScopes": {
149621	//       "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.",
149622	//       "location": "query",
149623	//       "type": "boolean"
149624	//     },
149625	//     "maxResults": {
149626	//       "default": "500",
149627	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149628	//       "format": "uint32",
149629	//       "location": "query",
149630	//       "minimum": "0",
149631	//       "type": "integer"
149632	//     },
149633	//     "orderBy": {
149634	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
149635	//       "location": "query",
149636	//       "type": "string"
149637	//     },
149638	//     "pageToken": {
149639	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149640	//       "location": "query",
149641	//       "type": "string"
149642	//     },
149643	//     "project": {
149644	//       "description": "Project ID for this request.",
149645	//       "location": "path",
149646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149647	//       "required": true,
149648	//       "type": "string"
149649	//     },
149650	//     "returnPartialSuccess": {
149651	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149652	//       "location": "query",
149653	//       "type": "boolean"
149654	//     }
149655	//   },
149656	//   "path": "projects/{project}/aggregated/subnetworks",
149657	//   "response": {
149658	//     "$ref": "SubnetworkAggregatedList"
149659	//   },
149660	//   "scopes": [
149661	//     "https://www.googleapis.com/auth/cloud-platform",
149662	//     "https://www.googleapis.com/auth/compute",
149663	//     "https://www.googleapis.com/auth/compute.readonly"
149664	//   ]
149665	// }
149666
149667}
149668
149669// Pages invokes f for each page of results.
149670// A non-nil error returned from f will halt the iteration.
149671// The provided context supersedes any context provided to the Context method.
149672func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
149673	c.ctx_ = ctx
149674	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149675	for {
149676		x, err := c.Do()
149677		if err != nil {
149678			return err
149679		}
149680		if err := f(x); err != nil {
149681			return err
149682		}
149683		if x.NextPageToken == "" {
149684			return nil
149685		}
149686		c.PageToken(x.NextPageToken)
149687	}
149688}
149689
149690// method id "compute.subnetworks.delete":
149691
149692type SubnetworksDeleteCall struct {
149693	s          *Service
149694	project    string
149695	region     string
149696	subnetwork string
149697	urlParams_ gensupport.URLParams
149698	ctx_       context.Context
149699	header_    http.Header
149700}
149701
149702// Delete: Deletes the specified subnetwork.
149703//
149704// - project: Project ID for this request.
149705// - region: Name of the region scoping this request.
149706// - subnetwork: Name of the Subnetwork resource to delete.
149707func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
149708	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149709	c.project = project
149710	c.region = region
149711	c.subnetwork = subnetwork
149712	return c
149713}
149714
149715// RequestId sets the optional parameter "requestId": An optional
149716// request ID to identify requests. Specify a unique request ID so that
149717// if you must retry your request, the server will know to ignore the
149718// request if it has already been completed. For example, consider a
149719// situation where you make an initial request and the request times
149720// out. If you make the request again with the same request ID, the
149721// server can check if original operation with the same request ID was
149722// received, and if so, will ignore the second request. This prevents
149723// clients from accidentally creating duplicate commitments. The request
149724// ID must be a valid UUID with the exception that zero UUID is not
149725// supported ( 00000000-0000-0000-0000-000000000000).
149726func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
149727	c.urlParams_.Set("requestId", requestId)
149728	return c
149729}
149730
149731// Fields allows partial responses to be retrieved. See
149732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149733// for more information.
149734func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
149735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149736	return c
149737}
149738
149739// Context sets the context to be used in this call's Do method. Any
149740// pending HTTP request will be aborted if the provided context is
149741// canceled.
149742func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
149743	c.ctx_ = ctx
149744	return c
149745}
149746
149747// Header returns an http.Header that can be modified by the caller to
149748// add HTTP headers to the request.
149749func (c *SubnetworksDeleteCall) Header() http.Header {
149750	if c.header_ == nil {
149751		c.header_ = make(http.Header)
149752	}
149753	return c.header_
149754}
149755
149756func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
149757	reqHeaders := make(http.Header)
149758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
149759	for k, v := range c.header_ {
149760		reqHeaders[k] = v
149761	}
149762	reqHeaders.Set("User-Agent", c.s.userAgent())
149763	var body io.Reader = nil
149764	c.urlParams_.Set("alt", alt)
149765	c.urlParams_.Set("prettyPrint", "false")
149766	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
149767	urls += "?" + c.urlParams_.Encode()
149768	req, err := http.NewRequest("DELETE", urls, body)
149769	if err != nil {
149770		return nil, err
149771	}
149772	req.Header = reqHeaders
149773	googleapi.Expand(req.URL, map[string]string{
149774		"project":    c.project,
149775		"region":     c.region,
149776		"subnetwork": c.subnetwork,
149777	})
149778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149779}
149780
149781// Do executes the "compute.subnetworks.delete" call.
149782// Exactly one of *Operation or error will be non-nil. Any non-2xx
149783// status code is an error. Response headers are in either
149784// *Operation.ServerResponse.Header or (if a response was returned at
149785// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149786// to check whether the returned error was because
149787// http.StatusNotModified was returned.
149788func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149789	gensupport.SetOptions(c.urlParams_, opts...)
149790	res, err := c.doRequest("json")
149791	if res != nil && res.StatusCode == http.StatusNotModified {
149792		if res.Body != nil {
149793			res.Body.Close()
149794		}
149795		return nil, &googleapi.Error{
149796			Code:   res.StatusCode,
149797			Header: res.Header,
149798		}
149799	}
149800	if err != nil {
149801		return nil, err
149802	}
149803	defer googleapi.CloseBody(res)
149804	if err := googleapi.CheckResponse(res); err != nil {
149805		return nil, err
149806	}
149807	ret := &Operation{
149808		ServerResponse: googleapi.ServerResponse{
149809			Header:         res.Header,
149810			HTTPStatusCode: res.StatusCode,
149811		},
149812	}
149813	target := &ret
149814	if err := gensupport.DecodeResponse(target, res); err != nil {
149815		return nil, err
149816	}
149817	return ret, nil
149818	// {
149819	//   "description": "Deletes the specified subnetwork.",
149820	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
149821	//   "httpMethod": "DELETE",
149822	//   "id": "compute.subnetworks.delete",
149823	//   "parameterOrder": [
149824	//     "project",
149825	//     "region",
149826	//     "subnetwork"
149827	//   ],
149828	//   "parameters": {
149829	//     "project": {
149830	//       "description": "Project ID for this request.",
149831	//       "location": "path",
149832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149833	//       "required": true,
149834	//       "type": "string"
149835	//     },
149836	//     "region": {
149837	//       "description": "Name of the region scoping this request.",
149838	//       "location": "path",
149839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149840	//       "required": true,
149841	//       "type": "string"
149842	//     },
149843	//     "requestId": {
149844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
149845	//       "location": "query",
149846	//       "type": "string"
149847	//     },
149848	//     "subnetwork": {
149849	//       "description": "Name of the Subnetwork resource to delete.",
149850	//       "location": "path",
149851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149852	//       "required": true,
149853	//       "type": "string"
149854	//     }
149855	//   },
149856	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
149857	//   "response": {
149858	//     "$ref": "Operation"
149859	//   },
149860	//   "scopes": [
149861	//     "https://www.googleapis.com/auth/cloud-platform",
149862	//     "https://www.googleapis.com/auth/compute"
149863	//   ]
149864	// }
149865
149866}
149867
149868// method id "compute.subnetworks.expandIpCidrRange":
149869
149870type SubnetworksExpandIpCidrRangeCall struct {
149871	s                                   *Service
149872	project                             string
149873	region                              string
149874	subnetwork                          string
149875	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
149876	urlParams_                          gensupport.URLParams
149877	ctx_                                context.Context
149878	header_                             http.Header
149879}
149880
149881// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
149882// specified value.
149883//
149884// - project: Project ID for this request.
149885// - region: Name of the region scoping this request.
149886// - subnetwork: Name of the Subnetwork resource to update.
149887func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
149888	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149889	c.project = project
149890	c.region = region
149891	c.subnetwork = subnetwork
149892	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
149893	return c
149894}
149895
149896// RequestId sets the optional parameter "requestId": An optional
149897// request ID to identify requests. Specify a unique request ID so that
149898// if you must retry your request, the server will know to ignore the
149899// request if it has already been completed. For example, consider a
149900// situation where you make an initial request and the request times
149901// out. If you make the request again with the same request ID, the
149902// server can check if original operation with the same request ID was
149903// received, and if so, will ignore the second request. This prevents
149904// clients from accidentally creating duplicate commitments. The request
149905// ID must be a valid UUID with the exception that zero UUID is not
149906// supported ( 00000000-0000-0000-0000-000000000000).
149907func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
149908	c.urlParams_.Set("requestId", requestId)
149909	return c
149910}
149911
149912// Fields allows partial responses to be retrieved. See
149913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149914// for more information.
149915func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
149916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149917	return c
149918}
149919
149920// Context sets the context to be used in this call's Do method. Any
149921// pending HTTP request will be aborted if the provided context is
149922// canceled.
149923func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
149924	c.ctx_ = ctx
149925	return c
149926}
149927
149928// Header returns an http.Header that can be modified by the caller to
149929// add HTTP headers to the request.
149930func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
149931	if c.header_ == nil {
149932		c.header_ = make(http.Header)
149933	}
149934	return c.header_
149935}
149936
149937func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
149938	reqHeaders := make(http.Header)
149939	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
149940	for k, v := range c.header_ {
149941		reqHeaders[k] = v
149942	}
149943	reqHeaders.Set("User-Agent", c.s.userAgent())
149944	var body io.Reader = nil
149945	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
149946	if err != nil {
149947		return nil, err
149948	}
149949	reqHeaders.Set("Content-Type", "application/json")
149950	c.urlParams_.Set("alt", alt)
149951	c.urlParams_.Set("prettyPrint", "false")
149952	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
149953	urls += "?" + c.urlParams_.Encode()
149954	req, err := http.NewRequest("POST", urls, body)
149955	if err != nil {
149956		return nil, err
149957	}
149958	req.Header = reqHeaders
149959	googleapi.Expand(req.URL, map[string]string{
149960		"project":    c.project,
149961		"region":     c.region,
149962		"subnetwork": c.subnetwork,
149963	})
149964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149965}
149966
149967// Do executes the "compute.subnetworks.expandIpCidrRange" call.
149968// Exactly one of *Operation or error will be non-nil. Any non-2xx
149969// status code is an error. Response headers are in either
149970// *Operation.ServerResponse.Header or (if a response was returned at
149971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149972// to check whether the returned error was because
149973// http.StatusNotModified was returned.
149974func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149975	gensupport.SetOptions(c.urlParams_, opts...)
149976	res, err := c.doRequest("json")
149977	if res != nil && res.StatusCode == http.StatusNotModified {
149978		if res.Body != nil {
149979			res.Body.Close()
149980		}
149981		return nil, &googleapi.Error{
149982			Code:   res.StatusCode,
149983			Header: res.Header,
149984		}
149985	}
149986	if err != nil {
149987		return nil, err
149988	}
149989	defer googleapi.CloseBody(res)
149990	if err := googleapi.CheckResponse(res); err != nil {
149991		return nil, err
149992	}
149993	ret := &Operation{
149994		ServerResponse: googleapi.ServerResponse{
149995			Header:         res.Header,
149996			HTTPStatusCode: res.StatusCode,
149997		},
149998	}
149999	target := &ret
150000	if err := gensupport.DecodeResponse(target, res); err != nil {
150001		return nil, err
150002	}
150003	return ret, nil
150004	// {
150005	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
150006	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
150007	//   "httpMethod": "POST",
150008	//   "id": "compute.subnetworks.expandIpCidrRange",
150009	//   "parameterOrder": [
150010	//     "project",
150011	//     "region",
150012	//     "subnetwork"
150013	//   ],
150014	//   "parameters": {
150015	//     "project": {
150016	//       "description": "Project ID for this request.",
150017	//       "location": "path",
150018	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150019	//       "required": true,
150020	//       "type": "string"
150021	//     },
150022	//     "region": {
150023	//       "description": "Name of the region scoping this request.",
150024	//       "location": "path",
150025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150026	//       "required": true,
150027	//       "type": "string"
150028	//     },
150029	//     "requestId": {
150030	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
150031	//       "location": "query",
150032	//       "type": "string"
150033	//     },
150034	//     "subnetwork": {
150035	//       "description": "Name of the Subnetwork resource to update.",
150036	//       "location": "path",
150037	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150038	//       "required": true,
150039	//       "type": "string"
150040	//     }
150041	//   },
150042	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
150043	//   "request": {
150044	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
150045	//   },
150046	//   "response": {
150047	//     "$ref": "Operation"
150048	//   },
150049	//   "scopes": [
150050	//     "https://www.googleapis.com/auth/cloud-platform",
150051	//     "https://www.googleapis.com/auth/compute"
150052	//   ]
150053	// }
150054
150055}
150056
150057// method id "compute.subnetworks.get":
150058
150059type SubnetworksGetCall struct {
150060	s            *Service
150061	project      string
150062	region       string
150063	subnetwork   string
150064	urlParams_   gensupport.URLParams
150065	ifNoneMatch_ string
150066	ctx_         context.Context
150067	header_      http.Header
150068}
150069
150070// Get: Returns the specified subnetwork. Gets a list of available
150071// subnetworks list() request.
150072//
150073// - project: Project ID for this request.
150074// - region: Name of the region scoping this request.
150075// - subnetwork: Name of the Subnetwork resource to return.
150076func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
150077	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150078	c.project = project
150079	c.region = region
150080	c.subnetwork = subnetwork
150081	return c
150082}
150083
150084// Fields allows partial responses to be retrieved. See
150085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150086// for more information.
150087func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
150088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150089	return c
150090}
150091
150092// IfNoneMatch sets the optional parameter which makes the operation
150093// fail if the object's ETag matches the given value. This is useful for
150094// getting updates only after the object has changed since the last
150095// request. Use googleapi.IsNotModified to check whether the response
150096// error from Do is the result of In-None-Match.
150097func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
150098	c.ifNoneMatch_ = entityTag
150099	return c
150100}
150101
150102// Context sets the context to be used in this call's Do method. Any
150103// pending HTTP request will be aborted if the provided context is
150104// canceled.
150105func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
150106	c.ctx_ = ctx
150107	return c
150108}
150109
150110// Header returns an http.Header that can be modified by the caller to
150111// add HTTP headers to the request.
150112func (c *SubnetworksGetCall) Header() http.Header {
150113	if c.header_ == nil {
150114		c.header_ = make(http.Header)
150115	}
150116	return c.header_
150117}
150118
150119func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
150120	reqHeaders := make(http.Header)
150121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
150122	for k, v := range c.header_ {
150123		reqHeaders[k] = v
150124	}
150125	reqHeaders.Set("User-Agent", c.s.userAgent())
150126	if c.ifNoneMatch_ != "" {
150127		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150128	}
150129	var body io.Reader = nil
150130	c.urlParams_.Set("alt", alt)
150131	c.urlParams_.Set("prettyPrint", "false")
150132	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
150133	urls += "?" + c.urlParams_.Encode()
150134	req, err := http.NewRequest("GET", urls, body)
150135	if err != nil {
150136		return nil, err
150137	}
150138	req.Header = reqHeaders
150139	googleapi.Expand(req.URL, map[string]string{
150140		"project":    c.project,
150141		"region":     c.region,
150142		"subnetwork": c.subnetwork,
150143	})
150144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150145}
150146
150147// Do executes the "compute.subnetworks.get" call.
150148// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
150149// status code is an error. Response headers are in either
150150// *Subnetwork.ServerResponse.Header or (if a response was returned at
150151// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150152// to check whether the returned error was because
150153// http.StatusNotModified was returned.
150154func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
150155	gensupport.SetOptions(c.urlParams_, opts...)
150156	res, err := c.doRequest("json")
150157	if res != nil && res.StatusCode == http.StatusNotModified {
150158		if res.Body != nil {
150159			res.Body.Close()
150160		}
150161		return nil, &googleapi.Error{
150162			Code:   res.StatusCode,
150163			Header: res.Header,
150164		}
150165	}
150166	if err != nil {
150167		return nil, err
150168	}
150169	defer googleapi.CloseBody(res)
150170	if err := googleapi.CheckResponse(res); err != nil {
150171		return nil, err
150172	}
150173	ret := &Subnetwork{
150174		ServerResponse: googleapi.ServerResponse{
150175			Header:         res.Header,
150176			HTTPStatusCode: res.StatusCode,
150177		},
150178	}
150179	target := &ret
150180	if err := gensupport.DecodeResponse(target, res); err != nil {
150181		return nil, err
150182	}
150183	return ret, nil
150184	// {
150185	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
150186	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150187	//   "httpMethod": "GET",
150188	//   "id": "compute.subnetworks.get",
150189	//   "parameterOrder": [
150190	//     "project",
150191	//     "region",
150192	//     "subnetwork"
150193	//   ],
150194	//   "parameters": {
150195	//     "project": {
150196	//       "description": "Project ID for this request.",
150197	//       "location": "path",
150198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150199	//       "required": true,
150200	//       "type": "string"
150201	//     },
150202	//     "region": {
150203	//       "description": "Name of the region scoping this request.",
150204	//       "location": "path",
150205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150206	//       "required": true,
150207	//       "type": "string"
150208	//     },
150209	//     "subnetwork": {
150210	//       "description": "Name of the Subnetwork resource to return.",
150211	//       "location": "path",
150212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150213	//       "required": true,
150214	//       "type": "string"
150215	//     }
150216	//   },
150217	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150218	//   "response": {
150219	//     "$ref": "Subnetwork"
150220	//   },
150221	//   "scopes": [
150222	//     "https://www.googleapis.com/auth/cloud-platform",
150223	//     "https://www.googleapis.com/auth/compute",
150224	//     "https://www.googleapis.com/auth/compute.readonly"
150225	//   ]
150226	// }
150227
150228}
150229
150230// method id "compute.subnetworks.getIamPolicy":
150231
150232type SubnetworksGetIamPolicyCall struct {
150233	s            *Service
150234	project      string
150235	region       string
150236	resource     string
150237	urlParams_   gensupport.URLParams
150238	ifNoneMatch_ string
150239	ctx_         context.Context
150240	header_      http.Header
150241}
150242
150243// GetIamPolicy: Gets the access control policy for a resource. May be
150244// empty if no such policy or resource exists.
150245//
150246// - project: Project ID for this request.
150247// - region: The name of the region for this request.
150248// - resource: Name or id of the resource for this request.
150249func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
150250	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150251	c.project = project
150252	c.region = region
150253	c.resource = resource
150254	return c
150255}
150256
150257// OptionsRequestedPolicyVersion sets the optional parameter
150258// "optionsRequestedPolicyVersion": Requested IAM Policy version.
150259func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
150260	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
150261	return c
150262}
150263
150264// Fields allows partial responses to be retrieved. See
150265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150266// for more information.
150267func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
150268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150269	return c
150270}
150271
150272// IfNoneMatch sets the optional parameter which makes the operation
150273// fail if the object's ETag matches the given value. This is useful for
150274// getting updates only after the object has changed since the last
150275// request. Use googleapi.IsNotModified to check whether the response
150276// error from Do is the result of In-None-Match.
150277func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
150278	c.ifNoneMatch_ = entityTag
150279	return c
150280}
150281
150282// Context sets the context to be used in this call's Do method. Any
150283// pending HTTP request will be aborted if the provided context is
150284// canceled.
150285func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
150286	c.ctx_ = ctx
150287	return c
150288}
150289
150290// Header returns an http.Header that can be modified by the caller to
150291// add HTTP headers to the request.
150292func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
150293	if c.header_ == nil {
150294		c.header_ = make(http.Header)
150295	}
150296	return c.header_
150297}
150298
150299func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
150300	reqHeaders := make(http.Header)
150301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
150302	for k, v := range c.header_ {
150303		reqHeaders[k] = v
150304	}
150305	reqHeaders.Set("User-Agent", c.s.userAgent())
150306	if c.ifNoneMatch_ != "" {
150307		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150308	}
150309	var body io.Reader = nil
150310	c.urlParams_.Set("alt", alt)
150311	c.urlParams_.Set("prettyPrint", "false")
150312	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
150313	urls += "?" + c.urlParams_.Encode()
150314	req, err := http.NewRequest("GET", urls, body)
150315	if err != nil {
150316		return nil, err
150317	}
150318	req.Header = reqHeaders
150319	googleapi.Expand(req.URL, map[string]string{
150320		"project":  c.project,
150321		"region":   c.region,
150322		"resource": c.resource,
150323	})
150324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150325}
150326
150327// Do executes the "compute.subnetworks.getIamPolicy" call.
150328// Exactly one of *Policy or error will be non-nil. Any non-2xx status
150329// code is an error. Response headers are in either
150330// *Policy.ServerResponse.Header or (if a response was returned at all)
150331// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150332// check whether the returned error was because http.StatusNotModified
150333// was returned.
150334func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
150335	gensupport.SetOptions(c.urlParams_, opts...)
150336	res, err := c.doRequest("json")
150337	if res != nil && res.StatusCode == http.StatusNotModified {
150338		if res.Body != nil {
150339			res.Body.Close()
150340		}
150341		return nil, &googleapi.Error{
150342			Code:   res.StatusCode,
150343			Header: res.Header,
150344		}
150345	}
150346	if err != nil {
150347		return nil, err
150348	}
150349	defer googleapi.CloseBody(res)
150350	if err := googleapi.CheckResponse(res); err != nil {
150351		return nil, err
150352	}
150353	ret := &Policy{
150354		ServerResponse: googleapi.ServerResponse{
150355			Header:         res.Header,
150356			HTTPStatusCode: res.StatusCode,
150357		},
150358	}
150359	target := &ret
150360	if err := gensupport.DecodeResponse(target, res); err != nil {
150361		return nil, err
150362	}
150363	return ret, nil
150364	// {
150365	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
150366	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
150367	//   "httpMethod": "GET",
150368	//   "id": "compute.subnetworks.getIamPolicy",
150369	//   "parameterOrder": [
150370	//     "project",
150371	//     "region",
150372	//     "resource"
150373	//   ],
150374	//   "parameters": {
150375	//     "optionsRequestedPolicyVersion": {
150376	//       "description": "Requested IAM Policy version.",
150377	//       "format": "int32",
150378	//       "location": "query",
150379	//       "type": "integer"
150380	//     },
150381	//     "project": {
150382	//       "description": "Project ID for this request.",
150383	//       "location": "path",
150384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150385	//       "required": true,
150386	//       "type": "string"
150387	//     },
150388	//     "region": {
150389	//       "description": "The name of the region for this request.",
150390	//       "location": "path",
150391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150392	//       "required": true,
150393	//       "type": "string"
150394	//     },
150395	//     "resource": {
150396	//       "description": "Name or id of the resource for this request.",
150397	//       "location": "path",
150398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150399	//       "required": true,
150400	//       "type": "string"
150401	//     }
150402	//   },
150403	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
150404	//   "response": {
150405	//     "$ref": "Policy"
150406	//   },
150407	//   "scopes": [
150408	//     "https://www.googleapis.com/auth/cloud-platform",
150409	//     "https://www.googleapis.com/auth/compute",
150410	//     "https://www.googleapis.com/auth/compute.readonly"
150411	//   ]
150412	// }
150413
150414}
150415
150416// method id "compute.subnetworks.insert":
150417
150418type SubnetworksInsertCall struct {
150419	s          *Service
150420	project    string
150421	region     string
150422	subnetwork *Subnetwork
150423	urlParams_ gensupport.URLParams
150424	ctx_       context.Context
150425	header_    http.Header
150426}
150427
150428// Insert: Creates a subnetwork in the specified project using the data
150429// included in the request.
150430//
150431// - project: Project ID for this request.
150432// - region: Name of the region scoping this request.
150433func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
150434	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150435	c.project = project
150436	c.region = region
150437	c.subnetwork = subnetwork
150438	return c
150439}
150440
150441// RequestId sets the optional parameter "requestId": An optional
150442// request ID to identify requests. Specify a unique request ID so that
150443// if you must retry your request, the server will know to ignore the
150444// request if it has already been completed. For example, consider a
150445// situation where you make an initial request and the request times
150446// out. If you make the request again with the same request ID, the
150447// server can check if original operation with the same request ID was
150448// received, and if so, will ignore the second request. This prevents
150449// clients from accidentally creating duplicate commitments. The request
150450// ID must be a valid UUID with the exception that zero UUID is not
150451// supported ( 00000000-0000-0000-0000-000000000000).
150452func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
150453	c.urlParams_.Set("requestId", requestId)
150454	return c
150455}
150456
150457// Fields allows partial responses to be retrieved. See
150458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150459// for more information.
150460func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
150461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150462	return c
150463}
150464
150465// Context sets the context to be used in this call's Do method. Any
150466// pending HTTP request will be aborted if the provided context is
150467// canceled.
150468func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
150469	c.ctx_ = ctx
150470	return c
150471}
150472
150473// Header returns an http.Header that can be modified by the caller to
150474// add HTTP headers to the request.
150475func (c *SubnetworksInsertCall) Header() http.Header {
150476	if c.header_ == nil {
150477		c.header_ = make(http.Header)
150478	}
150479	return c.header_
150480}
150481
150482func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
150483	reqHeaders := make(http.Header)
150484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
150485	for k, v := range c.header_ {
150486		reqHeaders[k] = v
150487	}
150488	reqHeaders.Set("User-Agent", c.s.userAgent())
150489	var body io.Reader = nil
150490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
150491	if err != nil {
150492		return nil, err
150493	}
150494	reqHeaders.Set("Content-Type", "application/json")
150495	c.urlParams_.Set("alt", alt)
150496	c.urlParams_.Set("prettyPrint", "false")
150497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
150498	urls += "?" + c.urlParams_.Encode()
150499	req, err := http.NewRequest("POST", urls, body)
150500	if err != nil {
150501		return nil, err
150502	}
150503	req.Header = reqHeaders
150504	googleapi.Expand(req.URL, map[string]string{
150505		"project": c.project,
150506		"region":  c.region,
150507	})
150508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150509}
150510
150511// Do executes the "compute.subnetworks.insert" call.
150512// Exactly one of *Operation or error will be non-nil. Any non-2xx
150513// status code is an error. Response headers are in either
150514// *Operation.ServerResponse.Header or (if a response was returned at
150515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150516// to check whether the returned error was because
150517// http.StatusNotModified was returned.
150518func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150519	gensupport.SetOptions(c.urlParams_, opts...)
150520	res, err := c.doRequest("json")
150521	if res != nil && res.StatusCode == http.StatusNotModified {
150522		if res.Body != nil {
150523			res.Body.Close()
150524		}
150525		return nil, &googleapi.Error{
150526			Code:   res.StatusCode,
150527			Header: res.Header,
150528		}
150529	}
150530	if err != nil {
150531		return nil, err
150532	}
150533	defer googleapi.CloseBody(res)
150534	if err := googleapi.CheckResponse(res); err != nil {
150535		return nil, err
150536	}
150537	ret := &Operation{
150538		ServerResponse: googleapi.ServerResponse{
150539			Header:         res.Header,
150540			HTTPStatusCode: res.StatusCode,
150541		},
150542	}
150543	target := &ret
150544	if err := gensupport.DecodeResponse(target, res); err != nil {
150545		return nil, err
150546	}
150547	return ret, nil
150548	// {
150549	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
150550	//   "flatPath": "projects/{project}/regions/{region}/subnetworks",
150551	//   "httpMethod": "POST",
150552	//   "id": "compute.subnetworks.insert",
150553	//   "parameterOrder": [
150554	//     "project",
150555	//     "region"
150556	//   ],
150557	//   "parameters": {
150558	//     "project": {
150559	//       "description": "Project ID for this request.",
150560	//       "location": "path",
150561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150562	//       "required": true,
150563	//       "type": "string"
150564	//     },
150565	//     "region": {
150566	//       "description": "Name of the region scoping this request.",
150567	//       "location": "path",
150568	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150569	//       "required": true,
150570	//       "type": "string"
150571	//     },
150572	//     "requestId": {
150573	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
150574	//       "location": "query",
150575	//       "type": "string"
150576	//     }
150577	//   },
150578	//   "path": "projects/{project}/regions/{region}/subnetworks",
150579	//   "request": {
150580	//     "$ref": "Subnetwork"
150581	//   },
150582	//   "response": {
150583	//     "$ref": "Operation"
150584	//   },
150585	//   "scopes": [
150586	//     "https://www.googleapis.com/auth/cloud-platform",
150587	//     "https://www.googleapis.com/auth/compute"
150588	//   ]
150589	// }
150590
150591}
150592
150593// method id "compute.subnetworks.list":
150594
150595type SubnetworksListCall struct {
150596	s            *Service
150597	project      string
150598	region       string
150599	urlParams_   gensupport.URLParams
150600	ifNoneMatch_ string
150601	ctx_         context.Context
150602	header_      http.Header
150603}
150604
150605// List: Retrieves a list of subnetworks available to the specified
150606// project.
150607//
150608// - project: Project ID for this request.
150609// - region: Name of the region scoping this request.
150610func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
150611	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150612	c.project = project
150613	c.region = region
150614	return c
150615}
150616
150617// Filter sets the optional parameter "filter": A filter expression that
150618// filters resources listed in the response. The expression must specify
150619// the field name, a comparison operator, and the value that you want to
150620// use for filtering. The value must be a string, a number, or a
150621// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150622// `<`. For example, if you are filtering Compute Engine instances, you
150623// can exclude instances named `example-instance` by specifying `name !=
150624// example-instance`. You can also filter nested fields. For example,
150625// you could specify `scheduling.automaticRestart = false` to include
150626// instances only if they are not scheduled for automatic restarts. You
150627// can use filtering on nested fields to filter based on resource
150628// labels. To filter on multiple expressions, provide each separate
150629// expression within parentheses. For example: ```
150630// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
150631// ``` By default, each expression is an `AND` expression. However, you
150632// can include `AND` and `OR` expressions explicitly. For example: ```
150633// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
150634// AND (scheduling.automaticRestart = true) ```
150635func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
150636	c.urlParams_.Set("filter", filter)
150637	return c
150638}
150639
150640// MaxResults sets the optional parameter "maxResults": The maximum
150641// number of results per page that should be returned. If the number of
150642// available results is larger than `maxResults`, Compute Engine returns
150643// a `nextPageToken` that can be used to get the next page of results in
150644// subsequent list requests. Acceptable values are `0` to `500`,
150645// inclusive. (Default: `500`)
150646func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
150647	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150648	return c
150649}
150650
150651// OrderBy sets the optional parameter "orderBy": Sorts list results by
150652// a certain order. By default, results are returned in alphanumerical
150653// order based on the resource name. You can also sort results in
150654// descending order based on the creation timestamp using
150655// `orderBy="creationTimestamp desc". This sorts results based on the
150656// `creationTimestamp` field in reverse chronological order (newest
150657// result first). Use this to sort resources like operations so that the
150658// newest operation is returned first. Currently, only sorting by `name`
150659// or `creationTimestamp desc` is supported.
150660func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
150661	c.urlParams_.Set("orderBy", orderBy)
150662	return c
150663}
150664
150665// PageToken sets the optional parameter "pageToken": Specifies a page
150666// token to use. Set `pageToken` to the `nextPageToken` returned by a
150667// previous list request to get the next page of results.
150668func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
150669	c.urlParams_.Set("pageToken", pageToken)
150670	return c
150671}
150672
150673// ReturnPartialSuccess sets the optional parameter
150674// "returnPartialSuccess": Opt-in for partial success behavior which
150675// provides partial results in case of failure. The default value is
150676// false.
150677func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
150678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150679	return c
150680}
150681
150682// Fields allows partial responses to be retrieved. See
150683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150684// for more information.
150685func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
150686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150687	return c
150688}
150689
150690// IfNoneMatch sets the optional parameter which makes the operation
150691// fail if the object's ETag matches the given value. This is useful for
150692// getting updates only after the object has changed since the last
150693// request. Use googleapi.IsNotModified to check whether the response
150694// error from Do is the result of In-None-Match.
150695func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
150696	c.ifNoneMatch_ = entityTag
150697	return c
150698}
150699
150700// Context sets the context to be used in this call's Do method. Any
150701// pending HTTP request will be aborted if the provided context is
150702// canceled.
150703func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
150704	c.ctx_ = ctx
150705	return c
150706}
150707
150708// Header returns an http.Header that can be modified by the caller to
150709// add HTTP headers to the request.
150710func (c *SubnetworksListCall) Header() http.Header {
150711	if c.header_ == nil {
150712		c.header_ = make(http.Header)
150713	}
150714	return c.header_
150715}
150716
150717func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
150718	reqHeaders := make(http.Header)
150719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
150720	for k, v := range c.header_ {
150721		reqHeaders[k] = v
150722	}
150723	reqHeaders.Set("User-Agent", c.s.userAgent())
150724	if c.ifNoneMatch_ != "" {
150725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150726	}
150727	var body io.Reader = nil
150728	c.urlParams_.Set("alt", alt)
150729	c.urlParams_.Set("prettyPrint", "false")
150730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
150731	urls += "?" + c.urlParams_.Encode()
150732	req, err := http.NewRequest("GET", urls, body)
150733	if err != nil {
150734		return nil, err
150735	}
150736	req.Header = reqHeaders
150737	googleapi.Expand(req.URL, map[string]string{
150738		"project": c.project,
150739		"region":  c.region,
150740	})
150741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150742}
150743
150744// Do executes the "compute.subnetworks.list" call.
150745// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
150746// status code is an error. Response headers are in either
150747// *SubnetworkList.ServerResponse.Header or (if a response was returned
150748// at all) in error.(*googleapi.Error).Header. Use
150749// googleapi.IsNotModified to check whether the returned error was
150750// because http.StatusNotModified was returned.
150751func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
150752	gensupport.SetOptions(c.urlParams_, opts...)
150753	res, err := c.doRequest("json")
150754	if res != nil && res.StatusCode == http.StatusNotModified {
150755		if res.Body != nil {
150756			res.Body.Close()
150757		}
150758		return nil, &googleapi.Error{
150759			Code:   res.StatusCode,
150760			Header: res.Header,
150761		}
150762	}
150763	if err != nil {
150764		return nil, err
150765	}
150766	defer googleapi.CloseBody(res)
150767	if err := googleapi.CheckResponse(res); err != nil {
150768		return nil, err
150769	}
150770	ret := &SubnetworkList{
150771		ServerResponse: googleapi.ServerResponse{
150772			Header:         res.Header,
150773			HTTPStatusCode: res.StatusCode,
150774		},
150775	}
150776	target := &ret
150777	if err := gensupport.DecodeResponse(target, res); err != nil {
150778		return nil, err
150779	}
150780	return ret, nil
150781	// {
150782	//   "description": "Retrieves a list of subnetworks available to the specified project.",
150783	//   "flatPath": "projects/{project}/regions/{region}/subnetworks",
150784	//   "httpMethod": "GET",
150785	//   "id": "compute.subnetworks.list",
150786	//   "parameterOrder": [
150787	//     "project",
150788	//     "region"
150789	//   ],
150790	//   "parameters": {
150791	//     "filter": {
150792	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150793	//       "location": "query",
150794	//       "type": "string"
150795	//     },
150796	//     "maxResults": {
150797	//       "default": "500",
150798	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150799	//       "format": "uint32",
150800	//       "location": "query",
150801	//       "minimum": "0",
150802	//       "type": "integer"
150803	//     },
150804	//     "orderBy": {
150805	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
150806	//       "location": "query",
150807	//       "type": "string"
150808	//     },
150809	//     "pageToken": {
150810	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150811	//       "location": "query",
150812	//       "type": "string"
150813	//     },
150814	//     "project": {
150815	//       "description": "Project ID for this request.",
150816	//       "location": "path",
150817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150818	//       "required": true,
150819	//       "type": "string"
150820	//     },
150821	//     "region": {
150822	//       "description": "Name of the region scoping this request.",
150823	//       "location": "path",
150824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150825	//       "required": true,
150826	//       "type": "string"
150827	//     },
150828	//     "returnPartialSuccess": {
150829	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150830	//       "location": "query",
150831	//       "type": "boolean"
150832	//     }
150833	//   },
150834	//   "path": "projects/{project}/regions/{region}/subnetworks",
150835	//   "response": {
150836	//     "$ref": "SubnetworkList"
150837	//   },
150838	//   "scopes": [
150839	//     "https://www.googleapis.com/auth/cloud-platform",
150840	//     "https://www.googleapis.com/auth/compute",
150841	//     "https://www.googleapis.com/auth/compute.readonly"
150842	//   ]
150843	// }
150844
150845}
150846
150847// Pages invokes f for each page of results.
150848// A non-nil error returned from f will halt the iteration.
150849// The provided context supersedes any context provided to the Context method.
150850func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
150851	c.ctx_ = ctx
150852	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150853	for {
150854		x, err := c.Do()
150855		if err != nil {
150856			return err
150857		}
150858		if err := f(x); err != nil {
150859			return err
150860		}
150861		if x.NextPageToken == "" {
150862			return nil
150863		}
150864		c.PageToken(x.NextPageToken)
150865	}
150866}
150867
150868// method id "compute.subnetworks.listUsable":
150869
150870type SubnetworksListUsableCall struct {
150871	s            *Service
150872	project      string
150873	urlParams_   gensupport.URLParams
150874	ifNoneMatch_ string
150875	ctx_         context.Context
150876	header_      http.Header
150877}
150878
150879// ListUsable: Retrieves an aggregated list of all usable subnetworks in
150880// the project.
150881//
150882// - project: Project ID for this request.
150883func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
150884	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150885	c.project = project
150886	return c
150887}
150888
150889// Filter sets the optional parameter "filter": A filter expression that
150890// filters resources listed in the response. The expression must specify
150891// the field name, a comparison operator, and the value that you want to
150892// use for filtering. The value must be a string, a number, or a
150893// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150894// `<`. For example, if you are filtering Compute Engine instances, you
150895// can exclude instances named `example-instance` by specifying `name !=
150896// example-instance`. You can also filter nested fields. For example,
150897// you could specify `scheduling.automaticRestart = false` to include
150898// instances only if they are not scheduled for automatic restarts. You
150899// can use filtering on nested fields to filter based on resource
150900// labels. To filter on multiple expressions, provide each separate
150901// expression within parentheses. For example: ```
150902// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
150903// ``` By default, each expression is an `AND` expression. However, you
150904// can include `AND` and `OR` expressions explicitly. For example: ```
150905// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
150906// AND (scheduling.automaticRestart = true) ```
150907func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
150908	c.urlParams_.Set("filter", filter)
150909	return c
150910}
150911
150912// MaxResults sets the optional parameter "maxResults": The maximum
150913// number of results per page that should be returned. If the number of
150914// available results is larger than `maxResults`, Compute Engine returns
150915// a `nextPageToken` that can be used to get the next page of results in
150916// subsequent list requests. Acceptable values are `0` to `500`,
150917// inclusive. (Default: `500`)
150918func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
150919	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150920	return c
150921}
150922
150923// OrderBy sets the optional parameter "orderBy": Sorts list results by
150924// a certain order. By default, results are returned in alphanumerical
150925// order based on the resource name. You can also sort results in
150926// descending order based on the creation timestamp using
150927// `orderBy="creationTimestamp desc". This sorts results based on the
150928// `creationTimestamp` field in reverse chronological order (newest
150929// result first). Use this to sort resources like operations so that the
150930// newest operation is returned first. Currently, only sorting by `name`
150931// or `creationTimestamp desc` is supported.
150932func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
150933	c.urlParams_.Set("orderBy", orderBy)
150934	return c
150935}
150936
150937// PageToken sets the optional parameter "pageToken": Specifies a page
150938// token to use. Set `pageToken` to the `nextPageToken` returned by a
150939// previous list request to get the next page of results.
150940func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
150941	c.urlParams_.Set("pageToken", pageToken)
150942	return c
150943}
150944
150945// ReturnPartialSuccess sets the optional parameter
150946// "returnPartialSuccess": Opt-in for partial success behavior which
150947// provides partial results in case of failure. The default value is
150948// false.
150949func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
150950	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150951	return c
150952}
150953
150954// Fields allows partial responses to be retrieved. See
150955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150956// for more information.
150957func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
150958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150959	return c
150960}
150961
150962// IfNoneMatch sets the optional parameter which makes the operation
150963// fail if the object's ETag matches the given value. This is useful for
150964// getting updates only after the object has changed since the last
150965// request. Use googleapi.IsNotModified to check whether the response
150966// error from Do is the result of In-None-Match.
150967func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
150968	c.ifNoneMatch_ = entityTag
150969	return c
150970}
150971
150972// Context sets the context to be used in this call's Do method. Any
150973// pending HTTP request will be aborted if the provided context is
150974// canceled.
150975func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
150976	c.ctx_ = ctx
150977	return c
150978}
150979
150980// Header returns an http.Header that can be modified by the caller to
150981// add HTTP headers to the request.
150982func (c *SubnetworksListUsableCall) Header() http.Header {
150983	if c.header_ == nil {
150984		c.header_ = make(http.Header)
150985	}
150986	return c.header_
150987}
150988
150989func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
150990	reqHeaders := make(http.Header)
150991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
150992	for k, v := range c.header_ {
150993		reqHeaders[k] = v
150994	}
150995	reqHeaders.Set("User-Agent", c.s.userAgent())
150996	if c.ifNoneMatch_ != "" {
150997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150998	}
150999	var body io.Reader = nil
151000	c.urlParams_.Set("alt", alt)
151001	c.urlParams_.Set("prettyPrint", "false")
151002	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable")
151003	urls += "?" + c.urlParams_.Encode()
151004	req, err := http.NewRequest("GET", urls, body)
151005	if err != nil {
151006		return nil, err
151007	}
151008	req.Header = reqHeaders
151009	googleapi.Expand(req.URL, map[string]string{
151010		"project": c.project,
151011	})
151012	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151013}
151014
151015// Do executes the "compute.subnetworks.listUsable" call.
151016// Exactly one of *UsableSubnetworksAggregatedList or error will be
151017// non-nil. Any non-2xx status code is an error. Response headers are in
151018// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
151019// a response was returned at all) in error.(*googleapi.Error).Header.
151020// Use googleapi.IsNotModified to check whether the returned error was
151021// because http.StatusNotModified was returned.
151022func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
151023	gensupport.SetOptions(c.urlParams_, opts...)
151024	res, err := c.doRequest("json")
151025	if res != nil && res.StatusCode == http.StatusNotModified {
151026		if res.Body != nil {
151027			res.Body.Close()
151028		}
151029		return nil, &googleapi.Error{
151030			Code:   res.StatusCode,
151031			Header: res.Header,
151032		}
151033	}
151034	if err != nil {
151035		return nil, err
151036	}
151037	defer googleapi.CloseBody(res)
151038	if err := googleapi.CheckResponse(res); err != nil {
151039		return nil, err
151040	}
151041	ret := &UsableSubnetworksAggregatedList{
151042		ServerResponse: googleapi.ServerResponse{
151043			Header:         res.Header,
151044			HTTPStatusCode: res.StatusCode,
151045		},
151046	}
151047	target := &ret
151048	if err := gensupport.DecodeResponse(target, res); err != nil {
151049		return nil, err
151050	}
151051	return ret, nil
151052	// {
151053	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
151054	//   "flatPath": "projects/{project}/aggregated/subnetworks/listUsable",
151055	//   "httpMethod": "GET",
151056	//   "id": "compute.subnetworks.listUsable",
151057	//   "parameterOrder": [
151058	//     "project"
151059	//   ],
151060	//   "parameters": {
151061	//     "filter": {
151062	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
151063	//       "location": "query",
151064	//       "type": "string"
151065	//     },
151066	//     "maxResults": {
151067	//       "default": "500",
151068	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
151069	//       "format": "uint32",
151070	//       "location": "query",
151071	//       "minimum": "0",
151072	//       "type": "integer"
151073	//     },
151074	//     "orderBy": {
151075	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
151076	//       "location": "query",
151077	//       "type": "string"
151078	//     },
151079	//     "pageToken": {
151080	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
151081	//       "location": "query",
151082	//       "type": "string"
151083	//     },
151084	//     "project": {
151085	//       "description": "Project ID for this request.",
151086	//       "location": "path",
151087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151088	//       "required": true,
151089	//       "type": "string"
151090	//     },
151091	//     "returnPartialSuccess": {
151092	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
151093	//       "location": "query",
151094	//       "type": "boolean"
151095	//     }
151096	//   },
151097	//   "path": "projects/{project}/aggregated/subnetworks/listUsable",
151098	//   "response": {
151099	//     "$ref": "UsableSubnetworksAggregatedList"
151100	//   },
151101	//   "scopes": [
151102	//     "https://www.googleapis.com/auth/cloud-platform",
151103	//     "https://www.googleapis.com/auth/compute",
151104	//     "https://www.googleapis.com/auth/compute.readonly"
151105	//   ]
151106	// }
151107
151108}
151109
151110// Pages invokes f for each page of results.
151111// A non-nil error returned from f will halt the iteration.
151112// The provided context supersedes any context provided to the Context method.
151113func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
151114	c.ctx_ = ctx
151115	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151116	for {
151117		x, err := c.Do()
151118		if err != nil {
151119			return err
151120		}
151121		if err := f(x); err != nil {
151122			return err
151123		}
151124		if x.NextPageToken == "" {
151125			return nil
151126		}
151127		c.PageToken(x.NextPageToken)
151128	}
151129}
151130
151131// method id "compute.subnetworks.patch":
151132
151133type SubnetworksPatchCall struct {
151134	s           *Service
151135	project     string
151136	region      string
151137	subnetwork  string
151138	subnetwork2 *Subnetwork
151139	urlParams_  gensupport.URLParams
151140	ctx_        context.Context
151141	header_     http.Header
151142}
151143
151144// Patch: Patches the specified subnetwork with the data included in the
151145// request. Only certain fields can be updated with a patch request as
151146// indicated in the field descriptions. You must specify the current
151147// fingerprint of the subnetwork resource being patched.
151148//
151149// - project: Project ID for this request.
151150// - region: Name of the region scoping this request.
151151// - subnetwork: Name of the Subnetwork resource to patch.
151152func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
151153	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151154	c.project = project
151155	c.region = region
151156	c.subnetwork = subnetwork
151157	c.subnetwork2 = subnetwork2
151158	return c
151159}
151160
151161// DrainTimeoutSeconds sets the optional parameter
151162// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
151163// seconds on the amount of time allowed to drain connections from the
151164// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
151165// timeout is only applicable when the following conditions are true: -
151166// the subnetwork being patched has purpose =
151167// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
151168// = BACKUP - the patch request is setting the role to ACTIVE. Note that
151169// after this patch operation the roles of the ACTIVE and BACKUP
151170// subnetworks will be swapped.
151171func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
151172	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
151173	return c
151174}
151175
151176// RequestId sets the optional parameter "requestId": An optional
151177// request ID to identify requests. Specify a unique request ID so that
151178// if you must retry your request, the server will know to ignore the
151179// request if it has already been completed. For example, consider a
151180// situation where you make an initial request and the request times
151181// out. If you make the request again with the same request ID, the
151182// server can check if original operation with the same request ID was
151183// received, and if so, will ignore the second request. This prevents
151184// clients from accidentally creating duplicate commitments. The request
151185// ID must be a valid UUID with the exception that zero UUID is not
151186// supported ( 00000000-0000-0000-0000-000000000000).
151187func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
151188	c.urlParams_.Set("requestId", requestId)
151189	return c
151190}
151191
151192// Fields allows partial responses to be retrieved. See
151193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151194// for more information.
151195func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
151196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151197	return c
151198}
151199
151200// Context sets the context to be used in this call's Do method. Any
151201// pending HTTP request will be aborted if the provided context is
151202// canceled.
151203func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
151204	c.ctx_ = ctx
151205	return c
151206}
151207
151208// Header returns an http.Header that can be modified by the caller to
151209// add HTTP headers to the request.
151210func (c *SubnetworksPatchCall) Header() http.Header {
151211	if c.header_ == nil {
151212		c.header_ = make(http.Header)
151213	}
151214	return c.header_
151215}
151216
151217func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
151218	reqHeaders := make(http.Header)
151219	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
151220	for k, v := range c.header_ {
151221		reqHeaders[k] = v
151222	}
151223	reqHeaders.Set("User-Agent", c.s.userAgent())
151224	var body io.Reader = nil
151225	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
151226	if err != nil {
151227		return nil, err
151228	}
151229	reqHeaders.Set("Content-Type", "application/json")
151230	c.urlParams_.Set("alt", alt)
151231	c.urlParams_.Set("prettyPrint", "false")
151232	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
151233	urls += "?" + c.urlParams_.Encode()
151234	req, err := http.NewRequest("PATCH", urls, body)
151235	if err != nil {
151236		return nil, err
151237	}
151238	req.Header = reqHeaders
151239	googleapi.Expand(req.URL, map[string]string{
151240		"project":    c.project,
151241		"region":     c.region,
151242		"subnetwork": c.subnetwork,
151243	})
151244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151245}
151246
151247// Do executes the "compute.subnetworks.patch" call.
151248// Exactly one of *Operation or error will be non-nil. Any non-2xx
151249// status code is an error. Response headers are in either
151250// *Operation.ServerResponse.Header or (if a response was returned at
151251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151252// to check whether the returned error was because
151253// http.StatusNotModified was returned.
151254func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151255	gensupport.SetOptions(c.urlParams_, opts...)
151256	res, err := c.doRequest("json")
151257	if res != nil && res.StatusCode == http.StatusNotModified {
151258		if res.Body != nil {
151259			res.Body.Close()
151260		}
151261		return nil, &googleapi.Error{
151262			Code:   res.StatusCode,
151263			Header: res.Header,
151264		}
151265	}
151266	if err != nil {
151267		return nil, err
151268	}
151269	defer googleapi.CloseBody(res)
151270	if err := googleapi.CheckResponse(res); err != nil {
151271		return nil, err
151272	}
151273	ret := &Operation{
151274		ServerResponse: googleapi.ServerResponse{
151275			Header:         res.Header,
151276			HTTPStatusCode: res.StatusCode,
151277		},
151278	}
151279	target := &ret
151280	if err := gensupport.DecodeResponse(target, res); err != nil {
151281		return nil, err
151282	}
151283	return ret, nil
151284	// {
151285	//   "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.",
151286	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
151287	//   "httpMethod": "PATCH",
151288	//   "id": "compute.subnetworks.patch",
151289	//   "parameterOrder": [
151290	//     "project",
151291	//     "region",
151292	//     "subnetwork"
151293	//   ],
151294	//   "parameters": {
151295	//     "drainTimeoutSeconds": {
151296	//       "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.",
151297	//       "format": "int32",
151298	//       "location": "query",
151299	//       "type": "integer"
151300	//     },
151301	//     "project": {
151302	//       "description": "Project ID for this request.",
151303	//       "location": "path",
151304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151305	//       "required": true,
151306	//       "type": "string"
151307	//     },
151308	//     "region": {
151309	//       "description": "Name of the region scoping this request.",
151310	//       "location": "path",
151311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151312	//       "required": true,
151313	//       "type": "string"
151314	//     },
151315	//     "requestId": {
151316	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
151317	//       "location": "query",
151318	//       "type": "string"
151319	//     },
151320	//     "subnetwork": {
151321	//       "description": "Name of the Subnetwork resource to patch.",
151322	//       "location": "path",
151323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151324	//       "required": true,
151325	//       "type": "string"
151326	//     }
151327	//   },
151328	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
151329	//   "request": {
151330	//     "$ref": "Subnetwork"
151331	//   },
151332	//   "response": {
151333	//     "$ref": "Operation"
151334	//   },
151335	//   "scopes": [
151336	//     "https://www.googleapis.com/auth/cloud-platform",
151337	//     "https://www.googleapis.com/auth/compute"
151338	//   ]
151339	// }
151340
151341}
151342
151343// method id "compute.subnetworks.setIamPolicy":
151344
151345type SubnetworksSetIamPolicyCall struct {
151346	s                      *Service
151347	project                string
151348	region                 string
151349	resource               string
151350	regionsetpolicyrequest *RegionSetPolicyRequest
151351	urlParams_             gensupport.URLParams
151352	ctx_                   context.Context
151353	header_                http.Header
151354}
151355
151356// SetIamPolicy: Sets the access control policy on the specified
151357// resource. Replaces any existing policy.
151358//
151359// - project: Project ID for this request.
151360// - region: The name of the region for this request.
151361// - resource: Name or id of the resource for this request.
151362func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
151363	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151364	c.project = project
151365	c.region = region
151366	c.resource = resource
151367	c.regionsetpolicyrequest = regionsetpolicyrequest
151368	return c
151369}
151370
151371// Fields allows partial responses to be retrieved. See
151372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151373// for more information.
151374func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
151375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151376	return c
151377}
151378
151379// Context sets the context to be used in this call's Do method. Any
151380// pending HTTP request will be aborted if the provided context is
151381// canceled.
151382func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
151383	c.ctx_ = ctx
151384	return c
151385}
151386
151387// Header returns an http.Header that can be modified by the caller to
151388// add HTTP headers to the request.
151389func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
151390	if c.header_ == nil {
151391		c.header_ = make(http.Header)
151392	}
151393	return c.header_
151394}
151395
151396func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
151397	reqHeaders := make(http.Header)
151398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
151399	for k, v := range c.header_ {
151400		reqHeaders[k] = v
151401	}
151402	reqHeaders.Set("User-Agent", c.s.userAgent())
151403	var body io.Reader = nil
151404	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
151405	if err != nil {
151406		return nil, err
151407	}
151408	reqHeaders.Set("Content-Type", "application/json")
151409	c.urlParams_.Set("alt", alt)
151410	c.urlParams_.Set("prettyPrint", "false")
151411	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
151412	urls += "?" + c.urlParams_.Encode()
151413	req, err := http.NewRequest("POST", urls, body)
151414	if err != nil {
151415		return nil, err
151416	}
151417	req.Header = reqHeaders
151418	googleapi.Expand(req.URL, map[string]string{
151419		"project":  c.project,
151420		"region":   c.region,
151421		"resource": c.resource,
151422	})
151423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151424}
151425
151426// Do executes the "compute.subnetworks.setIamPolicy" call.
151427// Exactly one of *Policy or error will be non-nil. Any non-2xx status
151428// code is an error. Response headers are in either
151429// *Policy.ServerResponse.Header or (if a response was returned at all)
151430// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
151431// check whether the returned error was because http.StatusNotModified
151432// was returned.
151433func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
151434	gensupport.SetOptions(c.urlParams_, opts...)
151435	res, err := c.doRequest("json")
151436	if res != nil && res.StatusCode == http.StatusNotModified {
151437		if res.Body != nil {
151438			res.Body.Close()
151439		}
151440		return nil, &googleapi.Error{
151441			Code:   res.StatusCode,
151442			Header: res.Header,
151443		}
151444	}
151445	if err != nil {
151446		return nil, err
151447	}
151448	defer googleapi.CloseBody(res)
151449	if err := googleapi.CheckResponse(res); err != nil {
151450		return nil, err
151451	}
151452	ret := &Policy{
151453		ServerResponse: googleapi.ServerResponse{
151454			Header:         res.Header,
151455			HTTPStatusCode: res.StatusCode,
151456		},
151457	}
151458	target := &ret
151459	if err := gensupport.DecodeResponse(target, res); err != nil {
151460		return nil, err
151461	}
151462	return ret, nil
151463	// {
151464	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
151465	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
151466	//   "httpMethod": "POST",
151467	//   "id": "compute.subnetworks.setIamPolicy",
151468	//   "parameterOrder": [
151469	//     "project",
151470	//     "region",
151471	//     "resource"
151472	//   ],
151473	//   "parameters": {
151474	//     "project": {
151475	//       "description": "Project ID for this request.",
151476	//       "location": "path",
151477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151478	//       "required": true,
151479	//       "type": "string"
151480	//     },
151481	//     "region": {
151482	//       "description": "The name of the region for this request.",
151483	//       "location": "path",
151484	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151485	//       "required": true,
151486	//       "type": "string"
151487	//     },
151488	//     "resource": {
151489	//       "description": "Name or id of the resource for this request.",
151490	//       "location": "path",
151491	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151492	//       "required": true,
151493	//       "type": "string"
151494	//     }
151495	//   },
151496	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
151497	//   "request": {
151498	//     "$ref": "RegionSetPolicyRequest"
151499	//   },
151500	//   "response": {
151501	//     "$ref": "Policy"
151502	//   },
151503	//   "scopes": [
151504	//     "https://www.googleapis.com/auth/cloud-platform",
151505	//     "https://www.googleapis.com/auth/compute"
151506	//   ]
151507	// }
151508
151509}
151510
151511// method id "compute.subnetworks.setPrivateIpGoogleAccess":
151512
151513type SubnetworksSetPrivateIpGoogleAccessCall struct {
151514	s                                          *Service
151515	project                                    string
151516	region                                     string
151517	subnetwork                                 string
151518	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
151519	urlParams_                                 gensupport.URLParams
151520	ctx_                                       context.Context
151521	header_                                    http.Header
151522}
151523
151524// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
151525// Google services without assigning external IP addresses through
151526// Private Google Access.
151527//
151528// - project: Project ID for this request.
151529// - region: Name of the region scoping this request.
151530// - subnetwork: Name of the Subnetwork resource.
151531func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
151532	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151533	c.project = project
151534	c.region = region
151535	c.subnetwork = subnetwork
151536	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
151537	return c
151538}
151539
151540// RequestId sets the optional parameter "requestId": An optional
151541// request ID to identify requests. Specify a unique request ID so that
151542// if you must retry your request, the server will know to ignore the
151543// request if it has already been completed. For example, consider a
151544// situation where you make an initial request and the request times
151545// out. If you make the request again with the same request ID, the
151546// server can check if original operation with the same request ID was
151547// received, and if so, will ignore the second request. This prevents
151548// clients from accidentally creating duplicate commitments. The request
151549// ID must be a valid UUID with the exception that zero UUID is not
151550// supported ( 00000000-0000-0000-0000-000000000000).
151551func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
151552	c.urlParams_.Set("requestId", requestId)
151553	return c
151554}
151555
151556// Fields allows partial responses to be retrieved. See
151557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151558// for more information.
151559func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
151560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151561	return c
151562}
151563
151564// Context sets the context to be used in this call's Do method. Any
151565// pending HTTP request will be aborted if the provided context is
151566// canceled.
151567func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
151568	c.ctx_ = ctx
151569	return c
151570}
151571
151572// Header returns an http.Header that can be modified by the caller to
151573// add HTTP headers to the request.
151574func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
151575	if c.header_ == nil {
151576		c.header_ = make(http.Header)
151577	}
151578	return c.header_
151579}
151580
151581func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
151582	reqHeaders := make(http.Header)
151583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
151584	for k, v := range c.header_ {
151585		reqHeaders[k] = v
151586	}
151587	reqHeaders.Set("User-Agent", c.s.userAgent())
151588	var body io.Reader = nil
151589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
151590	if err != nil {
151591		return nil, err
151592	}
151593	reqHeaders.Set("Content-Type", "application/json")
151594	c.urlParams_.Set("alt", alt)
151595	c.urlParams_.Set("prettyPrint", "false")
151596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
151597	urls += "?" + c.urlParams_.Encode()
151598	req, err := http.NewRequest("POST", urls, body)
151599	if err != nil {
151600		return nil, err
151601	}
151602	req.Header = reqHeaders
151603	googleapi.Expand(req.URL, map[string]string{
151604		"project":    c.project,
151605		"region":     c.region,
151606		"subnetwork": c.subnetwork,
151607	})
151608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151609}
151610
151611// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
151612// Exactly one of *Operation or error will be non-nil. Any non-2xx
151613// status code is an error. Response headers are in either
151614// *Operation.ServerResponse.Header or (if a response was returned at
151615// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151616// to check whether the returned error was because
151617// http.StatusNotModified was returned.
151618func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151619	gensupport.SetOptions(c.urlParams_, opts...)
151620	res, err := c.doRequest("json")
151621	if res != nil && res.StatusCode == http.StatusNotModified {
151622		if res.Body != nil {
151623			res.Body.Close()
151624		}
151625		return nil, &googleapi.Error{
151626			Code:   res.StatusCode,
151627			Header: res.Header,
151628		}
151629	}
151630	if err != nil {
151631		return nil, err
151632	}
151633	defer googleapi.CloseBody(res)
151634	if err := googleapi.CheckResponse(res); err != nil {
151635		return nil, err
151636	}
151637	ret := &Operation{
151638		ServerResponse: googleapi.ServerResponse{
151639			Header:         res.Header,
151640			HTTPStatusCode: res.StatusCode,
151641		},
151642	}
151643	target := &ret
151644	if err := gensupport.DecodeResponse(target, res); err != nil {
151645		return nil, err
151646	}
151647	return ret, nil
151648	// {
151649	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
151650	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
151651	//   "httpMethod": "POST",
151652	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
151653	//   "parameterOrder": [
151654	//     "project",
151655	//     "region",
151656	//     "subnetwork"
151657	//   ],
151658	//   "parameters": {
151659	//     "project": {
151660	//       "description": "Project ID for this request.",
151661	//       "location": "path",
151662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151663	//       "required": true,
151664	//       "type": "string"
151665	//     },
151666	//     "region": {
151667	//       "description": "Name of the region scoping this request.",
151668	//       "location": "path",
151669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151670	//       "required": true,
151671	//       "type": "string"
151672	//     },
151673	//     "requestId": {
151674	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
151675	//       "location": "query",
151676	//       "type": "string"
151677	//     },
151678	//     "subnetwork": {
151679	//       "description": "Name of the Subnetwork resource.",
151680	//       "location": "path",
151681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151682	//       "required": true,
151683	//       "type": "string"
151684	//     }
151685	//   },
151686	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
151687	//   "request": {
151688	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
151689	//   },
151690	//   "response": {
151691	//     "$ref": "Operation"
151692	//   },
151693	//   "scopes": [
151694	//     "https://www.googleapis.com/auth/cloud-platform",
151695	//     "https://www.googleapis.com/auth/compute"
151696	//   ]
151697	// }
151698
151699}
151700
151701// method id "compute.subnetworks.testIamPermissions":
151702
151703type SubnetworksTestIamPermissionsCall struct {
151704	s                      *Service
151705	project                string
151706	region                 string
151707	resource               string
151708	testpermissionsrequest *TestPermissionsRequest
151709	urlParams_             gensupport.URLParams
151710	ctx_                   context.Context
151711	header_                http.Header
151712}
151713
151714// TestIamPermissions: Returns permissions that a caller has on the
151715// specified resource.
151716//
151717// - project: Project ID for this request.
151718// - region: The name of the region for this request.
151719// - resource: Name or id of the resource for this request.
151720func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
151721	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151722	c.project = project
151723	c.region = region
151724	c.resource = resource
151725	c.testpermissionsrequest = testpermissionsrequest
151726	return c
151727}
151728
151729// Fields allows partial responses to be retrieved. See
151730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151731// for more information.
151732func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
151733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151734	return c
151735}
151736
151737// Context sets the context to be used in this call's Do method. Any
151738// pending HTTP request will be aborted if the provided context is
151739// canceled.
151740func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
151741	c.ctx_ = ctx
151742	return c
151743}
151744
151745// Header returns an http.Header that can be modified by the caller to
151746// add HTTP headers to the request.
151747func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
151748	if c.header_ == nil {
151749		c.header_ = make(http.Header)
151750	}
151751	return c.header_
151752}
151753
151754func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151755	reqHeaders := make(http.Header)
151756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
151757	for k, v := range c.header_ {
151758		reqHeaders[k] = v
151759	}
151760	reqHeaders.Set("User-Agent", c.s.userAgent())
151761	var body io.Reader = nil
151762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151763	if err != nil {
151764		return nil, err
151765	}
151766	reqHeaders.Set("Content-Type", "application/json")
151767	c.urlParams_.Set("alt", alt)
151768	c.urlParams_.Set("prettyPrint", "false")
151769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
151770	urls += "?" + c.urlParams_.Encode()
151771	req, err := http.NewRequest("POST", urls, body)
151772	if err != nil {
151773		return nil, err
151774	}
151775	req.Header = reqHeaders
151776	googleapi.Expand(req.URL, map[string]string{
151777		"project":  c.project,
151778		"region":   c.region,
151779		"resource": c.resource,
151780	})
151781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151782}
151783
151784// Do executes the "compute.subnetworks.testIamPermissions" call.
151785// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151786// non-2xx status code is an error. Response headers are in either
151787// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151788// returned at all) in error.(*googleapi.Error).Header. Use
151789// googleapi.IsNotModified to check whether the returned error was
151790// because http.StatusNotModified was returned.
151791func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151792	gensupport.SetOptions(c.urlParams_, opts...)
151793	res, err := c.doRequest("json")
151794	if res != nil && res.StatusCode == http.StatusNotModified {
151795		if res.Body != nil {
151796			res.Body.Close()
151797		}
151798		return nil, &googleapi.Error{
151799			Code:   res.StatusCode,
151800			Header: res.Header,
151801		}
151802	}
151803	if err != nil {
151804		return nil, err
151805	}
151806	defer googleapi.CloseBody(res)
151807	if err := googleapi.CheckResponse(res); err != nil {
151808		return nil, err
151809	}
151810	ret := &TestPermissionsResponse{
151811		ServerResponse: googleapi.ServerResponse{
151812			Header:         res.Header,
151813			HTTPStatusCode: res.StatusCode,
151814		},
151815	}
151816	target := &ret
151817	if err := gensupport.DecodeResponse(target, res); err != nil {
151818		return nil, err
151819	}
151820	return ret, nil
151821	// {
151822	//   "description": "Returns permissions that a caller has on the specified resource.",
151823	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
151824	//   "httpMethod": "POST",
151825	//   "id": "compute.subnetworks.testIamPermissions",
151826	//   "parameterOrder": [
151827	//     "project",
151828	//     "region",
151829	//     "resource"
151830	//   ],
151831	//   "parameters": {
151832	//     "project": {
151833	//       "description": "Project ID for this request.",
151834	//       "location": "path",
151835	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151836	//       "required": true,
151837	//       "type": "string"
151838	//     },
151839	//     "region": {
151840	//       "description": "The name of the region for this request.",
151841	//       "location": "path",
151842	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151843	//       "required": true,
151844	//       "type": "string"
151845	//     },
151846	//     "resource": {
151847	//       "description": "Name or id of the resource for this request.",
151848	//       "location": "path",
151849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151850	//       "required": true,
151851	//       "type": "string"
151852	//     }
151853	//   },
151854	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
151855	//   "request": {
151856	//     "$ref": "TestPermissionsRequest"
151857	//   },
151858	//   "response": {
151859	//     "$ref": "TestPermissionsResponse"
151860	//   },
151861	//   "scopes": [
151862	//     "https://www.googleapis.com/auth/cloud-platform",
151863	//     "https://www.googleapis.com/auth/compute",
151864	//     "https://www.googleapis.com/auth/compute.readonly"
151865	//   ]
151866	// }
151867
151868}
151869
151870// method id "compute.targetGrpcProxies.delete":
151871
151872type TargetGrpcProxiesDeleteCall struct {
151873	s               *Service
151874	project         string
151875	targetGrpcProxy string
151876	urlParams_      gensupport.URLParams
151877	ctx_            context.Context
151878	header_         http.Header
151879}
151880
151881// Delete: Deletes the specified TargetGrpcProxy in the given scope
151882//
151883// - project: Project ID for this request.
151884// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete.
151885func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
151886	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151887	c.project = project
151888	c.targetGrpcProxy = targetGrpcProxy
151889	return c
151890}
151891
151892// RequestId sets the optional parameter "requestId": An optional
151893// request ID to identify requests. Specify a unique request ID so that
151894// if you must retry your request, the server will know to ignore the
151895// request if it has already been completed. For example, consider a
151896// situation where you make an initial request and the request times
151897// out. If you make the request again with the same request ID, the
151898// server can check if original operation with the same request ID was
151899// received, and if so, will ignore the second request. This prevents
151900// clients from accidentally creating duplicate commitments. The request
151901// ID must be a valid UUID with the exception that zero UUID is not
151902// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
151903// MixerMutationRequestBuilder
151904func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
151905	c.urlParams_.Set("requestId", requestId)
151906	return c
151907}
151908
151909// Fields allows partial responses to be retrieved. See
151910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151911// for more information.
151912func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
151913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151914	return c
151915}
151916
151917// Context sets the context to be used in this call's Do method. Any
151918// pending HTTP request will be aborted if the provided context is
151919// canceled.
151920func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
151921	c.ctx_ = ctx
151922	return c
151923}
151924
151925// Header returns an http.Header that can be modified by the caller to
151926// add HTTP headers to the request.
151927func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
151928	if c.header_ == nil {
151929		c.header_ = make(http.Header)
151930	}
151931	return c.header_
151932}
151933
151934func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
151935	reqHeaders := make(http.Header)
151936	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
151937	for k, v := range c.header_ {
151938		reqHeaders[k] = v
151939	}
151940	reqHeaders.Set("User-Agent", c.s.userAgent())
151941	var body io.Reader = nil
151942	c.urlParams_.Set("alt", alt)
151943	c.urlParams_.Set("prettyPrint", "false")
151944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
151945	urls += "?" + c.urlParams_.Encode()
151946	req, err := http.NewRequest("DELETE", urls, body)
151947	if err != nil {
151948		return nil, err
151949	}
151950	req.Header = reqHeaders
151951	googleapi.Expand(req.URL, map[string]string{
151952		"project":         c.project,
151953		"targetGrpcProxy": c.targetGrpcProxy,
151954	})
151955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151956}
151957
151958// Do executes the "compute.targetGrpcProxies.delete" call.
151959// Exactly one of *Operation or error will be non-nil. Any non-2xx
151960// status code is an error. Response headers are in either
151961// *Operation.ServerResponse.Header or (if a response was returned at
151962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151963// to check whether the returned error was because
151964// http.StatusNotModified was returned.
151965func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151966	gensupport.SetOptions(c.urlParams_, opts...)
151967	res, err := c.doRequest("json")
151968	if res != nil && res.StatusCode == http.StatusNotModified {
151969		if res.Body != nil {
151970			res.Body.Close()
151971		}
151972		return nil, &googleapi.Error{
151973			Code:   res.StatusCode,
151974			Header: res.Header,
151975		}
151976	}
151977	if err != nil {
151978		return nil, err
151979	}
151980	defer googleapi.CloseBody(res)
151981	if err := googleapi.CheckResponse(res); err != nil {
151982		return nil, err
151983	}
151984	ret := &Operation{
151985		ServerResponse: googleapi.ServerResponse{
151986			Header:         res.Header,
151987			HTTPStatusCode: res.StatusCode,
151988		},
151989	}
151990	target := &ret
151991	if err := gensupport.DecodeResponse(target, res); err != nil {
151992		return nil, err
151993	}
151994	return ret, nil
151995	// {
151996	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
151997	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
151998	//   "httpMethod": "DELETE",
151999	//   "id": "compute.targetGrpcProxies.delete",
152000	//   "parameterOrder": [
152001	//     "project",
152002	//     "targetGrpcProxy"
152003	//   ],
152004	//   "parameters": {
152005	//     "project": {
152006	//       "description": "Project ID for this request.",
152007	//       "location": "path",
152008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152009	//       "required": true,
152010	//       "type": "string"
152011	//     },
152012	//     "requestId": {
152013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
152014	//       "location": "query",
152015	//       "type": "string"
152016	//     },
152017	//     "targetGrpcProxy": {
152018	//       "description": "Name of the TargetGrpcProxy resource to delete.",
152019	//       "location": "path",
152020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152021	//       "required": true,
152022	//       "type": "string"
152023	//     }
152024	//   },
152025	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152026	//   "response": {
152027	//     "$ref": "Operation"
152028	//   },
152029	//   "scopes": [
152030	//     "https://www.googleapis.com/auth/cloud-platform",
152031	//     "https://www.googleapis.com/auth/compute"
152032	//   ]
152033	// }
152034
152035}
152036
152037// method id "compute.targetGrpcProxies.get":
152038
152039type TargetGrpcProxiesGetCall struct {
152040	s               *Service
152041	project         string
152042	targetGrpcProxy string
152043	urlParams_      gensupport.URLParams
152044	ifNoneMatch_    string
152045	ctx_            context.Context
152046	header_         http.Header
152047}
152048
152049// Get: Returns the specified TargetGrpcProxy resource in the given
152050// scope.
152051//
152052// - project: Project ID for this request.
152053// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return.
152054func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
152055	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152056	c.project = project
152057	c.targetGrpcProxy = targetGrpcProxy
152058	return c
152059}
152060
152061// Fields allows partial responses to be retrieved. See
152062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152063// for more information.
152064func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
152065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152066	return c
152067}
152068
152069// IfNoneMatch sets the optional parameter which makes the operation
152070// fail if the object's ETag matches the given value. This is useful for
152071// getting updates only after the object has changed since the last
152072// request. Use googleapi.IsNotModified to check whether the response
152073// error from Do is the result of In-None-Match.
152074func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
152075	c.ifNoneMatch_ = entityTag
152076	return c
152077}
152078
152079// Context sets the context to be used in this call's Do method. Any
152080// pending HTTP request will be aborted if the provided context is
152081// canceled.
152082func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
152083	c.ctx_ = ctx
152084	return c
152085}
152086
152087// Header returns an http.Header that can be modified by the caller to
152088// add HTTP headers to the request.
152089func (c *TargetGrpcProxiesGetCall) Header() http.Header {
152090	if c.header_ == nil {
152091		c.header_ = make(http.Header)
152092	}
152093	return c.header_
152094}
152095
152096func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
152097	reqHeaders := make(http.Header)
152098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
152099	for k, v := range c.header_ {
152100		reqHeaders[k] = v
152101	}
152102	reqHeaders.Set("User-Agent", c.s.userAgent())
152103	if c.ifNoneMatch_ != "" {
152104		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152105	}
152106	var body io.Reader = nil
152107	c.urlParams_.Set("alt", alt)
152108	c.urlParams_.Set("prettyPrint", "false")
152109	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
152110	urls += "?" + c.urlParams_.Encode()
152111	req, err := http.NewRequest("GET", urls, body)
152112	if err != nil {
152113		return nil, err
152114	}
152115	req.Header = reqHeaders
152116	googleapi.Expand(req.URL, map[string]string{
152117		"project":         c.project,
152118		"targetGrpcProxy": c.targetGrpcProxy,
152119	})
152120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152121}
152122
152123// Do executes the "compute.targetGrpcProxies.get" call.
152124// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
152125// status code is an error. Response headers are in either
152126// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
152127// at all) in error.(*googleapi.Error).Header. Use
152128// googleapi.IsNotModified to check whether the returned error was
152129// because http.StatusNotModified was returned.
152130func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
152131	gensupport.SetOptions(c.urlParams_, opts...)
152132	res, err := c.doRequest("json")
152133	if res != nil && res.StatusCode == http.StatusNotModified {
152134		if res.Body != nil {
152135			res.Body.Close()
152136		}
152137		return nil, &googleapi.Error{
152138			Code:   res.StatusCode,
152139			Header: res.Header,
152140		}
152141	}
152142	if err != nil {
152143		return nil, err
152144	}
152145	defer googleapi.CloseBody(res)
152146	if err := googleapi.CheckResponse(res); err != nil {
152147		return nil, err
152148	}
152149	ret := &TargetGrpcProxy{
152150		ServerResponse: googleapi.ServerResponse{
152151			Header:         res.Header,
152152			HTTPStatusCode: res.StatusCode,
152153		},
152154	}
152155	target := &ret
152156	if err := gensupport.DecodeResponse(target, res); err != nil {
152157		return nil, err
152158	}
152159	return ret, nil
152160	// {
152161	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
152162	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152163	//   "httpMethod": "GET",
152164	//   "id": "compute.targetGrpcProxies.get",
152165	//   "parameterOrder": [
152166	//     "project",
152167	//     "targetGrpcProxy"
152168	//   ],
152169	//   "parameters": {
152170	//     "project": {
152171	//       "description": "Project ID for this request.",
152172	//       "location": "path",
152173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152174	//       "required": true,
152175	//       "type": "string"
152176	//     },
152177	//     "targetGrpcProxy": {
152178	//       "description": "Name of the TargetGrpcProxy resource to return.",
152179	//       "location": "path",
152180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152181	//       "required": true,
152182	//       "type": "string"
152183	//     }
152184	//   },
152185	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152186	//   "response": {
152187	//     "$ref": "TargetGrpcProxy"
152188	//   },
152189	//   "scopes": [
152190	//     "https://www.googleapis.com/auth/cloud-platform",
152191	//     "https://www.googleapis.com/auth/compute",
152192	//     "https://www.googleapis.com/auth/compute.readonly"
152193	//   ]
152194	// }
152195
152196}
152197
152198// method id "compute.targetGrpcProxies.insert":
152199
152200type TargetGrpcProxiesInsertCall struct {
152201	s               *Service
152202	project         string
152203	targetgrpcproxy *TargetGrpcProxy
152204	urlParams_      gensupport.URLParams
152205	ctx_            context.Context
152206	header_         http.Header
152207}
152208
152209// Insert: Creates a TargetGrpcProxy in the specified project in the
152210// given scope using the parameters that are included in the request.
152211//
152212// - project: Project ID for this request.
152213func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
152214	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152215	c.project = project
152216	c.targetgrpcproxy = targetgrpcproxy
152217	return c
152218}
152219
152220// RequestId sets the optional parameter "requestId": An optional
152221// request ID to identify requests. Specify a unique request ID so that
152222// if you must retry your request, the server will know to ignore the
152223// request if it has already been completed. For example, consider a
152224// situation where you make an initial request and the request times
152225// out. If you make the request again with the same request ID, the
152226// server can check if original operation with the same request ID was
152227// received, and if so, will ignore the second request. This prevents
152228// clients from accidentally creating duplicate commitments. The request
152229// ID must be a valid UUID with the exception that zero UUID is not
152230// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
152231// MixerMutationRequestBuilder
152232func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
152233	c.urlParams_.Set("requestId", requestId)
152234	return c
152235}
152236
152237// Fields allows partial responses to be retrieved. See
152238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152239// for more information.
152240func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
152241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152242	return c
152243}
152244
152245// Context sets the context to be used in this call's Do method. Any
152246// pending HTTP request will be aborted if the provided context is
152247// canceled.
152248func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
152249	c.ctx_ = ctx
152250	return c
152251}
152252
152253// Header returns an http.Header that can be modified by the caller to
152254// add HTTP headers to the request.
152255func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
152256	if c.header_ == nil {
152257		c.header_ = make(http.Header)
152258	}
152259	return c.header_
152260}
152261
152262func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
152263	reqHeaders := make(http.Header)
152264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
152265	for k, v := range c.header_ {
152266		reqHeaders[k] = v
152267	}
152268	reqHeaders.Set("User-Agent", c.s.userAgent())
152269	var body io.Reader = nil
152270	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
152271	if err != nil {
152272		return nil, err
152273	}
152274	reqHeaders.Set("Content-Type", "application/json")
152275	c.urlParams_.Set("alt", alt)
152276	c.urlParams_.Set("prettyPrint", "false")
152277	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
152278	urls += "?" + c.urlParams_.Encode()
152279	req, err := http.NewRequest("POST", urls, body)
152280	if err != nil {
152281		return nil, err
152282	}
152283	req.Header = reqHeaders
152284	googleapi.Expand(req.URL, map[string]string{
152285		"project": c.project,
152286	})
152287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152288}
152289
152290// Do executes the "compute.targetGrpcProxies.insert" call.
152291// Exactly one of *Operation or error will be non-nil. Any non-2xx
152292// status code is an error. Response headers are in either
152293// *Operation.ServerResponse.Header or (if a response was returned at
152294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152295// to check whether the returned error was because
152296// http.StatusNotModified was returned.
152297func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152298	gensupport.SetOptions(c.urlParams_, opts...)
152299	res, err := c.doRequest("json")
152300	if res != nil && res.StatusCode == http.StatusNotModified {
152301		if res.Body != nil {
152302			res.Body.Close()
152303		}
152304		return nil, &googleapi.Error{
152305			Code:   res.StatusCode,
152306			Header: res.Header,
152307		}
152308	}
152309	if err != nil {
152310		return nil, err
152311	}
152312	defer googleapi.CloseBody(res)
152313	if err := googleapi.CheckResponse(res); err != nil {
152314		return nil, err
152315	}
152316	ret := &Operation{
152317		ServerResponse: googleapi.ServerResponse{
152318			Header:         res.Header,
152319			HTTPStatusCode: res.StatusCode,
152320		},
152321	}
152322	target := &ret
152323	if err := gensupport.DecodeResponse(target, res); err != nil {
152324		return nil, err
152325	}
152326	return ret, nil
152327	// {
152328	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
152329	//   "flatPath": "projects/{project}/global/targetGrpcProxies",
152330	//   "httpMethod": "POST",
152331	//   "id": "compute.targetGrpcProxies.insert",
152332	//   "parameterOrder": [
152333	//     "project"
152334	//   ],
152335	//   "parameters": {
152336	//     "project": {
152337	//       "description": "Project ID for this request.",
152338	//       "location": "path",
152339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152340	//       "required": true,
152341	//       "type": "string"
152342	//     },
152343	//     "requestId": {
152344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
152345	//       "location": "query",
152346	//       "type": "string"
152347	//     }
152348	//   },
152349	//   "path": "projects/{project}/global/targetGrpcProxies",
152350	//   "request": {
152351	//     "$ref": "TargetGrpcProxy"
152352	//   },
152353	//   "response": {
152354	//     "$ref": "Operation"
152355	//   },
152356	//   "scopes": [
152357	//     "https://www.googleapis.com/auth/cloud-platform",
152358	//     "https://www.googleapis.com/auth/compute"
152359	//   ]
152360	// }
152361
152362}
152363
152364// method id "compute.targetGrpcProxies.list":
152365
152366type TargetGrpcProxiesListCall struct {
152367	s            *Service
152368	project      string
152369	urlParams_   gensupport.URLParams
152370	ifNoneMatch_ string
152371	ctx_         context.Context
152372	header_      http.Header
152373}
152374
152375// List: Lists the TargetGrpcProxies for a project in the given scope.
152376//
152377// - project: Project ID for this request.
152378func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
152379	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152380	c.project = project
152381	return c
152382}
152383
152384// Filter sets the optional parameter "filter": A filter expression that
152385// filters resources listed in the response. The expression must specify
152386// the field name, a comparison operator, and the value that you want to
152387// use for filtering. The value must be a string, a number, or a
152388// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152389// `<`. For example, if you are filtering Compute Engine instances, you
152390// can exclude instances named `example-instance` by specifying `name !=
152391// example-instance`. You can also filter nested fields. For example,
152392// you could specify `scheduling.automaticRestart = false` to include
152393// instances only if they are not scheduled for automatic restarts. You
152394// can use filtering on nested fields to filter based on resource
152395// labels. To filter on multiple expressions, provide each separate
152396// expression within parentheses. For example: ```
152397// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
152398// ``` By default, each expression is an `AND` expression. However, you
152399// can include `AND` and `OR` expressions explicitly. For example: ```
152400// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
152401// AND (scheduling.automaticRestart = true) ```
152402func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
152403	c.urlParams_.Set("filter", filter)
152404	return c
152405}
152406
152407// MaxResults sets the optional parameter "maxResults": The maximum
152408// number of results per page that should be returned. If the number of
152409// available results is larger than `maxResults`, Compute Engine returns
152410// a `nextPageToken` that can be used to get the next page of results in
152411// subsequent list requests. Acceptable values are `0` to `500`,
152412// inclusive. (Default: `500`)
152413func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
152414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152415	return c
152416}
152417
152418// OrderBy sets the optional parameter "orderBy": Sorts list results by
152419// a certain order. By default, results are returned in alphanumerical
152420// order based on the resource name. You can also sort results in
152421// descending order based on the creation timestamp using
152422// `orderBy="creationTimestamp desc". This sorts results based on the
152423// `creationTimestamp` field in reverse chronological order (newest
152424// result first). Use this to sort resources like operations so that the
152425// newest operation is returned first. Currently, only sorting by `name`
152426// or `creationTimestamp desc` is supported.
152427func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
152428	c.urlParams_.Set("orderBy", orderBy)
152429	return c
152430}
152431
152432// PageToken sets the optional parameter "pageToken": Specifies a page
152433// token to use. Set `pageToken` to the `nextPageToken` returned by a
152434// previous list request to get the next page of results.
152435func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
152436	c.urlParams_.Set("pageToken", pageToken)
152437	return c
152438}
152439
152440// ReturnPartialSuccess sets the optional parameter
152441// "returnPartialSuccess": Opt-in for partial success behavior which
152442// provides partial results in case of failure. The default value is
152443// false.
152444func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
152445	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152446	return c
152447}
152448
152449// Fields allows partial responses to be retrieved. See
152450// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152451// for more information.
152452func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
152453	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152454	return c
152455}
152456
152457// IfNoneMatch sets the optional parameter which makes the operation
152458// fail if the object's ETag matches the given value. This is useful for
152459// getting updates only after the object has changed since the last
152460// request. Use googleapi.IsNotModified to check whether the response
152461// error from Do is the result of In-None-Match.
152462func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
152463	c.ifNoneMatch_ = entityTag
152464	return c
152465}
152466
152467// Context sets the context to be used in this call's Do method. Any
152468// pending HTTP request will be aborted if the provided context is
152469// canceled.
152470func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
152471	c.ctx_ = ctx
152472	return c
152473}
152474
152475// Header returns an http.Header that can be modified by the caller to
152476// add HTTP headers to the request.
152477func (c *TargetGrpcProxiesListCall) Header() http.Header {
152478	if c.header_ == nil {
152479		c.header_ = make(http.Header)
152480	}
152481	return c.header_
152482}
152483
152484func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
152485	reqHeaders := make(http.Header)
152486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
152487	for k, v := range c.header_ {
152488		reqHeaders[k] = v
152489	}
152490	reqHeaders.Set("User-Agent", c.s.userAgent())
152491	if c.ifNoneMatch_ != "" {
152492		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152493	}
152494	var body io.Reader = nil
152495	c.urlParams_.Set("alt", alt)
152496	c.urlParams_.Set("prettyPrint", "false")
152497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
152498	urls += "?" + c.urlParams_.Encode()
152499	req, err := http.NewRequest("GET", urls, body)
152500	if err != nil {
152501		return nil, err
152502	}
152503	req.Header = reqHeaders
152504	googleapi.Expand(req.URL, map[string]string{
152505		"project": c.project,
152506	})
152507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152508}
152509
152510// Do executes the "compute.targetGrpcProxies.list" call.
152511// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
152512// non-2xx status code is an error. Response headers are in either
152513// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
152514// returned at all) in error.(*googleapi.Error).Header. Use
152515// googleapi.IsNotModified to check whether the returned error was
152516// because http.StatusNotModified was returned.
152517func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
152518	gensupport.SetOptions(c.urlParams_, opts...)
152519	res, err := c.doRequest("json")
152520	if res != nil && res.StatusCode == http.StatusNotModified {
152521		if res.Body != nil {
152522			res.Body.Close()
152523		}
152524		return nil, &googleapi.Error{
152525			Code:   res.StatusCode,
152526			Header: res.Header,
152527		}
152528	}
152529	if err != nil {
152530		return nil, err
152531	}
152532	defer googleapi.CloseBody(res)
152533	if err := googleapi.CheckResponse(res); err != nil {
152534		return nil, err
152535	}
152536	ret := &TargetGrpcProxyList{
152537		ServerResponse: googleapi.ServerResponse{
152538			Header:         res.Header,
152539			HTTPStatusCode: res.StatusCode,
152540		},
152541	}
152542	target := &ret
152543	if err := gensupport.DecodeResponse(target, res); err != nil {
152544		return nil, err
152545	}
152546	return ret, nil
152547	// {
152548	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
152549	//   "flatPath": "projects/{project}/global/targetGrpcProxies",
152550	//   "httpMethod": "GET",
152551	//   "id": "compute.targetGrpcProxies.list",
152552	//   "parameterOrder": [
152553	//     "project"
152554	//   ],
152555	//   "parameters": {
152556	//     "filter": {
152557	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152558	//       "location": "query",
152559	//       "type": "string"
152560	//     },
152561	//     "maxResults": {
152562	//       "default": "500",
152563	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152564	//       "format": "uint32",
152565	//       "location": "query",
152566	//       "minimum": "0",
152567	//       "type": "integer"
152568	//     },
152569	//     "orderBy": {
152570	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
152571	//       "location": "query",
152572	//       "type": "string"
152573	//     },
152574	//     "pageToken": {
152575	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152576	//       "location": "query",
152577	//       "type": "string"
152578	//     },
152579	//     "project": {
152580	//       "description": "Project ID for this request.",
152581	//       "location": "path",
152582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152583	//       "required": true,
152584	//       "type": "string"
152585	//     },
152586	//     "returnPartialSuccess": {
152587	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152588	//       "location": "query",
152589	//       "type": "boolean"
152590	//     }
152591	//   },
152592	//   "path": "projects/{project}/global/targetGrpcProxies",
152593	//   "response": {
152594	//     "$ref": "TargetGrpcProxyList"
152595	//   },
152596	//   "scopes": [
152597	//     "https://www.googleapis.com/auth/cloud-platform",
152598	//     "https://www.googleapis.com/auth/compute",
152599	//     "https://www.googleapis.com/auth/compute.readonly"
152600	//   ]
152601	// }
152602
152603}
152604
152605// Pages invokes f for each page of results.
152606// A non-nil error returned from f will halt the iteration.
152607// The provided context supersedes any context provided to the Context method.
152608func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
152609	c.ctx_ = ctx
152610	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152611	for {
152612		x, err := c.Do()
152613		if err != nil {
152614			return err
152615		}
152616		if err := f(x); err != nil {
152617			return err
152618		}
152619		if x.NextPageToken == "" {
152620			return nil
152621		}
152622		c.PageToken(x.NextPageToken)
152623	}
152624}
152625
152626// method id "compute.targetGrpcProxies.patch":
152627
152628type TargetGrpcProxiesPatchCall struct {
152629	s               *Service
152630	project         string
152631	targetGrpcProxy string
152632	targetgrpcproxy *TargetGrpcProxy
152633	urlParams_      gensupport.URLParams
152634	ctx_            context.Context
152635	header_         http.Header
152636}
152637
152638// Patch: Patches the specified TargetGrpcProxy resource with the data
152639// included in the request. This method supports PATCH semantics and
152640// uses JSON merge patch format and processing rules.
152641//
152642// - project: Project ID for this request.
152643// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch.
152644func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall {
152645	c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152646	c.project = project
152647	c.targetGrpcProxy = targetGrpcProxy
152648	c.targetgrpcproxy = targetgrpcproxy
152649	return c
152650}
152651
152652// RequestId sets the optional parameter "requestId": An optional
152653// request ID to identify requests. Specify a unique request ID so that
152654// if you must retry your request, the server will know to ignore the
152655// request if it has already been completed. For example, consider a
152656// situation where you make an initial request and the request times
152657// out. If you make the request again with the same request ID, the
152658// server can check if original operation with the same request ID was
152659// received, and if so, will ignore the second request. This prevents
152660// clients from accidentally creating duplicate commitments. The request
152661// ID must be a valid UUID with the exception that zero UUID is not
152662// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
152663// MixerMutationRequestBuilder
152664func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall {
152665	c.urlParams_.Set("requestId", requestId)
152666	return c
152667}
152668
152669// Fields allows partial responses to be retrieved. See
152670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152671// for more information.
152672func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall {
152673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152674	return c
152675}
152676
152677// Context sets the context to be used in this call's Do method. Any
152678// pending HTTP request will be aborted if the provided context is
152679// canceled.
152680func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall {
152681	c.ctx_ = ctx
152682	return c
152683}
152684
152685// Header returns an http.Header that can be modified by the caller to
152686// add HTTP headers to the request.
152687func (c *TargetGrpcProxiesPatchCall) Header() http.Header {
152688	if c.header_ == nil {
152689		c.header_ = make(http.Header)
152690	}
152691	return c.header_
152692}
152693
152694func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
152695	reqHeaders := make(http.Header)
152696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
152697	for k, v := range c.header_ {
152698		reqHeaders[k] = v
152699	}
152700	reqHeaders.Set("User-Agent", c.s.userAgent())
152701	var body io.Reader = nil
152702	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
152703	if err != nil {
152704		return nil, err
152705	}
152706	reqHeaders.Set("Content-Type", "application/json")
152707	c.urlParams_.Set("alt", alt)
152708	c.urlParams_.Set("prettyPrint", "false")
152709	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
152710	urls += "?" + c.urlParams_.Encode()
152711	req, err := http.NewRequest("PATCH", urls, body)
152712	if err != nil {
152713		return nil, err
152714	}
152715	req.Header = reqHeaders
152716	googleapi.Expand(req.URL, map[string]string{
152717		"project":         c.project,
152718		"targetGrpcProxy": c.targetGrpcProxy,
152719	})
152720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152721}
152722
152723// Do executes the "compute.targetGrpcProxies.patch" call.
152724// Exactly one of *Operation or error will be non-nil. Any non-2xx
152725// status code is an error. Response headers are in either
152726// *Operation.ServerResponse.Header or (if a response was returned at
152727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152728// to check whether the returned error was because
152729// http.StatusNotModified was returned.
152730func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152731	gensupport.SetOptions(c.urlParams_, opts...)
152732	res, err := c.doRequest("json")
152733	if res != nil && res.StatusCode == http.StatusNotModified {
152734		if res.Body != nil {
152735			res.Body.Close()
152736		}
152737		return nil, &googleapi.Error{
152738			Code:   res.StatusCode,
152739			Header: res.Header,
152740		}
152741	}
152742	if err != nil {
152743		return nil, err
152744	}
152745	defer googleapi.CloseBody(res)
152746	if err := googleapi.CheckResponse(res); err != nil {
152747		return nil, err
152748	}
152749	ret := &Operation{
152750		ServerResponse: googleapi.ServerResponse{
152751			Header:         res.Header,
152752			HTTPStatusCode: res.StatusCode,
152753		},
152754	}
152755	target := &ret
152756	if err := gensupport.DecodeResponse(target, res); err != nil {
152757		return nil, err
152758	}
152759	return ret, nil
152760	// {
152761	//   "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.",
152762	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152763	//   "httpMethod": "PATCH",
152764	//   "id": "compute.targetGrpcProxies.patch",
152765	//   "parameterOrder": [
152766	//     "project",
152767	//     "targetGrpcProxy"
152768	//   ],
152769	//   "parameters": {
152770	//     "project": {
152771	//       "description": "Project ID for this request.",
152772	//       "location": "path",
152773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152774	//       "required": true,
152775	//       "type": "string"
152776	//     },
152777	//     "requestId": {
152778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
152779	//       "location": "query",
152780	//       "type": "string"
152781	//     },
152782	//     "targetGrpcProxy": {
152783	//       "description": "Name of the TargetGrpcProxy resource to patch.",
152784	//       "location": "path",
152785	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152786	//       "required": true,
152787	//       "type": "string"
152788	//     }
152789	//   },
152790	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152791	//   "request": {
152792	//     "$ref": "TargetGrpcProxy"
152793	//   },
152794	//   "response": {
152795	//     "$ref": "Operation"
152796	//   },
152797	//   "scopes": [
152798	//     "https://www.googleapis.com/auth/cloud-platform",
152799	//     "https://www.googleapis.com/auth/compute"
152800	//   ]
152801	// }
152802
152803}
152804
152805// method id "compute.targetHttpProxies.aggregatedList":
152806
152807type TargetHttpProxiesAggregatedListCall struct {
152808	s            *Service
152809	project      string
152810	urlParams_   gensupport.URLParams
152811	ifNoneMatch_ string
152812	ctx_         context.Context
152813	header_      http.Header
152814}
152815
152816// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
152817// regional and global, available to the specified project.
152818//
152819// - project: Name of the project scoping this request.
152820func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
152821	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152822	c.project = project
152823	return c
152824}
152825
152826// Filter sets the optional parameter "filter": A filter expression that
152827// filters resources listed in the response. The expression must specify
152828// the field name, a comparison operator, and the value that you want to
152829// use for filtering. The value must be a string, a number, or a
152830// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152831// `<`. For example, if you are filtering Compute Engine instances, you
152832// can exclude instances named `example-instance` by specifying `name !=
152833// example-instance`. You can also filter nested fields. For example,
152834// you could specify `scheduling.automaticRestart = false` to include
152835// instances only if they are not scheduled for automatic restarts. You
152836// can use filtering on nested fields to filter based on resource
152837// labels. To filter on multiple expressions, provide each separate
152838// expression within parentheses. For example: ```
152839// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
152840// ``` By default, each expression is an `AND` expression. However, you
152841// can include `AND` and `OR` expressions explicitly. For example: ```
152842// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
152843// AND (scheduling.automaticRestart = true) ```
152844func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
152845	c.urlParams_.Set("filter", filter)
152846	return c
152847}
152848
152849// IncludeAllScopes sets the optional parameter "includeAllScopes":
152850// Indicates whether every visible scope for each scope type (zone,
152851// region, global) should be included in the response. For new resource
152852// types added after this field, the flag has no effect as new resource
152853// types will always include every visible scope for each scope type in
152854// response. For resource types which predate this field, if this flag
152855// is omitted or false, only scopes of the scope types where the
152856// resource type is expected to be found will be included.
152857func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
152858	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
152859	return c
152860}
152861
152862// MaxResults sets the optional parameter "maxResults": The maximum
152863// number of results per page that should be returned. If the number of
152864// available results is larger than `maxResults`, Compute Engine returns
152865// a `nextPageToken` that can be used to get the next page of results in
152866// subsequent list requests. Acceptable values are `0` to `500`,
152867// inclusive. (Default: `500`)
152868func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
152869	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152870	return c
152871}
152872
152873// OrderBy sets the optional parameter "orderBy": Sorts list results by
152874// a certain order. By default, results are returned in alphanumerical
152875// order based on the resource name. You can also sort results in
152876// descending order based on the creation timestamp using
152877// `orderBy="creationTimestamp desc". This sorts results based on the
152878// `creationTimestamp` field in reverse chronological order (newest
152879// result first). Use this to sort resources like operations so that the
152880// newest operation is returned first. Currently, only sorting by `name`
152881// or `creationTimestamp desc` is supported.
152882func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
152883	c.urlParams_.Set("orderBy", orderBy)
152884	return c
152885}
152886
152887// PageToken sets the optional parameter "pageToken": Specifies a page
152888// token to use. Set `pageToken` to the `nextPageToken` returned by a
152889// previous list request to get the next page of results.
152890func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
152891	c.urlParams_.Set("pageToken", pageToken)
152892	return c
152893}
152894
152895// ReturnPartialSuccess sets the optional parameter
152896// "returnPartialSuccess": Opt-in for partial success behavior which
152897// provides partial results in case of failure. The default value is
152898// false.
152899func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
152900	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152901	return c
152902}
152903
152904// Fields allows partial responses to be retrieved. See
152905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152906// for more information.
152907func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
152908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152909	return c
152910}
152911
152912// IfNoneMatch sets the optional parameter which makes the operation
152913// fail if the object's ETag matches the given value. This is useful for
152914// getting updates only after the object has changed since the last
152915// request. Use googleapi.IsNotModified to check whether the response
152916// error from Do is the result of In-None-Match.
152917func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
152918	c.ifNoneMatch_ = entityTag
152919	return c
152920}
152921
152922// Context sets the context to be used in this call's Do method. Any
152923// pending HTTP request will be aborted if the provided context is
152924// canceled.
152925func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
152926	c.ctx_ = ctx
152927	return c
152928}
152929
152930// Header returns an http.Header that can be modified by the caller to
152931// add HTTP headers to the request.
152932func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
152933	if c.header_ == nil {
152934		c.header_ = make(http.Header)
152935	}
152936	return c.header_
152937}
152938
152939func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
152940	reqHeaders := make(http.Header)
152941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
152942	for k, v := range c.header_ {
152943		reqHeaders[k] = v
152944	}
152945	reqHeaders.Set("User-Agent", c.s.userAgent())
152946	if c.ifNoneMatch_ != "" {
152947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152948	}
152949	var body io.Reader = nil
152950	c.urlParams_.Set("alt", alt)
152951	c.urlParams_.Set("prettyPrint", "false")
152952	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies")
152953	urls += "?" + c.urlParams_.Encode()
152954	req, err := http.NewRequest("GET", urls, body)
152955	if err != nil {
152956		return nil, err
152957	}
152958	req.Header = reqHeaders
152959	googleapi.Expand(req.URL, map[string]string{
152960		"project": c.project,
152961	})
152962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152963}
152964
152965// Do executes the "compute.targetHttpProxies.aggregatedList" call.
152966// Exactly one of *TargetHttpProxyAggregatedList or error will be
152967// non-nil. Any non-2xx status code is an error. Response headers are in
152968// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
152969// response was returned at all) in error.(*googleapi.Error).Header. Use
152970// googleapi.IsNotModified to check whether the returned error was
152971// because http.StatusNotModified was returned.
152972func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
152973	gensupport.SetOptions(c.urlParams_, opts...)
152974	res, err := c.doRequest("json")
152975	if res != nil && res.StatusCode == http.StatusNotModified {
152976		if res.Body != nil {
152977			res.Body.Close()
152978		}
152979		return nil, &googleapi.Error{
152980			Code:   res.StatusCode,
152981			Header: res.Header,
152982		}
152983	}
152984	if err != nil {
152985		return nil, err
152986	}
152987	defer googleapi.CloseBody(res)
152988	if err := googleapi.CheckResponse(res); err != nil {
152989		return nil, err
152990	}
152991	ret := &TargetHttpProxyAggregatedList{
152992		ServerResponse: googleapi.ServerResponse{
152993			Header:         res.Header,
152994			HTTPStatusCode: res.StatusCode,
152995		},
152996	}
152997	target := &ret
152998	if err := gensupport.DecodeResponse(target, res); err != nil {
152999		return nil, err
153000	}
153001	return ret, nil
153002	// {
153003	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
153004	//   "flatPath": "projects/{project}/aggregated/targetHttpProxies",
153005	//   "httpMethod": "GET",
153006	//   "id": "compute.targetHttpProxies.aggregatedList",
153007	//   "parameterOrder": [
153008	//     "project"
153009	//   ],
153010	//   "parameters": {
153011	//     "filter": {
153012	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153013	//       "location": "query",
153014	//       "type": "string"
153015	//     },
153016	//     "includeAllScopes": {
153017	//       "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.",
153018	//       "location": "query",
153019	//       "type": "boolean"
153020	//     },
153021	//     "maxResults": {
153022	//       "default": "500",
153023	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153024	//       "format": "uint32",
153025	//       "location": "query",
153026	//       "minimum": "0",
153027	//       "type": "integer"
153028	//     },
153029	//     "orderBy": {
153030	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
153031	//       "location": "query",
153032	//       "type": "string"
153033	//     },
153034	//     "pageToken": {
153035	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153036	//       "location": "query",
153037	//       "type": "string"
153038	//     },
153039	//     "project": {
153040	//       "description": "Name of the project scoping this request.",
153041	//       "location": "path",
153042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153043	//       "required": true,
153044	//       "type": "string"
153045	//     },
153046	//     "returnPartialSuccess": {
153047	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153048	//       "location": "query",
153049	//       "type": "boolean"
153050	//     }
153051	//   },
153052	//   "path": "projects/{project}/aggregated/targetHttpProxies",
153053	//   "response": {
153054	//     "$ref": "TargetHttpProxyAggregatedList"
153055	//   },
153056	//   "scopes": [
153057	//     "https://www.googleapis.com/auth/cloud-platform",
153058	//     "https://www.googleapis.com/auth/compute",
153059	//     "https://www.googleapis.com/auth/compute.readonly"
153060	//   ]
153061	// }
153062
153063}
153064
153065// Pages invokes f for each page of results.
153066// A non-nil error returned from f will halt the iteration.
153067// The provided context supersedes any context provided to the Context method.
153068func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
153069	c.ctx_ = ctx
153070	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153071	for {
153072		x, err := c.Do()
153073		if err != nil {
153074			return err
153075		}
153076		if err := f(x); err != nil {
153077			return err
153078		}
153079		if x.NextPageToken == "" {
153080			return nil
153081		}
153082		c.PageToken(x.NextPageToken)
153083	}
153084}
153085
153086// method id "compute.targetHttpProxies.delete":
153087
153088type TargetHttpProxiesDeleteCall struct {
153089	s               *Service
153090	project         string
153091	targetHttpProxy string
153092	urlParams_      gensupport.URLParams
153093	ctx_            context.Context
153094	header_         http.Header
153095}
153096
153097// Delete: Deletes the specified TargetHttpProxy resource.
153098//
153099// - project: Project ID for this request.
153100// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
153101func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
153102	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153103	c.project = project
153104	c.targetHttpProxy = targetHttpProxy
153105	return c
153106}
153107
153108// RequestId sets the optional parameter "requestId": An optional
153109// request ID to identify requests. Specify a unique request ID so that
153110// if you must retry your request, the server will know to ignore the
153111// request if it has already been completed. For example, consider a
153112// situation where you make an initial request and the request times
153113// out. If you make the request again with the same request ID, the
153114// server can check if original operation with the same request ID was
153115// received, and if so, will ignore the second request. This prevents
153116// clients from accidentally creating duplicate commitments. The request
153117// ID must be a valid UUID with the exception that zero UUID is not
153118// supported ( 00000000-0000-0000-0000-000000000000).
153119func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
153120	c.urlParams_.Set("requestId", requestId)
153121	return c
153122}
153123
153124// Fields allows partial responses to be retrieved. See
153125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153126// for more information.
153127func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
153128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153129	return c
153130}
153131
153132// Context sets the context to be used in this call's Do method. Any
153133// pending HTTP request will be aborted if the provided context is
153134// canceled.
153135func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
153136	c.ctx_ = ctx
153137	return c
153138}
153139
153140// Header returns an http.Header that can be modified by the caller to
153141// add HTTP headers to the request.
153142func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
153143	if c.header_ == nil {
153144		c.header_ = make(http.Header)
153145	}
153146	return c.header_
153147}
153148
153149func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
153150	reqHeaders := make(http.Header)
153151	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
153152	for k, v := range c.header_ {
153153		reqHeaders[k] = v
153154	}
153155	reqHeaders.Set("User-Agent", c.s.userAgent())
153156	var body io.Reader = nil
153157	c.urlParams_.Set("alt", alt)
153158	c.urlParams_.Set("prettyPrint", "false")
153159	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
153160	urls += "?" + c.urlParams_.Encode()
153161	req, err := http.NewRequest("DELETE", urls, body)
153162	if err != nil {
153163		return nil, err
153164	}
153165	req.Header = reqHeaders
153166	googleapi.Expand(req.URL, map[string]string{
153167		"project":         c.project,
153168		"targetHttpProxy": c.targetHttpProxy,
153169	})
153170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153171}
153172
153173// Do executes the "compute.targetHttpProxies.delete" call.
153174// Exactly one of *Operation or error will be non-nil. Any non-2xx
153175// status code is an error. Response headers are in either
153176// *Operation.ServerResponse.Header or (if a response was returned at
153177// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153178// to check whether the returned error was because
153179// http.StatusNotModified was returned.
153180func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153181	gensupport.SetOptions(c.urlParams_, opts...)
153182	res, err := c.doRequest("json")
153183	if res != nil && res.StatusCode == http.StatusNotModified {
153184		if res.Body != nil {
153185			res.Body.Close()
153186		}
153187		return nil, &googleapi.Error{
153188			Code:   res.StatusCode,
153189			Header: res.Header,
153190		}
153191	}
153192	if err != nil {
153193		return nil, err
153194	}
153195	defer googleapi.CloseBody(res)
153196	if err := googleapi.CheckResponse(res); err != nil {
153197		return nil, err
153198	}
153199	ret := &Operation{
153200		ServerResponse: googleapi.ServerResponse{
153201			Header:         res.Header,
153202			HTTPStatusCode: res.StatusCode,
153203		},
153204	}
153205	target := &ret
153206	if err := gensupport.DecodeResponse(target, res); err != nil {
153207		return nil, err
153208	}
153209	return ret, nil
153210	// {
153211	//   "description": "Deletes the specified TargetHttpProxy resource.",
153212	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153213	//   "httpMethod": "DELETE",
153214	//   "id": "compute.targetHttpProxies.delete",
153215	//   "parameterOrder": [
153216	//     "project",
153217	//     "targetHttpProxy"
153218	//   ],
153219	//   "parameters": {
153220	//     "project": {
153221	//       "description": "Project ID for this request.",
153222	//       "location": "path",
153223	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153224	//       "required": true,
153225	//       "type": "string"
153226	//     },
153227	//     "requestId": {
153228	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
153229	//       "location": "query",
153230	//       "type": "string"
153231	//     },
153232	//     "targetHttpProxy": {
153233	//       "description": "Name of the TargetHttpProxy resource to delete.",
153234	//       "location": "path",
153235	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153236	//       "required": true,
153237	//       "type": "string"
153238	//     }
153239	//   },
153240	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153241	//   "response": {
153242	//     "$ref": "Operation"
153243	//   },
153244	//   "scopes": [
153245	//     "https://www.googleapis.com/auth/cloud-platform",
153246	//     "https://www.googleapis.com/auth/compute"
153247	//   ]
153248	// }
153249
153250}
153251
153252// method id "compute.targetHttpProxies.get":
153253
153254type TargetHttpProxiesGetCall struct {
153255	s               *Service
153256	project         string
153257	targetHttpProxy string
153258	urlParams_      gensupport.URLParams
153259	ifNoneMatch_    string
153260	ctx_            context.Context
153261	header_         http.Header
153262}
153263
153264// Get: Returns the specified TargetHttpProxy resource. Gets a list of
153265// available target HTTP proxies by making a list() request.
153266//
153267// - project: Project ID for this request.
153268// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
153269func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
153270	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153271	c.project = project
153272	c.targetHttpProxy = targetHttpProxy
153273	return c
153274}
153275
153276// Fields allows partial responses to be retrieved. See
153277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153278// for more information.
153279func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
153280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153281	return c
153282}
153283
153284// IfNoneMatch sets the optional parameter which makes the operation
153285// fail if the object's ETag matches the given value. This is useful for
153286// getting updates only after the object has changed since the last
153287// request. Use googleapi.IsNotModified to check whether the response
153288// error from Do is the result of In-None-Match.
153289func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
153290	c.ifNoneMatch_ = entityTag
153291	return c
153292}
153293
153294// Context sets the context to be used in this call's Do method. Any
153295// pending HTTP request will be aborted if the provided context is
153296// canceled.
153297func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
153298	c.ctx_ = ctx
153299	return c
153300}
153301
153302// Header returns an http.Header that can be modified by the caller to
153303// add HTTP headers to the request.
153304func (c *TargetHttpProxiesGetCall) Header() http.Header {
153305	if c.header_ == nil {
153306		c.header_ = make(http.Header)
153307	}
153308	return c.header_
153309}
153310
153311func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
153312	reqHeaders := make(http.Header)
153313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
153314	for k, v := range c.header_ {
153315		reqHeaders[k] = v
153316	}
153317	reqHeaders.Set("User-Agent", c.s.userAgent())
153318	if c.ifNoneMatch_ != "" {
153319		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153320	}
153321	var body io.Reader = nil
153322	c.urlParams_.Set("alt", alt)
153323	c.urlParams_.Set("prettyPrint", "false")
153324	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
153325	urls += "?" + c.urlParams_.Encode()
153326	req, err := http.NewRequest("GET", urls, body)
153327	if err != nil {
153328		return nil, err
153329	}
153330	req.Header = reqHeaders
153331	googleapi.Expand(req.URL, map[string]string{
153332		"project":         c.project,
153333		"targetHttpProxy": c.targetHttpProxy,
153334	})
153335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153336}
153337
153338// Do executes the "compute.targetHttpProxies.get" call.
153339// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
153340// status code is an error. Response headers are in either
153341// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
153342// at all) in error.(*googleapi.Error).Header. Use
153343// googleapi.IsNotModified to check whether the returned error was
153344// because http.StatusNotModified was returned.
153345func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
153346	gensupport.SetOptions(c.urlParams_, opts...)
153347	res, err := c.doRequest("json")
153348	if res != nil && res.StatusCode == http.StatusNotModified {
153349		if res.Body != nil {
153350			res.Body.Close()
153351		}
153352		return nil, &googleapi.Error{
153353			Code:   res.StatusCode,
153354			Header: res.Header,
153355		}
153356	}
153357	if err != nil {
153358		return nil, err
153359	}
153360	defer googleapi.CloseBody(res)
153361	if err := googleapi.CheckResponse(res); err != nil {
153362		return nil, err
153363	}
153364	ret := &TargetHttpProxy{
153365		ServerResponse: googleapi.ServerResponse{
153366			Header:         res.Header,
153367			HTTPStatusCode: res.StatusCode,
153368		},
153369	}
153370	target := &ret
153371	if err := gensupport.DecodeResponse(target, res); err != nil {
153372		return nil, err
153373	}
153374	return ret, nil
153375	// {
153376	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
153377	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153378	//   "httpMethod": "GET",
153379	//   "id": "compute.targetHttpProxies.get",
153380	//   "parameterOrder": [
153381	//     "project",
153382	//     "targetHttpProxy"
153383	//   ],
153384	//   "parameters": {
153385	//     "project": {
153386	//       "description": "Project ID for this request.",
153387	//       "location": "path",
153388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153389	//       "required": true,
153390	//       "type": "string"
153391	//     },
153392	//     "targetHttpProxy": {
153393	//       "description": "Name of the TargetHttpProxy resource to return.",
153394	//       "location": "path",
153395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153396	//       "required": true,
153397	//       "type": "string"
153398	//     }
153399	//   },
153400	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153401	//   "response": {
153402	//     "$ref": "TargetHttpProxy"
153403	//   },
153404	//   "scopes": [
153405	//     "https://www.googleapis.com/auth/cloud-platform",
153406	//     "https://www.googleapis.com/auth/compute",
153407	//     "https://www.googleapis.com/auth/compute.readonly"
153408	//   ]
153409	// }
153410
153411}
153412
153413// method id "compute.targetHttpProxies.insert":
153414
153415type TargetHttpProxiesInsertCall struct {
153416	s               *Service
153417	project         string
153418	targethttpproxy *TargetHttpProxy
153419	urlParams_      gensupport.URLParams
153420	ctx_            context.Context
153421	header_         http.Header
153422}
153423
153424// Insert: Creates a TargetHttpProxy resource in the specified project
153425// using the data included in the request.
153426//
153427// - project: Project ID for this request.
153428func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
153429	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153430	c.project = project
153431	c.targethttpproxy = targethttpproxy
153432	return c
153433}
153434
153435// RequestId sets the optional parameter "requestId": An optional
153436// request ID to identify requests. Specify a unique request ID so that
153437// if you must retry your request, the server will know to ignore the
153438// request if it has already been completed. For example, consider a
153439// situation where you make an initial request and the request times
153440// out. If you make the request again with the same request ID, the
153441// server can check if original operation with the same request ID was
153442// received, and if so, will ignore the second request. This prevents
153443// clients from accidentally creating duplicate commitments. The request
153444// ID must be a valid UUID with the exception that zero UUID is not
153445// supported ( 00000000-0000-0000-0000-000000000000).
153446func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
153447	c.urlParams_.Set("requestId", requestId)
153448	return c
153449}
153450
153451// Fields allows partial responses to be retrieved. See
153452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153453// for more information.
153454func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
153455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153456	return c
153457}
153458
153459// Context sets the context to be used in this call's Do method. Any
153460// pending HTTP request will be aborted if the provided context is
153461// canceled.
153462func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
153463	c.ctx_ = ctx
153464	return c
153465}
153466
153467// Header returns an http.Header that can be modified by the caller to
153468// add HTTP headers to the request.
153469func (c *TargetHttpProxiesInsertCall) Header() http.Header {
153470	if c.header_ == nil {
153471		c.header_ = make(http.Header)
153472	}
153473	return c.header_
153474}
153475
153476func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
153477	reqHeaders := make(http.Header)
153478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
153479	for k, v := range c.header_ {
153480		reqHeaders[k] = v
153481	}
153482	reqHeaders.Set("User-Agent", c.s.userAgent())
153483	var body io.Reader = nil
153484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
153485	if err != nil {
153486		return nil, err
153487	}
153488	reqHeaders.Set("Content-Type", "application/json")
153489	c.urlParams_.Set("alt", alt)
153490	c.urlParams_.Set("prettyPrint", "false")
153491	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
153492	urls += "?" + c.urlParams_.Encode()
153493	req, err := http.NewRequest("POST", urls, body)
153494	if err != nil {
153495		return nil, err
153496	}
153497	req.Header = reqHeaders
153498	googleapi.Expand(req.URL, map[string]string{
153499		"project": c.project,
153500	})
153501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153502}
153503
153504// Do executes the "compute.targetHttpProxies.insert" call.
153505// Exactly one of *Operation or error will be non-nil. Any non-2xx
153506// status code is an error. Response headers are in either
153507// *Operation.ServerResponse.Header or (if a response was returned at
153508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153509// to check whether the returned error was because
153510// http.StatusNotModified was returned.
153511func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153512	gensupport.SetOptions(c.urlParams_, opts...)
153513	res, err := c.doRequest("json")
153514	if res != nil && res.StatusCode == http.StatusNotModified {
153515		if res.Body != nil {
153516			res.Body.Close()
153517		}
153518		return nil, &googleapi.Error{
153519			Code:   res.StatusCode,
153520			Header: res.Header,
153521		}
153522	}
153523	if err != nil {
153524		return nil, err
153525	}
153526	defer googleapi.CloseBody(res)
153527	if err := googleapi.CheckResponse(res); err != nil {
153528		return nil, err
153529	}
153530	ret := &Operation{
153531		ServerResponse: googleapi.ServerResponse{
153532			Header:         res.Header,
153533			HTTPStatusCode: res.StatusCode,
153534		},
153535	}
153536	target := &ret
153537	if err := gensupport.DecodeResponse(target, res); err != nil {
153538		return nil, err
153539	}
153540	return ret, nil
153541	// {
153542	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
153543	//   "flatPath": "projects/{project}/global/targetHttpProxies",
153544	//   "httpMethod": "POST",
153545	//   "id": "compute.targetHttpProxies.insert",
153546	//   "parameterOrder": [
153547	//     "project"
153548	//   ],
153549	//   "parameters": {
153550	//     "project": {
153551	//       "description": "Project ID for this request.",
153552	//       "location": "path",
153553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153554	//       "required": true,
153555	//       "type": "string"
153556	//     },
153557	//     "requestId": {
153558	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
153559	//       "location": "query",
153560	//       "type": "string"
153561	//     }
153562	//   },
153563	//   "path": "projects/{project}/global/targetHttpProxies",
153564	//   "request": {
153565	//     "$ref": "TargetHttpProxy"
153566	//   },
153567	//   "response": {
153568	//     "$ref": "Operation"
153569	//   },
153570	//   "scopes": [
153571	//     "https://www.googleapis.com/auth/cloud-platform",
153572	//     "https://www.googleapis.com/auth/compute"
153573	//   ]
153574	// }
153575
153576}
153577
153578// method id "compute.targetHttpProxies.list":
153579
153580type TargetHttpProxiesListCall struct {
153581	s            *Service
153582	project      string
153583	urlParams_   gensupport.URLParams
153584	ifNoneMatch_ string
153585	ctx_         context.Context
153586	header_      http.Header
153587}
153588
153589// List: Retrieves the list of TargetHttpProxy resources available to
153590// the specified project.
153591//
153592// - project: Project ID for this request.
153593func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
153594	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153595	c.project = project
153596	return c
153597}
153598
153599// Filter sets the optional parameter "filter": A filter expression that
153600// filters resources listed in the response. The expression must specify
153601// the field name, a comparison operator, and the value that you want to
153602// use for filtering. The value must be a string, a number, or a
153603// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153604// `<`. For example, if you are filtering Compute Engine instances, you
153605// can exclude instances named `example-instance` by specifying `name !=
153606// example-instance`. You can also filter nested fields. For example,
153607// you could specify `scheduling.automaticRestart = false` to include
153608// instances only if they are not scheduled for automatic restarts. You
153609// can use filtering on nested fields to filter based on resource
153610// labels. To filter on multiple expressions, provide each separate
153611// expression within parentheses. For example: ```
153612// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
153613// ``` By default, each expression is an `AND` expression. However, you
153614// can include `AND` and `OR` expressions explicitly. For example: ```
153615// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
153616// AND (scheduling.automaticRestart = true) ```
153617func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
153618	c.urlParams_.Set("filter", filter)
153619	return c
153620}
153621
153622// MaxResults sets the optional parameter "maxResults": The maximum
153623// number of results per page that should be returned. If the number of
153624// available results is larger than `maxResults`, Compute Engine returns
153625// a `nextPageToken` that can be used to get the next page of results in
153626// subsequent list requests. Acceptable values are `0` to `500`,
153627// inclusive. (Default: `500`)
153628func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
153629	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153630	return c
153631}
153632
153633// OrderBy sets the optional parameter "orderBy": Sorts list results by
153634// a certain order. By default, results are returned in alphanumerical
153635// order based on the resource name. You can also sort results in
153636// descending order based on the creation timestamp using
153637// `orderBy="creationTimestamp desc". This sorts results based on the
153638// `creationTimestamp` field in reverse chronological order (newest
153639// result first). Use this to sort resources like operations so that the
153640// newest operation is returned first. Currently, only sorting by `name`
153641// or `creationTimestamp desc` is supported.
153642func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
153643	c.urlParams_.Set("orderBy", orderBy)
153644	return c
153645}
153646
153647// PageToken sets the optional parameter "pageToken": Specifies a page
153648// token to use. Set `pageToken` to the `nextPageToken` returned by a
153649// previous list request to get the next page of results.
153650func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
153651	c.urlParams_.Set("pageToken", pageToken)
153652	return c
153653}
153654
153655// ReturnPartialSuccess sets the optional parameter
153656// "returnPartialSuccess": Opt-in for partial success behavior which
153657// provides partial results in case of failure. The default value is
153658// false.
153659func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
153660	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153661	return c
153662}
153663
153664// Fields allows partial responses to be retrieved. See
153665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153666// for more information.
153667func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
153668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153669	return c
153670}
153671
153672// IfNoneMatch sets the optional parameter which makes the operation
153673// fail if the object's ETag matches the given value. This is useful for
153674// getting updates only after the object has changed since the last
153675// request. Use googleapi.IsNotModified to check whether the response
153676// error from Do is the result of In-None-Match.
153677func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
153678	c.ifNoneMatch_ = entityTag
153679	return c
153680}
153681
153682// Context sets the context to be used in this call's Do method. Any
153683// pending HTTP request will be aborted if the provided context is
153684// canceled.
153685func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
153686	c.ctx_ = ctx
153687	return c
153688}
153689
153690// Header returns an http.Header that can be modified by the caller to
153691// add HTTP headers to the request.
153692func (c *TargetHttpProxiesListCall) Header() http.Header {
153693	if c.header_ == nil {
153694		c.header_ = make(http.Header)
153695	}
153696	return c.header_
153697}
153698
153699func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
153700	reqHeaders := make(http.Header)
153701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
153702	for k, v := range c.header_ {
153703		reqHeaders[k] = v
153704	}
153705	reqHeaders.Set("User-Agent", c.s.userAgent())
153706	if c.ifNoneMatch_ != "" {
153707		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153708	}
153709	var body io.Reader = nil
153710	c.urlParams_.Set("alt", alt)
153711	c.urlParams_.Set("prettyPrint", "false")
153712	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
153713	urls += "?" + c.urlParams_.Encode()
153714	req, err := http.NewRequest("GET", urls, body)
153715	if err != nil {
153716		return nil, err
153717	}
153718	req.Header = reqHeaders
153719	googleapi.Expand(req.URL, map[string]string{
153720		"project": c.project,
153721	})
153722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153723}
153724
153725// Do executes the "compute.targetHttpProxies.list" call.
153726// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
153727// non-2xx status code is an error. Response headers are in either
153728// *TargetHttpProxyList.ServerResponse.Header or (if a response was
153729// returned at all) in error.(*googleapi.Error).Header. Use
153730// googleapi.IsNotModified to check whether the returned error was
153731// because http.StatusNotModified was returned.
153732func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
153733	gensupport.SetOptions(c.urlParams_, opts...)
153734	res, err := c.doRequest("json")
153735	if res != nil && res.StatusCode == http.StatusNotModified {
153736		if res.Body != nil {
153737			res.Body.Close()
153738		}
153739		return nil, &googleapi.Error{
153740			Code:   res.StatusCode,
153741			Header: res.Header,
153742		}
153743	}
153744	if err != nil {
153745		return nil, err
153746	}
153747	defer googleapi.CloseBody(res)
153748	if err := googleapi.CheckResponse(res); err != nil {
153749		return nil, err
153750	}
153751	ret := &TargetHttpProxyList{
153752		ServerResponse: googleapi.ServerResponse{
153753			Header:         res.Header,
153754			HTTPStatusCode: res.StatusCode,
153755		},
153756	}
153757	target := &ret
153758	if err := gensupport.DecodeResponse(target, res); err != nil {
153759		return nil, err
153760	}
153761	return ret, nil
153762	// {
153763	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
153764	//   "flatPath": "projects/{project}/global/targetHttpProxies",
153765	//   "httpMethod": "GET",
153766	//   "id": "compute.targetHttpProxies.list",
153767	//   "parameterOrder": [
153768	//     "project"
153769	//   ],
153770	//   "parameters": {
153771	//     "filter": {
153772	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153773	//       "location": "query",
153774	//       "type": "string"
153775	//     },
153776	//     "maxResults": {
153777	//       "default": "500",
153778	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153779	//       "format": "uint32",
153780	//       "location": "query",
153781	//       "minimum": "0",
153782	//       "type": "integer"
153783	//     },
153784	//     "orderBy": {
153785	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
153786	//       "location": "query",
153787	//       "type": "string"
153788	//     },
153789	//     "pageToken": {
153790	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153791	//       "location": "query",
153792	//       "type": "string"
153793	//     },
153794	//     "project": {
153795	//       "description": "Project ID for this request.",
153796	//       "location": "path",
153797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153798	//       "required": true,
153799	//       "type": "string"
153800	//     },
153801	//     "returnPartialSuccess": {
153802	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153803	//       "location": "query",
153804	//       "type": "boolean"
153805	//     }
153806	//   },
153807	//   "path": "projects/{project}/global/targetHttpProxies",
153808	//   "response": {
153809	//     "$ref": "TargetHttpProxyList"
153810	//   },
153811	//   "scopes": [
153812	//     "https://www.googleapis.com/auth/cloud-platform",
153813	//     "https://www.googleapis.com/auth/compute",
153814	//     "https://www.googleapis.com/auth/compute.readonly"
153815	//   ]
153816	// }
153817
153818}
153819
153820// Pages invokes f for each page of results.
153821// A non-nil error returned from f will halt the iteration.
153822// The provided context supersedes any context provided to the Context method.
153823func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
153824	c.ctx_ = ctx
153825	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153826	for {
153827		x, err := c.Do()
153828		if err != nil {
153829			return err
153830		}
153831		if err := f(x); err != nil {
153832			return err
153833		}
153834		if x.NextPageToken == "" {
153835			return nil
153836		}
153837		c.PageToken(x.NextPageToken)
153838	}
153839}
153840
153841// method id "compute.targetHttpProxies.patch":
153842
153843type TargetHttpProxiesPatchCall struct {
153844	s               *Service
153845	project         string
153846	targetHttpProxy string
153847	targethttpproxy *TargetHttpProxy
153848	urlParams_      gensupport.URLParams
153849	ctx_            context.Context
153850	header_         http.Header
153851}
153852
153853// Patch: Patches the specified TargetHttpProxy resource with the data
153854// included in the request. This method supports PATCH semantics and
153855// uses JSON merge patch format and processing rules.
153856//
153857// - project: Project ID for this request.
153858// - targetHttpProxy: Name of the TargetHttpProxy resource to patch.
153859func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall {
153860	c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153861	c.project = project
153862	c.targetHttpProxy = targetHttpProxy
153863	c.targethttpproxy = targethttpproxy
153864	return c
153865}
153866
153867// RequestId sets the optional parameter "requestId": An optional
153868// request ID to identify requests. Specify a unique request ID so that
153869// if you must retry your request, the server will know to ignore the
153870// request if it has already been completed. For example, consider a
153871// situation where you make an initial request and the request times
153872// out. If you make the request again with the same request ID, the
153873// server can check if original operation with the same request ID was
153874// received, and if so, will ignore the second request. This prevents
153875// clients from accidentally creating duplicate commitments. The request
153876// ID must be a valid UUID with the exception that zero UUID is not
153877// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
153878// MixerMutationRequestBuilder
153879func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall {
153880	c.urlParams_.Set("requestId", requestId)
153881	return c
153882}
153883
153884// Fields allows partial responses to be retrieved. See
153885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153886// for more information.
153887func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall {
153888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153889	return c
153890}
153891
153892// Context sets the context to be used in this call's Do method. Any
153893// pending HTTP request will be aborted if the provided context is
153894// canceled.
153895func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall {
153896	c.ctx_ = ctx
153897	return c
153898}
153899
153900// Header returns an http.Header that can be modified by the caller to
153901// add HTTP headers to the request.
153902func (c *TargetHttpProxiesPatchCall) Header() http.Header {
153903	if c.header_ == nil {
153904		c.header_ = make(http.Header)
153905	}
153906	return c.header_
153907}
153908
153909func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
153910	reqHeaders := make(http.Header)
153911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
153912	for k, v := range c.header_ {
153913		reqHeaders[k] = v
153914	}
153915	reqHeaders.Set("User-Agent", c.s.userAgent())
153916	var body io.Reader = nil
153917	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
153918	if err != nil {
153919		return nil, err
153920	}
153921	reqHeaders.Set("Content-Type", "application/json")
153922	c.urlParams_.Set("alt", alt)
153923	c.urlParams_.Set("prettyPrint", "false")
153924	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
153925	urls += "?" + c.urlParams_.Encode()
153926	req, err := http.NewRequest("PATCH", urls, body)
153927	if err != nil {
153928		return nil, err
153929	}
153930	req.Header = reqHeaders
153931	googleapi.Expand(req.URL, map[string]string{
153932		"project":         c.project,
153933		"targetHttpProxy": c.targetHttpProxy,
153934	})
153935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153936}
153937
153938// Do executes the "compute.targetHttpProxies.patch" call.
153939// Exactly one of *Operation or error will be non-nil. Any non-2xx
153940// status code is an error. Response headers are in either
153941// *Operation.ServerResponse.Header or (if a response was returned at
153942// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153943// to check whether the returned error was because
153944// http.StatusNotModified was returned.
153945func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153946	gensupport.SetOptions(c.urlParams_, opts...)
153947	res, err := c.doRequest("json")
153948	if res != nil && res.StatusCode == http.StatusNotModified {
153949		if res.Body != nil {
153950			res.Body.Close()
153951		}
153952		return nil, &googleapi.Error{
153953			Code:   res.StatusCode,
153954			Header: res.Header,
153955		}
153956	}
153957	if err != nil {
153958		return nil, err
153959	}
153960	defer googleapi.CloseBody(res)
153961	if err := googleapi.CheckResponse(res); err != nil {
153962		return nil, err
153963	}
153964	ret := &Operation{
153965		ServerResponse: googleapi.ServerResponse{
153966			Header:         res.Header,
153967			HTTPStatusCode: res.StatusCode,
153968		},
153969	}
153970	target := &ret
153971	if err := gensupport.DecodeResponse(target, res); err != nil {
153972		return nil, err
153973	}
153974	return ret, nil
153975	// {
153976	//   "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.",
153977	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153978	//   "httpMethod": "PATCH",
153979	//   "id": "compute.targetHttpProxies.patch",
153980	//   "parameterOrder": [
153981	//     "project",
153982	//     "targetHttpProxy"
153983	//   ],
153984	//   "parameters": {
153985	//     "project": {
153986	//       "description": "Project ID for this request.",
153987	//       "location": "path",
153988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153989	//       "required": true,
153990	//       "type": "string"
153991	//     },
153992	//     "requestId": {
153993	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
153994	//       "location": "query",
153995	//       "type": "string"
153996	//     },
153997	//     "targetHttpProxy": {
153998	//       "description": "Name of the TargetHttpProxy resource to patch.",
153999	//       "location": "path",
154000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154001	//       "required": true,
154002	//       "type": "string"
154003	//     }
154004	//   },
154005	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
154006	//   "request": {
154007	//     "$ref": "TargetHttpProxy"
154008	//   },
154009	//   "response": {
154010	//     "$ref": "Operation"
154011	//   },
154012	//   "scopes": [
154013	//     "https://www.googleapis.com/auth/cloud-platform",
154014	//     "https://www.googleapis.com/auth/compute"
154015	//   ]
154016	// }
154017
154018}
154019
154020// method id "compute.targetHttpProxies.setUrlMap":
154021
154022type TargetHttpProxiesSetUrlMapCall struct {
154023	s               *Service
154024	project         string
154025	targetHttpProxy string
154026	urlmapreference *UrlMapReference
154027	urlParams_      gensupport.URLParams
154028	ctx_            context.Context
154029	header_         http.Header
154030}
154031
154032// SetUrlMap: Changes the URL map for TargetHttpProxy.
154033//
154034// - project: Project ID for this request.
154035// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
154036func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
154037	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154038	c.project = project
154039	c.targetHttpProxy = targetHttpProxy
154040	c.urlmapreference = urlmapreference
154041	return c
154042}
154043
154044// RequestId sets the optional parameter "requestId": An optional
154045// request ID to identify requests. Specify a unique request ID so that
154046// if you must retry your request, the server will know to ignore the
154047// request if it has already been completed. For example, consider a
154048// situation where you make an initial request and the request times
154049// out. If you make the request again with the same request ID, the
154050// server can check if original operation with the same request ID was
154051// received, and if so, will ignore the second request. This prevents
154052// clients from accidentally creating duplicate commitments. The request
154053// ID must be a valid UUID with the exception that zero UUID is not
154054// supported ( 00000000-0000-0000-0000-000000000000).
154055func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
154056	c.urlParams_.Set("requestId", requestId)
154057	return c
154058}
154059
154060// Fields allows partial responses to be retrieved. See
154061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154062// for more information.
154063func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
154064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154065	return c
154066}
154067
154068// Context sets the context to be used in this call's Do method. Any
154069// pending HTTP request will be aborted if the provided context is
154070// canceled.
154071func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
154072	c.ctx_ = ctx
154073	return c
154074}
154075
154076// Header returns an http.Header that can be modified by the caller to
154077// add HTTP headers to the request.
154078func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
154079	if c.header_ == nil {
154080		c.header_ = make(http.Header)
154081	}
154082	return c.header_
154083}
154084
154085func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
154086	reqHeaders := make(http.Header)
154087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
154088	for k, v := range c.header_ {
154089		reqHeaders[k] = v
154090	}
154091	reqHeaders.Set("User-Agent", c.s.userAgent())
154092	var body io.Reader = nil
154093	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
154094	if err != nil {
154095		return nil, err
154096	}
154097	reqHeaders.Set("Content-Type", "application/json")
154098	c.urlParams_.Set("alt", alt)
154099	c.urlParams_.Set("prettyPrint", "false")
154100	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
154101	urls += "?" + c.urlParams_.Encode()
154102	req, err := http.NewRequest("POST", urls, body)
154103	if err != nil {
154104		return nil, err
154105	}
154106	req.Header = reqHeaders
154107	googleapi.Expand(req.URL, map[string]string{
154108		"project":         c.project,
154109		"targetHttpProxy": c.targetHttpProxy,
154110	})
154111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154112}
154113
154114// Do executes the "compute.targetHttpProxies.setUrlMap" call.
154115// Exactly one of *Operation or error will be non-nil. Any non-2xx
154116// status code is an error. Response headers are in either
154117// *Operation.ServerResponse.Header or (if a response was returned at
154118// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154119// to check whether the returned error was because
154120// http.StatusNotModified was returned.
154121func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154122	gensupport.SetOptions(c.urlParams_, opts...)
154123	res, err := c.doRequest("json")
154124	if res != nil && res.StatusCode == http.StatusNotModified {
154125		if res.Body != nil {
154126			res.Body.Close()
154127		}
154128		return nil, &googleapi.Error{
154129			Code:   res.StatusCode,
154130			Header: res.Header,
154131		}
154132	}
154133	if err != nil {
154134		return nil, err
154135	}
154136	defer googleapi.CloseBody(res)
154137	if err := googleapi.CheckResponse(res); err != nil {
154138		return nil, err
154139	}
154140	ret := &Operation{
154141		ServerResponse: googleapi.ServerResponse{
154142			Header:         res.Header,
154143			HTTPStatusCode: res.StatusCode,
154144		},
154145	}
154146	target := &ret
154147	if err := gensupport.DecodeResponse(target, res); err != nil {
154148		return nil, err
154149	}
154150	return ret, nil
154151	// {
154152	//   "description": "Changes the URL map for TargetHttpProxy.",
154153	//   "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
154154	//   "httpMethod": "POST",
154155	//   "id": "compute.targetHttpProxies.setUrlMap",
154156	//   "parameterOrder": [
154157	//     "project",
154158	//     "targetHttpProxy"
154159	//   ],
154160	//   "parameters": {
154161	//     "project": {
154162	//       "description": "Project ID for this request.",
154163	//       "location": "path",
154164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154165	//       "required": true,
154166	//       "type": "string"
154167	//     },
154168	//     "requestId": {
154169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
154170	//       "location": "query",
154171	//       "type": "string"
154172	//     },
154173	//     "targetHttpProxy": {
154174	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
154175	//       "location": "path",
154176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154177	//       "required": true,
154178	//       "type": "string"
154179	//     }
154180	//   },
154181	//   "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
154182	//   "request": {
154183	//     "$ref": "UrlMapReference"
154184	//   },
154185	//   "response": {
154186	//     "$ref": "Operation"
154187	//   },
154188	//   "scopes": [
154189	//     "https://www.googleapis.com/auth/cloud-platform",
154190	//     "https://www.googleapis.com/auth/compute"
154191	//   ]
154192	// }
154193
154194}
154195
154196// method id "compute.targetHttpsProxies.aggregatedList":
154197
154198type TargetHttpsProxiesAggregatedListCall struct {
154199	s            *Service
154200	project      string
154201	urlParams_   gensupport.URLParams
154202	ifNoneMatch_ string
154203	ctx_         context.Context
154204	header_      http.Header
154205}
154206
154207// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
154208// regional and global, available to the specified project.
154209//
154210// - project: Name of the project scoping this request.
154211func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
154212	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154213	c.project = project
154214	return c
154215}
154216
154217// Filter sets the optional parameter "filter": A filter expression that
154218// filters resources listed in the response. The expression must specify
154219// the field name, a comparison operator, and the value that you want to
154220// use for filtering. The value must be a string, a number, or a
154221// boolean. The comparison operator must be either `=`, `!=`, `>`, or
154222// `<`. For example, if you are filtering Compute Engine instances, you
154223// can exclude instances named `example-instance` by specifying `name !=
154224// example-instance`. You can also filter nested fields. For example,
154225// you could specify `scheduling.automaticRestart = false` to include
154226// instances only if they are not scheduled for automatic restarts. You
154227// can use filtering on nested fields to filter based on resource
154228// labels. To filter on multiple expressions, provide each separate
154229// expression within parentheses. For example: ```
154230// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
154231// ``` By default, each expression is an `AND` expression. However, you
154232// can include `AND` and `OR` expressions explicitly. For example: ```
154233// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
154234// AND (scheduling.automaticRestart = true) ```
154235func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
154236	c.urlParams_.Set("filter", filter)
154237	return c
154238}
154239
154240// IncludeAllScopes sets the optional parameter "includeAllScopes":
154241// Indicates whether every visible scope for each scope type (zone,
154242// region, global) should be included in the response. For new resource
154243// types added after this field, the flag has no effect as new resource
154244// types will always include every visible scope for each scope type in
154245// response. For resource types which predate this field, if this flag
154246// is omitted or false, only scopes of the scope types where the
154247// resource type is expected to be found will be included.
154248func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
154249	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
154250	return c
154251}
154252
154253// MaxResults sets the optional parameter "maxResults": The maximum
154254// number of results per page that should be returned. If the number of
154255// available results is larger than `maxResults`, Compute Engine returns
154256// a `nextPageToken` that can be used to get the next page of results in
154257// subsequent list requests. Acceptable values are `0` to `500`,
154258// inclusive. (Default: `500`)
154259func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
154260	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154261	return c
154262}
154263
154264// OrderBy sets the optional parameter "orderBy": Sorts list results by
154265// a certain order. By default, results are returned in alphanumerical
154266// order based on the resource name. You can also sort results in
154267// descending order based on the creation timestamp using
154268// `orderBy="creationTimestamp desc". This sorts results based on the
154269// `creationTimestamp` field in reverse chronological order (newest
154270// result first). Use this to sort resources like operations so that the
154271// newest operation is returned first. Currently, only sorting by `name`
154272// or `creationTimestamp desc` is supported.
154273func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
154274	c.urlParams_.Set("orderBy", orderBy)
154275	return c
154276}
154277
154278// PageToken sets the optional parameter "pageToken": Specifies a page
154279// token to use. Set `pageToken` to the `nextPageToken` returned by a
154280// previous list request to get the next page of results.
154281func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
154282	c.urlParams_.Set("pageToken", pageToken)
154283	return c
154284}
154285
154286// ReturnPartialSuccess sets the optional parameter
154287// "returnPartialSuccess": Opt-in for partial success behavior which
154288// provides partial results in case of failure. The default value is
154289// false.
154290func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
154291	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
154292	return c
154293}
154294
154295// Fields allows partial responses to be retrieved. See
154296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154297// for more information.
154298func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
154299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154300	return c
154301}
154302
154303// IfNoneMatch sets the optional parameter which makes the operation
154304// fail if the object's ETag matches the given value. This is useful for
154305// getting updates only after the object has changed since the last
154306// request. Use googleapi.IsNotModified to check whether the response
154307// error from Do is the result of In-None-Match.
154308func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
154309	c.ifNoneMatch_ = entityTag
154310	return c
154311}
154312
154313// Context sets the context to be used in this call's Do method. Any
154314// pending HTTP request will be aborted if the provided context is
154315// canceled.
154316func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
154317	c.ctx_ = ctx
154318	return c
154319}
154320
154321// Header returns an http.Header that can be modified by the caller to
154322// add HTTP headers to the request.
154323func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
154324	if c.header_ == nil {
154325		c.header_ = make(http.Header)
154326	}
154327	return c.header_
154328}
154329
154330func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
154331	reqHeaders := make(http.Header)
154332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
154333	for k, v := range c.header_ {
154334		reqHeaders[k] = v
154335	}
154336	reqHeaders.Set("User-Agent", c.s.userAgent())
154337	if c.ifNoneMatch_ != "" {
154338		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154339	}
154340	var body io.Reader = nil
154341	c.urlParams_.Set("alt", alt)
154342	c.urlParams_.Set("prettyPrint", "false")
154343	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies")
154344	urls += "?" + c.urlParams_.Encode()
154345	req, err := http.NewRequest("GET", urls, body)
154346	if err != nil {
154347		return nil, err
154348	}
154349	req.Header = reqHeaders
154350	googleapi.Expand(req.URL, map[string]string{
154351		"project": c.project,
154352	})
154353	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154354}
154355
154356// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
154357// Exactly one of *TargetHttpsProxyAggregatedList or error will be
154358// non-nil. Any non-2xx status code is an error. Response headers are in
154359// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
154360// response was returned at all) in error.(*googleapi.Error).Header. Use
154361// googleapi.IsNotModified to check whether the returned error was
154362// because http.StatusNotModified was returned.
154363func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
154364	gensupport.SetOptions(c.urlParams_, opts...)
154365	res, err := c.doRequest("json")
154366	if res != nil && res.StatusCode == http.StatusNotModified {
154367		if res.Body != nil {
154368			res.Body.Close()
154369		}
154370		return nil, &googleapi.Error{
154371			Code:   res.StatusCode,
154372			Header: res.Header,
154373		}
154374	}
154375	if err != nil {
154376		return nil, err
154377	}
154378	defer googleapi.CloseBody(res)
154379	if err := googleapi.CheckResponse(res); err != nil {
154380		return nil, err
154381	}
154382	ret := &TargetHttpsProxyAggregatedList{
154383		ServerResponse: googleapi.ServerResponse{
154384			Header:         res.Header,
154385			HTTPStatusCode: res.StatusCode,
154386		},
154387	}
154388	target := &ret
154389	if err := gensupport.DecodeResponse(target, res); err != nil {
154390		return nil, err
154391	}
154392	return ret, nil
154393	// {
154394	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
154395	//   "flatPath": "projects/{project}/aggregated/targetHttpsProxies",
154396	//   "httpMethod": "GET",
154397	//   "id": "compute.targetHttpsProxies.aggregatedList",
154398	//   "parameterOrder": [
154399	//     "project"
154400	//   ],
154401	//   "parameters": {
154402	//     "filter": {
154403	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
154404	//       "location": "query",
154405	//       "type": "string"
154406	//     },
154407	//     "includeAllScopes": {
154408	//       "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.",
154409	//       "location": "query",
154410	//       "type": "boolean"
154411	//     },
154412	//     "maxResults": {
154413	//       "default": "500",
154414	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
154415	//       "format": "uint32",
154416	//       "location": "query",
154417	//       "minimum": "0",
154418	//       "type": "integer"
154419	//     },
154420	//     "orderBy": {
154421	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
154422	//       "location": "query",
154423	//       "type": "string"
154424	//     },
154425	//     "pageToken": {
154426	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
154427	//       "location": "query",
154428	//       "type": "string"
154429	//     },
154430	//     "project": {
154431	//       "description": "Name of the project scoping this request.",
154432	//       "location": "path",
154433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154434	//       "required": true,
154435	//       "type": "string"
154436	//     },
154437	//     "returnPartialSuccess": {
154438	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
154439	//       "location": "query",
154440	//       "type": "boolean"
154441	//     }
154442	//   },
154443	//   "path": "projects/{project}/aggregated/targetHttpsProxies",
154444	//   "response": {
154445	//     "$ref": "TargetHttpsProxyAggregatedList"
154446	//   },
154447	//   "scopes": [
154448	//     "https://www.googleapis.com/auth/cloud-platform",
154449	//     "https://www.googleapis.com/auth/compute",
154450	//     "https://www.googleapis.com/auth/compute.readonly"
154451	//   ]
154452	// }
154453
154454}
154455
154456// Pages invokes f for each page of results.
154457// A non-nil error returned from f will halt the iteration.
154458// The provided context supersedes any context provided to the Context method.
154459func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
154460	c.ctx_ = ctx
154461	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154462	for {
154463		x, err := c.Do()
154464		if err != nil {
154465			return err
154466		}
154467		if err := f(x); err != nil {
154468			return err
154469		}
154470		if x.NextPageToken == "" {
154471			return nil
154472		}
154473		c.PageToken(x.NextPageToken)
154474	}
154475}
154476
154477// method id "compute.targetHttpsProxies.delete":
154478
154479type TargetHttpsProxiesDeleteCall struct {
154480	s                *Service
154481	project          string
154482	targetHttpsProxy string
154483	urlParams_       gensupport.URLParams
154484	ctx_             context.Context
154485	header_          http.Header
154486}
154487
154488// Delete: Deletes the specified TargetHttpsProxy resource.
154489//
154490// - project: Project ID for this request.
154491// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
154492func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
154493	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154494	c.project = project
154495	c.targetHttpsProxy = targetHttpsProxy
154496	return c
154497}
154498
154499// RequestId sets the optional parameter "requestId": An optional
154500// request ID to identify requests. Specify a unique request ID so that
154501// if you must retry your request, the server will know to ignore the
154502// request if it has already been completed. For example, consider a
154503// situation where you make an initial request and the request times
154504// out. If you make the request again with the same request ID, the
154505// server can check if original operation with the same request ID was
154506// received, and if so, will ignore the second request. This prevents
154507// clients from accidentally creating duplicate commitments. The request
154508// ID must be a valid UUID with the exception that zero UUID is not
154509// supported ( 00000000-0000-0000-0000-000000000000).
154510func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
154511	c.urlParams_.Set("requestId", requestId)
154512	return c
154513}
154514
154515// Fields allows partial responses to be retrieved. See
154516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154517// for more information.
154518func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
154519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154520	return c
154521}
154522
154523// Context sets the context to be used in this call's Do method. Any
154524// pending HTTP request will be aborted if the provided context is
154525// canceled.
154526func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
154527	c.ctx_ = ctx
154528	return c
154529}
154530
154531// Header returns an http.Header that can be modified by the caller to
154532// add HTTP headers to the request.
154533func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
154534	if c.header_ == nil {
154535		c.header_ = make(http.Header)
154536	}
154537	return c.header_
154538}
154539
154540func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
154541	reqHeaders := make(http.Header)
154542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
154543	for k, v := range c.header_ {
154544		reqHeaders[k] = v
154545	}
154546	reqHeaders.Set("User-Agent", c.s.userAgent())
154547	var body io.Reader = nil
154548	c.urlParams_.Set("alt", alt)
154549	c.urlParams_.Set("prettyPrint", "false")
154550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
154551	urls += "?" + c.urlParams_.Encode()
154552	req, err := http.NewRequest("DELETE", urls, body)
154553	if err != nil {
154554		return nil, err
154555	}
154556	req.Header = reqHeaders
154557	googleapi.Expand(req.URL, map[string]string{
154558		"project":          c.project,
154559		"targetHttpsProxy": c.targetHttpsProxy,
154560	})
154561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154562}
154563
154564// Do executes the "compute.targetHttpsProxies.delete" call.
154565// Exactly one of *Operation or error will be non-nil. Any non-2xx
154566// status code is an error. Response headers are in either
154567// *Operation.ServerResponse.Header or (if a response was returned at
154568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154569// to check whether the returned error was because
154570// http.StatusNotModified was returned.
154571func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154572	gensupport.SetOptions(c.urlParams_, opts...)
154573	res, err := c.doRequest("json")
154574	if res != nil && res.StatusCode == http.StatusNotModified {
154575		if res.Body != nil {
154576			res.Body.Close()
154577		}
154578		return nil, &googleapi.Error{
154579			Code:   res.StatusCode,
154580			Header: res.Header,
154581		}
154582	}
154583	if err != nil {
154584		return nil, err
154585	}
154586	defer googleapi.CloseBody(res)
154587	if err := googleapi.CheckResponse(res); err != nil {
154588		return nil, err
154589	}
154590	ret := &Operation{
154591		ServerResponse: googleapi.ServerResponse{
154592			Header:         res.Header,
154593			HTTPStatusCode: res.StatusCode,
154594		},
154595	}
154596	target := &ret
154597	if err := gensupport.DecodeResponse(target, res); err != nil {
154598		return nil, err
154599	}
154600	return ret, nil
154601	// {
154602	//   "description": "Deletes the specified TargetHttpsProxy resource.",
154603	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
154604	//   "httpMethod": "DELETE",
154605	//   "id": "compute.targetHttpsProxies.delete",
154606	//   "parameterOrder": [
154607	//     "project",
154608	//     "targetHttpsProxy"
154609	//   ],
154610	//   "parameters": {
154611	//     "project": {
154612	//       "description": "Project ID for this request.",
154613	//       "location": "path",
154614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154615	//       "required": true,
154616	//       "type": "string"
154617	//     },
154618	//     "requestId": {
154619	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
154620	//       "location": "query",
154621	//       "type": "string"
154622	//     },
154623	//     "targetHttpsProxy": {
154624	//       "description": "Name of the TargetHttpsProxy resource to delete.",
154625	//       "location": "path",
154626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154627	//       "required": true,
154628	//       "type": "string"
154629	//     }
154630	//   },
154631	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
154632	//   "response": {
154633	//     "$ref": "Operation"
154634	//   },
154635	//   "scopes": [
154636	//     "https://www.googleapis.com/auth/cloud-platform",
154637	//     "https://www.googleapis.com/auth/compute"
154638	//   ]
154639	// }
154640
154641}
154642
154643// method id "compute.targetHttpsProxies.get":
154644
154645type TargetHttpsProxiesGetCall struct {
154646	s                *Service
154647	project          string
154648	targetHttpsProxy string
154649	urlParams_       gensupport.URLParams
154650	ifNoneMatch_     string
154651	ctx_             context.Context
154652	header_          http.Header
154653}
154654
154655// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
154656// available target HTTPS proxies by making a list() request.
154657//
154658// - project: Project ID for this request.
154659// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
154660func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
154661	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154662	c.project = project
154663	c.targetHttpsProxy = targetHttpsProxy
154664	return c
154665}
154666
154667// Fields allows partial responses to be retrieved. See
154668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154669// for more information.
154670func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
154671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154672	return c
154673}
154674
154675// IfNoneMatch sets the optional parameter which makes the operation
154676// fail if the object's ETag matches the given value. This is useful for
154677// getting updates only after the object has changed since the last
154678// request. Use googleapi.IsNotModified to check whether the response
154679// error from Do is the result of In-None-Match.
154680func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
154681	c.ifNoneMatch_ = entityTag
154682	return c
154683}
154684
154685// Context sets the context to be used in this call's Do method. Any
154686// pending HTTP request will be aborted if the provided context is
154687// canceled.
154688func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
154689	c.ctx_ = ctx
154690	return c
154691}
154692
154693// Header returns an http.Header that can be modified by the caller to
154694// add HTTP headers to the request.
154695func (c *TargetHttpsProxiesGetCall) Header() http.Header {
154696	if c.header_ == nil {
154697		c.header_ = make(http.Header)
154698	}
154699	return c.header_
154700}
154701
154702func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
154703	reqHeaders := make(http.Header)
154704	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
154705	for k, v := range c.header_ {
154706		reqHeaders[k] = v
154707	}
154708	reqHeaders.Set("User-Agent", c.s.userAgent())
154709	if c.ifNoneMatch_ != "" {
154710		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154711	}
154712	var body io.Reader = nil
154713	c.urlParams_.Set("alt", alt)
154714	c.urlParams_.Set("prettyPrint", "false")
154715	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
154716	urls += "?" + c.urlParams_.Encode()
154717	req, err := http.NewRequest("GET", urls, body)
154718	if err != nil {
154719		return nil, err
154720	}
154721	req.Header = reqHeaders
154722	googleapi.Expand(req.URL, map[string]string{
154723		"project":          c.project,
154724		"targetHttpsProxy": c.targetHttpsProxy,
154725	})
154726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154727}
154728
154729// Do executes the "compute.targetHttpsProxies.get" call.
154730// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
154731// non-2xx status code is an error. Response headers are in either
154732// *TargetHttpsProxy.ServerResponse.Header or (if a response was
154733// returned at all) in error.(*googleapi.Error).Header. Use
154734// googleapi.IsNotModified to check whether the returned error was
154735// because http.StatusNotModified was returned.
154736func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
154737	gensupport.SetOptions(c.urlParams_, opts...)
154738	res, err := c.doRequest("json")
154739	if res != nil && res.StatusCode == http.StatusNotModified {
154740		if res.Body != nil {
154741			res.Body.Close()
154742		}
154743		return nil, &googleapi.Error{
154744			Code:   res.StatusCode,
154745			Header: res.Header,
154746		}
154747	}
154748	if err != nil {
154749		return nil, err
154750	}
154751	defer googleapi.CloseBody(res)
154752	if err := googleapi.CheckResponse(res); err != nil {
154753		return nil, err
154754	}
154755	ret := &TargetHttpsProxy{
154756		ServerResponse: googleapi.ServerResponse{
154757			Header:         res.Header,
154758			HTTPStatusCode: res.StatusCode,
154759		},
154760	}
154761	target := &ret
154762	if err := gensupport.DecodeResponse(target, res); err != nil {
154763		return nil, err
154764	}
154765	return ret, nil
154766	// {
154767	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
154768	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
154769	//   "httpMethod": "GET",
154770	//   "id": "compute.targetHttpsProxies.get",
154771	//   "parameterOrder": [
154772	//     "project",
154773	//     "targetHttpsProxy"
154774	//   ],
154775	//   "parameters": {
154776	//     "project": {
154777	//       "description": "Project ID for this request.",
154778	//       "location": "path",
154779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154780	//       "required": true,
154781	//       "type": "string"
154782	//     },
154783	//     "targetHttpsProxy": {
154784	//       "description": "Name of the TargetHttpsProxy resource to return.",
154785	//       "location": "path",
154786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154787	//       "required": true,
154788	//       "type": "string"
154789	//     }
154790	//   },
154791	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
154792	//   "response": {
154793	//     "$ref": "TargetHttpsProxy"
154794	//   },
154795	//   "scopes": [
154796	//     "https://www.googleapis.com/auth/cloud-platform",
154797	//     "https://www.googleapis.com/auth/compute",
154798	//     "https://www.googleapis.com/auth/compute.readonly"
154799	//   ]
154800	// }
154801
154802}
154803
154804// method id "compute.targetHttpsProxies.insert":
154805
154806type TargetHttpsProxiesInsertCall struct {
154807	s                *Service
154808	project          string
154809	targethttpsproxy *TargetHttpsProxy
154810	urlParams_       gensupport.URLParams
154811	ctx_             context.Context
154812	header_          http.Header
154813}
154814
154815// Insert: Creates a TargetHttpsProxy resource in the specified project
154816// using the data included in the request.
154817//
154818// - project: Project ID for this request.
154819func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
154820	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154821	c.project = project
154822	c.targethttpsproxy = targethttpsproxy
154823	return c
154824}
154825
154826// RequestId sets the optional parameter "requestId": An optional
154827// request ID to identify requests. Specify a unique request ID so that
154828// if you must retry your request, the server will know to ignore the
154829// request if it has already been completed. For example, consider a
154830// situation where you make an initial request and the request times
154831// out. If you make the request again with the same request ID, the
154832// server can check if original operation with the same request ID was
154833// received, and if so, will ignore the second request. This prevents
154834// clients from accidentally creating duplicate commitments. The request
154835// ID must be a valid UUID with the exception that zero UUID is not
154836// supported ( 00000000-0000-0000-0000-000000000000).
154837func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
154838	c.urlParams_.Set("requestId", requestId)
154839	return c
154840}
154841
154842// Fields allows partial responses to be retrieved. See
154843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154844// for more information.
154845func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
154846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154847	return c
154848}
154849
154850// Context sets the context to be used in this call's Do method. Any
154851// pending HTTP request will be aborted if the provided context is
154852// canceled.
154853func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
154854	c.ctx_ = ctx
154855	return c
154856}
154857
154858// Header returns an http.Header that can be modified by the caller to
154859// add HTTP headers to the request.
154860func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
154861	if c.header_ == nil {
154862		c.header_ = make(http.Header)
154863	}
154864	return c.header_
154865}
154866
154867func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
154868	reqHeaders := make(http.Header)
154869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
154870	for k, v := range c.header_ {
154871		reqHeaders[k] = v
154872	}
154873	reqHeaders.Set("User-Agent", c.s.userAgent())
154874	var body io.Reader = nil
154875	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
154876	if err != nil {
154877		return nil, err
154878	}
154879	reqHeaders.Set("Content-Type", "application/json")
154880	c.urlParams_.Set("alt", alt)
154881	c.urlParams_.Set("prettyPrint", "false")
154882	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
154883	urls += "?" + c.urlParams_.Encode()
154884	req, err := http.NewRequest("POST", urls, body)
154885	if err != nil {
154886		return nil, err
154887	}
154888	req.Header = reqHeaders
154889	googleapi.Expand(req.URL, map[string]string{
154890		"project": c.project,
154891	})
154892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154893}
154894
154895// Do executes the "compute.targetHttpsProxies.insert" call.
154896// Exactly one of *Operation or error will be non-nil. Any non-2xx
154897// status code is an error. Response headers are in either
154898// *Operation.ServerResponse.Header or (if a response was returned at
154899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154900// to check whether the returned error was because
154901// http.StatusNotModified was returned.
154902func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154903	gensupport.SetOptions(c.urlParams_, opts...)
154904	res, err := c.doRequest("json")
154905	if res != nil && res.StatusCode == http.StatusNotModified {
154906		if res.Body != nil {
154907			res.Body.Close()
154908		}
154909		return nil, &googleapi.Error{
154910			Code:   res.StatusCode,
154911			Header: res.Header,
154912		}
154913	}
154914	if err != nil {
154915		return nil, err
154916	}
154917	defer googleapi.CloseBody(res)
154918	if err := googleapi.CheckResponse(res); err != nil {
154919		return nil, err
154920	}
154921	ret := &Operation{
154922		ServerResponse: googleapi.ServerResponse{
154923			Header:         res.Header,
154924			HTTPStatusCode: res.StatusCode,
154925		},
154926	}
154927	target := &ret
154928	if err := gensupport.DecodeResponse(target, res); err != nil {
154929		return nil, err
154930	}
154931	return ret, nil
154932	// {
154933	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
154934	//   "flatPath": "projects/{project}/global/targetHttpsProxies",
154935	//   "httpMethod": "POST",
154936	//   "id": "compute.targetHttpsProxies.insert",
154937	//   "parameterOrder": [
154938	//     "project"
154939	//   ],
154940	//   "parameters": {
154941	//     "project": {
154942	//       "description": "Project ID for this request.",
154943	//       "location": "path",
154944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154945	//       "required": true,
154946	//       "type": "string"
154947	//     },
154948	//     "requestId": {
154949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
154950	//       "location": "query",
154951	//       "type": "string"
154952	//     }
154953	//   },
154954	//   "path": "projects/{project}/global/targetHttpsProxies",
154955	//   "request": {
154956	//     "$ref": "TargetHttpsProxy"
154957	//   },
154958	//   "response": {
154959	//     "$ref": "Operation"
154960	//   },
154961	//   "scopes": [
154962	//     "https://www.googleapis.com/auth/cloud-platform",
154963	//     "https://www.googleapis.com/auth/compute"
154964	//   ]
154965	// }
154966
154967}
154968
154969// method id "compute.targetHttpsProxies.list":
154970
154971type TargetHttpsProxiesListCall struct {
154972	s            *Service
154973	project      string
154974	urlParams_   gensupport.URLParams
154975	ifNoneMatch_ string
154976	ctx_         context.Context
154977	header_      http.Header
154978}
154979
154980// List: Retrieves the list of TargetHttpsProxy resources available to
154981// the specified project.
154982//
154983// - project: Project ID for this request.
154984func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
154985	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154986	c.project = project
154987	return c
154988}
154989
154990// Filter sets the optional parameter "filter": A filter expression that
154991// filters resources listed in the response. The expression must specify
154992// the field name, a comparison operator, and the value that you want to
154993// use for filtering. The value must be a string, a number, or a
154994// boolean. The comparison operator must be either `=`, `!=`, `>`, or
154995// `<`. For example, if you are filtering Compute Engine instances, you
154996// can exclude instances named `example-instance` by specifying `name !=
154997// example-instance`. You can also filter nested fields. For example,
154998// you could specify `scheduling.automaticRestart = false` to include
154999// instances only if they are not scheduled for automatic restarts. You
155000// can use filtering on nested fields to filter based on resource
155001// labels. To filter on multiple expressions, provide each separate
155002// expression within parentheses. For example: ```
155003// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
155004// ``` By default, each expression is an `AND` expression. However, you
155005// can include `AND` and `OR` expressions explicitly. For example: ```
155006// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
155007// AND (scheduling.automaticRestart = true) ```
155008func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
155009	c.urlParams_.Set("filter", filter)
155010	return c
155011}
155012
155013// MaxResults sets the optional parameter "maxResults": The maximum
155014// number of results per page that should be returned. If the number of
155015// available results is larger than `maxResults`, Compute Engine returns
155016// a `nextPageToken` that can be used to get the next page of results in
155017// subsequent list requests. Acceptable values are `0` to `500`,
155018// inclusive. (Default: `500`)
155019func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
155020	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155021	return c
155022}
155023
155024// OrderBy sets the optional parameter "orderBy": Sorts list results by
155025// a certain order. By default, results are returned in alphanumerical
155026// order based on the resource name. You can also sort results in
155027// descending order based on the creation timestamp using
155028// `orderBy="creationTimestamp desc". This sorts results based on the
155029// `creationTimestamp` field in reverse chronological order (newest
155030// result first). Use this to sort resources like operations so that the
155031// newest operation is returned first. Currently, only sorting by `name`
155032// or `creationTimestamp desc` is supported.
155033func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
155034	c.urlParams_.Set("orderBy", orderBy)
155035	return c
155036}
155037
155038// PageToken sets the optional parameter "pageToken": Specifies a page
155039// token to use. Set `pageToken` to the `nextPageToken` returned by a
155040// previous list request to get the next page of results.
155041func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
155042	c.urlParams_.Set("pageToken", pageToken)
155043	return c
155044}
155045
155046// ReturnPartialSuccess sets the optional parameter
155047// "returnPartialSuccess": Opt-in for partial success behavior which
155048// provides partial results in case of failure. The default value is
155049// false.
155050func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
155051	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155052	return c
155053}
155054
155055// Fields allows partial responses to be retrieved. See
155056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155057// for more information.
155058func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
155059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155060	return c
155061}
155062
155063// IfNoneMatch sets the optional parameter which makes the operation
155064// fail if the object's ETag matches the given value. This is useful for
155065// getting updates only after the object has changed since the last
155066// request. Use googleapi.IsNotModified to check whether the response
155067// error from Do is the result of In-None-Match.
155068func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
155069	c.ifNoneMatch_ = entityTag
155070	return c
155071}
155072
155073// Context sets the context to be used in this call's Do method. Any
155074// pending HTTP request will be aborted if the provided context is
155075// canceled.
155076func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
155077	c.ctx_ = ctx
155078	return c
155079}
155080
155081// Header returns an http.Header that can be modified by the caller to
155082// add HTTP headers to the request.
155083func (c *TargetHttpsProxiesListCall) Header() http.Header {
155084	if c.header_ == nil {
155085		c.header_ = make(http.Header)
155086	}
155087	return c.header_
155088}
155089
155090func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
155091	reqHeaders := make(http.Header)
155092	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
155093	for k, v := range c.header_ {
155094		reqHeaders[k] = v
155095	}
155096	reqHeaders.Set("User-Agent", c.s.userAgent())
155097	if c.ifNoneMatch_ != "" {
155098		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155099	}
155100	var body io.Reader = nil
155101	c.urlParams_.Set("alt", alt)
155102	c.urlParams_.Set("prettyPrint", "false")
155103	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
155104	urls += "?" + c.urlParams_.Encode()
155105	req, err := http.NewRequest("GET", urls, body)
155106	if err != nil {
155107		return nil, err
155108	}
155109	req.Header = reqHeaders
155110	googleapi.Expand(req.URL, map[string]string{
155111		"project": c.project,
155112	})
155113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155114}
155115
155116// Do executes the "compute.targetHttpsProxies.list" call.
155117// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
155118// non-2xx status code is an error. Response headers are in either
155119// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
155120// returned at all) in error.(*googleapi.Error).Header. Use
155121// googleapi.IsNotModified to check whether the returned error was
155122// because http.StatusNotModified was returned.
155123func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
155124	gensupport.SetOptions(c.urlParams_, opts...)
155125	res, err := c.doRequest("json")
155126	if res != nil && res.StatusCode == http.StatusNotModified {
155127		if res.Body != nil {
155128			res.Body.Close()
155129		}
155130		return nil, &googleapi.Error{
155131			Code:   res.StatusCode,
155132			Header: res.Header,
155133		}
155134	}
155135	if err != nil {
155136		return nil, err
155137	}
155138	defer googleapi.CloseBody(res)
155139	if err := googleapi.CheckResponse(res); err != nil {
155140		return nil, err
155141	}
155142	ret := &TargetHttpsProxyList{
155143		ServerResponse: googleapi.ServerResponse{
155144			Header:         res.Header,
155145			HTTPStatusCode: res.StatusCode,
155146		},
155147	}
155148	target := &ret
155149	if err := gensupport.DecodeResponse(target, res); err != nil {
155150		return nil, err
155151	}
155152	return ret, nil
155153	// {
155154	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
155155	//   "flatPath": "projects/{project}/global/targetHttpsProxies",
155156	//   "httpMethod": "GET",
155157	//   "id": "compute.targetHttpsProxies.list",
155158	//   "parameterOrder": [
155159	//     "project"
155160	//   ],
155161	//   "parameters": {
155162	//     "filter": {
155163	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155164	//       "location": "query",
155165	//       "type": "string"
155166	//     },
155167	//     "maxResults": {
155168	//       "default": "500",
155169	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155170	//       "format": "uint32",
155171	//       "location": "query",
155172	//       "minimum": "0",
155173	//       "type": "integer"
155174	//     },
155175	//     "orderBy": {
155176	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
155177	//       "location": "query",
155178	//       "type": "string"
155179	//     },
155180	//     "pageToken": {
155181	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155182	//       "location": "query",
155183	//       "type": "string"
155184	//     },
155185	//     "project": {
155186	//       "description": "Project ID for this request.",
155187	//       "location": "path",
155188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155189	//       "required": true,
155190	//       "type": "string"
155191	//     },
155192	//     "returnPartialSuccess": {
155193	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
155194	//       "location": "query",
155195	//       "type": "boolean"
155196	//     }
155197	//   },
155198	//   "path": "projects/{project}/global/targetHttpsProxies",
155199	//   "response": {
155200	//     "$ref": "TargetHttpsProxyList"
155201	//   },
155202	//   "scopes": [
155203	//     "https://www.googleapis.com/auth/cloud-platform",
155204	//     "https://www.googleapis.com/auth/compute",
155205	//     "https://www.googleapis.com/auth/compute.readonly"
155206	//   ]
155207	// }
155208
155209}
155210
155211// Pages invokes f for each page of results.
155212// A non-nil error returned from f will halt the iteration.
155213// The provided context supersedes any context provided to the Context method.
155214func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
155215	c.ctx_ = ctx
155216	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155217	for {
155218		x, err := c.Do()
155219		if err != nil {
155220			return err
155221		}
155222		if err := f(x); err != nil {
155223			return err
155224		}
155225		if x.NextPageToken == "" {
155226			return nil
155227		}
155228		c.PageToken(x.NextPageToken)
155229	}
155230}
155231
155232// method id "compute.targetHttpsProxies.patch":
155233
155234type TargetHttpsProxiesPatchCall struct {
155235	s                *Service
155236	project          string
155237	targetHttpsProxy string
155238	targethttpsproxy *TargetHttpsProxy
155239	urlParams_       gensupport.URLParams
155240	ctx_             context.Context
155241	header_          http.Header
155242}
155243
155244// Patch: Patches the specified TargetHttpsProxy resource with the data
155245// included in the request. This method supports PATCH semantics and
155246// uses JSON merge patch format and processing rules.
155247//
155248// - project: Project ID for this request.
155249// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch.
155250func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall {
155251	c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155252	c.project = project
155253	c.targetHttpsProxy = targetHttpsProxy
155254	c.targethttpsproxy = targethttpsproxy
155255	return c
155256}
155257
155258// RequestId sets the optional parameter "requestId": An optional
155259// request ID to identify requests. Specify a unique request ID so that
155260// if you must retry your request, the server will know to ignore the
155261// request if it has already been completed. For example, consider a
155262// situation where you make an initial request and the request times
155263// out. If you make the request again with the same request ID, the
155264// server can check if original operation with the same request ID was
155265// received, and if so, will ignore the second request. This prevents
155266// clients from accidentally creating duplicate commitments. The request
155267// ID must be a valid UUID with the exception that zero UUID is not
155268// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
155269// MixerMutationRequestBuilder
155270func (c *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall {
155271	c.urlParams_.Set("requestId", requestId)
155272	return c
155273}
155274
155275// Fields allows partial responses to be retrieved. See
155276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155277// for more information.
155278func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall {
155279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155280	return c
155281}
155282
155283// Context sets the context to be used in this call's Do method. Any
155284// pending HTTP request will be aborted if the provided context is
155285// canceled.
155286func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall {
155287	c.ctx_ = ctx
155288	return c
155289}
155290
155291// Header returns an http.Header that can be modified by the caller to
155292// add HTTP headers to the request.
155293func (c *TargetHttpsProxiesPatchCall) Header() http.Header {
155294	if c.header_ == nil {
155295		c.header_ = make(http.Header)
155296	}
155297	return c.header_
155298}
155299
155300func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
155301	reqHeaders := make(http.Header)
155302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
155303	for k, v := range c.header_ {
155304		reqHeaders[k] = v
155305	}
155306	reqHeaders.Set("User-Agent", c.s.userAgent())
155307	var body io.Reader = nil
155308	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
155309	if err != nil {
155310		return nil, err
155311	}
155312	reqHeaders.Set("Content-Type", "application/json")
155313	c.urlParams_.Set("alt", alt)
155314	c.urlParams_.Set("prettyPrint", "false")
155315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
155316	urls += "?" + c.urlParams_.Encode()
155317	req, err := http.NewRequest("PATCH", urls, body)
155318	if err != nil {
155319		return nil, err
155320	}
155321	req.Header = reqHeaders
155322	googleapi.Expand(req.URL, map[string]string{
155323		"project":          c.project,
155324		"targetHttpsProxy": c.targetHttpsProxy,
155325	})
155326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155327}
155328
155329// Do executes the "compute.targetHttpsProxies.patch" call.
155330// Exactly one of *Operation or error will be non-nil. Any non-2xx
155331// status code is an error. Response headers are in either
155332// *Operation.ServerResponse.Header or (if a response was returned at
155333// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155334// to check whether the returned error was because
155335// http.StatusNotModified was returned.
155336func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155337	gensupport.SetOptions(c.urlParams_, opts...)
155338	res, err := c.doRequest("json")
155339	if res != nil && res.StatusCode == http.StatusNotModified {
155340		if res.Body != nil {
155341			res.Body.Close()
155342		}
155343		return nil, &googleapi.Error{
155344			Code:   res.StatusCode,
155345			Header: res.Header,
155346		}
155347	}
155348	if err != nil {
155349		return nil, err
155350	}
155351	defer googleapi.CloseBody(res)
155352	if err := googleapi.CheckResponse(res); err != nil {
155353		return nil, err
155354	}
155355	ret := &Operation{
155356		ServerResponse: googleapi.ServerResponse{
155357			Header:         res.Header,
155358			HTTPStatusCode: res.StatusCode,
155359		},
155360	}
155361	target := &ret
155362	if err := gensupport.DecodeResponse(target, res); err != nil {
155363		return nil, err
155364	}
155365	return ret, nil
155366	// {
155367	//   "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.",
155368	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155369	//   "httpMethod": "PATCH",
155370	//   "id": "compute.targetHttpsProxies.patch",
155371	//   "parameterOrder": [
155372	//     "project",
155373	//     "targetHttpsProxy"
155374	//   ],
155375	//   "parameters": {
155376	//     "project": {
155377	//       "description": "Project ID for this request.",
155378	//       "location": "path",
155379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155380	//       "required": true,
155381	//       "type": "string"
155382	//     },
155383	//     "requestId": {
155384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder",
155385	//       "location": "query",
155386	//       "type": "string"
155387	//     },
155388	//     "targetHttpsProxy": {
155389	//       "description": "Name of the TargetHttpsProxy resource to patch.",
155390	//       "location": "path",
155391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155392	//       "required": true,
155393	//       "type": "string"
155394	//     }
155395	//   },
155396	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155397	//   "request": {
155398	//     "$ref": "TargetHttpsProxy"
155399	//   },
155400	//   "response": {
155401	//     "$ref": "Operation"
155402	//   },
155403	//   "scopes": [
155404	//     "https://www.googleapis.com/auth/cloud-platform",
155405	//     "https://www.googleapis.com/auth/compute"
155406	//   ]
155407	// }
155408
155409}
155410
155411// method id "compute.targetHttpsProxies.setQuicOverride":
155412
155413type TargetHttpsProxiesSetQuicOverrideCall struct {
155414	s                                        *Service
155415	project                                  string
155416	targetHttpsProxy                         string
155417	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
155418	urlParams_                               gensupport.URLParams
155419	ctx_                                     context.Context
155420	header_                                  http.Header
155421}
155422
155423// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
155424//
155425// - project: Project ID for this request.
155426// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the
155427//   QUIC override policy for. The name should conform to RFC1035.
155428func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
155429	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155430	c.project = project
155431	c.targetHttpsProxy = targetHttpsProxy
155432	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
155433	return c
155434}
155435
155436// RequestId sets the optional parameter "requestId": An optional
155437// request ID to identify requests. Specify a unique request ID so that
155438// if you must retry your request, the server will know to ignore the
155439// request if it has already been completed. For example, consider a
155440// situation where you make an initial request and the request times
155441// out. If you make the request again with the same request ID, the
155442// server can check if original operation with the same request ID was
155443// received, and if so, will ignore the second request. This prevents
155444// clients from accidentally creating duplicate commitments. The request
155445// ID must be a valid UUID with the exception that zero UUID is not
155446// supported ( 00000000-0000-0000-0000-000000000000).
155447func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
155448	c.urlParams_.Set("requestId", requestId)
155449	return c
155450}
155451
155452// Fields allows partial responses to be retrieved. See
155453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155454// for more information.
155455func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
155456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155457	return c
155458}
155459
155460// Context sets the context to be used in this call's Do method. Any
155461// pending HTTP request will be aborted if the provided context is
155462// canceled.
155463func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
155464	c.ctx_ = ctx
155465	return c
155466}
155467
155468// Header returns an http.Header that can be modified by the caller to
155469// add HTTP headers to the request.
155470func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
155471	if c.header_ == nil {
155472		c.header_ = make(http.Header)
155473	}
155474	return c.header_
155475}
155476
155477func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
155478	reqHeaders := make(http.Header)
155479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
155480	for k, v := range c.header_ {
155481		reqHeaders[k] = v
155482	}
155483	reqHeaders.Set("User-Agent", c.s.userAgent())
155484	var body io.Reader = nil
155485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
155486	if err != nil {
155487		return nil, err
155488	}
155489	reqHeaders.Set("Content-Type", "application/json")
155490	c.urlParams_.Set("alt", alt)
155491	c.urlParams_.Set("prettyPrint", "false")
155492	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
155493	urls += "?" + c.urlParams_.Encode()
155494	req, err := http.NewRequest("POST", urls, body)
155495	if err != nil {
155496		return nil, err
155497	}
155498	req.Header = reqHeaders
155499	googleapi.Expand(req.URL, map[string]string{
155500		"project":          c.project,
155501		"targetHttpsProxy": c.targetHttpsProxy,
155502	})
155503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155504}
155505
155506// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
155507// Exactly one of *Operation or error will be non-nil. Any non-2xx
155508// status code is an error. Response headers are in either
155509// *Operation.ServerResponse.Header or (if a response was returned at
155510// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155511// to check whether the returned error was because
155512// http.StatusNotModified was returned.
155513func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155514	gensupport.SetOptions(c.urlParams_, opts...)
155515	res, err := c.doRequest("json")
155516	if res != nil && res.StatusCode == http.StatusNotModified {
155517		if res.Body != nil {
155518			res.Body.Close()
155519		}
155520		return nil, &googleapi.Error{
155521			Code:   res.StatusCode,
155522			Header: res.Header,
155523		}
155524	}
155525	if err != nil {
155526		return nil, err
155527	}
155528	defer googleapi.CloseBody(res)
155529	if err := googleapi.CheckResponse(res); err != nil {
155530		return nil, err
155531	}
155532	ret := &Operation{
155533		ServerResponse: googleapi.ServerResponse{
155534			Header:         res.Header,
155535			HTTPStatusCode: res.StatusCode,
155536		},
155537	}
155538	target := &ret
155539	if err := gensupport.DecodeResponse(target, res); err != nil {
155540		return nil, err
155541	}
155542	return ret, nil
155543	// {
155544	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
155545	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
155546	//   "httpMethod": "POST",
155547	//   "id": "compute.targetHttpsProxies.setQuicOverride",
155548	//   "parameterOrder": [
155549	//     "project",
155550	//     "targetHttpsProxy"
155551	//   ],
155552	//   "parameters": {
155553	//     "project": {
155554	//       "description": "Project ID for this request.",
155555	//       "location": "path",
155556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155557	//       "required": true,
155558	//       "type": "string"
155559	//     },
155560	//     "requestId": {
155561	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155562	//       "location": "query",
155563	//       "type": "string"
155564	//     },
155565	//     "targetHttpsProxy": {
155566	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
155567	//       "location": "path",
155568	//       "required": true,
155569	//       "type": "string"
155570	//     }
155571	//   },
155572	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
155573	//   "request": {
155574	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
155575	//   },
155576	//   "response": {
155577	//     "$ref": "Operation"
155578	//   },
155579	//   "scopes": [
155580	//     "https://www.googleapis.com/auth/cloud-platform",
155581	//     "https://www.googleapis.com/auth/compute"
155582	//   ]
155583	// }
155584
155585}
155586
155587// method id "compute.targetHttpsProxies.setSslCertificates":
155588
155589type TargetHttpsProxiesSetSslCertificatesCall struct {
155590	s                                           *Service
155591	project                                     string
155592	targetHttpsProxy                            string
155593	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
155594	urlParams_                                  gensupport.URLParams
155595	ctx_                                        context.Context
155596	header_                                     http.Header
155597}
155598
155599// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
155600//
155601// - project: Project ID for this request.
155602// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
155603//   SslCertificates resource for.
155604func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
155605	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155606	c.project = project
155607	c.targetHttpsProxy = targetHttpsProxy
155608	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
155609	return c
155610}
155611
155612// RequestId sets the optional parameter "requestId": An optional
155613// request ID to identify requests. Specify a unique request ID so that
155614// if you must retry your request, the server will know to ignore the
155615// request if it has already been completed. For example, consider a
155616// situation where you make an initial request and the request times
155617// out. If you make the request again with the same request ID, the
155618// server can check if original operation with the same request ID was
155619// received, and if so, will ignore the second request. This prevents
155620// clients from accidentally creating duplicate commitments. The request
155621// ID must be a valid UUID with the exception that zero UUID is not
155622// supported ( 00000000-0000-0000-0000-000000000000).
155623func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
155624	c.urlParams_.Set("requestId", requestId)
155625	return c
155626}
155627
155628// Fields allows partial responses to be retrieved. See
155629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155630// for more information.
155631func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
155632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155633	return c
155634}
155635
155636// Context sets the context to be used in this call's Do method. Any
155637// pending HTTP request will be aborted if the provided context is
155638// canceled.
155639func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
155640	c.ctx_ = ctx
155641	return c
155642}
155643
155644// Header returns an http.Header that can be modified by the caller to
155645// add HTTP headers to the request.
155646func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
155647	if c.header_ == nil {
155648		c.header_ = make(http.Header)
155649	}
155650	return c.header_
155651}
155652
155653func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
155654	reqHeaders := make(http.Header)
155655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
155656	for k, v := range c.header_ {
155657		reqHeaders[k] = v
155658	}
155659	reqHeaders.Set("User-Agent", c.s.userAgent())
155660	var body io.Reader = nil
155661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
155662	if err != nil {
155663		return nil, err
155664	}
155665	reqHeaders.Set("Content-Type", "application/json")
155666	c.urlParams_.Set("alt", alt)
155667	c.urlParams_.Set("prettyPrint", "false")
155668	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
155669	urls += "?" + c.urlParams_.Encode()
155670	req, err := http.NewRequest("POST", urls, body)
155671	if err != nil {
155672		return nil, err
155673	}
155674	req.Header = reqHeaders
155675	googleapi.Expand(req.URL, map[string]string{
155676		"project":          c.project,
155677		"targetHttpsProxy": c.targetHttpsProxy,
155678	})
155679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155680}
155681
155682// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
155683// Exactly one of *Operation or error will be non-nil. Any non-2xx
155684// status code is an error. Response headers are in either
155685// *Operation.ServerResponse.Header or (if a response was returned at
155686// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155687// to check whether the returned error was because
155688// http.StatusNotModified was returned.
155689func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155690	gensupport.SetOptions(c.urlParams_, opts...)
155691	res, err := c.doRequest("json")
155692	if res != nil && res.StatusCode == http.StatusNotModified {
155693		if res.Body != nil {
155694			res.Body.Close()
155695		}
155696		return nil, &googleapi.Error{
155697			Code:   res.StatusCode,
155698			Header: res.Header,
155699		}
155700	}
155701	if err != nil {
155702		return nil, err
155703	}
155704	defer googleapi.CloseBody(res)
155705	if err := googleapi.CheckResponse(res); err != nil {
155706		return nil, err
155707	}
155708	ret := &Operation{
155709		ServerResponse: googleapi.ServerResponse{
155710			Header:         res.Header,
155711			HTTPStatusCode: res.StatusCode,
155712		},
155713	}
155714	target := &ret
155715	if err := gensupport.DecodeResponse(target, res); err != nil {
155716		return nil, err
155717	}
155718	return ret, nil
155719	// {
155720	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
155721	//   "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
155722	//   "httpMethod": "POST",
155723	//   "id": "compute.targetHttpsProxies.setSslCertificates",
155724	//   "parameterOrder": [
155725	//     "project",
155726	//     "targetHttpsProxy"
155727	//   ],
155728	//   "parameters": {
155729	//     "project": {
155730	//       "description": "Project ID for this request.",
155731	//       "location": "path",
155732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155733	//       "required": true,
155734	//       "type": "string"
155735	//     },
155736	//     "requestId": {
155737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155738	//       "location": "query",
155739	//       "type": "string"
155740	//     },
155741	//     "targetHttpsProxy": {
155742	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
155743	//       "location": "path",
155744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155745	//       "required": true,
155746	//       "type": "string"
155747	//     }
155748	//   },
155749	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
155750	//   "request": {
155751	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
155752	//   },
155753	//   "response": {
155754	//     "$ref": "Operation"
155755	//   },
155756	//   "scopes": [
155757	//     "https://www.googleapis.com/auth/cloud-platform",
155758	//     "https://www.googleapis.com/auth/compute"
155759	//   ]
155760	// }
155761
155762}
155763
155764// method id "compute.targetHttpsProxies.setSslPolicy":
155765
155766type TargetHttpsProxiesSetSslPolicyCall struct {
155767	s                  *Service
155768	project            string
155769	targetHttpsProxy   string
155770	sslpolicyreference *SslPolicyReference
155771	urlParams_         gensupport.URLParams
155772	ctx_               context.Context
155773	header_            http.Header
155774}
155775
155776// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
155777// policy specifies the server-side support for SSL features. This
155778// affects connections between clients and the HTTPS proxy load
155779// balancer. They do not affect the connection between the load balancer
155780// and the backends.
155781//
155782// - project: Project ID for this request.
155783// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL
155784//   policy is to be set. The name must be 1-63 characters long, and
155785//   comply with RFC1035.
155786func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
155787	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155788	c.project = project
155789	c.targetHttpsProxy = targetHttpsProxy
155790	c.sslpolicyreference = sslpolicyreference
155791	return c
155792}
155793
155794// RequestId sets the optional parameter "requestId": An optional
155795// request ID to identify requests. Specify a unique request ID so that
155796// if you must retry your request, the server will know to ignore the
155797// request if it has already been completed. For example, consider a
155798// situation where you make an initial request and the request times
155799// out. If you make the request again with the same request ID, the
155800// server can check if original operation with the same request ID was
155801// received, and if so, will ignore the second request. This prevents
155802// clients from accidentally creating duplicate commitments. The request
155803// ID must be a valid UUID with the exception that zero UUID is not
155804// supported ( 00000000-0000-0000-0000-000000000000).
155805func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
155806	c.urlParams_.Set("requestId", requestId)
155807	return c
155808}
155809
155810// Fields allows partial responses to be retrieved. See
155811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155812// for more information.
155813func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
155814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155815	return c
155816}
155817
155818// Context sets the context to be used in this call's Do method. Any
155819// pending HTTP request will be aborted if the provided context is
155820// canceled.
155821func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
155822	c.ctx_ = ctx
155823	return c
155824}
155825
155826// Header returns an http.Header that can be modified by the caller to
155827// add HTTP headers to the request.
155828func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
155829	if c.header_ == nil {
155830		c.header_ = make(http.Header)
155831	}
155832	return c.header_
155833}
155834
155835func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
155836	reqHeaders := make(http.Header)
155837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
155838	for k, v := range c.header_ {
155839		reqHeaders[k] = v
155840	}
155841	reqHeaders.Set("User-Agent", c.s.userAgent())
155842	var body io.Reader = nil
155843	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
155844	if err != nil {
155845		return nil, err
155846	}
155847	reqHeaders.Set("Content-Type", "application/json")
155848	c.urlParams_.Set("alt", alt)
155849	c.urlParams_.Set("prettyPrint", "false")
155850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
155851	urls += "?" + c.urlParams_.Encode()
155852	req, err := http.NewRequest("POST", urls, body)
155853	if err != nil {
155854		return nil, err
155855	}
155856	req.Header = reqHeaders
155857	googleapi.Expand(req.URL, map[string]string{
155858		"project":          c.project,
155859		"targetHttpsProxy": c.targetHttpsProxy,
155860	})
155861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155862}
155863
155864// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
155865// Exactly one of *Operation or error will be non-nil. Any non-2xx
155866// status code is an error. Response headers are in either
155867// *Operation.ServerResponse.Header or (if a response was returned at
155868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155869// to check whether the returned error was because
155870// http.StatusNotModified was returned.
155871func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155872	gensupport.SetOptions(c.urlParams_, opts...)
155873	res, err := c.doRequest("json")
155874	if res != nil && res.StatusCode == http.StatusNotModified {
155875		if res.Body != nil {
155876			res.Body.Close()
155877		}
155878		return nil, &googleapi.Error{
155879			Code:   res.StatusCode,
155880			Header: res.Header,
155881		}
155882	}
155883	if err != nil {
155884		return nil, err
155885	}
155886	defer googleapi.CloseBody(res)
155887	if err := googleapi.CheckResponse(res); err != nil {
155888		return nil, err
155889	}
155890	ret := &Operation{
155891		ServerResponse: googleapi.ServerResponse{
155892			Header:         res.Header,
155893			HTTPStatusCode: res.StatusCode,
155894		},
155895	}
155896	target := &ret
155897	if err := gensupport.DecodeResponse(target, res); err != nil {
155898		return nil, err
155899	}
155900	return ret, nil
155901	// {
155902	//   "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.",
155903	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
155904	//   "httpMethod": "POST",
155905	//   "id": "compute.targetHttpsProxies.setSslPolicy",
155906	//   "parameterOrder": [
155907	//     "project",
155908	//     "targetHttpsProxy"
155909	//   ],
155910	//   "parameters": {
155911	//     "project": {
155912	//       "description": "Project ID for this request.",
155913	//       "location": "path",
155914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155915	//       "required": true,
155916	//       "type": "string"
155917	//     },
155918	//     "requestId": {
155919	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155920	//       "location": "query",
155921	//       "type": "string"
155922	//     },
155923	//     "targetHttpsProxy": {
155924	//       "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.",
155925	//       "location": "path",
155926	//       "required": true,
155927	//       "type": "string"
155928	//     }
155929	//   },
155930	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
155931	//   "request": {
155932	//     "$ref": "SslPolicyReference"
155933	//   },
155934	//   "response": {
155935	//     "$ref": "Operation"
155936	//   },
155937	//   "scopes": [
155938	//     "https://www.googleapis.com/auth/cloud-platform",
155939	//     "https://www.googleapis.com/auth/compute"
155940	//   ]
155941	// }
155942
155943}
155944
155945// method id "compute.targetHttpsProxies.setUrlMap":
155946
155947type TargetHttpsProxiesSetUrlMapCall struct {
155948	s                *Service
155949	project          string
155950	targetHttpsProxy string
155951	urlmapreference  *UrlMapReference
155952	urlParams_       gensupport.URLParams
155953	ctx_             context.Context
155954	header_          http.Header
155955}
155956
155957// SetUrlMap: Changes the URL map for TargetHttpsProxy.
155958//
155959// - project: Project ID for this request.
155960// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL
155961//   map is to be set.
155962func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
155963	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155964	c.project = project
155965	c.targetHttpsProxy = targetHttpsProxy
155966	c.urlmapreference = urlmapreference
155967	return c
155968}
155969
155970// RequestId sets the optional parameter "requestId": An optional
155971// request ID to identify requests. Specify a unique request ID so that
155972// if you must retry your request, the server will know to ignore the
155973// request if it has already been completed. For example, consider a
155974// situation where you make an initial request and the request times
155975// out. If you make the request again with the same request ID, the
155976// server can check if original operation with the same request ID was
155977// received, and if so, will ignore the second request. This prevents
155978// clients from accidentally creating duplicate commitments. The request
155979// ID must be a valid UUID with the exception that zero UUID is not
155980// supported ( 00000000-0000-0000-0000-000000000000).
155981func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
155982	c.urlParams_.Set("requestId", requestId)
155983	return c
155984}
155985
155986// Fields allows partial responses to be retrieved. See
155987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155988// for more information.
155989func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
155990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155991	return c
155992}
155993
155994// Context sets the context to be used in this call's Do method. Any
155995// pending HTTP request will be aborted if the provided context is
155996// canceled.
155997func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
155998	c.ctx_ = ctx
155999	return c
156000}
156001
156002// Header returns an http.Header that can be modified by the caller to
156003// add HTTP headers to the request.
156004func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
156005	if c.header_ == nil {
156006		c.header_ = make(http.Header)
156007	}
156008	return c.header_
156009}
156010
156011func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
156012	reqHeaders := make(http.Header)
156013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
156014	for k, v := range c.header_ {
156015		reqHeaders[k] = v
156016	}
156017	reqHeaders.Set("User-Agent", c.s.userAgent())
156018	var body io.Reader = nil
156019	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
156020	if err != nil {
156021		return nil, err
156022	}
156023	reqHeaders.Set("Content-Type", "application/json")
156024	c.urlParams_.Set("alt", alt)
156025	c.urlParams_.Set("prettyPrint", "false")
156026	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
156027	urls += "?" + c.urlParams_.Encode()
156028	req, err := http.NewRequest("POST", urls, body)
156029	if err != nil {
156030		return nil, err
156031	}
156032	req.Header = reqHeaders
156033	googleapi.Expand(req.URL, map[string]string{
156034		"project":          c.project,
156035		"targetHttpsProxy": c.targetHttpsProxy,
156036	})
156037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156038}
156039
156040// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
156041// Exactly one of *Operation or error will be non-nil. Any non-2xx
156042// status code is an error. Response headers are in either
156043// *Operation.ServerResponse.Header or (if a response was returned at
156044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156045// to check whether the returned error was because
156046// http.StatusNotModified was returned.
156047func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156048	gensupport.SetOptions(c.urlParams_, opts...)
156049	res, err := c.doRequest("json")
156050	if res != nil && res.StatusCode == http.StatusNotModified {
156051		if res.Body != nil {
156052			res.Body.Close()
156053		}
156054		return nil, &googleapi.Error{
156055			Code:   res.StatusCode,
156056			Header: res.Header,
156057		}
156058	}
156059	if err != nil {
156060		return nil, err
156061	}
156062	defer googleapi.CloseBody(res)
156063	if err := googleapi.CheckResponse(res); err != nil {
156064		return nil, err
156065	}
156066	ret := &Operation{
156067		ServerResponse: googleapi.ServerResponse{
156068			Header:         res.Header,
156069			HTTPStatusCode: res.StatusCode,
156070		},
156071	}
156072	target := &ret
156073	if err := gensupport.DecodeResponse(target, res); err != nil {
156074		return nil, err
156075	}
156076	return ret, nil
156077	// {
156078	//   "description": "Changes the URL map for TargetHttpsProxy.",
156079	//   "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
156080	//   "httpMethod": "POST",
156081	//   "id": "compute.targetHttpsProxies.setUrlMap",
156082	//   "parameterOrder": [
156083	//     "project",
156084	//     "targetHttpsProxy"
156085	//   ],
156086	//   "parameters": {
156087	//     "project": {
156088	//       "description": "Project ID for this request.",
156089	//       "location": "path",
156090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156091	//       "required": true,
156092	//       "type": "string"
156093	//     },
156094	//     "requestId": {
156095	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156096	//       "location": "query",
156097	//       "type": "string"
156098	//     },
156099	//     "targetHttpsProxy": {
156100	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
156101	//       "location": "path",
156102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156103	//       "required": true,
156104	//       "type": "string"
156105	//     }
156106	//   },
156107	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
156108	//   "request": {
156109	//     "$ref": "UrlMapReference"
156110	//   },
156111	//   "response": {
156112	//     "$ref": "Operation"
156113	//   },
156114	//   "scopes": [
156115	//     "https://www.googleapis.com/auth/cloud-platform",
156116	//     "https://www.googleapis.com/auth/compute"
156117	//   ]
156118	// }
156119
156120}
156121
156122// method id "compute.targetInstances.aggregatedList":
156123
156124type TargetInstancesAggregatedListCall struct {
156125	s            *Service
156126	project      string
156127	urlParams_   gensupport.URLParams
156128	ifNoneMatch_ string
156129	ctx_         context.Context
156130	header_      http.Header
156131}
156132
156133// AggregatedList: Retrieves an aggregated list of target instances.
156134//
156135// - project: Project ID for this request.
156136func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
156137	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156138	c.project = project
156139	return c
156140}
156141
156142// Filter sets the optional parameter "filter": A filter expression that
156143// filters resources listed in the response. The expression must specify
156144// the field name, a comparison operator, and the value that you want to
156145// use for filtering. The value must be a string, a number, or a
156146// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156147// `<`. For example, if you are filtering Compute Engine instances, you
156148// can exclude instances named `example-instance` by specifying `name !=
156149// example-instance`. You can also filter nested fields. For example,
156150// you could specify `scheduling.automaticRestart = false` to include
156151// instances only if they are not scheduled for automatic restarts. You
156152// can use filtering on nested fields to filter based on resource
156153// labels. To filter on multiple expressions, provide each separate
156154// expression within parentheses. For example: ```
156155// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
156156// ``` By default, each expression is an `AND` expression. However, you
156157// can include `AND` and `OR` expressions explicitly. For example: ```
156158// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
156159// AND (scheduling.automaticRestart = true) ```
156160func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
156161	c.urlParams_.Set("filter", filter)
156162	return c
156163}
156164
156165// IncludeAllScopes sets the optional parameter "includeAllScopes":
156166// Indicates whether every visible scope for each scope type (zone,
156167// region, global) should be included in the response. For new resource
156168// types added after this field, the flag has no effect as new resource
156169// types will always include every visible scope for each scope type in
156170// response. For resource types which predate this field, if this flag
156171// is omitted or false, only scopes of the scope types where the
156172// resource type is expected to be found will be included.
156173func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
156174	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
156175	return c
156176}
156177
156178// MaxResults sets the optional parameter "maxResults": The maximum
156179// number of results per page that should be returned. If the number of
156180// available results is larger than `maxResults`, Compute Engine returns
156181// a `nextPageToken` that can be used to get the next page of results in
156182// subsequent list requests. Acceptable values are `0` to `500`,
156183// inclusive. (Default: `500`)
156184func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
156185	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156186	return c
156187}
156188
156189// OrderBy sets the optional parameter "orderBy": Sorts list results by
156190// a certain order. By default, results are returned in alphanumerical
156191// order based on the resource name. You can also sort results in
156192// descending order based on the creation timestamp using
156193// `orderBy="creationTimestamp desc". This sorts results based on the
156194// `creationTimestamp` field in reverse chronological order (newest
156195// result first). Use this to sort resources like operations so that the
156196// newest operation is returned first. Currently, only sorting by `name`
156197// or `creationTimestamp desc` is supported.
156198func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
156199	c.urlParams_.Set("orderBy", orderBy)
156200	return c
156201}
156202
156203// PageToken sets the optional parameter "pageToken": Specifies a page
156204// token to use. Set `pageToken` to the `nextPageToken` returned by a
156205// previous list request to get the next page of results.
156206func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
156207	c.urlParams_.Set("pageToken", pageToken)
156208	return c
156209}
156210
156211// ReturnPartialSuccess sets the optional parameter
156212// "returnPartialSuccess": Opt-in for partial success behavior which
156213// provides partial results in case of failure. The default value is
156214// false.
156215func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
156216	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156217	return c
156218}
156219
156220// Fields allows partial responses to be retrieved. See
156221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156222// for more information.
156223func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
156224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156225	return c
156226}
156227
156228// IfNoneMatch sets the optional parameter which makes the operation
156229// fail if the object's ETag matches the given value. This is useful for
156230// getting updates only after the object has changed since the last
156231// request. Use googleapi.IsNotModified to check whether the response
156232// error from Do is the result of In-None-Match.
156233func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
156234	c.ifNoneMatch_ = entityTag
156235	return c
156236}
156237
156238// Context sets the context to be used in this call's Do method. Any
156239// pending HTTP request will be aborted if the provided context is
156240// canceled.
156241func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
156242	c.ctx_ = ctx
156243	return c
156244}
156245
156246// Header returns an http.Header that can be modified by the caller to
156247// add HTTP headers to the request.
156248func (c *TargetInstancesAggregatedListCall) Header() http.Header {
156249	if c.header_ == nil {
156250		c.header_ = make(http.Header)
156251	}
156252	return c.header_
156253}
156254
156255func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
156256	reqHeaders := make(http.Header)
156257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
156258	for k, v := range c.header_ {
156259		reqHeaders[k] = v
156260	}
156261	reqHeaders.Set("User-Agent", c.s.userAgent())
156262	if c.ifNoneMatch_ != "" {
156263		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156264	}
156265	var body io.Reader = nil
156266	c.urlParams_.Set("alt", alt)
156267	c.urlParams_.Set("prettyPrint", "false")
156268	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances")
156269	urls += "?" + c.urlParams_.Encode()
156270	req, err := http.NewRequest("GET", urls, body)
156271	if err != nil {
156272		return nil, err
156273	}
156274	req.Header = reqHeaders
156275	googleapi.Expand(req.URL, map[string]string{
156276		"project": c.project,
156277	})
156278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156279}
156280
156281// Do executes the "compute.targetInstances.aggregatedList" call.
156282// Exactly one of *TargetInstanceAggregatedList or error will be
156283// non-nil. Any non-2xx status code is an error. Response headers are in
156284// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
156285// response was returned at all) in error.(*googleapi.Error).Header. Use
156286// googleapi.IsNotModified to check whether the returned error was
156287// because http.StatusNotModified was returned.
156288func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
156289	gensupport.SetOptions(c.urlParams_, opts...)
156290	res, err := c.doRequest("json")
156291	if res != nil && res.StatusCode == http.StatusNotModified {
156292		if res.Body != nil {
156293			res.Body.Close()
156294		}
156295		return nil, &googleapi.Error{
156296			Code:   res.StatusCode,
156297			Header: res.Header,
156298		}
156299	}
156300	if err != nil {
156301		return nil, err
156302	}
156303	defer googleapi.CloseBody(res)
156304	if err := googleapi.CheckResponse(res); err != nil {
156305		return nil, err
156306	}
156307	ret := &TargetInstanceAggregatedList{
156308		ServerResponse: googleapi.ServerResponse{
156309			Header:         res.Header,
156310			HTTPStatusCode: res.StatusCode,
156311		},
156312	}
156313	target := &ret
156314	if err := gensupport.DecodeResponse(target, res); err != nil {
156315		return nil, err
156316	}
156317	return ret, nil
156318	// {
156319	//   "description": "Retrieves an aggregated list of target instances.",
156320	//   "flatPath": "projects/{project}/aggregated/targetInstances",
156321	//   "httpMethod": "GET",
156322	//   "id": "compute.targetInstances.aggregatedList",
156323	//   "parameterOrder": [
156324	//     "project"
156325	//   ],
156326	//   "parameters": {
156327	//     "filter": {
156328	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
156329	//       "location": "query",
156330	//       "type": "string"
156331	//     },
156332	//     "includeAllScopes": {
156333	//       "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.",
156334	//       "location": "query",
156335	//       "type": "boolean"
156336	//     },
156337	//     "maxResults": {
156338	//       "default": "500",
156339	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156340	//       "format": "uint32",
156341	//       "location": "query",
156342	//       "minimum": "0",
156343	//       "type": "integer"
156344	//     },
156345	//     "orderBy": {
156346	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
156347	//       "location": "query",
156348	//       "type": "string"
156349	//     },
156350	//     "pageToken": {
156351	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156352	//       "location": "query",
156353	//       "type": "string"
156354	//     },
156355	//     "project": {
156356	//       "description": "Project ID for this request.",
156357	//       "location": "path",
156358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156359	//       "required": true,
156360	//       "type": "string"
156361	//     },
156362	//     "returnPartialSuccess": {
156363	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
156364	//       "location": "query",
156365	//       "type": "boolean"
156366	//     }
156367	//   },
156368	//   "path": "projects/{project}/aggregated/targetInstances",
156369	//   "response": {
156370	//     "$ref": "TargetInstanceAggregatedList"
156371	//   },
156372	//   "scopes": [
156373	//     "https://www.googleapis.com/auth/cloud-platform",
156374	//     "https://www.googleapis.com/auth/compute",
156375	//     "https://www.googleapis.com/auth/compute.readonly"
156376	//   ]
156377	// }
156378
156379}
156380
156381// Pages invokes f for each page of results.
156382// A non-nil error returned from f will halt the iteration.
156383// The provided context supersedes any context provided to the Context method.
156384func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
156385	c.ctx_ = ctx
156386	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156387	for {
156388		x, err := c.Do()
156389		if err != nil {
156390			return err
156391		}
156392		if err := f(x); err != nil {
156393			return err
156394		}
156395		if x.NextPageToken == "" {
156396			return nil
156397		}
156398		c.PageToken(x.NextPageToken)
156399	}
156400}
156401
156402// method id "compute.targetInstances.delete":
156403
156404type TargetInstancesDeleteCall struct {
156405	s              *Service
156406	project        string
156407	zone           string
156408	targetInstance string
156409	urlParams_     gensupport.URLParams
156410	ctx_           context.Context
156411	header_        http.Header
156412}
156413
156414// Delete: Deletes the specified TargetInstance resource.
156415//
156416// - project: Project ID for this request.
156417// - targetInstance: Name of the TargetInstance resource to delete.
156418// - zone: Name of the zone scoping this request.
156419func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
156420	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156421	c.project = project
156422	c.zone = zone
156423	c.targetInstance = targetInstance
156424	return c
156425}
156426
156427// RequestId sets the optional parameter "requestId": An optional
156428// request ID to identify requests. Specify a unique request ID so that
156429// if you must retry your request, the server will know to ignore the
156430// request if it has already been completed. For example, consider a
156431// situation where you make an initial request and the request times
156432// out. If you make the request again with the same request ID, the
156433// server can check if original operation with the same request ID was
156434// received, and if so, will ignore the second request. This prevents
156435// clients from accidentally creating duplicate commitments. The request
156436// ID must be a valid UUID with the exception that zero UUID is not
156437// supported ( 00000000-0000-0000-0000-000000000000).
156438func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
156439	c.urlParams_.Set("requestId", requestId)
156440	return c
156441}
156442
156443// Fields allows partial responses to be retrieved. See
156444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156445// for more information.
156446func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
156447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156448	return c
156449}
156450
156451// Context sets the context to be used in this call's Do method. Any
156452// pending HTTP request will be aborted if the provided context is
156453// canceled.
156454func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
156455	c.ctx_ = ctx
156456	return c
156457}
156458
156459// Header returns an http.Header that can be modified by the caller to
156460// add HTTP headers to the request.
156461func (c *TargetInstancesDeleteCall) Header() http.Header {
156462	if c.header_ == nil {
156463		c.header_ = make(http.Header)
156464	}
156465	return c.header_
156466}
156467
156468func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
156469	reqHeaders := make(http.Header)
156470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
156471	for k, v := range c.header_ {
156472		reqHeaders[k] = v
156473	}
156474	reqHeaders.Set("User-Agent", c.s.userAgent())
156475	var body io.Reader = nil
156476	c.urlParams_.Set("alt", alt)
156477	c.urlParams_.Set("prettyPrint", "false")
156478	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
156479	urls += "?" + c.urlParams_.Encode()
156480	req, err := http.NewRequest("DELETE", urls, body)
156481	if err != nil {
156482		return nil, err
156483	}
156484	req.Header = reqHeaders
156485	googleapi.Expand(req.URL, map[string]string{
156486		"project":        c.project,
156487		"zone":           c.zone,
156488		"targetInstance": c.targetInstance,
156489	})
156490	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156491}
156492
156493// Do executes the "compute.targetInstances.delete" call.
156494// Exactly one of *Operation or error will be non-nil. Any non-2xx
156495// status code is an error. Response headers are in either
156496// *Operation.ServerResponse.Header or (if a response was returned at
156497// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156498// to check whether the returned error was because
156499// http.StatusNotModified was returned.
156500func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156501	gensupport.SetOptions(c.urlParams_, opts...)
156502	res, err := c.doRequest("json")
156503	if res != nil && res.StatusCode == http.StatusNotModified {
156504		if res.Body != nil {
156505			res.Body.Close()
156506		}
156507		return nil, &googleapi.Error{
156508			Code:   res.StatusCode,
156509			Header: res.Header,
156510		}
156511	}
156512	if err != nil {
156513		return nil, err
156514	}
156515	defer googleapi.CloseBody(res)
156516	if err := googleapi.CheckResponse(res); err != nil {
156517		return nil, err
156518	}
156519	ret := &Operation{
156520		ServerResponse: googleapi.ServerResponse{
156521			Header:         res.Header,
156522			HTTPStatusCode: res.StatusCode,
156523		},
156524	}
156525	target := &ret
156526	if err := gensupport.DecodeResponse(target, res); err != nil {
156527		return nil, err
156528	}
156529	return ret, nil
156530	// {
156531	//   "description": "Deletes the specified TargetInstance resource.",
156532	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156533	//   "httpMethod": "DELETE",
156534	//   "id": "compute.targetInstances.delete",
156535	//   "parameterOrder": [
156536	//     "project",
156537	//     "zone",
156538	//     "targetInstance"
156539	//   ],
156540	//   "parameters": {
156541	//     "project": {
156542	//       "description": "Project ID for this request.",
156543	//       "location": "path",
156544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156545	//       "required": true,
156546	//       "type": "string"
156547	//     },
156548	//     "requestId": {
156549	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156550	//       "location": "query",
156551	//       "type": "string"
156552	//     },
156553	//     "targetInstance": {
156554	//       "description": "Name of the TargetInstance resource to delete.",
156555	//       "location": "path",
156556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156557	//       "required": true,
156558	//       "type": "string"
156559	//     },
156560	//     "zone": {
156561	//       "description": "Name of the zone scoping this request.",
156562	//       "location": "path",
156563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156564	//       "required": true,
156565	//       "type": "string"
156566	//     }
156567	//   },
156568	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156569	//   "response": {
156570	//     "$ref": "Operation"
156571	//   },
156572	//   "scopes": [
156573	//     "https://www.googleapis.com/auth/cloud-platform",
156574	//     "https://www.googleapis.com/auth/compute"
156575	//   ]
156576	// }
156577
156578}
156579
156580// method id "compute.targetInstances.get":
156581
156582type TargetInstancesGetCall struct {
156583	s              *Service
156584	project        string
156585	zone           string
156586	targetInstance string
156587	urlParams_     gensupport.URLParams
156588	ifNoneMatch_   string
156589	ctx_           context.Context
156590	header_        http.Header
156591}
156592
156593// Get: Returns the specified TargetInstance resource. Gets a list of
156594// available target instances by making a list() request.
156595//
156596// - project: Project ID for this request.
156597// - targetInstance: Name of the TargetInstance resource to return.
156598// - zone: Name of the zone scoping this request.
156599func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
156600	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156601	c.project = project
156602	c.zone = zone
156603	c.targetInstance = targetInstance
156604	return c
156605}
156606
156607// Fields allows partial responses to be retrieved. See
156608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156609// for more information.
156610func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
156611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156612	return c
156613}
156614
156615// IfNoneMatch sets the optional parameter which makes the operation
156616// fail if the object's ETag matches the given value. This is useful for
156617// getting updates only after the object has changed since the last
156618// request. Use googleapi.IsNotModified to check whether the response
156619// error from Do is the result of In-None-Match.
156620func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
156621	c.ifNoneMatch_ = entityTag
156622	return c
156623}
156624
156625// Context sets the context to be used in this call's Do method. Any
156626// pending HTTP request will be aborted if the provided context is
156627// canceled.
156628func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
156629	c.ctx_ = ctx
156630	return c
156631}
156632
156633// Header returns an http.Header that can be modified by the caller to
156634// add HTTP headers to the request.
156635func (c *TargetInstancesGetCall) Header() http.Header {
156636	if c.header_ == nil {
156637		c.header_ = make(http.Header)
156638	}
156639	return c.header_
156640}
156641
156642func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
156643	reqHeaders := make(http.Header)
156644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
156645	for k, v := range c.header_ {
156646		reqHeaders[k] = v
156647	}
156648	reqHeaders.Set("User-Agent", c.s.userAgent())
156649	if c.ifNoneMatch_ != "" {
156650		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156651	}
156652	var body io.Reader = nil
156653	c.urlParams_.Set("alt", alt)
156654	c.urlParams_.Set("prettyPrint", "false")
156655	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
156656	urls += "?" + c.urlParams_.Encode()
156657	req, err := http.NewRequest("GET", urls, body)
156658	if err != nil {
156659		return nil, err
156660	}
156661	req.Header = reqHeaders
156662	googleapi.Expand(req.URL, map[string]string{
156663		"project":        c.project,
156664		"zone":           c.zone,
156665		"targetInstance": c.targetInstance,
156666	})
156667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156668}
156669
156670// Do executes the "compute.targetInstances.get" call.
156671// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
156672// status code is an error. Response headers are in either
156673// *TargetInstance.ServerResponse.Header or (if a response was returned
156674// at all) in error.(*googleapi.Error).Header. Use
156675// googleapi.IsNotModified to check whether the returned error was
156676// because http.StatusNotModified was returned.
156677func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
156678	gensupport.SetOptions(c.urlParams_, opts...)
156679	res, err := c.doRequest("json")
156680	if res != nil && res.StatusCode == http.StatusNotModified {
156681		if res.Body != nil {
156682			res.Body.Close()
156683		}
156684		return nil, &googleapi.Error{
156685			Code:   res.StatusCode,
156686			Header: res.Header,
156687		}
156688	}
156689	if err != nil {
156690		return nil, err
156691	}
156692	defer googleapi.CloseBody(res)
156693	if err := googleapi.CheckResponse(res); err != nil {
156694		return nil, err
156695	}
156696	ret := &TargetInstance{
156697		ServerResponse: googleapi.ServerResponse{
156698			Header:         res.Header,
156699			HTTPStatusCode: res.StatusCode,
156700		},
156701	}
156702	target := &ret
156703	if err := gensupport.DecodeResponse(target, res); err != nil {
156704		return nil, err
156705	}
156706	return ret, nil
156707	// {
156708	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
156709	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156710	//   "httpMethod": "GET",
156711	//   "id": "compute.targetInstances.get",
156712	//   "parameterOrder": [
156713	//     "project",
156714	//     "zone",
156715	//     "targetInstance"
156716	//   ],
156717	//   "parameters": {
156718	//     "project": {
156719	//       "description": "Project ID for this request.",
156720	//       "location": "path",
156721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156722	//       "required": true,
156723	//       "type": "string"
156724	//     },
156725	//     "targetInstance": {
156726	//       "description": "Name of the TargetInstance resource to return.",
156727	//       "location": "path",
156728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156729	//       "required": true,
156730	//       "type": "string"
156731	//     },
156732	//     "zone": {
156733	//       "description": "Name of the zone scoping this request.",
156734	//       "location": "path",
156735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156736	//       "required": true,
156737	//       "type": "string"
156738	//     }
156739	//   },
156740	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156741	//   "response": {
156742	//     "$ref": "TargetInstance"
156743	//   },
156744	//   "scopes": [
156745	//     "https://www.googleapis.com/auth/cloud-platform",
156746	//     "https://www.googleapis.com/auth/compute",
156747	//     "https://www.googleapis.com/auth/compute.readonly"
156748	//   ]
156749	// }
156750
156751}
156752
156753// method id "compute.targetInstances.insert":
156754
156755type TargetInstancesInsertCall struct {
156756	s              *Service
156757	project        string
156758	zone           string
156759	targetinstance *TargetInstance
156760	urlParams_     gensupport.URLParams
156761	ctx_           context.Context
156762	header_        http.Header
156763}
156764
156765// Insert: Creates a TargetInstance resource in the specified project
156766// and zone using the data included in the request.
156767//
156768// - project: Project ID for this request.
156769// - zone: Name of the zone scoping this request.
156770func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
156771	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156772	c.project = project
156773	c.zone = zone
156774	c.targetinstance = targetinstance
156775	return c
156776}
156777
156778// RequestId sets the optional parameter "requestId": An optional
156779// request ID to identify requests. Specify a unique request ID so that
156780// if you must retry your request, the server will know to ignore the
156781// request if it has already been completed. For example, consider a
156782// situation where you make an initial request and the request times
156783// out. If you make the request again with the same request ID, the
156784// server can check if original operation with the same request ID was
156785// received, and if so, will ignore the second request. This prevents
156786// clients from accidentally creating duplicate commitments. The request
156787// ID must be a valid UUID with the exception that zero UUID is not
156788// supported ( 00000000-0000-0000-0000-000000000000).
156789func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
156790	c.urlParams_.Set("requestId", requestId)
156791	return c
156792}
156793
156794// Fields allows partial responses to be retrieved. See
156795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156796// for more information.
156797func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
156798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156799	return c
156800}
156801
156802// Context sets the context to be used in this call's Do method. Any
156803// pending HTTP request will be aborted if the provided context is
156804// canceled.
156805func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
156806	c.ctx_ = ctx
156807	return c
156808}
156809
156810// Header returns an http.Header that can be modified by the caller to
156811// add HTTP headers to the request.
156812func (c *TargetInstancesInsertCall) Header() http.Header {
156813	if c.header_ == nil {
156814		c.header_ = make(http.Header)
156815	}
156816	return c.header_
156817}
156818
156819func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
156820	reqHeaders := make(http.Header)
156821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
156822	for k, v := range c.header_ {
156823		reqHeaders[k] = v
156824	}
156825	reqHeaders.Set("User-Agent", c.s.userAgent())
156826	var body io.Reader = nil
156827	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
156828	if err != nil {
156829		return nil, err
156830	}
156831	reqHeaders.Set("Content-Type", "application/json")
156832	c.urlParams_.Set("alt", alt)
156833	c.urlParams_.Set("prettyPrint", "false")
156834	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
156835	urls += "?" + c.urlParams_.Encode()
156836	req, err := http.NewRequest("POST", urls, body)
156837	if err != nil {
156838		return nil, err
156839	}
156840	req.Header = reqHeaders
156841	googleapi.Expand(req.URL, map[string]string{
156842		"project": c.project,
156843		"zone":    c.zone,
156844	})
156845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156846}
156847
156848// Do executes the "compute.targetInstances.insert" call.
156849// Exactly one of *Operation or error will be non-nil. Any non-2xx
156850// status code is an error. Response headers are in either
156851// *Operation.ServerResponse.Header or (if a response was returned at
156852// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156853// to check whether the returned error was because
156854// http.StatusNotModified was returned.
156855func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156856	gensupport.SetOptions(c.urlParams_, opts...)
156857	res, err := c.doRequest("json")
156858	if res != nil && res.StatusCode == http.StatusNotModified {
156859		if res.Body != nil {
156860			res.Body.Close()
156861		}
156862		return nil, &googleapi.Error{
156863			Code:   res.StatusCode,
156864			Header: res.Header,
156865		}
156866	}
156867	if err != nil {
156868		return nil, err
156869	}
156870	defer googleapi.CloseBody(res)
156871	if err := googleapi.CheckResponse(res); err != nil {
156872		return nil, err
156873	}
156874	ret := &Operation{
156875		ServerResponse: googleapi.ServerResponse{
156876			Header:         res.Header,
156877			HTTPStatusCode: res.StatusCode,
156878		},
156879	}
156880	target := &ret
156881	if err := gensupport.DecodeResponse(target, res); err != nil {
156882		return nil, err
156883	}
156884	return ret, nil
156885	// {
156886	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
156887	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances",
156888	//   "httpMethod": "POST",
156889	//   "id": "compute.targetInstances.insert",
156890	//   "parameterOrder": [
156891	//     "project",
156892	//     "zone"
156893	//   ],
156894	//   "parameters": {
156895	//     "project": {
156896	//       "description": "Project ID for this request.",
156897	//       "location": "path",
156898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156899	//       "required": true,
156900	//       "type": "string"
156901	//     },
156902	//     "requestId": {
156903	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156904	//       "location": "query",
156905	//       "type": "string"
156906	//     },
156907	//     "zone": {
156908	//       "description": "Name of the zone scoping this request.",
156909	//       "location": "path",
156910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156911	//       "required": true,
156912	//       "type": "string"
156913	//     }
156914	//   },
156915	//   "path": "projects/{project}/zones/{zone}/targetInstances",
156916	//   "request": {
156917	//     "$ref": "TargetInstance"
156918	//   },
156919	//   "response": {
156920	//     "$ref": "Operation"
156921	//   },
156922	//   "scopes": [
156923	//     "https://www.googleapis.com/auth/cloud-platform",
156924	//     "https://www.googleapis.com/auth/compute"
156925	//   ]
156926	// }
156927
156928}
156929
156930// method id "compute.targetInstances.list":
156931
156932type TargetInstancesListCall struct {
156933	s            *Service
156934	project      string
156935	zone         string
156936	urlParams_   gensupport.URLParams
156937	ifNoneMatch_ string
156938	ctx_         context.Context
156939	header_      http.Header
156940}
156941
156942// List: Retrieves a list of TargetInstance resources available to the
156943// specified project and zone.
156944//
156945// - project: Project ID for this request.
156946// - zone: Name of the zone scoping this request.
156947func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
156948	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156949	c.project = project
156950	c.zone = zone
156951	return c
156952}
156953
156954// Filter sets the optional parameter "filter": A filter expression that
156955// filters resources listed in the response. The expression must specify
156956// the field name, a comparison operator, and the value that you want to
156957// use for filtering. The value must be a string, a number, or a
156958// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156959// `<`. For example, if you are filtering Compute Engine instances, you
156960// can exclude instances named `example-instance` by specifying `name !=
156961// example-instance`. You can also filter nested fields. For example,
156962// you could specify `scheduling.automaticRestart = false` to include
156963// instances only if they are not scheduled for automatic restarts. You
156964// can use filtering on nested fields to filter based on resource
156965// labels. To filter on multiple expressions, provide each separate
156966// expression within parentheses. For example: ```
156967// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
156968// ``` By default, each expression is an `AND` expression. However, you
156969// can include `AND` and `OR` expressions explicitly. For example: ```
156970// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
156971// AND (scheduling.automaticRestart = true) ```
156972func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
156973	c.urlParams_.Set("filter", filter)
156974	return c
156975}
156976
156977// MaxResults sets the optional parameter "maxResults": The maximum
156978// number of results per page that should be returned. If the number of
156979// available results is larger than `maxResults`, Compute Engine returns
156980// a `nextPageToken` that can be used to get the next page of results in
156981// subsequent list requests. Acceptable values are `0` to `500`,
156982// inclusive. (Default: `500`)
156983func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
156984	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156985	return c
156986}
156987
156988// OrderBy sets the optional parameter "orderBy": Sorts list results by
156989// a certain order. By default, results are returned in alphanumerical
156990// order based on the resource name. You can also sort results in
156991// descending order based on the creation timestamp using
156992// `orderBy="creationTimestamp desc". This sorts results based on the
156993// `creationTimestamp` field in reverse chronological order (newest
156994// result first). Use this to sort resources like operations so that the
156995// newest operation is returned first. Currently, only sorting by `name`
156996// or `creationTimestamp desc` is supported.
156997func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
156998	c.urlParams_.Set("orderBy", orderBy)
156999	return c
157000}
157001
157002// PageToken sets the optional parameter "pageToken": Specifies a page
157003// token to use. Set `pageToken` to the `nextPageToken` returned by a
157004// previous list request to get the next page of results.
157005func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
157006	c.urlParams_.Set("pageToken", pageToken)
157007	return c
157008}
157009
157010// ReturnPartialSuccess sets the optional parameter
157011// "returnPartialSuccess": Opt-in for partial success behavior which
157012// provides partial results in case of failure. The default value is
157013// false.
157014func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
157015	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157016	return c
157017}
157018
157019// Fields allows partial responses to be retrieved. See
157020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157021// for more information.
157022func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
157023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157024	return c
157025}
157026
157027// IfNoneMatch sets the optional parameter which makes the operation
157028// fail if the object's ETag matches the given value. This is useful for
157029// getting updates only after the object has changed since the last
157030// request. Use googleapi.IsNotModified to check whether the response
157031// error from Do is the result of In-None-Match.
157032func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
157033	c.ifNoneMatch_ = entityTag
157034	return c
157035}
157036
157037// Context sets the context to be used in this call's Do method. Any
157038// pending HTTP request will be aborted if the provided context is
157039// canceled.
157040func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
157041	c.ctx_ = ctx
157042	return c
157043}
157044
157045// Header returns an http.Header that can be modified by the caller to
157046// add HTTP headers to the request.
157047func (c *TargetInstancesListCall) Header() http.Header {
157048	if c.header_ == nil {
157049		c.header_ = make(http.Header)
157050	}
157051	return c.header_
157052}
157053
157054func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
157055	reqHeaders := make(http.Header)
157056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
157057	for k, v := range c.header_ {
157058		reqHeaders[k] = v
157059	}
157060	reqHeaders.Set("User-Agent", c.s.userAgent())
157061	if c.ifNoneMatch_ != "" {
157062		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157063	}
157064	var body io.Reader = nil
157065	c.urlParams_.Set("alt", alt)
157066	c.urlParams_.Set("prettyPrint", "false")
157067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
157068	urls += "?" + c.urlParams_.Encode()
157069	req, err := http.NewRequest("GET", urls, body)
157070	if err != nil {
157071		return nil, err
157072	}
157073	req.Header = reqHeaders
157074	googleapi.Expand(req.URL, map[string]string{
157075		"project": c.project,
157076		"zone":    c.zone,
157077	})
157078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157079}
157080
157081// Do executes the "compute.targetInstances.list" call.
157082// Exactly one of *TargetInstanceList or error will be non-nil. Any
157083// non-2xx status code is an error. Response headers are in either
157084// *TargetInstanceList.ServerResponse.Header or (if a response was
157085// returned at all) in error.(*googleapi.Error).Header. Use
157086// googleapi.IsNotModified to check whether the returned error was
157087// because http.StatusNotModified was returned.
157088func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
157089	gensupport.SetOptions(c.urlParams_, opts...)
157090	res, err := c.doRequest("json")
157091	if res != nil && res.StatusCode == http.StatusNotModified {
157092		if res.Body != nil {
157093			res.Body.Close()
157094		}
157095		return nil, &googleapi.Error{
157096			Code:   res.StatusCode,
157097			Header: res.Header,
157098		}
157099	}
157100	if err != nil {
157101		return nil, err
157102	}
157103	defer googleapi.CloseBody(res)
157104	if err := googleapi.CheckResponse(res); err != nil {
157105		return nil, err
157106	}
157107	ret := &TargetInstanceList{
157108		ServerResponse: googleapi.ServerResponse{
157109			Header:         res.Header,
157110			HTTPStatusCode: res.StatusCode,
157111		},
157112	}
157113	target := &ret
157114	if err := gensupport.DecodeResponse(target, res); err != nil {
157115		return nil, err
157116	}
157117	return ret, nil
157118	// {
157119	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
157120	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances",
157121	//   "httpMethod": "GET",
157122	//   "id": "compute.targetInstances.list",
157123	//   "parameterOrder": [
157124	//     "project",
157125	//     "zone"
157126	//   ],
157127	//   "parameters": {
157128	//     "filter": {
157129	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157130	//       "location": "query",
157131	//       "type": "string"
157132	//     },
157133	//     "maxResults": {
157134	//       "default": "500",
157135	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157136	//       "format": "uint32",
157137	//       "location": "query",
157138	//       "minimum": "0",
157139	//       "type": "integer"
157140	//     },
157141	//     "orderBy": {
157142	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
157143	//       "location": "query",
157144	//       "type": "string"
157145	//     },
157146	//     "pageToken": {
157147	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157148	//       "location": "query",
157149	//       "type": "string"
157150	//     },
157151	//     "project": {
157152	//       "description": "Project ID for this request.",
157153	//       "location": "path",
157154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157155	//       "required": true,
157156	//       "type": "string"
157157	//     },
157158	//     "returnPartialSuccess": {
157159	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157160	//       "location": "query",
157161	//       "type": "boolean"
157162	//     },
157163	//     "zone": {
157164	//       "description": "Name of the zone scoping this request.",
157165	//       "location": "path",
157166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157167	//       "required": true,
157168	//       "type": "string"
157169	//     }
157170	//   },
157171	//   "path": "projects/{project}/zones/{zone}/targetInstances",
157172	//   "response": {
157173	//     "$ref": "TargetInstanceList"
157174	//   },
157175	//   "scopes": [
157176	//     "https://www.googleapis.com/auth/cloud-platform",
157177	//     "https://www.googleapis.com/auth/compute",
157178	//     "https://www.googleapis.com/auth/compute.readonly"
157179	//   ]
157180	// }
157181
157182}
157183
157184// Pages invokes f for each page of results.
157185// A non-nil error returned from f will halt the iteration.
157186// The provided context supersedes any context provided to the Context method.
157187func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
157188	c.ctx_ = ctx
157189	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157190	for {
157191		x, err := c.Do()
157192		if err != nil {
157193			return err
157194		}
157195		if err := f(x); err != nil {
157196			return err
157197		}
157198		if x.NextPageToken == "" {
157199			return nil
157200		}
157201		c.PageToken(x.NextPageToken)
157202	}
157203}
157204
157205// method id "compute.targetPools.addHealthCheck":
157206
157207type TargetPoolsAddHealthCheckCall struct {
157208	s                                *Service
157209	project                          string
157210	region                           string
157211	targetPool                       string
157212	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
157213	urlParams_                       gensupport.URLParams
157214	ctx_                             context.Context
157215	header_                          http.Header
157216}
157217
157218// AddHealthCheck: Adds health check URLs to a target pool.
157219//
157220// - project: Project ID for this request.
157221// - region: Name of the region scoping this request.
157222// - targetPool: Name of the target pool to add a health check to.
157223func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
157224	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157225	c.project = project
157226	c.region = region
157227	c.targetPool = targetPool
157228	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
157229	return c
157230}
157231
157232// RequestId sets the optional parameter "requestId": An optional
157233// request ID to identify requests. Specify a unique request ID so that
157234// if you must retry your request, the server will know to ignore the
157235// request if it has already been completed. For example, consider a
157236// situation where you make an initial request and the request times
157237// out. If you make the request again with the same request ID, the
157238// server can check if original operation with the same request ID was
157239// received, and if so, will ignore the second request. This prevents
157240// clients from accidentally creating duplicate commitments. The request
157241// ID must be a valid UUID with the exception that zero UUID is not
157242// supported ( 00000000-0000-0000-0000-000000000000).
157243func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
157244	c.urlParams_.Set("requestId", requestId)
157245	return c
157246}
157247
157248// Fields allows partial responses to be retrieved. See
157249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157250// for more information.
157251func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
157252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157253	return c
157254}
157255
157256// Context sets the context to be used in this call's Do method. Any
157257// pending HTTP request will be aborted if the provided context is
157258// canceled.
157259func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
157260	c.ctx_ = ctx
157261	return c
157262}
157263
157264// Header returns an http.Header that can be modified by the caller to
157265// add HTTP headers to the request.
157266func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
157267	if c.header_ == nil {
157268		c.header_ = make(http.Header)
157269	}
157270	return c.header_
157271}
157272
157273func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
157274	reqHeaders := make(http.Header)
157275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
157276	for k, v := range c.header_ {
157277		reqHeaders[k] = v
157278	}
157279	reqHeaders.Set("User-Agent", c.s.userAgent())
157280	var body io.Reader = nil
157281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
157282	if err != nil {
157283		return nil, err
157284	}
157285	reqHeaders.Set("Content-Type", "application/json")
157286	c.urlParams_.Set("alt", alt)
157287	c.urlParams_.Set("prettyPrint", "false")
157288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
157289	urls += "?" + c.urlParams_.Encode()
157290	req, err := http.NewRequest("POST", urls, body)
157291	if err != nil {
157292		return nil, err
157293	}
157294	req.Header = reqHeaders
157295	googleapi.Expand(req.URL, map[string]string{
157296		"project":    c.project,
157297		"region":     c.region,
157298		"targetPool": c.targetPool,
157299	})
157300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157301}
157302
157303// Do executes the "compute.targetPools.addHealthCheck" call.
157304// Exactly one of *Operation or error will be non-nil. Any non-2xx
157305// status code is an error. Response headers are in either
157306// *Operation.ServerResponse.Header or (if a response was returned at
157307// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157308// to check whether the returned error was because
157309// http.StatusNotModified was returned.
157310func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Adds health check URLs to a target pool.",
157342	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
157343	//   "httpMethod": "POST",
157344	//   "id": "compute.targetPools.addHealthCheck",
157345	//   "parameterOrder": [
157346	//     "project",
157347	//     "region",
157348	//     "targetPool"
157349	//   ],
157350	//   "parameters": {
157351	//     "project": {
157352	//       "description": "Project ID for this request.",
157353	//       "location": "path",
157354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157355	//       "required": true,
157356	//       "type": "string"
157357	//     },
157358	//     "region": {
157359	//       "description": "Name of the region scoping this request.",
157360	//       "location": "path",
157361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157362	//       "required": true,
157363	//       "type": "string"
157364	//     },
157365	//     "requestId": {
157366	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
157367	//       "location": "query",
157368	//       "type": "string"
157369	//     },
157370	//     "targetPool": {
157371	//       "description": "Name of the target pool to add a health check to.",
157372	//       "location": "path",
157373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157374	//       "required": true,
157375	//       "type": "string"
157376	//     }
157377	//   },
157378	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
157379	//   "request": {
157380	//     "$ref": "TargetPoolsAddHealthCheckRequest"
157381	//   },
157382	//   "response": {
157383	//     "$ref": "Operation"
157384	//   },
157385	//   "scopes": [
157386	//     "https://www.googleapis.com/auth/cloud-platform",
157387	//     "https://www.googleapis.com/auth/compute"
157388	//   ]
157389	// }
157390
157391}
157392
157393// method id "compute.targetPools.addInstance":
157394
157395type TargetPoolsAddInstanceCall struct {
157396	s                             *Service
157397	project                       string
157398	region                        string
157399	targetPool                    string
157400	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
157401	urlParams_                    gensupport.URLParams
157402	ctx_                          context.Context
157403	header_                       http.Header
157404}
157405
157406// AddInstance: Adds an instance to a target pool.
157407//
157408// - project: Project ID for this request.
157409// - region: Name of the region scoping this request.
157410// - targetPool: Name of the TargetPool resource to add instances to.
157411func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
157412	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157413	c.project = project
157414	c.region = region
157415	c.targetPool = targetPool
157416	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
157417	return c
157418}
157419
157420// RequestId sets the optional parameter "requestId": An optional
157421// request ID to identify requests. Specify a unique request ID so that
157422// if you must retry your request, the server will know to ignore the
157423// request if it has already been completed. For example, consider a
157424// situation where you make an initial request and the request times
157425// out. If you make the request again with the same request ID, the
157426// server can check if original operation with the same request ID was
157427// received, and if so, will ignore the second request. This prevents
157428// clients from accidentally creating duplicate commitments. The request
157429// ID must be a valid UUID with the exception that zero UUID is not
157430// supported ( 00000000-0000-0000-0000-000000000000).
157431func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
157432	c.urlParams_.Set("requestId", requestId)
157433	return c
157434}
157435
157436// Fields allows partial responses to be retrieved. See
157437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157438// for more information.
157439func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
157440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157441	return c
157442}
157443
157444// Context sets the context to be used in this call's Do method. Any
157445// pending HTTP request will be aborted if the provided context is
157446// canceled.
157447func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
157448	c.ctx_ = ctx
157449	return c
157450}
157451
157452// Header returns an http.Header that can be modified by the caller to
157453// add HTTP headers to the request.
157454func (c *TargetPoolsAddInstanceCall) Header() http.Header {
157455	if c.header_ == nil {
157456		c.header_ = make(http.Header)
157457	}
157458	return c.header_
157459}
157460
157461func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
157462	reqHeaders := make(http.Header)
157463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
157464	for k, v := range c.header_ {
157465		reqHeaders[k] = v
157466	}
157467	reqHeaders.Set("User-Agent", c.s.userAgent())
157468	var body io.Reader = nil
157469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
157470	if err != nil {
157471		return nil, err
157472	}
157473	reqHeaders.Set("Content-Type", "application/json")
157474	c.urlParams_.Set("alt", alt)
157475	c.urlParams_.Set("prettyPrint", "false")
157476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance")
157477	urls += "?" + c.urlParams_.Encode()
157478	req, err := http.NewRequest("POST", urls, body)
157479	if err != nil {
157480		return nil, err
157481	}
157482	req.Header = reqHeaders
157483	googleapi.Expand(req.URL, map[string]string{
157484		"project":    c.project,
157485		"region":     c.region,
157486		"targetPool": c.targetPool,
157487	})
157488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157489}
157490
157491// Do executes the "compute.targetPools.addInstance" call.
157492// Exactly one of *Operation or error will be non-nil. Any non-2xx
157493// status code is an error. Response headers are in either
157494// *Operation.ServerResponse.Header or (if a response was returned at
157495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157496// to check whether the returned error was because
157497// http.StatusNotModified was returned.
157498func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157499	gensupport.SetOptions(c.urlParams_, opts...)
157500	res, err := c.doRequest("json")
157501	if res != nil && res.StatusCode == http.StatusNotModified {
157502		if res.Body != nil {
157503			res.Body.Close()
157504		}
157505		return nil, &googleapi.Error{
157506			Code:   res.StatusCode,
157507			Header: res.Header,
157508		}
157509	}
157510	if err != nil {
157511		return nil, err
157512	}
157513	defer googleapi.CloseBody(res)
157514	if err := googleapi.CheckResponse(res); err != nil {
157515		return nil, err
157516	}
157517	ret := &Operation{
157518		ServerResponse: googleapi.ServerResponse{
157519			Header:         res.Header,
157520			HTTPStatusCode: res.StatusCode,
157521		},
157522	}
157523	target := &ret
157524	if err := gensupport.DecodeResponse(target, res); err != nil {
157525		return nil, err
157526	}
157527	return ret, nil
157528	// {
157529	//   "description": "Adds an instance to a target pool.",
157530	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
157531	//   "httpMethod": "POST",
157532	//   "id": "compute.targetPools.addInstance",
157533	//   "parameterOrder": [
157534	//     "project",
157535	//     "region",
157536	//     "targetPool"
157537	//   ],
157538	//   "parameters": {
157539	//     "project": {
157540	//       "description": "Project ID for this request.",
157541	//       "location": "path",
157542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157543	//       "required": true,
157544	//       "type": "string"
157545	//     },
157546	//     "region": {
157547	//       "description": "Name of the region scoping this request.",
157548	//       "location": "path",
157549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157550	//       "required": true,
157551	//       "type": "string"
157552	//     },
157553	//     "requestId": {
157554	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
157555	//       "location": "query",
157556	//       "type": "string"
157557	//     },
157558	//     "targetPool": {
157559	//       "description": "Name of the TargetPool resource to add instances to.",
157560	//       "location": "path",
157561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157562	//       "required": true,
157563	//       "type": "string"
157564	//     }
157565	//   },
157566	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
157567	//   "request": {
157568	//     "$ref": "TargetPoolsAddInstanceRequest"
157569	//   },
157570	//   "response": {
157571	//     "$ref": "Operation"
157572	//   },
157573	//   "scopes": [
157574	//     "https://www.googleapis.com/auth/cloud-platform",
157575	//     "https://www.googleapis.com/auth/compute"
157576	//   ]
157577	// }
157578
157579}
157580
157581// method id "compute.targetPools.aggregatedList":
157582
157583type TargetPoolsAggregatedListCall struct {
157584	s            *Service
157585	project      string
157586	urlParams_   gensupport.URLParams
157587	ifNoneMatch_ string
157588	ctx_         context.Context
157589	header_      http.Header
157590}
157591
157592// AggregatedList: Retrieves an aggregated list of target pools.
157593//
157594// - project: Project ID for this request.
157595func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
157596	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157597	c.project = project
157598	return c
157599}
157600
157601// Filter sets the optional parameter "filter": A filter expression that
157602// filters resources listed in the response. The expression must specify
157603// the field name, a comparison operator, and the value that you want to
157604// use for filtering. The value must be a string, a number, or a
157605// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157606// `<`. For example, if you are filtering Compute Engine instances, you
157607// can exclude instances named `example-instance` by specifying `name !=
157608// example-instance`. You can also filter nested fields. For example,
157609// you could specify `scheduling.automaticRestart = false` to include
157610// instances only if they are not scheduled for automatic restarts. You
157611// can use filtering on nested fields to filter based on resource
157612// labels. To filter on multiple expressions, provide each separate
157613// expression within parentheses. For example: ```
157614// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
157615// ``` By default, each expression is an `AND` expression. However, you
157616// can include `AND` and `OR` expressions explicitly. For example: ```
157617// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
157618// AND (scheduling.automaticRestart = true) ```
157619func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
157620	c.urlParams_.Set("filter", filter)
157621	return c
157622}
157623
157624// IncludeAllScopes sets the optional parameter "includeAllScopes":
157625// Indicates whether every visible scope for each scope type (zone,
157626// region, global) should be included in the response. For new resource
157627// types added after this field, the flag has no effect as new resource
157628// types will always include every visible scope for each scope type in
157629// response. For resource types which predate this field, if this flag
157630// is omitted or false, only scopes of the scope types where the
157631// resource type is expected to be found will be included.
157632func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
157633	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
157634	return c
157635}
157636
157637// MaxResults sets the optional parameter "maxResults": The maximum
157638// number of results per page that should be returned. If the number of
157639// available results is larger than `maxResults`, Compute Engine returns
157640// a `nextPageToken` that can be used to get the next page of results in
157641// subsequent list requests. Acceptable values are `0` to `500`,
157642// inclusive. (Default: `500`)
157643func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
157644	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157645	return c
157646}
157647
157648// OrderBy sets the optional parameter "orderBy": Sorts list results by
157649// a certain order. By default, results are returned in alphanumerical
157650// order based on the resource name. You can also sort results in
157651// descending order based on the creation timestamp using
157652// `orderBy="creationTimestamp desc". This sorts results based on the
157653// `creationTimestamp` field in reverse chronological order (newest
157654// result first). Use this to sort resources like operations so that the
157655// newest operation is returned first. Currently, only sorting by `name`
157656// or `creationTimestamp desc` is supported.
157657func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
157658	c.urlParams_.Set("orderBy", orderBy)
157659	return c
157660}
157661
157662// PageToken sets the optional parameter "pageToken": Specifies a page
157663// token to use. Set `pageToken` to the `nextPageToken` returned by a
157664// previous list request to get the next page of results.
157665func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
157666	c.urlParams_.Set("pageToken", pageToken)
157667	return c
157668}
157669
157670// ReturnPartialSuccess sets the optional parameter
157671// "returnPartialSuccess": Opt-in for partial success behavior which
157672// provides partial results in case of failure. The default value is
157673// false.
157674func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
157675	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157676	return c
157677}
157678
157679// Fields allows partial responses to be retrieved. See
157680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157681// for more information.
157682func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
157683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157684	return c
157685}
157686
157687// IfNoneMatch sets the optional parameter which makes the operation
157688// fail if the object's ETag matches the given value. This is useful for
157689// getting updates only after the object has changed since the last
157690// request. Use googleapi.IsNotModified to check whether the response
157691// error from Do is the result of In-None-Match.
157692func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
157693	c.ifNoneMatch_ = entityTag
157694	return c
157695}
157696
157697// Context sets the context to be used in this call's Do method. Any
157698// pending HTTP request will be aborted if the provided context is
157699// canceled.
157700func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
157701	c.ctx_ = ctx
157702	return c
157703}
157704
157705// Header returns an http.Header that can be modified by the caller to
157706// add HTTP headers to the request.
157707func (c *TargetPoolsAggregatedListCall) Header() http.Header {
157708	if c.header_ == nil {
157709		c.header_ = make(http.Header)
157710	}
157711	return c.header_
157712}
157713
157714func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157715	reqHeaders := make(http.Header)
157716	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
157717	for k, v := range c.header_ {
157718		reqHeaders[k] = v
157719	}
157720	reqHeaders.Set("User-Agent", c.s.userAgent())
157721	if c.ifNoneMatch_ != "" {
157722		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157723	}
157724	var body io.Reader = nil
157725	c.urlParams_.Set("alt", alt)
157726	c.urlParams_.Set("prettyPrint", "false")
157727	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools")
157728	urls += "?" + c.urlParams_.Encode()
157729	req, err := http.NewRequest("GET", urls, body)
157730	if err != nil {
157731		return nil, err
157732	}
157733	req.Header = reqHeaders
157734	googleapi.Expand(req.URL, map[string]string{
157735		"project": c.project,
157736	})
157737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157738}
157739
157740// Do executes the "compute.targetPools.aggregatedList" call.
157741// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
157742// Any non-2xx status code is an error. Response headers are in either
157743// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
157744// returned at all) in error.(*googleapi.Error).Header. Use
157745// googleapi.IsNotModified to check whether the returned error was
157746// because http.StatusNotModified was returned.
157747func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
157748	gensupport.SetOptions(c.urlParams_, opts...)
157749	res, err := c.doRequest("json")
157750	if res != nil && res.StatusCode == http.StatusNotModified {
157751		if res.Body != nil {
157752			res.Body.Close()
157753		}
157754		return nil, &googleapi.Error{
157755			Code:   res.StatusCode,
157756			Header: res.Header,
157757		}
157758	}
157759	if err != nil {
157760		return nil, err
157761	}
157762	defer googleapi.CloseBody(res)
157763	if err := googleapi.CheckResponse(res); err != nil {
157764		return nil, err
157765	}
157766	ret := &TargetPoolAggregatedList{
157767		ServerResponse: googleapi.ServerResponse{
157768			Header:         res.Header,
157769			HTTPStatusCode: res.StatusCode,
157770		},
157771	}
157772	target := &ret
157773	if err := gensupport.DecodeResponse(target, res); err != nil {
157774		return nil, err
157775	}
157776	return ret, nil
157777	// {
157778	//   "description": "Retrieves an aggregated list of target pools.",
157779	//   "flatPath": "projects/{project}/aggregated/targetPools",
157780	//   "httpMethod": "GET",
157781	//   "id": "compute.targetPools.aggregatedList",
157782	//   "parameterOrder": [
157783	//     "project"
157784	//   ],
157785	//   "parameters": {
157786	//     "filter": {
157787	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157788	//       "location": "query",
157789	//       "type": "string"
157790	//     },
157791	//     "includeAllScopes": {
157792	//       "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.",
157793	//       "location": "query",
157794	//       "type": "boolean"
157795	//     },
157796	//     "maxResults": {
157797	//       "default": "500",
157798	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157799	//       "format": "uint32",
157800	//       "location": "query",
157801	//       "minimum": "0",
157802	//       "type": "integer"
157803	//     },
157804	//     "orderBy": {
157805	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
157806	//       "location": "query",
157807	//       "type": "string"
157808	//     },
157809	//     "pageToken": {
157810	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157811	//       "location": "query",
157812	//       "type": "string"
157813	//     },
157814	//     "project": {
157815	//       "description": "Project ID for this request.",
157816	//       "location": "path",
157817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157818	//       "required": true,
157819	//       "type": "string"
157820	//     },
157821	//     "returnPartialSuccess": {
157822	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157823	//       "location": "query",
157824	//       "type": "boolean"
157825	//     }
157826	//   },
157827	//   "path": "projects/{project}/aggregated/targetPools",
157828	//   "response": {
157829	//     "$ref": "TargetPoolAggregatedList"
157830	//   },
157831	//   "scopes": [
157832	//     "https://www.googleapis.com/auth/cloud-platform",
157833	//     "https://www.googleapis.com/auth/compute",
157834	//     "https://www.googleapis.com/auth/compute.readonly"
157835	//   ]
157836	// }
157837
157838}
157839
157840// Pages invokes f for each page of results.
157841// A non-nil error returned from f will halt the iteration.
157842// The provided context supersedes any context provided to the Context method.
157843func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
157844	c.ctx_ = ctx
157845	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157846	for {
157847		x, err := c.Do()
157848		if err != nil {
157849			return err
157850		}
157851		if err := f(x); err != nil {
157852			return err
157853		}
157854		if x.NextPageToken == "" {
157855			return nil
157856		}
157857		c.PageToken(x.NextPageToken)
157858	}
157859}
157860
157861// method id "compute.targetPools.delete":
157862
157863type TargetPoolsDeleteCall struct {
157864	s          *Service
157865	project    string
157866	region     string
157867	targetPool string
157868	urlParams_ gensupport.URLParams
157869	ctx_       context.Context
157870	header_    http.Header
157871}
157872
157873// Delete: Deletes the specified target pool.
157874//
157875// - project: Project ID for this request.
157876// - region: Name of the region scoping this request.
157877// - targetPool: Name of the TargetPool resource to delete.
157878func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
157879	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157880	c.project = project
157881	c.region = region
157882	c.targetPool = targetPool
157883	return c
157884}
157885
157886// RequestId sets the optional parameter "requestId": An optional
157887// request ID to identify requests. Specify a unique request ID so that
157888// if you must retry your request, the server will know to ignore the
157889// request if it has already been completed. For example, consider a
157890// situation where you make an initial request and the request times
157891// out. If you make the request again with the same request ID, the
157892// server can check if original operation with the same request ID was
157893// received, and if so, will ignore the second request. This prevents
157894// clients from accidentally creating duplicate commitments. The request
157895// ID must be a valid UUID with the exception that zero UUID is not
157896// supported ( 00000000-0000-0000-0000-000000000000).
157897func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
157898	c.urlParams_.Set("requestId", requestId)
157899	return c
157900}
157901
157902// Fields allows partial responses to be retrieved. See
157903// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157904// for more information.
157905func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
157906	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157907	return c
157908}
157909
157910// Context sets the context to be used in this call's Do method. Any
157911// pending HTTP request will be aborted if the provided context is
157912// canceled.
157913func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
157914	c.ctx_ = ctx
157915	return c
157916}
157917
157918// Header returns an http.Header that can be modified by the caller to
157919// add HTTP headers to the request.
157920func (c *TargetPoolsDeleteCall) Header() http.Header {
157921	if c.header_ == nil {
157922		c.header_ = make(http.Header)
157923	}
157924	return c.header_
157925}
157926
157927func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
157928	reqHeaders := make(http.Header)
157929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
157930	for k, v := range c.header_ {
157931		reqHeaders[k] = v
157932	}
157933	reqHeaders.Set("User-Agent", c.s.userAgent())
157934	var body io.Reader = nil
157935	c.urlParams_.Set("alt", alt)
157936	c.urlParams_.Set("prettyPrint", "false")
157937	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
157938	urls += "?" + c.urlParams_.Encode()
157939	req, err := http.NewRequest("DELETE", urls, body)
157940	if err != nil {
157941		return nil, err
157942	}
157943	req.Header = reqHeaders
157944	googleapi.Expand(req.URL, map[string]string{
157945		"project":    c.project,
157946		"region":     c.region,
157947		"targetPool": c.targetPool,
157948	})
157949	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157950}
157951
157952// Do executes the "compute.targetPools.delete" call.
157953// Exactly one of *Operation or error will be non-nil. Any non-2xx
157954// status code is an error. Response headers are in either
157955// *Operation.ServerResponse.Header or (if a response was returned at
157956// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157957// to check whether the returned error was because
157958// http.StatusNotModified was returned.
157959func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157960	gensupport.SetOptions(c.urlParams_, opts...)
157961	res, err := c.doRequest("json")
157962	if res != nil && res.StatusCode == http.StatusNotModified {
157963		if res.Body != nil {
157964			res.Body.Close()
157965		}
157966		return nil, &googleapi.Error{
157967			Code:   res.StatusCode,
157968			Header: res.Header,
157969		}
157970	}
157971	if err != nil {
157972		return nil, err
157973	}
157974	defer googleapi.CloseBody(res)
157975	if err := googleapi.CheckResponse(res); err != nil {
157976		return nil, err
157977	}
157978	ret := &Operation{
157979		ServerResponse: googleapi.ServerResponse{
157980			Header:         res.Header,
157981			HTTPStatusCode: res.StatusCode,
157982		},
157983	}
157984	target := &ret
157985	if err := gensupport.DecodeResponse(target, res); err != nil {
157986		return nil, err
157987	}
157988	return ret, nil
157989	// {
157990	//   "description": "Deletes the specified target pool.",
157991	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
157992	//   "httpMethod": "DELETE",
157993	//   "id": "compute.targetPools.delete",
157994	//   "parameterOrder": [
157995	//     "project",
157996	//     "region",
157997	//     "targetPool"
157998	//   ],
157999	//   "parameters": {
158000	//     "project": {
158001	//       "description": "Project ID for this request.",
158002	//       "location": "path",
158003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158004	//       "required": true,
158005	//       "type": "string"
158006	//     },
158007	//     "region": {
158008	//       "description": "Name of the region scoping this request.",
158009	//       "location": "path",
158010	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158011	//       "required": true,
158012	//       "type": "string"
158013	//     },
158014	//     "requestId": {
158015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
158016	//       "location": "query",
158017	//       "type": "string"
158018	//     },
158019	//     "targetPool": {
158020	//       "description": "Name of the TargetPool resource to delete.",
158021	//       "location": "path",
158022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158023	//       "required": true,
158024	//       "type": "string"
158025	//     }
158026	//   },
158027	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158028	//   "response": {
158029	//     "$ref": "Operation"
158030	//   },
158031	//   "scopes": [
158032	//     "https://www.googleapis.com/auth/cloud-platform",
158033	//     "https://www.googleapis.com/auth/compute"
158034	//   ]
158035	// }
158036
158037}
158038
158039// method id "compute.targetPools.get":
158040
158041type TargetPoolsGetCall struct {
158042	s            *Service
158043	project      string
158044	region       string
158045	targetPool   string
158046	urlParams_   gensupport.URLParams
158047	ifNoneMatch_ string
158048	ctx_         context.Context
158049	header_      http.Header
158050}
158051
158052// Get: Returns the specified target pool. Gets a list of available
158053// target pools by making a list() request.
158054//
158055// - project: Project ID for this request.
158056// - region: Name of the region scoping this request.
158057// - targetPool: Name of the TargetPool resource to return.
158058func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
158059	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158060	c.project = project
158061	c.region = region
158062	c.targetPool = targetPool
158063	return c
158064}
158065
158066// Fields allows partial responses to be retrieved. See
158067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158068// for more information.
158069func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
158070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158071	return c
158072}
158073
158074// IfNoneMatch sets the optional parameter which makes the operation
158075// fail if the object's ETag matches the given value. This is useful for
158076// getting updates only after the object has changed since the last
158077// request. Use googleapi.IsNotModified to check whether the response
158078// error from Do is the result of In-None-Match.
158079func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
158080	c.ifNoneMatch_ = entityTag
158081	return c
158082}
158083
158084// Context sets the context to be used in this call's Do method. Any
158085// pending HTTP request will be aborted if the provided context is
158086// canceled.
158087func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
158088	c.ctx_ = ctx
158089	return c
158090}
158091
158092// Header returns an http.Header that can be modified by the caller to
158093// add HTTP headers to the request.
158094func (c *TargetPoolsGetCall) Header() http.Header {
158095	if c.header_ == nil {
158096		c.header_ = make(http.Header)
158097	}
158098	return c.header_
158099}
158100
158101func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
158102	reqHeaders := make(http.Header)
158103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
158104	for k, v := range c.header_ {
158105		reqHeaders[k] = v
158106	}
158107	reqHeaders.Set("User-Agent", c.s.userAgent())
158108	if c.ifNoneMatch_ != "" {
158109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158110	}
158111	var body io.Reader = nil
158112	c.urlParams_.Set("alt", alt)
158113	c.urlParams_.Set("prettyPrint", "false")
158114	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
158115	urls += "?" + c.urlParams_.Encode()
158116	req, err := http.NewRequest("GET", urls, body)
158117	if err != nil {
158118		return nil, err
158119	}
158120	req.Header = reqHeaders
158121	googleapi.Expand(req.URL, map[string]string{
158122		"project":    c.project,
158123		"region":     c.region,
158124		"targetPool": c.targetPool,
158125	})
158126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158127}
158128
158129// Do executes the "compute.targetPools.get" call.
158130// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
158131// status code is an error. Response headers are in either
158132// *TargetPool.ServerResponse.Header or (if a response was returned at
158133// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158134// to check whether the returned error was because
158135// http.StatusNotModified was returned.
158136func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
158137	gensupport.SetOptions(c.urlParams_, opts...)
158138	res, err := c.doRequest("json")
158139	if res != nil && res.StatusCode == http.StatusNotModified {
158140		if res.Body != nil {
158141			res.Body.Close()
158142		}
158143		return nil, &googleapi.Error{
158144			Code:   res.StatusCode,
158145			Header: res.Header,
158146		}
158147	}
158148	if err != nil {
158149		return nil, err
158150	}
158151	defer googleapi.CloseBody(res)
158152	if err := googleapi.CheckResponse(res); err != nil {
158153		return nil, err
158154	}
158155	ret := &TargetPool{
158156		ServerResponse: googleapi.ServerResponse{
158157			Header:         res.Header,
158158			HTTPStatusCode: res.StatusCode,
158159		},
158160	}
158161	target := &ret
158162	if err := gensupport.DecodeResponse(target, res); err != nil {
158163		return nil, err
158164	}
158165	return ret, nil
158166	// {
158167	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
158168	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158169	//   "httpMethod": "GET",
158170	//   "id": "compute.targetPools.get",
158171	//   "parameterOrder": [
158172	//     "project",
158173	//     "region",
158174	//     "targetPool"
158175	//   ],
158176	//   "parameters": {
158177	//     "project": {
158178	//       "description": "Project ID for this request.",
158179	//       "location": "path",
158180	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158181	//       "required": true,
158182	//       "type": "string"
158183	//     },
158184	//     "region": {
158185	//       "description": "Name of the region scoping this request.",
158186	//       "location": "path",
158187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158188	//       "required": true,
158189	//       "type": "string"
158190	//     },
158191	//     "targetPool": {
158192	//       "description": "Name of the TargetPool resource to return.",
158193	//       "location": "path",
158194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158195	//       "required": true,
158196	//       "type": "string"
158197	//     }
158198	//   },
158199	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158200	//   "response": {
158201	//     "$ref": "TargetPool"
158202	//   },
158203	//   "scopes": [
158204	//     "https://www.googleapis.com/auth/cloud-platform",
158205	//     "https://www.googleapis.com/auth/compute",
158206	//     "https://www.googleapis.com/auth/compute.readonly"
158207	//   ]
158208	// }
158209
158210}
158211
158212// method id "compute.targetPools.getHealth":
158213
158214type TargetPoolsGetHealthCall struct {
158215	s                 *Service
158216	project           string
158217	region            string
158218	targetPool        string
158219	instancereference *InstanceReference
158220	urlParams_        gensupport.URLParams
158221	ctx_              context.Context
158222	header_           http.Header
158223}
158224
158225// GetHealth: Gets the most recent health check results for each IP for
158226// the instance that is referenced by the given target pool.
158227//
158228// - project: Project ID for this request.
158229// - region: Name of the region scoping this request.
158230// - targetPool: Name of the TargetPool resource to which the queried
158231//   instance belongs.
158232func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
158233	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158234	c.project = project
158235	c.region = region
158236	c.targetPool = targetPool
158237	c.instancereference = instancereference
158238	return c
158239}
158240
158241// Fields allows partial responses to be retrieved. See
158242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158243// for more information.
158244func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
158245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158246	return c
158247}
158248
158249// Context sets the context to be used in this call's Do method. Any
158250// pending HTTP request will be aborted if the provided context is
158251// canceled.
158252func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
158253	c.ctx_ = ctx
158254	return c
158255}
158256
158257// Header returns an http.Header that can be modified by the caller to
158258// add HTTP headers to the request.
158259func (c *TargetPoolsGetHealthCall) Header() http.Header {
158260	if c.header_ == nil {
158261		c.header_ = make(http.Header)
158262	}
158263	return c.header_
158264}
158265
158266func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
158267	reqHeaders := make(http.Header)
158268	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
158269	for k, v := range c.header_ {
158270		reqHeaders[k] = v
158271	}
158272	reqHeaders.Set("User-Agent", c.s.userAgent())
158273	var body io.Reader = nil
158274	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
158275	if err != nil {
158276		return nil, err
158277	}
158278	reqHeaders.Set("Content-Type", "application/json")
158279	c.urlParams_.Set("alt", alt)
158280	c.urlParams_.Set("prettyPrint", "false")
158281	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth")
158282	urls += "?" + c.urlParams_.Encode()
158283	req, err := http.NewRequest("POST", urls, body)
158284	if err != nil {
158285		return nil, err
158286	}
158287	req.Header = reqHeaders
158288	googleapi.Expand(req.URL, map[string]string{
158289		"project":    c.project,
158290		"region":     c.region,
158291		"targetPool": c.targetPool,
158292	})
158293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158294}
158295
158296// Do executes the "compute.targetPools.getHealth" call.
158297// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
158298// Any non-2xx status code is an error. Response headers are in either
158299// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
158300// returned at all) in error.(*googleapi.Error).Header. Use
158301// googleapi.IsNotModified to check whether the returned error was
158302// because http.StatusNotModified was returned.
158303func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
158304	gensupport.SetOptions(c.urlParams_, opts...)
158305	res, err := c.doRequest("json")
158306	if res != nil && res.StatusCode == http.StatusNotModified {
158307		if res.Body != nil {
158308			res.Body.Close()
158309		}
158310		return nil, &googleapi.Error{
158311			Code:   res.StatusCode,
158312			Header: res.Header,
158313		}
158314	}
158315	if err != nil {
158316		return nil, err
158317	}
158318	defer googleapi.CloseBody(res)
158319	if err := googleapi.CheckResponse(res); err != nil {
158320		return nil, err
158321	}
158322	ret := &TargetPoolInstanceHealth{
158323		ServerResponse: googleapi.ServerResponse{
158324			Header:         res.Header,
158325			HTTPStatusCode: res.StatusCode,
158326		},
158327	}
158328	target := &ret
158329	if err := gensupport.DecodeResponse(target, res); err != nil {
158330		return nil, err
158331	}
158332	return ret, nil
158333	// {
158334	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
158335	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
158336	//   "httpMethod": "POST",
158337	//   "id": "compute.targetPools.getHealth",
158338	//   "parameterOrder": [
158339	//     "project",
158340	//     "region",
158341	//     "targetPool"
158342	//   ],
158343	//   "parameters": {
158344	//     "project": {
158345	//       "description": "Project ID for this request.",
158346	//       "location": "path",
158347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158348	//       "required": true,
158349	//       "type": "string"
158350	//     },
158351	//     "region": {
158352	//       "description": "Name of the region scoping this request.",
158353	//       "location": "path",
158354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158355	//       "required": true,
158356	//       "type": "string"
158357	//     },
158358	//     "targetPool": {
158359	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
158360	//       "location": "path",
158361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158362	//       "required": true,
158363	//       "type": "string"
158364	//     }
158365	//   },
158366	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
158367	//   "request": {
158368	//     "$ref": "InstanceReference"
158369	//   },
158370	//   "response": {
158371	//     "$ref": "TargetPoolInstanceHealth"
158372	//   },
158373	//   "scopes": [
158374	//     "https://www.googleapis.com/auth/cloud-platform",
158375	//     "https://www.googleapis.com/auth/compute",
158376	//     "https://www.googleapis.com/auth/compute.readonly"
158377	//   ]
158378	// }
158379
158380}
158381
158382// method id "compute.targetPools.insert":
158383
158384type TargetPoolsInsertCall struct {
158385	s          *Service
158386	project    string
158387	region     string
158388	targetpool *TargetPool
158389	urlParams_ gensupport.URLParams
158390	ctx_       context.Context
158391	header_    http.Header
158392}
158393
158394// Insert: Creates a target pool in the specified project and region
158395// using the data included in the request.
158396//
158397// - project: Project ID for this request.
158398// - region: Name of the region scoping this request.
158399func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
158400	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158401	c.project = project
158402	c.region = region
158403	c.targetpool = targetpool
158404	return c
158405}
158406
158407// RequestId sets the optional parameter "requestId": An optional
158408// request ID to identify requests. Specify a unique request ID so that
158409// if you must retry your request, the server will know to ignore the
158410// request if it has already been completed. For example, consider a
158411// situation where you make an initial request and the request times
158412// out. If you make the request again with the same request ID, the
158413// server can check if original operation with the same request ID was
158414// received, and if so, will ignore the second request. This prevents
158415// clients from accidentally creating duplicate commitments. The request
158416// ID must be a valid UUID with the exception that zero UUID is not
158417// supported ( 00000000-0000-0000-0000-000000000000).
158418func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
158419	c.urlParams_.Set("requestId", requestId)
158420	return c
158421}
158422
158423// Fields allows partial responses to be retrieved. See
158424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158425// for more information.
158426func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
158427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158428	return c
158429}
158430
158431// Context sets the context to be used in this call's Do method. Any
158432// pending HTTP request will be aborted if the provided context is
158433// canceled.
158434func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
158435	c.ctx_ = ctx
158436	return c
158437}
158438
158439// Header returns an http.Header that can be modified by the caller to
158440// add HTTP headers to the request.
158441func (c *TargetPoolsInsertCall) Header() http.Header {
158442	if c.header_ == nil {
158443		c.header_ = make(http.Header)
158444	}
158445	return c.header_
158446}
158447
158448func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
158449	reqHeaders := make(http.Header)
158450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
158451	for k, v := range c.header_ {
158452		reqHeaders[k] = v
158453	}
158454	reqHeaders.Set("User-Agent", c.s.userAgent())
158455	var body io.Reader = nil
158456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
158457	if err != nil {
158458		return nil, err
158459	}
158460	reqHeaders.Set("Content-Type", "application/json")
158461	c.urlParams_.Set("alt", alt)
158462	c.urlParams_.Set("prettyPrint", "false")
158463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
158464	urls += "?" + c.urlParams_.Encode()
158465	req, err := http.NewRequest("POST", urls, body)
158466	if err != nil {
158467		return nil, err
158468	}
158469	req.Header = reqHeaders
158470	googleapi.Expand(req.URL, map[string]string{
158471		"project": c.project,
158472		"region":  c.region,
158473	})
158474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158475}
158476
158477// Do executes the "compute.targetPools.insert" call.
158478// Exactly one of *Operation or error will be non-nil. Any non-2xx
158479// status code is an error. Response headers are in either
158480// *Operation.ServerResponse.Header or (if a response was returned at
158481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158482// to check whether the returned error was because
158483// http.StatusNotModified was returned.
158484func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158485	gensupport.SetOptions(c.urlParams_, opts...)
158486	res, err := c.doRequest("json")
158487	if res != nil && res.StatusCode == http.StatusNotModified {
158488		if res.Body != nil {
158489			res.Body.Close()
158490		}
158491		return nil, &googleapi.Error{
158492			Code:   res.StatusCode,
158493			Header: res.Header,
158494		}
158495	}
158496	if err != nil {
158497		return nil, err
158498	}
158499	defer googleapi.CloseBody(res)
158500	if err := googleapi.CheckResponse(res); err != nil {
158501		return nil, err
158502	}
158503	ret := &Operation{
158504		ServerResponse: googleapi.ServerResponse{
158505			Header:         res.Header,
158506			HTTPStatusCode: res.StatusCode,
158507		},
158508	}
158509	target := &ret
158510	if err := gensupport.DecodeResponse(target, res); err != nil {
158511		return nil, err
158512	}
158513	return ret, nil
158514	// {
158515	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
158516	//   "flatPath": "projects/{project}/regions/{region}/targetPools",
158517	//   "httpMethod": "POST",
158518	//   "id": "compute.targetPools.insert",
158519	//   "parameterOrder": [
158520	//     "project",
158521	//     "region"
158522	//   ],
158523	//   "parameters": {
158524	//     "project": {
158525	//       "description": "Project ID for this request.",
158526	//       "location": "path",
158527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158528	//       "required": true,
158529	//       "type": "string"
158530	//     },
158531	//     "region": {
158532	//       "description": "Name of the region scoping this request.",
158533	//       "location": "path",
158534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158535	//       "required": true,
158536	//       "type": "string"
158537	//     },
158538	//     "requestId": {
158539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
158540	//       "location": "query",
158541	//       "type": "string"
158542	//     }
158543	//   },
158544	//   "path": "projects/{project}/regions/{region}/targetPools",
158545	//   "request": {
158546	//     "$ref": "TargetPool"
158547	//   },
158548	//   "response": {
158549	//     "$ref": "Operation"
158550	//   },
158551	//   "scopes": [
158552	//     "https://www.googleapis.com/auth/cloud-platform",
158553	//     "https://www.googleapis.com/auth/compute"
158554	//   ]
158555	// }
158556
158557}
158558
158559// method id "compute.targetPools.list":
158560
158561type TargetPoolsListCall struct {
158562	s            *Service
158563	project      string
158564	region       string
158565	urlParams_   gensupport.URLParams
158566	ifNoneMatch_ string
158567	ctx_         context.Context
158568	header_      http.Header
158569}
158570
158571// List: Retrieves a list of target pools available to the specified
158572// project and region.
158573//
158574// - project: Project ID for this request.
158575// - region: Name of the region scoping this request.
158576func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
158577	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158578	c.project = project
158579	c.region = region
158580	return c
158581}
158582
158583// Filter sets the optional parameter "filter": A filter expression that
158584// filters resources listed in the response. The expression must specify
158585// the field name, a comparison operator, and the value that you want to
158586// use for filtering. The value must be a string, a number, or a
158587// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158588// `<`. For example, if you are filtering Compute Engine instances, you
158589// can exclude instances named `example-instance` by specifying `name !=
158590// example-instance`. You can also filter nested fields. For example,
158591// you could specify `scheduling.automaticRestart = false` to include
158592// instances only if they are not scheduled for automatic restarts. You
158593// can use filtering on nested fields to filter based on resource
158594// labels. To filter on multiple expressions, provide each separate
158595// expression within parentheses. For example: ```
158596// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
158597// ``` By default, each expression is an `AND` expression. However, you
158598// can include `AND` and `OR` expressions explicitly. For example: ```
158599// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
158600// AND (scheduling.automaticRestart = true) ```
158601func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
158602	c.urlParams_.Set("filter", filter)
158603	return c
158604}
158605
158606// MaxResults sets the optional parameter "maxResults": The maximum
158607// number of results per page that should be returned. If the number of
158608// available results is larger than `maxResults`, Compute Engine returns
158609// a `nextPageToken` that can be used to get the next page of results in
158610// subsequent list requests. Acceptable values are `0` to `500`,
158611// inclusive. (Default: `500`)
158612func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
158613	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158614	return c
158615}
158616
158617// OrderBy sets the optional parameter "orderBy": Sorts list results by
158618// a certain order. By default, results are returned in alphanumerical
158619// order based on the resource name. You can also sort results in
158620// descending order based on the creation timestamp using
158621// `orderBy="creationTimestamp desc". This sorts results based on the
158622// `creationTimestamp` field in reverse chronological order (newest
158623// result first). Use this to sort resources like operations so that the
158624// newest operation is returned first. Currently, only sorting by `name`
158625// or `creationTimestamp desc` is supported.
158626func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
158627	c.urlParams_.Set("orderBy", orderBy)
158628	return c
158629}
158630
158631// PageToken sets the optional parameter "pageToken": Specifies a page
158632// token to use. Set `pageToken` to the `nextPageToken` returned by a
158633// previous list request to get the next page of results.
158634func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
158635	c.urlParams_.Set("pageToken", pageToken)
158636	return c
158637}
158638
158639// ReturnPartialSuccess sets the optional parameter
158640// "returnPartialSuccess": Opt-in for partial success behavior which
158641// provides partial results in case of failure. The default value is
158642// false.
158643func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
158644	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158645	return c
158646}
158647
158648// Fields allows partial responses to be retrieved. See
158649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158650// for more information.
158651func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
158652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158653	return c
158654}
158655
158656// IfNoneMatch sets the optional parameter which makes the operation
158657// fail if the object's ETag matches the given value. This is useful for
158658// getting updates only after the object has changed since the last
158659// request. Use googleapi.IsNotModified to check whether the response
158660// error from Do is the result of In-None-Match.
158661func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
158662	c.ifNoneMatch_ = entityTag
158663	return c
158664}
158665
158666// Context sets the context to be used in this call's Do method. Any
158667// pending HTTP request will be aborted if the provided context is
158668// canceled.
158669func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
158670	c.ctx_ = ctx
158671	return c
158672}
158673
158674// Header returns an http.Header that can be modified by the caller to
158675// add HTTP headers to the request.
158676func (c *TargetPoolsListCall) Header() http.Header {
158677	if c.header_ == nil {
158678		c.header_ = make(http.Header)
158679	}
158680	return c.header_
158681}
158682
158683func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
158684	reqHeaders := make(http.Header)
158685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
158686	for k, v := range c.header_ {
158687		reqHeaders[k] = v
158688	}
158689	reqHeaders.Set("User-Agent", c.s.userAgent())
158690	if c.ifNoneMatch_ != "" {
158691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158692	}
158693	var body io.Reader = nil
158694	c.urlParams_.Set("alt", alt)
158695	c.urlParams_.Set("prettyPrint", "false")
158696	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
158697	urls += "?" + c.urlParams_.Encode()
158698	req, err := http.NewRequest("GET", urls, body)
158699	if err != nil {
158700		return nil, err
158701	}
158702	req.Header = reqHeaders
158703	googleapi.Expand(req.URL, map[string]string{
158704		"project": c.project,
158705		"region":  c.region,
158706	})
158707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158708}
158709
158710// Do executes the "compute.targetPools.list" call.
158711// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
158712// status code is an error. Response headers are in either
158713// *TargetPoolList.ServerResponse.Header or (if a response was returned
158714// at all) in error.(*googleapi.Error).Header. Use
158715// googleapi.IsNotModified to check whether the returned error was
158716// because http.StatusNotModified was returned.
158717func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
158718	gensupport.SetOptions(c.urlParams_, opts...)
158719	res, err := c.doRequest("json")
158720	if res != nil && res.StatusCode == http.StatusNotModified {
158721		if res.Body != nil {
158722			res.Body.Close()
158723		}
158724		return nil, &googleapi.Error{
158725			Code:   res.StatusCode,
158726			Header: res.Header,
158727		}
158728	}
158729	if err != nil {
158730		return nil, err
158731	}
158732	defer googleapi.CloseBody(res)
158733	if err := googleapi.CheckResponse(res); err != nil {
158734		return nil, err
158735	}
158736	ret := &TargetPoolList{
158737		ServerResponse: googleapi.ServerResponse{
158738			Header:         res.Header,
158739			HTTPStatusCode: res.StatusCode,
158740		},
158741	}
158742	target := &ret
158743	if err := gensupport.DecodeResponse(target, res); err != nil {
158744		return nil, err
158745	}
158746	return ret, nil
158747	// {
158748	//   "description": "Retrieves a list of target pools available to the specified project and region.",
158749	//   "flatPath": "projects/{project}/regions/{region}/targetPools",
158750	//   "httpMethod": "GET",
158751	//   "id": "compute.targetPools.list",
158752	//   "parameterOrder": [
158753	//     "project",
158754	//     "region"
158755	//   ],
158756	//   "parameters": {
158757	//     "filter": {
158758	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158759	//       "location": "query",
158760	//       "type": "string"
158761	//     },
158762	//     "maxResults": {
158763	//       "default": "500",
158764	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158765	//       "format": "uint32",
158766	//       "location": "query",
158767	//       "minimum": "0",
158768	//       "type": "integer"
158769	//     },
158770	//     "orderBy": {
158771	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
158772	//       "location": "query",
158773	//       "type": "string"
158774	//     },
158775	//     "pageToken": {
158776	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158777	//       "location": "query",
158778	//       "type": "string"
158779	//     },
158780	//     "project": {
158781	//       "description": "Project ID for this request.",
158782	//       "location": "path",
158783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158784	//       "required": true,
158785	//       "type": "string"
158786	//     },
158787	//     "region": {
158788	//       "description": "Name of the region scoping this request.",
158789	//       "location": "path",
158790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158791	//       "required": true,
158792	//       "type": "string"
158793	//     },
158794	//     "returnPartialSuccess": {
158795	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158796	//       "location": "query",
158797	//       "type": "boolean"
158798	//     }
158799	//   },
158800	//   "path": "projects/{project}/regions/{region}/targetPools",
158801	//   "response": {
158802	//     "$ref": "TargetPoolList"
158803	//   },
158804	//   "scopes": [
158805	//     "https://www.googleapis.com/auth/cloud-platform",
158806	//     "https://www.googleapis.com/auth/compute",
158807	//     "https://www.googleapis.com/auth/compute.readonly"
158808	//   ]
158809	// }
158810
158811}
158812
158813// Pages invokes f for each page of results.
158814// A non-nil error returned from f will halt the iteration.
158815// The provided context supersedes any context provided to the Context method.
158816func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
158817	c.ctx_ = ctx
158818	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158819	for {
158820		x, err := c.Do()
158821		if err != nil {
158822			return err
158823		}
158824		if err := f(x); err != nil {
158825			return err
158826		}
158827		if x.NextPageToken == "" {
158828			return nil
158829		}
158830		c.PageToken(x.NextPageToken)
158831	}
158832}
158833
158834// method id "compute.targetPools.removeHealthCheck":
158835
158836type TargetPoolsRemoveHealthCheckCall struct {
158837	s                                   *Service
158838	project                             string
158839	region                              string
158840	targetPool                          string
158841	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
158842	urlParams_                          gensupport.URLParams
158843	ctx_                                context.Context
158844	header_                             http.Header
158845}
158846
158847// RemoveHealthCheck: Removes health check URL from a target pool.
158848//
158849// - project: Project ID for this request.
158850// - region: Name of the region for this request.
158851// - targetPool: Name of the target pool to remove health checks from.
158852func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
158853	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158854	c.project = project
158855	c.region = region
158856	c.targetPool = targetPool
158857	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
158858	return c
158859}
158860
158861// RequestId sets the optional parameter "requestId": An optional
158862// request ID to identify requests. Specify a unique request ID so that
158863// if you must retry your request, the server will know to ignore the
158864// request if it has already been completed. For example, consider a
158865// situation where you make an initial request and the request times
158866// out. If you make the request again with the same request ID, the
158867// server can check if original operation with the same request ID was
158868// received, and if so, will ignore the second request. This prevents
158869// clients from accidentally creating duplicate commitments. The request
158870// ID must be a valid UUID with the exception that zero UUID is not
158871// supported ( 00000000-0000-0000-0000-000000000000).
158872func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
158873	c.urlParams_.Set("requestId", requestId)
158874	return c
158875}
158876
158877// Fields allows partial responses to be retrieved. See
158878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158879// for more information.
158880func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
158881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158882	return c
158883}
158884
158885// Context sets the context to be used in this call's Do method. Any
158886// pending HTTP request will be aborted if the provided context is
158887// canceled.
158888func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
158889	c.ctx_ = ctx
158890	return c
158891}
158892
158893// Header returns an http.Header that can be modified by the caller to
158894// add HTTP headers to the request.
158895func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
158896	if c.header_ == nil {
158897		c.header_ = make(http.Header)
158898	}
158899	return c.header_
158900}
158901
158902func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
158903	reqHeaders := make(http.Header)
158904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
158905	for k, v := range c.header_ {
158906		reqHeaders[k] = v
158907	}
158908	reqHeaders.Set("User-Agent", c.s.userAgent())
158909	var body io.Reader = nil
158910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
158911	if err != nil {
158912		return nil, err
158913	}
158914	reqHeaders.Set("Content-Type", "application/json")
158915	c.urlParams_.Set("alt", alt)
158916	c.urlParams_.Set("prettyPrint", "false")
158917	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
158918	urls += "?" + c.urlParams_.Encode()
158919	req, err := http.NewRequest("POST", urls, body)
158920	if err != nil {
158921		return nil, err
158922	}
158923	req.Header = reqHeaders
158924	googleapi.Expand(req.URL, map[string]string{
158925		"project":    c.project,
158926		"region":     c.region,
158927		"targetPool": c.targetPool,
158928	})
158929	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158930}
158931
158932// Do executes the "compute.targetPools.removeHealthCheck" call.
158933// Exactly one of *Operation or error will be non-nil. Any non-2xx
158934// status code is an error. Response headers are in either
158935// *Operation.ServerResponse.Header or (if a response was returned at
158936// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158937// to check whether the returned error was because
158938// http.StatusNotModified was returned.
158939func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158940	gensupport.SetOptions(c.urlParams_, opts...)
158941	res, err := c.doRequest("json")
158942	if res != nil && res.StatusCode == http.StatusNotModified {
158943		if res.Body != nil {
158944			res.Body.Close()
158945		}
158946		return nil, &googleapi.Error{
158947			Code:   res.StatusCode,
158948			Header: res.Header,
158949		}
158950	}
158951	if err != nil {
158952		return nil, err
158953	}
158954	defer googleapi.CloseBody(res)
158955	if err := googleapi.CheckResponse(res); err != nil {
158956		return nil, err
158957	}
158958	ret := &Operation{
158959		ServerResponse: googleapi.ServerResponse{
158960			Header:         res.Header,
158961			HTTPStatusCode: res.StatusCode,
158962		},
158963	}
158964	target := &ret
158965	if err := gensupport.DecodeResponse(target, res); err != nil {
158966		return nil, err
158967	}
158968	return ret, nil
158969	// {
158970	//   "description": "Removes health check URL from a target pool.",
158971	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
158972	//   "httpMethod": "POST",
158973	//   "id": "compute.targetPools.removeHealthCheck",
158974	//   "parameterOrder": [
158975	//     "project",
158976	//     "region",
158977	//     "targetPool"
158978	//   ],
158979	//   "parameters": {
158980	//     "project": {
158981	//       "description": "Project ID for this request.",
158982	//       "location": "path",
158983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158984	//       "required": true,
158985	//       "type": "string"
158986	//     },
158987	//     "region": {
158988	//       "description": "Name of the region for this request.",
158989	//       "location": "path",
158990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158991	//       "required": true,
158992	//       "type": "string"
158993	//     },
158994	//     "requestId": {
158995	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
158996	//       "location": "query",
158997	//       "type": "string"
158998	//     },
158999	//     "targetPool": {
159000	//       "description": "Name of the target pool to remove health checks from.",
159001	//       "location": "path",
159002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159003	//       "required": true,
159004	//       "type": "string"
159005	//     }
159006	//   },
159007	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
159008	//   "request": {
159009	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
159010	//   },
159011	//   "response": {
159012	//     "$ref": "Operation"
159013	//   },
159014	//   "scopes": [
159015	//     "https://www.googleapis.com/auth/cloud-platform",
159016	//     "https://www.googleapis.com/auth/compute"
159017	//   ]
159018	// }
159019
159020}
159021
159022// method id "compute.targetPools.removeInstance":
159023
159024type TargetPoolsRemoveInstanceCall struct {
159025	s                                *Service
159026	project                          string
159027	region                           string
159028	targetPool                       string
159029	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
159030	urlParams_                       gensupport.URLParams
159031	ctx_                             context.Context
159032	header_                          http.Header
159033}
159034
159035// RemoveInstance: Removes instance URL from a target pool.
159036//
159037// - project: Project ID for this request.
159038// - region: Name of the region scoping this request.
159039// - targetPool: Name of the TargetPool resource to remove instances
159040//   from.
159041func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
159042	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159043	c.project = project
159044	c.region = region
159045	c.targetPool = targetPool
159046	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
159047	return c
159048}
159049
159050// RequestId sets the optional parameter "requestId": An optional
159051// request ID to identify requests. Specify a unique request ID so that
159052// if you must retry your request, the server will know to ignore the
159053// request if it has already been completed. For example, consider a
159054// situation where you make an initial request and the request times
159055// out. If you make the request again with the same request ID, the
159056// server can check if original operation with the same request ID was
159057// received, and if so, will ignore the second request. This prevents
159058// clients from accidentally creating duplicate commitments. The request
159059// ID must be a valid UUID with the exception that zero UUID is not
159060// supported ( 00000000-0000-0000-0000-000000000000).
159061func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
159062	c.urlParams_.Set("requestId", requestId)
159063	return c
159064}
159065
159066// Fields allows partial responses to be retrieved. See
159067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159068// for more information.
159069func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
159070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159071	return c
159072}
159073
159074// Context sets the context to be used in this call's Do method. Any
159075// pending HTTP request will be aborted if the provided context is
159076// canceled.
159077func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
159078	c.ctx_ = ctx
159079	return c
159080}
159081
159082// Header returns an http.Header that can be modified by the caller to
159083// add HTTP headers to the request.
159084func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
159085	if c.header_ == nil {
159086		c.header_ = make(http.Header)
159087	}
159088	return c.header_
159089}
159090
159091func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
159092	reqHeaders := make(http.Header)
159093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
159094	for k, v := range c.header_ {
159095		reqHeaders[k] = v
159096	}
159097	reqHeaders.Set("User-Agent", c.s.userAgent())
159098	var body io.Reader = nil
159099	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
159100	if err != nil {
159101		return nil, err
159102	}
159103	reqHeaders.Set("Content-Type", "application/json")
159104	c.urlParams_.Set("alt", alt)
159105	c.urlParams_.Set("prettyPrint", "false")
159106	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
159107	urls += "?" + c.urlParams_.Encode()
159108	req, err := http.NewRequest("POST", urls, body)
159109	if err != nil {
159110		return nil, err
159111	}
159112	req.Header = reqHeaders
159113	googleapi.Expand(req.URL, map[string]string{
159114		"project":    c.project,
159115		"region":     c.region,
159116		"targetPool": c.targetPool,
159117	})
159118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159119}
159120
159121// Do executes the "compute.targetPools.removeInstance" call.
159122// Exactly one of *Operation or error will be non-nil. Any non-2xx
159123// status code is an error. Response headers are in either
159124// *Operation.ServerResponse.Header or (if a response was returned at
159125// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159126// to check whether the returned error was because
159127// http.StatusNotModified was returned.
159128func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159129	gensupport.SetOptions(c.urlParams_, opts...)
159130	res, err := c.doRequest("json")
159131	if res != nil && res.StatusCode == http.StatusNotModified {
159132		if res.Body != nil {
159133			res.Body.Close()
159134		}
159135		return nil, &googleapi.Error{
159136			Code:   res.StatusCode,
159137			Header: res.Header,
159138		}
159139	}
159140	if err != nil {
159141		return nil, err
159142	}
159143	defer googleapi.CloseBody(res)
159144	if err := googleapi.CheckResponse(res); err != nil {
159145		return nil, err
159146	}
159147	ret := &Operation{
159148		ServerResponse: googleapi.ServerResponse{
159149			Header:         res.Header,
159150			HTTPStatusCode: res.StatusCode,
159151		},
159152	}
159153	target := &ret
159154	if err := gensupport.DecodeResponse(target, res); err != nil {
159155		return nil, err
159156	}
159157	return ret, nil
159158	// {
159159	//   "description": "Removes instance URL from a target pool.",
159160	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
159161	//   "httpMethod": "POST",
159162	//   "id": "compute.targetPools.removeInstance",
159163	//   "parameterOrder": [
159164	//     "project",
159165	//     "region",
159166	//     "targetPool"
159167	//   ],
159168	//   "parameters": {
159169	//     "project": {
159170	//       "description": "Project ID for this request.",
159171	//       "location": "path",
159172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159173	//       "required": true,
159174	//       "type": "string"
159175	//     },
159176	//     "region": {
159177	//       "description": "Name of the region scoping this request.",
159178	//       "location": "path",
159179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159180	//       "required": true,
159181	//       "type": "string"
159182	//     },
159183	//     "requestId": {
159184	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159185	//       "location": "query",
159186	//       "type": "string"
159187	//     },
159188	//     "targetPool": {
159189	//       "description": "Name of the TargetPool resource to remove instances from.",
159190	//       "location": "path",
159191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159192	//       "required": true,
159193	//       "type": "string"
159194	//     }
159195	//   },
159196	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
159197	//   "request": {
159198	//     "$ref": "TargetPoolsRemoveInstanceRequest"
159199	//   },
159200	//   "response": {
159201	//     "$ref": "Operation"
159202	//   },
159203	//   "scopes": [
159204	//     "https://www.googleapis.com/auth/cloud-platform",
159205	//     "https://www.googleapis.com/auth/compute"
159206	//   ]
159207	// }
159208
159209}
159210
159211// method id "compute.targetPools.setBackup":
159212
159213type TargetPoolsSetBackupCall struct {
159214	s               *Service
159215	project         string
159216	region          string
159217	targetPool      string
159218	targetreference *TargetReference
159219	urlParams_      gensupport.URLParams
159220	ctx_            context.Context
159221	header_         http.Header
159222}
159223
159224// SetBackup: Changes a backup target pool's configurations.
159225//
159226// - project: Project ID for this request.
159227// - region: Name of the region scoping this request.
159228// - targetPool: Name of the TargetPool resource to set a backup pool
159229//   for.
159230func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
159231	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159232	c.project = project
159233	c.region = region
159234	c.targetPool = targetPool
159235	c.targetreference = targetreference
159236	return c
159237}
159238
159239// FailoverRatio sets the optional parameter "failoverRatio": New
159240// failoverRatio value for the target pool.
159241func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
159242	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
159243	return c
159244}
159245
159246// RequestId sets the optional parameter "requestId": An optional
159247// request ID to identify requests. Specify a unique request ID so that
159248// if you must retry your request, the server will know to ignore the
159249// request if it has already been completed. For example, consider a
159250// situation where you make an initial request and the request times
159251// out. If you make the request again with the same request ID, the
159252// server can check if original operation with the same request ID was
159253// received, and if so, will ignore the second request. This prevents
159254// clients from accidentally creating duplicate commitments. The request
159255// ID must be a valid UUID with the exception that zero UUID is not
159256// supported ( 00000000-0000-0000-0000-000000000000).
159257func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
159258	c.urlParams_.Set("requestId", requestId)
159259	return c
159260}
159261
159262// Fields allows partial responses to be retrieved. See
159263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159264// for more information.
159265func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
159266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159267	return c
159268}
159269
159270// Context sets the context to be used in this call's Do method. Any
159271// pending HTTP request will be aborted if the provided context is
159272// canceled.
159273func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
159274	c.ctx_ = ctx
159275	return c
159276}
159277
159278// Header returns an http.Header that can be modified by the caller to
159279// add HTTP headers to the request.
159280func (c *TargetPoolsSetBackupCall) Header() http.Header {
159281	if c.header_ == nil {
159282		c.header_ = make(http.Header)
159283	}
159284	return c.header_
159285}
159286
159287func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
159288	reqHeaders := make(http.Header)
159289	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
159290	for k, v := range c.header_ {
159291		reqHeaders[k] = v
159292	}
159293	reqHeaders.Set("User-Agent", c.s.userAgent())
159294	var body io.Reader = nil
159295	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
159296	if err != nil {
159297		return nil, err
159298	}
159299	reqHeaders.Set("Content-Type", "application/json")
159300	c.urlParams_.Set("alt", alt)
159301	c.urlParams_.Set("prettyPrint", "false")
159302	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup")
159303	urls += "?" + c.urlParams_.Encode()
159304	req, err := http.NewRequest("POST", urls, body)
159305	if err != nil {
159306		return nil, err
159307	}
159308	req.Header = reqHeaders
159309	googleapi.Expand(req.URL, map[string]string{
159310		"project":    c.project,
159311		"region":     c.region,
159312		"targetPool": c.targetPool,
159313	})
159314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159315}
159316
159317// Do executes the "compute.targetPools.setBackup" call.
159318// Exactly one of *Operation or error will be non-nil. Any non-2xx
159319// status code is an error. Response headers are in either
159320// *Operation.ServerResponse.Header or (if a response was returned at
159321// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159322// to check whether the returned error was because
159323// http.StatusNotModified was returned.
159324func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159325	gensupport.SetOptions(c.urlParams_, opts...)
159326	res, err := c.doRequest("json")
159327	if res != nil && res.StatusCode == http.StatusNotModified {
159328		if res.Body != nil {
159329			res.Body.Close()
159330		}
159331		return nil, &googleapi.Error{
159332			Code:   res.StatusCode,
159333			Header: res.Header,
159334		}
159335	}
159336	if err != nil {
159337		return nil, err
159338	}
159339	defer googleapi.CloseBody(res)
159340	if err := googleapi.CheckResponse(res); err != nil {
159341		return nil, err
159342	}
159343	ret := &Operation{
159344		ServerResponse: googleapi.ServerResponse{
159345			Header:         res.Header,
159346			HTTPStatusCode: res.StatusCode,
159347		},
159348	}
159349	target := &ret
159350	if err := gensupport.DecodeResponse(target, res); err != nil {
159351		return nil, err
159352	}
159353	return ret, nil
159354	// {
159355	//   "description": "Changes a backup target pool's configurations.",
159356	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
159357	//   "httpMethod": "POST",
159358	//   "id": "compute.targetPools.setBackup",
159359	//   "parameterOrder": [
159360	//     "project",
159361	//     "region",
159362	//     "targetPool"
159363	//   ],
159364	//   "parameters": {
159365	//     "failoverRatio": {
159366	//       "description": "New failoverRatio value for the target pool.",
159367	//       "format": "float",
159368	//       "location": "query",
159369	//       "type": "number"
159370	//     },
159371	//     "project": {
159372	//       "description": "Project ID for this request.",
159373	//       "location": "path",
159374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159375	//       "required": true,
159376	//       "type": "string"
159377	//     },
159378	//     "region": {
159379	//       "description": "Name of the region scoping this request.",
159380	//       "location": "path",
159381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159382	//       "required": true,
159383	//       "type": "string"
159384	//     },
159385	//     "requestId": {
159386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159387	//       "location": "query",
159388	//       "type": "string"
159389	//     },
159390	//     "targetPool": {
159391	//       "description": "Name of the TargetPool resource to set a backup pool for.",
159392	//       "location": "path",
159393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159394	//       "required": true,
159395	//       "type": "string"
159396	//     }
159397	//   },
159398	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
159399	//   "request": {
159400	//     "$ref": "TargetReference"
159401	//   },
159402	//   "response": {
159403	//     "$ref": "Operation"
159404	//   },
159405	//   "scopes": [
159406	//     "https://www.googleapis.com/auth/cloud-platform",
159407	//     "https://www.googleapis.com/auth/compute"
159408	//   ]
159409	// }
159410
159411}
159412
159413// method id "compute.targetSslProxies.delete":
159414
159415type TargetSslProxiesDeleteCall struct {
159416	s              *Service
159417	project        string
159418	targetSslProxy string
159419	urlParams_     gensupport.URLParams
159420	ctx_           context.Context
159421	header_        http.Header
159422}
159423
159424// Delete: Deletes the specified TargetSslProxy resource.
159425//
159426// - project: Project ID for this request.
159427// - targetSslProxy: Name of the TargetSslProxy resource to delete.
159428func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
159429	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159430	c.project = project
159431	c.targetSslProxy = targetSslProxy
159432	return c
159433}
159434
159435// RequestId sets the optional parameter "requestId": An optional
159436// request ID to identify requests. Specify a unique request ID so that
159437// if you must retry your request, the server will know to ignore the
159438// request if it has already been completed. For example, consider a
159439// situation where you make an initial request and the request times
159440// out. If you make the request again with the same request ID, the
159441// server can check if original operation with the same request ID was
159442// received, and if so, will ignore the second request. This prevents
159443// clients from accidentally creating duplicate commitments. The request
159444// ID must be a valid UUID with the exception that zero UUID is not
159445// supported ( 00000000-0000-0000-0000-000000000000).
159446func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
159447	c.urlParams_.Set("requestId", requestId)
159448	return c
159449}
159450
159451// Fields allows partial responses to be retrieved. See
159452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159453// for more information.
159454func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
159455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159456	return c
159457}
159458
159459// Context sets the context to be used in this call's Do method. Any
159460// pending HTTP request will be aborted if the provided context is
159461// canceled.
159462func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
159463	c.ctx_ = ctx
159464	return c
159465}
159466
159467// Header returns an http.Header that can be modified by the caller to
159468// add HTTP headers to the request.
159469func (c *TargetSslProxiesDeleteCall) Header() http.Header {
159470	if c.header_ == nil {
159471		c.header_ = make(http.Header)
159472	}
159473	return c.header_
159474}
159475
159476func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
159477	reqHeaders := make(http.Header)
159478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
159479	for k, v := range c.header_ {
159480		reqHeaders[k] = v
159481	}
159482	reqHeaders.Set("User-Agent", c.s.userAgent())
159483	var body io.Reader = nil
159484	c.urlParams_.Set("alt", alt)
159485	c.urlParams_.Set("prettyPrint", "false")
159486	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
159487	urls += "?" + c.urlParams_.Encode()
159488	req, err := http.NewRequest("DELETE", urls, body)
159489	if err != nil {
159490		return nil, err
159491	}
159492	req.Header = reqHeaders
159493	googleapi.Expand(req.URL, map[string]string{
159494		"project":        c.project,
159495		"targetSslProxy": c.targetSslProxy,
159496	})
159497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159498}
159499
159500// Do executes the "compute.targetSslProxies.delete" call.
159501// Exactly one of *Operation or error will be non-nil. Any non-2xx
159502// status code is an error. Response headers are in either
159503// *Operation.ServerResponse.Header or (if a response was returned at
159504// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159505// to check whether the returned error was because
159506// http.StatusNotModified was returned.
159507func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159508	gensupport.SetOptions(c.urlParams_, opts...)
159509	res, err := c.doRequest("json")
159510	if res != nil && res.StatusCode == http.StatusNotModified {
159511		if res.Body != nil {
159512			res.Body.Close()
159513		}
159514		return nil, &googleapi.Error{
159515			Code:   res.StatusCode,
159516			Header: res.Header,
159517		}
159518	}
159519	if err != nil {
159520		return nil, err
159521	}
159522	defer googleapi.CloseBody(res)
159523	if err := googleapi.CheckResponse(res); err != nil {
159524		return nil, err
159525	}
159526	ret := &Operation{
159527		ServerResponse: googleapi.ServerResponse{
159528			Header:         res.Header,
159529			HTTPStatusCode: res.StatusCode,
159530		},
159531	}
159532	target := &ret
159533	if err := gensupport.DecodeResponse(target, res); err != nil {
159534		return nil, err
159535	}
159536	return ret, nil
159537	// {
159538	//   "description": "Deletes the specified TargetSslProxy resource.",
159539	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159540	//   "httpMethod": "DELETE",
159541	//   "id": "compute.targetSslProxies.delete",
159542	//   "parameterOrder": [
159543	//     "project",
159544	//     "targetSslProxy"
159545	//   ],
159546	//   "parameters": {
159547	//     "project": {
159548	//       "description": "Project ID for this request.",
159549	//       "location": "path",
159550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159551	//       "required": true,
159552	//       "type": "string"
159553	//     },
159554	//     "requestId": {
159555	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159556	//       "location": "query",
159557	//       "type": "string"
159558	//     },
159559	//     "targetSslProxy": {
159560	//       "description": "Name of the TargetSslProxy resource to delete.",
159561	//       "location": "path",
159562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159563	//       "required": true,
159564	//       "type": "string"
159565	//     }
159566	//   },
159567	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159568	//   "response": {
159569	//     "$ref": "Operation"
159570	//   },
159571	//   "scopes": [
159572	//     "https://www.googleapis.com/auth/cloud-platform",
159573	//     "https://www.googleapis.com/auth/compute"
159574	//   ]
159575	// }
159576
159577}
159578
159579// method id "compute.targetSslProxies.get":
159580
159581type TargetSslProxiesGetCall struct {
159582	s              *Service
159583	project        string
159584	targetSslProxy string
159585	urlParams_     gensupport.URLParams
159586	ifNoneMatch_   string
159587	ctx_           context.Context
159588	header_        http.Header
159589}
159590
159591// Get: Returns the specified TargetSslProxy resource. Gets a list of
159592// available target SSL proxies by making a list() request.
159593//
159594// - project: Project ID for this request.
159595// - targetSslProxy: Name of the TargetSslProxy resource to return.
159596func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
159597	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159598	c.project = project
159599	c.targetSslProxy = targetSslProxy
159600	return c
159601}
159602
159603// Fields allows partial responses to be retrieved. See
159604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159605// for more information.
159606func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
159607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159608	return c
159609}
159610
159611// IfNoneMatch sets the optional parameter which makes the operation
159612// fail if the object's ETag matches the given value. This is useful for
159613// getting updates only after the object has changed since the last
159614// request. Use googleapi.IsNotModified to check whether the response
159615// error from Do is the result of In-None-Match.
159616func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
159617	c.ifNoneMatch_ = entityTag
159618	return c
159619}
159620
159621// Context sets the context to be used in this call's Do method. Any
159622// pending HTTP request will be aborted if the provided context is
159623// canceled.
159624func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
159625	c.ctx_ = ctx
159626	return c
159627}
159628
159629// Header returns an http.Header that can be modified by the caller to
159630// add HTTP headers to the request.
159631func (c *TargetSslProxiesGetCall) Header() http.Header {
159632	if c.header_ == nil {
159633		c.header_ = make(http.Header)
159634	}
159635	return c.header_
159636}
159637
159638func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
159639	reqHeaders := make(http.Header)
159640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
159641	for k, v := range c.header_ {
159642		reqHeaders[k] = v
159643	}
159644	reqHeaders.Set("User-Agent", c.s.userAgent())
159645	if c.ifNoneMatch_ != "" {
159646		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159647	}
159648	var body io.Reader = nil
159649	c.urlParams_.Set("alt", alt)
159650	c.urlParams_.Set("prettyPrint", "false")
159651	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
159652	urls += "?" + c.urlParams_.Encode()
159653	req, err := http.NewRequest("GET", urls, body)
159654	if err != nil {
159655		return nil, err
159656	}
159657	req.Header = reqHeaders
159658	googleapi.Expand(req.URL, map[string]string{
159659		"project":        c.project,
159660		"targetSslProxy": c.targetSslProxy,
159661	})
159662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159663}
159664
159665// Do executes the "compute.targetSslProxies.get" call.
159666// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
159667// status code is an error. Response headers are in either
159668// *TargetSslProxy.ServerResponse.Header or (if a response was returned
159669// at all) in error.(*googleapi.Error).Header. Use
159670// googleapi.IsNotModified to check whether the returned error was
159671// because http.StatusNotModified was returned.
159672func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
159673	gensupport.SetOptions(c.urlParams_, opts...)
159674	res, err := c.doRequest("json")
159675	if res != nil && res.StatusCode == http.StatusNotModified {
159676		if res.Body != nil {
159677			res.Body.Close()
159678		}
159679		return nil, &googleapi.Error{
159680			Code:   res.StatusCode,
159681			Header: res.Header,
159682		}
159683	}
159684	if err != nil {
159685		return nil, err
159686	}
159687	defer googleapi.CloseBody(res)
159688	if err := googleapi.CheckResponse(res); err != nil {
159689		return nil, err
159690	}
159691	ret := &TargetSslProxy{
159692		ServerResponse: googleapi.ServerResponse{
159693			Header:         res.Header,
159694			HTTPStatusCode: res.StatusCode,
159695		},
159696	}
159697	target := &ret
159698	if err := gensupport.DecodeResponse(target, res); err != nil {
159699		return nil, err
159700	}
159701	return ret, nil
159702	// {
159703	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
159704	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159705	//   "httpMethod": "GET",
159706	//   "id": "compute.targetSslProxies.get",
159707	//   "parameterOrder": [
159708	//     "project",
159709	//     "targetSslProxy"
159710	//   ],
159711	//   "parameters": {
159712	//     "project": {
159713	//       "description": "Project ID for this request.",
159714	//       "location": "path",
159715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159716	//       "required": true,
159717	//       "type": "string"
159718	//     },
159719	//     "targetSslProxy": {
159720	//       "description": "Name of the TargetSslProxy resource to return.",
159721	//       "location": "path",
159722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159723	//       "required": true,
159724	//       "type": "string"
159725	//     }
159726	//   },
159727	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159728	//   "response": {
159729	//     "$ref": "TargetSslProxy"
159730	//   },
159731	//   "scopes": [
159732	//     "https://www.googleapis.com/auth/cloud-platform",
159733	//     "https://www.googleapis.com/auth/compute",
159734	//     "https://www.googleapis.com/auth/compute.readonly"
159735	//   ]
159736	// }
159737
159738}
159739
159740// method id "compute.targetSslProxies.insert":
159741
159742type TargetSslProxiesInsertCall struct {
159743	s              *Service
159744	project        string
159745	targetsslproxy *TargetSslProxy
159746	urlParams_     gensupport.URLParams
159747	ctx_           context.Context
159748	header_        http.Header
159749}
159750
159751// Insert: Creates a TargetSslProxy resource in the specified project
159752// using the data included in the request.
159753//
159754// - project: Project ID for this request.
159755func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
159756	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159757	c.project = project
159758	c.targetsslproxy = targetsslproxy
159759	return c
159760}
159761
159762// RequestId sets the optional parameter "requestId": An optional
159763// request ID to identify requests. Specify a unique request ID so that
159764// if you must retry your request, the server will know to ignore the
159765// request if it has already been completed. For example, consider a
159766// situation where you make an initial request and the request times
159767// out. If you make the request again with the same request ID, the
159768// server can check if original operation with the same request ID was
159769// received, and if so, will ignore the second request. This prevents
159770// clients from accidentally creating duplicate commitments. The request
159771// ID must be a valid UUID with the exception that zero UUID is not
159772// supported ( 00000000-0000-0000-0000-000000000000).
159773func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
159774	c.urlParams_.Set("requestId", requestId)
159775	return c
159776}
159777
159778// Fields allows partial responses to be retrieved. See
159779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159780// for more information.
159781func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
159782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159783	return c
159784}
159785
159786// Context sets the context to be used in this call's Do method. Any
159787// pending HTTP request will be aborted if the provided context is
159788// canceled.
159789func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
159790	c.ctx_ = ctx
159791	return c
159792}
159793
159794// Header returns an http.Header that can be modified by the caller to
159795// add HTTP headers to the request.
159796func (c *TargetSslProxiesInsertCall) Header() http.Header {
159797	if c.header_ == nil {
159798		c.header_ = make(http.Header)
159799	}
159800	return c.header_
159801}
159802
159803func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
159804	reqHeaders := make(http.Header)
159805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
159806	for k, v := range c.header_ {
159807		reqHeaders[k] = v
159808	}
159809	reqHeaders.Set("User-Agent", c.s.userAgent())
159810	var body io.Reader = nil
159811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
159812	if err != nil {
159813		return nil, err
159814	}
159815	reqHeaders.Set("Content-Type", "application/json")
159816	c.urlParams_.Set("alt", alt)
159817	c.urlParams_.Set("prettyPrint", "false")
159818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
159819	urls += "?" + c.urlParams_.Encode()
159820	req, err := http.NewRequest("POST", urls, body)
159821	if err != nil {
159822		return nil, err
159823	}
159824	req.Header = reqHeaders
159825	googleapi.Expand(req.URL, map[string]string{
159826		"project": c.project,
159827	})
159828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159829}
159830
159831// Do executes the "compute.targetSslProxies.insert" call.
159832// Exactly one of *Operation or error will be non-nil. Any non-2xx
159833// status code is an error. Response headers are in either
159834// *Operation.ServerResponse.Header or (if a response was returned at
159835// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159836// to check whether the returned error was because
159837// http.StatusNotModified was returned.
159838func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159839	gensupport.SetOptions(c.urlParams_, opts...)
159840	res, err := c.doRequest("json")
159841	if res != nil && res.StatusCode == http.StatusNotModified {
159842		if res.Body != nil {
159843			res.Body.Close()
159844		}
159845		return nil, &googleapi.Error{
159846			Code:   res.StatusCode,
159847			Header: res.Header,
159848		}
159849	}
159850	if err != nil {
159851		return nil, err
159852	}
159853	defer googleapi.CloseBody(res)
159854	if err := googleapi.CheckResponse(res); err != nil {
159855		return nil, err
159856	}
159857	ret := &Operation{
159858		ServerResponse: googleapi.ServerResponse{
159859			Header:         res.Header,
159860			HTTPStatusCode: res.StatusCode,
159861		},
159862	}
159863	target := &ret
159864	if err := gensupport.DecodeResponse(target, res); err != nil {
159865		return nil, err
159866	}
159867	return ret, nil
159868	// {
159869	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
159870	//   "flatPath": "projects/{project}/global/targetSslProxies",
159871	//   "httpMethod": "POST",
159872	//   "id": "compute.targetSslProxies.insert",
159873	//   "parameterOrder": [
159874	//     "project"
159875	//   ],
159876	//   "parameters": {
159877	//     "project": {
159878	//       "description": "Project ID for this request.",
159879	//       "location": "path",
159880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159881	//       "required": true,
159882	//       "type": "string"
159883	//     },
159884	//     "requestId": {
159885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159886	//       "location": "query",
159887	//       "type": "string"
159888	//     }
159889	//   },
159890	//   "path": "projects/{project}/global/targetSslProxies",
159891	//   "request": {
159892	//     "$ref": "TargetSslProxy"
159893	//   },
159894	//   "response": {
159895	//     "$ref": "Operation"
159896	//   },
159897	//   "scopes": [
159898	//     "https://www.googleapis.com/auth/cloud-platform",
159899	//     "https://www.googleapis.com/auth/compute"
159900	//   ]
159901	// }
159902
159903}
159904
159905// method id "compute.targetSslProxies.list":
159906
159907type TargetSslProxiesListCall struct {
159908	s            *Service
159909	project      string
159910	urlParams_   gensupport.URLParams
159911	ifNoneMatch_ string
159912	ctx_         context.Context
159913	header_      http.Header
159914}
159915
159916// List: Retrieves the list of TargetSslProxy resources available to the
159917// specified project.
159918//
159919// - project: Project ID for this request.
159920func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
159921	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159922	c.project = project
159923	return c
159924}
159925
159926// Filter sets the optional parameter "filter": A filter expression that
159927// filters resources listed in the response. The expression must specify
159928// the field name, a comparison operator, and the value that you want to
159929// use for filtering. The value must be a string, a number, or a
159930// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159931// `<`. For example, if you are filtering Compute Engine instances, you
159932// can exclude instances named `example-instance` by specifying `name !=
159933// example-instance`. You can also filter nested fields. For example,
159934// you could specify `scheduling.automaticRestart = false` to include
159935// instances only if they are not scheduled for automatic restarts. You
159936// can use filtering on nested fields to filter based on resource
159937// labels. To filter on multiple expressions, provide each separate
159938// expression within parentheses. For example: ```
159939// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
159940// ``` By default, each expression is an `AND` expression. However, you
159941// can include `AND` and `OR` expressions explicitly. For example: ```
159942// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
159943// AND (scheduling.automaticRestart = true) ```
159944func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
159945	c.urlParams_.Set("filter", filter)
159946	return c
159947}
159948
159949// MaxResults sets the optional parameter "maxResults": The maximum
159950// number of results per page that should be returned. If the number of
159951// available results is larger than `maxResults`, Compute Engine returns
159952// a `nextPageToken` that can be used to get the next page of results in
159953// subsequent list requests. Acceptable values are `0` to `500`,
159954// inclusive. (Default: `500`)
159955func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
159956	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159957	return c
159958}
159959
159960// OrderBy sets the optional parameter "orderBy": Sorts list results by
159961// a certain order. By default, results are returned in alphanumerical
159962// order based on the resource name. You can also sort results in
159963// descending order based on the creation timestamp using
159964// `orderBy="creationTimestamp desc". This sorts results based on the
159965// `creationTimestamp` field in reverse chronological order (newest
159966// result first). Use this to sort resources like operations so that the
159967// newest operation is returned first. Currently, only sorting by `name`
159968// or `creationTimestamp desc` is supported.
159969func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
159970	c.urlParams_.Set("orderBy", orderBy)
159971	return c
159972}
159973
159974// PageToken sets the optional parameter "pageToken": Specifies a page
159975// token to use. Set `pageToken` to the `nextPageToken` returned by a
159976// previous list request to get the next page of results.
159977func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
159978	c.urlParams_.Set("pageToken", pageToken)
159979	return c
159980}
159981
159982// ReturnPartialSuccess sets the optional parameter
159983// "returnPartialSuccess": Opt-in for partial success behavior which
159984// provides partial results in case of failure. The default value is
159985// false.
159986func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
159987	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159988	return c
159989}
159990
159991// Fields allows partial responses to be retrieved. See
159992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159993// for more information.
159994func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
159995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159996	return c
159997}
159998
159999// IfNoneMatch sets the optional parameter which makes the operation
160000// fail if the object's ETag matches the given value. This is useful for
160001// getting updates only after the object has changed since the last
160002// request. Use googleapi.IsNotModified to check whether the response
160003// error from Do is the result of In-None-Match.
160004func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
160005	c.ifNoneMatch_ = entityTag
160006	return c
160007}
160008
160009// Context sets the context to be used in this call's Do method. Any
160010// pending HTTP request will be aborted if the provided context is
160011// canceled.
160012func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
160013	c.ctx_ = ctx
160014	return c
160015}
160016
160017// Header returns an http.Header that can be modified by the caller to
160018// add HTTP headers to the request.
160019func (c *TargetSslProxiesListCall) Header() http.Header {
160020	if c.header_ == nil {
160021		c.header_ = make(http.Header)
160022	}
160023	return c.header_
160024}
160025
160026func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
160027	reqHeaders := make(http.Header)
160028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160029	for k, v := range c.header_ {
160030		reqHeaders[k] = v
160031	}
160032	reqHeaders.Set("User-Agent", c.s.userAgent())
160033	if c.ifNoneMatch_ != "" {
160034		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160035	}
160036	var body io.Reader = nil
160037	c.urlParams_.Set("alt", alt)
160038	c.urlParams_.Set("prettyPrint", "false")
160039	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
160040	urls += "?" + c.urlParams_.Encode()
160041	req, err := http.NewRequest("GET", urls, body)
160042	if err != nil {
160043		return nil, err
160044	}
160045	req.Header = reqHeaders
160046	googleapi.Expand(req.URL, map[string]string{
160047		"project": c.project,
160048	})
160049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160050}
160051
160052// Do executes the "compute.targetSslProxies.list" call.
160053// Exactly one of *TargetSslProxyList or error will be non-nil. Any
160054// non-2xx status code is an error. Response headers are in either
160055// *TargetSslProxyList.ServerResponse.Header or (if a response was
160056// returned at all) in error.(*googleapi.Error).Header. Use
160057// googleapi.IsNotModified to check whether the returned error was
160058// because http.StatusNotModified was returned.
160059func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
160060	gensupport.SetOptions(c.urlParams_, opts...)
160061	res, err := c.doRequest("json")
160062	if res != nil && res.StatusCode == http.StatusNotModified {
160063		if res.Body != nil {
160064			res.Body.Close()
160065		}
160066		return nil, &googleapi.Error{
160067			Code:   res.StatusCode,
160068			Header: res.Header,
160069		}
160070	}
160071	if err != nil {
160072		return nil, err
160073	}
160074	defer googleapi.CloseBody(res)
160075	if err := googleapi.CheckResponse(res); err != nil {
160076		return nil, err
160077	}
160078	ret := &TargetSslProxyList{
160079		ServerResponse: googleapi.ServerResponse{
160080			Header:         res.Header,
160081			HTTPStatusCode: res.StatusCode,
160082		},
160083	}
160084	target := &ret
160085	if err := gensupport.DecodeResponse(target, res); err != nil {
160086		return nil, err
160087	}
160088	return ret, nil
160089	// {
160090	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
160091	//   "flatPath": "projects/{project}/global/targetSslProxies",
160092	//   "httpMethod": "GET",
160093	//   "id": "compute.targetSslProxies.list",
160094	//   "parameterOrder": [
160095	//     "project"
160096	//   ],
160097	//   "parameters": {
160098	//     "filter": {
160099	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
160100	//       "location": "query",
160101	//       "type": "string"
160102	//     },
160103	//     "maxResults": {
160104	//       "default": "500",
160105	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160106	//       "format": "uint32",
160107	//       "location": "query",
160108	//       "minimum": "0",
160109	//       "type": "integer"
160110	//     },
160111	//     "orderBy": {
160112	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
160113	//       "location": "query",
160114	//       "type": "string"
160115	//     },
160116	//     "pageToken": {
160117	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160118	//       "location": "query",
160119	//       "type": "string"
160120	//     },
160121	//     "project": {
160122	//       "description": "Project ID for this request.",
160123	//       "location": "path",
160124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160125	//       "required": true,
160126	//       "type": "string"
160127	//     },
160128	//     "returnPartialSuccess": {
160129	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
160130	//       "location": "query",
160131	//       "type": "boolean"
160132	//     }
160133	//   },
160134	//   "path": "projects/{project}/global/targetSslProxies",
160135	//   "response": {
160136	//     "$ref": "TargetSslProxyList"
160137	//   },
160138	//   "scopes": [
160139	//     "https://www.googleapis.com/auth/cloud-platform",
160140	//     "https://www.googleapis.com/auth/compute",
160141	//     "https://www.googleapis.com/auth/compute.readonly"
160142	//   ]
160143	// }
160144
160145}
160146
160147// Pages invokes f for each page of results.
160148// A non-nil error returned from f will halt the iteration.
160149// The provided context supersedes any context provided to the Context method.
160150func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
160151	c.ctx_ = ctx
160152	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160153	for {
160154		x, err := c.Do()
160155		if err != nil {
160156			return err
160157		}
160158		if err := f(x); err != nil {
160159			return err
160160		}
160161		if x.NextPageToken == "" {
160162			return nil
160163		}
160164		c.PageToken(x.NextPageToken)
160165	}
160166}
160167
160168// method id "compute.targetSslProxies.setBackendService":
160169
160170type TargetSslProxiesSetBackendServiceCall struct {
160171	s                                        *Service
160172	project                                  string
160173	targetSslProxy                           string
160174	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
160175	urlParams_                               gensupport.URLParams
160176	ctx_                                     context.Context
160177	header_                                  http.Header
160178}
160179
160180// SetBackendService: Changes the BackendService for TargetSslProxy.
160181//
160182// - project: Project ID for this request.
160183// - targetSslProxy: Name of the TargetSslProxy resource whose
160184//   BackendService resource is to be set.
160185func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
160186	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160187	c.project = project
160188	c.targetSslProxy = targetSslProxy
160189	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
160190	return c
160191}
160192
160193// RequestId sets the optional parameter "requestId": An optional
160194// request ID to identify requests. Specify a unique request ID so that
160195// if you must retry your request, the server will know to ignore the
160196// request if it has already been completed. For example, consider a
160197// situation where you make an initial request and the request times
160198// out. If you make the request again with the same request ID, the
160199// server can check if original operation with the same request ID was
160200// received, and if so, will ignore the second request. This prevents
160201// clients from accidentally creating duplicate commitments. The request
160202// ID must be a valid UUID with the exception that zero UUID is not
160203// supported ( 00000000-0000-0000-0000-000000000000).
160204func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
160205	c.urlParams_.Set("requestId", requestId)
160206	return c
160207}
160208
160209// Fields allows partial responses to be retrieved. See
160210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160211// for more information.
160212func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
160213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160214	return c
160215}
160216
160217// Context sets the context to be used in this call's Do method. Any
160218// pending HTTP request will be aborted if the provided context is
160219// canceled.
160220func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
160221	c.ctx_ = ctx
160222	return c
160223}
160224
160225// Header returns an http.Header that can be modified by the caller to
160226// add HTTP headers to the request.
160227func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
160228	if c.header_ == nil {
160229		c.header_ = make(http.Header)
160230	}
160231	return c.header_
160232}
160233
160234func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
160235	reqHeaders := make(http.Header)
160236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160237	for k, v := range c.header_ {
160238		reqHeaders[k] = v
160239	}
160240	reqHeaders.Set("User-Agent", c.s.userAgent())
160241	var body io.Reader = nil
160242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
160243	if err != nil {
160244		return nil, err
160245	}
160246	reqHeaders.Set("Content-Type", "application/json")
160247	c.urlParams_.Set("alt", alt)
160248	c.urlParams_.Set("prettyPrint", "false")
160249	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
160250	urls += "?" + c.urlParams_.Encode()
160251	req, err := http.NewRequest("POST", urls, body)
160252	if err != nil {
160253		return nil, err
160254	}
160255	req.Header = reqHeaders
160256	googleapi.Expand(req.URL, map[string]string{
160257		"project":        c.project,
160258		"targetSslProxy": c.targetSslProxy,
160259	})
160260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160261}
160262
160263// Do executes the "compute.targetSslProxies.setBackendService" call.
160264// Exactly one of *Operation or error will be non-nil. Any non-2xx
160265// status code is an error. Response headers are in either
160266// *Operation.ServerResponse.Header or (if a response was returned at
160267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160268// to check whether the returned error was because
160269// http.StatusNotModified was returned.
160270func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160271	gensupport.SetOptions(c.urlParams_, opts...)
160272	res, err := c.doRequest("json")
160273	if res != nil && res.StatusCode == http.StatusNotModified {
160274		if res.Body != nil {
160275			res.Body.Close()
160276		}
160277		return nil, &googleapi.Error{
160278			Code:   res.StatusCode,
160279			Header: res.Header,
160280		}
160281	}
160282	if err != nil {
160283		return nil, err
160284	}
160285	defer googleapi.CloseBody(res)
160286	if err := googleapi.CheckResponse(res); err != nil {
160287		return nil, err
160288	}
160289	ret := &Operation{
160290		ServerResponse: googleapi.ServerResponse{
160291			Header:         res.Header,
160292			HTTPStatusCode: res.StatusCode,
160293		},
160294	}
160295	target := &ret
160296	if err := gensupport.DecodeResponse(target, res); err != nil {
160297		return nil, err
160298	}
160299	return ret, nil
160300	// {
160301	//   "description": "Changes the BackendService for TargetSslProxy.",
160302	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
160303	//   "httpMethod": "POST",
160304	//   "id": "compute.targetSslProxies.setBackendService",
160305	//   "parameterOrder": [
160306	//     "project",
160307	//     "targetSslProxy"
160308	//   ],
160309	//   "parameters": {
160310	//     "project": {
160311	//       "description": "Project ID for this request.",
160312	//       "location": "path",
160313	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160314	//       "required": true,
160315	//       "type": "string"
160316	//     },
160317	//     "requestId": {
160318	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160319	//       "location": "query",
160320	//       "type": "string"
160321	//     },
160322	//     "targetSslProxy": {
160323	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
160324	//       "location": "path",
160325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160326	//       "required": true,
160327	//       "type": "string"
160328	//     }
160329	//   },
160330	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
160331	//   "request": {
160332	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
160333	//   },
160334	//   "response": {
160335	//     "$ref": "Operation"
160336	//   },
160337	//   "scopes": [
160338	//     "https://www.googleapis.com/auth/cloud-platform",
160339	//     "https://www.googleapis.com/auth/compute"
160340	//   ]
160341	// }
160342
160343}
160344
160345// method id "compute.targetSslProxies.setProxyHeader":
160346
160347type TargetSslProxiesSetProxyHeaderCall struct {
160348	s                                     *Service
160349	project                               string
160350	targetSslProxy                        string
160351	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
160352	urlParams_                            gensupport.URLParams
160353	ctx_                                  context.Context
160354	header_                               http.Header
160355}
160356
160357// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
160358//
160359// - project: Project ID for this request.
160360// - targetSslProxy: Name of the TargetSslProxy resource whose
160361//   ProxyHeader is to be set.
160362func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
160363	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160364	c.project = project
160365	c.targetSslProxy = targetSslProxy
160366	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
160367	return c
160368}
160369
160370// RequestId sets the optional parameter "requestId": An optional
160371// request ID to identify requests. Specify a unique request ID so that
160372// if you must retry your request, the server will know to ignore the
160373// request if it has already been completed. For example, consider a
160374// situation where you make an initial request and the request times
160375// out. If you make the request again with the same request ID, the
160376// server can check if original operation with the same request ID was
160377// received, and if so, will ignore the second request. This prevents
160378// clients from accidentally creating duplicate commitments. The request
160379// ID must be a valid UUID with the exception that zero UUID is not
160380// supported ( 00000000-0000-0000-0000-000000000000).
160381func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
160382	c.urlParams_.Set("requestId", requestId)
160383	return c
160384}
160385
160386// Fields allows partial responses to be retrieved. See
160387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160388// for more information.
160389func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
160390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160391	return c
160392}
160393
160394// Context sets the context to be used in this call's Do method. Any
160395// pending HTTP request will be aborted if the provided context is
160396// canceled.
160397func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
160398	c.ctx_ = ctx
160399	return c
160400}
160401
160402// Header returns an http.Header that can be modified by the caller to
160403// add HTTP headers to the request.
160404func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
160405	if c.header_ == nil {
160406		c.header_ = make(http.Header)
160407	}
160408	return c.header_
160409}
160410
160411func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
160412	reqHeaders := make(http.Header)
160413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160414	for k, v := range c.header_ {
160415		reqHeaders[k] = v
160416	}
160417	reqHeaders.Set("User-Agent", c.s.userAgent())
160418	var body io.Reader = nil
160419	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
160420	if err != nil {
160421		return nil, err
160422	}
160423	reqHeaders.Set("Content-Type", "application/json")
160424	c.urlParams_.Set("alt", alt)
160425	c.urlParams_.Set("prettyPrint", "false")
160426	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
160427	urls += "?" + c.urlParams_.Encode()
160428	req, err := http.NewRequest("POST", urls, body)
160429	if err != nil {
160430		return nil, err
160431	}
160432	req.Header = reqHeaders
160433	googleapi.Expand(req.URL, map[string]string{
160434		"project":        c.project,
160435		"targetSslProxy": c.targetSslProxy,
160436	})
160437	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160438}
160439
160440// Do executes the "compute.targetSslProxies.setProxyHeader" call.
160441// Exactly one of *Operation or error will be non-nil. Any non-2xx
160442// status code is an error. Response headers are in either
160443// *Operation.ServerResponse.Header or (if a response was returned at
160444// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160445// to check whether the returned error was because
160446// http.StatusNotModified was returned.
160447func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160448	gensupport.SetOptions(c.urlParams_, opts...)
160449	res, err := c.doRequest("json")
160450	if res != nil && res.StatusCode == http.StatusNotModified {
160451		if res.Body != nil {
160452			res.Body.Close()
160453		}
160454		return nil, &googleapi.Error{
160455			Code:   res.StatusCode,
160456			Header: res.Header,
160457		}
160458	}
160459	if err != nil {
160460		return nil, err
160461	}
160462	defer googleapi.CloseBody(res)
160463	if err := googleapi.CheckResponse(res); err != nil {
160464		return nil, err
160465	}
160466	ret := &Operation{
160467		ServerResponse: googleapi.ServerResponse{
160468			Header:         res.Header,
160469			HTTPStatusCode: res.StatusCode,
160470		},
160471	}
160472	target := &ret
160473	if err := gensupport.DecodeResponse(target, res); err != nil {
160474		return nil, err
160475	}
160476	return ret, nil
160477	// {
160478	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
160479	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
160480	//   "httpMethod": "POST",
160481	//   "id": "compute.targetSslProxies.setProxyHeader",
160482	//   "parameterOrder": [
160483	//     "project",
160484	//     "targetSslProxy"
160485	//   ],
160486	//   "parameters": {
160487	//     "project": {
160488	//       "description": "Project ID for this request.",
160489	//       "location": "path",
160490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160491	//       "required": true,
160492	//       "type": "string"
160493	//     },
160494	//     "requestId": {
160495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160496	//       "location": "query",
160497	//       "type": "string"
160498	//     },
160499	//     "targetSslProxy": {
160500	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
160501	//       "location": "path",
160502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160503	//       "required": true,
160504	//       "type": "string"
160505	//     }
160506	//   },
160507	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
160508	//   "request": {
160509	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
160510	//   },
160511	//   "response": {
160512	//     "$ref": "Operation"
160513	//   },
160514	//   "scopes": [
160515	//     "https://www.googleapis.com/auth/cloud-platform",
160516	//     "https://www.googleapis.com/auth/compute"
160517	//   ]
160518	// }
160519
160520}
160521
160522// method id "compute.targetSslProxies.setSslCertificates":
160523
160524type TargetSslProxiesSetSslCertificatesCall struct {
160525	s                                         *Service
160526	project                                   string
160527	targetSslProxy                            string
160528	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
160529	urlParams_                                gensupport.URLParams
160530	ctx_                                      context.Context
160531	header_                                   http.Header
160532}
160533
160534// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
160535//
160536// - project: Project ID for this request.
160537// - targetSslProxy: Name of the TargetSslProxy resource whose
160538//   SslCertificate resource is to be set.
160539func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
160540	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160541	c.project = project
160542	c.targetSslProxy = targetSslProxy
160543	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
160544	return c
160545}
160546
160547// RequestId sets the optional parameter "requestId": An optional
160548// request ID to identify requests. Specify a unique request ID so that
160549// if you must retry your request, the server will know to ignore the
160550// request if it has already been completed. For example, consider a
160551// situation where you make an initial request and the request times
160552// out. If you make the request again with the same request ID, the
160553// server can check if original operation with the same request ID was
160554// received, and if so, will ignore the second request. This prevents
160555// clients from accidentally creating duplicate commitments. The request
160556// ID must be a valid UUID with the exception that zero UUID is not
160557// supported ( 00000000-0000-0000-0000-000000000000).
160558func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
160559	c.urlParams_.Set("requestId", requestId)
160560	return c
160561}
160562
160563// Fields allows partial responses to be retrieved. See
160564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160565// for more information.
160566func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
160567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160568	return c
160569}
160570
160571// Context sets the context to be used in this call's Do method. Any
160572// pending HTTP request will be aborted if the provided context is
160573// canceled.
160574func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
160575	c.ctx_ = ctx
160576	return c
160577}
160578
160579// Header returns an http.Header that can be modified by the caller to
160580// add HTTP headers to the request.
160581func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
160582	if c.header_ == nil {
160583		c.header_ = make(http.Header)
160584	}
160585	return c.header_
160586}
160587
160588func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
160589	reqHeaders := make(http.Header)
160590	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160591	for k, v := range c.header_ {
160592		reqHeaders[k] = v
160593	}
160594	reqHeaders.Set("User-Agent", c.s.userAgent())
160595	var body io.Reader = nil
160596	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
160597	if err != nil {
160598		return nil, err
160599	}
160600	reqHeaders.Set("Content-Type", "application/json")
160601	c.urlParams_.Set("alt", alt)
160602	c.urlParams_.Set("prettyPrint", "false")
160603	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
160604	urls += "?" + c.urlParams_.Encode()
160605	req, err := http.NewRequest("POST", urls, body)
160606	if err != nil {
160607		return nil, err
160608	}
160609	req.Header = reqHeaders
160610	googleapi.Expand(req.URL, map[string]string{
160611		"project":        c.project,
160612		"targetSslProxy": c.targetSslProxy,
160613	})
160614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160615}
160616
160617// Do executes the "compute.targetSslProxies.setSslCertificates" call.
160618// Exactly one of *Operation or error will be non-nil. Any non-2xx
160619// status code is an error. Response headers are in either
160620// *Operation.ServerResponse.Header or (if a response was returned at
160621// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160622// to check whether the returned error was because
160623// http.StatusNotModified was returned.
160624func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160625	gensupport.SetOptions(c.urlParams_, opts...)
160626	res, err := c.doRequest("json")
160627	if res != nil && res.StatusCode == http.StatusNotModified {
160628		if res.Body != nil {
160629			res.Body.Close()
160630		}
160631		return nil, &googleapi.Error{
160632			Code:   res.StatusCode,
160633			Header: res.Header,
160634		}
160635	}
160636	if err != nil {
160637		return nil, err
160638	}
160639	defer googleapi.CloseBody(res)
160640	if err := googleapi.CheckResponse(res); err != nil {
160641		return nil, err
160642	}
160643	ret := &Operation{
160644		ServerResponse: googleapi.ServerResponse{
160645			Header:         res.Header,
160646			HTTPStatusCode: res.StatusCode,
160647		},
160648	}
160649	target := &ret
160650	if err := gensupport.DecodeResponse(target, res); err != nil {
160651		return nil, err
160652	}
160653	return ret, nil
160654	// {
160655	//   "description": "Changes SslCertificates for TargetSslProxy.",
160656	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
160657	//   "httpMethod": "POST",
160658	//   "id": "compute.targetSslProxies.setSslCertificates",
160659	//   "parameterOrder": [
160660	//     "project",
160661	//     "targetSslProxy"
160662	//   ],
160663	//   "parameters": {
160664	//     "project": {
160665	//       "description": "Project ID for this request.",
160666	//       "location": "path",
160667	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160668	//       "required": true,
160669	//       "type": "string"
160670	//     },
160671	//     "requestId": {
160672	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160673	//       "location": "query",
160674	//       "type": "string"
160675	//     },
160676	//     "targetSslProxy": {
160677	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
160678	//       "location": "path",
160679	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160680	//       "required": true,
160681	//       "type": "string"
160682	//     }
160683	//   },
160684	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
160685	//   "request": {
160686	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
160687	//   },
160688	//   "response": {
160689	//     "$ref": "Operation"
160690	//   },
160691	//   "scopes": [
160692	//     "https://www.googleapis.com/auth/cloud-platform",
160693	//     "https://www.googleapis.com/auth/compute"
160694	//   ]
160695	// }
160696
160697}
160698
160699// method id "compute.targetSslProxies.setSslPolicy":
160700
160701type TargetSslProxiesSetSslPolicyCall struct {
160702	s                  *Service
160703	project            string
160704	targetSslProxy     string
160705	sslpolicyreference *SslPolicyReference
160706	urlParams_         gensupport.URLParams
160707	ctx_               context.Context
160708	header_            http.Header
160709}
160710
160711// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
160712// specifies the server-side support for SSL features. This affects
160713// connections between clients and the SSL proxy load balancer. They do
160714// not affect the connection between the load balancer and the backends.
160715//
160716// - project: Project ID for this request.
160717// - targetSslProxy: Name of the TargetSslProxy resource whose SSL
160718//   policy is to be set. The name must be 1-63 characters long, and
160719//   comply with RFC1035.
160720func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
160721	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160722	c.project = project
160723	c.targetSslProxy = targetSslProxy
160724	c.sslpolicyreference = sslpolicyreference
160725	return c
160726}
160727
160728// RequestId sets the optional parameter "requestId": An optional
160729// request ID to identify requests. Specify a unique request ID so that
160730// if you must retry your request, the server will know to ignore the
160731// request if it has already been completed. For example, consider a
160732// situation where you make an initial request and the request times
160733// out. If you make the request again with the same request ID, the
160734// server can check if original operation with the same request ID was
160735// received, and if so, will ignore the second request. This prevents
160736// clients from accidentally creating duplicate commitments. The request
160737// ID must be a valid UUID with the exception that zero UUID is not
160738// supported ( 00000000-0000-0000-0000-000000000000).
160739func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
160740	c.urlParams_.Set("requestId", requestId)
160741	return c
160742}
160743
160744// Fields allows partial responses to be retrieved. See
160745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160746// for more information.
160747func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
160748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160749	return c
160750}
160751
160752// Context sets the context to be used in this call's Do method. Any
160753// pending HTTP request will be aborted if the provided context is
160754// canceled.
160755func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
160756	c.ctx_ = ctx
160757	return c
160758}
160759
160760// Header returns an http.Header that can be modified by the caller to
160761// add HTTP headers to the request.
160762func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
160763	if c.header_ == nil {
160764		c.header_ = make(http.Header)
160765	}
160766	return c.header_
160767}
160768
160769func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
160770	reqHeaders := make(http.Header)
160771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160772	for k, v := range c.header_ {
160773		reqHeaders[k] = v
160774	}
160775	reqHeaders.Set("User-Agent", c.s.userAgent())
160776	var body io.Reader = nil
160777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
160778	if err != nil {
160779		return nil, err
160780	}
160781	reqHeaders.Set("Content-Type", "application/json")
160782	c.urlParams_.Set("alt", alt)
160783	c.urlParams_.Set("prettyPrint", "false")
160784	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
160785	urls += "?" + c.urlParams_.Encode()
160786	req, err := http.NewRequest("POST", urls, body)
160787	if err != nil {
160788		return nil, err
160789	}
160790	req.Header = reqHeaders
160791	googleapi.Expand(req.URL, map[string]string{
160792		"project":        c.project,
160793		"targetSslProxy": c.targetSslProxy,
160794	})
160795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160796}
160797
160798// Do executes the "compute.targetSslProxies.setSslPolicy" call.
160799// Exactly one of *Operation or error will be non-nil. Any non-2xx
160800// status code is an error. Response headers are in either
160801// *Operation.ServerResponse.Header or (if a response was returned at
160802// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160803// to check whether the returned error was because
160804// http.StatusNotModified was returned.
160805func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160806	gensupport.SetOptions(c.urlParams_, opts...)
160807	res, err := c.doRequest("json")
160808	if res != nil && res.StatusCode == http.StatusNotModified {
160809		if res.Body != nil {
160810			res.Body.Close()
160811		}
160812		return nil, &googleapi.Error{
160813			Code:   res.StatusCode,
160814			Header: res.Header,
160815		}
160816	}
160817	if err != nil {
160818		return nil, err
160819	}
160820	defer googleapi.CloseBody(res)
160821	if err := googleapi.CheckResponse(res); err != nil {
160822		return nil, err
160823	}
160824	ret := &Operation{
160825		ServerResponse: googleapi.ServerResponse{
160826			Header:         res.Header,
160827			HTTPStatusCode: res.StatusCode,
160828		},
160829	}
160830	target := &ret
160831	if err := gensupport.DecodeResponse(target, res); err != nil {
160832		return nil, err
160833	}
160834	return ret, nil
160835	// {
160836	//   "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.",
160837	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
160838	//   "httpMethod": "POST",
160839	//   "id": "compute.targetSslProxies.setSslPolicy",
160840	//   "parameterOrder": [
160841	//     "project",
160842	//     "targetSslProxy"
160843	//   ],
160844	//   "parameters": {
160845	//     "project": {
160846	//       "description": "Project ID for this request.",
160847	//       "location": "path",
160848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160849	//       "required": true,
160850	//       "type": "string"
160851	//     },
160852	//     "requestId": {
160853	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160854	//       "location": "query",
160855	//       "type": "string"
160856	//     },
160857	//     "targetSslProxy": {
160858	//       "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.",
160859	//       "location": "path",
160860	//       "required": true,
160861	//       "type": "string"
160862	//     }
160863	//   },
160864	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
160865	//   "request": {
160866	//     "$ref": "SslPolicyReference"
160867	//   },
160868	//   "response": {
160869	//     "$ref": "Operation"
160870	//   },
160871	//   "scopes": [
160872	//     "https://www.googleapis.com/auth/cloud-platform",
160873	//     "https://www.googleapis.com/auth/compute"
160874	//   ]
160875	// }
160876
160877}
160878
160879// method id "compute.targetTcpProxies.delete":
160880
160881type TargetTcpProxiesDeleteCall struct {
160882	s              *Service
160883	project        string
160884	targetTcpProxy string
160885	urlParams_     gensupport.URLParams
160886	ctx_           context.Context
160887	header_        http.Header
160888}
160889
160890// Delete: Deletes the specified TargetTcpProxy resource.
160891//
160892// - project: Project ID for this request.
160893// - targetTcpProxy: Name of the TargetTcpProxy resource to delete.
160894func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
160895	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160896	c.project = project
160897	c.targetTcpProxy = targetTcpProxy
160898	return c
160899}
160900
160901// RequestId sets the optional parameter "requestId": An optional
160902// request ID to identify requests. Specify a unique request ID so that
160903// if you must retry your request, the server will know to ignore the
160904// request if it has already been completed. For example, consider a
160905// situation where you make an initial request and the request times
160906// out. If you make the request again with the same request ID, the
160907// server can check if original operation with the same request ID was
160908// received, and if so, will ignore the second request. This prevents
160909// clients from accidentally creating duplicate commitments. The request
160910// ID must be a valid UUID with the exception that zero UUID is not
160911// supported ( 00000000-0000-0000-0000-000000000000).
160912func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
160913	c.urlParams_.Set("requestId", requestId)
160914	return c
160915}
160916
160917// Fields allows partial responses to be retrieved. See
160918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160919// for more information.
160920func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
160921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160922	return c
160923}
160924
160925// Context sets the context to be used in this call's Do method. Any
160926// pending HTTP request will be aborted if the provided context is
160927// canceled.
160928func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
160929	c.ctx_ = ctx
160930	return c
160931}
160932
160933// Header returns an http.Header that can be modified by the caller to
160934// add HTTP headers to the request.
160935func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
160936	if c.header_ == nil {
160937		c.header_ = make(http.Header)
160938	}
160939	return c.header_
160940}
160941
160942func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
160943	reqHeaders := make(http.Header)
160944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
160945	for k, v := range c.header_ {
160946		reqHeaders[k] = v
160947	}
160948	reqHeaders.Set("User-Agent", c.s.userAgent())
160949	var body io.Reader = nil
160950	c.urlParams_.Set("alt", alt)
160951	c.urlParams_.Set("prettyPrint", "false")
160952	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
160953	urls += "?" + c.urlParams_.Encode()
160954	req, err := http.NewRequest("DELETE", urls, body)
160955	if err != nil {
160956		return nil, err
160957	}
160958	req.Header = reqHeaders
160959	googleapi.Expand(req.URL, map[string]string{
160960		"project":        c.project,
160961		"targetTcpProxy": c.targetTcpProxy,
160962	})
160963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160964}
160965
160966// Do executes the "compute.targetTcpProxies.delete" call.
160967// Exactly one of *Operation or error will be non-nil. Any non-2xx
160968// status code is an error. Response headers are in either
160969// *Operation.ServerResponse.Header or (if a response was returned at
160970// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160971// to check whether the returned error was because
160972// http.StatusNotModified was returned.
160973func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160974	gensupport.SetOptions(c.urlParams_, opts...)
160975	res, err := c.doRequest("json")
160976	if res != nil && res.StatusCode == http.StatusNotModified {
160977		if res.Body != nil {
160978			res.Body.Close()
160979		}
160980		return nil, &googleapi.Error{
160981			Code:   res.StatusCode,
160982			Header: res.Header,
160983		}
160984	}
160985	if err != nil {
160986		return nil, err
160987	}
160988	defer googleapi.CloseBody(res)
160989	if err := googleapi.CheckResponse(res); err != nil {
160990		return nil, err
160991	}
160992	ret := &Operation{
160993		ServerResponse: googleapi.ServerResponse{
160994			Header:         res.Header,
160995			HTTPStatusCode: res.StatusCode,
160996		},
160997	}
160998	target := &ret
160999	if err := gensupport.DecodeResponse(target, res); err != nil {
161000		return nil, err
161001	}
161002	return ret, nil
161003	// {
161004	//   "description": "Deletes the specified TargetTcpProxy resource.",
161005	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161006	//   "httpMethod": "DELETE",
161007	//   "id": "compute.targetTcpProxies.delete",
161008	//   "parameterOrder": [
161009	//     "project",
161010	//     "targetTcpProxy"
161011	//   ],
161012	//   "parameters": {
161013	//     "project": {
161014	//       "description": "Project ID for this request.",
161015	//       "location": "path",
161016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161017	//       "required": true,
161018	//       "type": "string"
161019	//     },
161020	//     "requestId": {
161021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161022	//       "location": "query",
161023	//       "type": "string"
161024	//     },
161025	//     "targetTcpProxy": {
161026	//       "description": "Name of the TargetTcpProxy resource to delete.",
161027	//       "location": "path",
161028	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161029	//       "required": true,
161030	//       "type": "string"
161031	//     }
161032	//   },
161033	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161034	//   "response": {
161035	//     "$ref": "Operation"
161036	//   },
161037	//   "scopes": [
161038	//     "https://www.googleapis.com/auth/cloud-platform",
161039	//     "https://www.googleapis.com/auth/compute"
161040	//   ]
161041	// }
161042
161043}
161044
161045// method id "compute.targetTcpProxies.get":
161046
161047type TargetTcpProxiesGetCall struct {
161048	s              *Service
161049	project        string
161050	targetTcpProxy string
161051	urlParams_     gensupport.URLParams
161052	ifNoneMatch_   string
161053	ctx_           context.Context
161054	header_        http.Header
161055}
161056
161057// Get: Returns the specified TargetTcpProxy resource. Gets a list of
161058// available target TCP proxies by making a list() request.
161059//
161060// - project: Project ID for this request.
161061// - targetTcpProxy: Name of the TargetTcpProxy resource to return.
161062func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
161063	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161064	c.project = project
161065	c.targetTcpProxy = targetTcpProxy
161066	return c
161067}
161068
161069// Fields allows partial responses to be retrieved. See
161070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161071// for more information.
161072func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
161073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161074	return c
161075}
161076
161077// IfNoneMatch sets the optional parameter which makes the operation
161078// fail if the object's ETag matches the given value. This is useful for
161079// getting updates only after the object has changed since the last
161080// request. Use googleapi.IsNotModified to check whether the response
161081// error from Do is the result of In-None-Match.
161082func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
161083	c.ifNoneMatch_ = entityTag
161084	return c
161085}
161086
161087// Context sets the context to be used in this call's Do method. Any
161088// pending HTTP request will be aborted if the provided context is
161089// canceled.
161090func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
161091	c.ctx_ = ctx
161092	return c
161093}
161094
161095// Header returns an http.Header that can be modified by the caller to
161096// add HTTP headers to the request.
161097func (c *TargetTcpProxiesGetCall) Header() http.Header {
161098	if c.header_ == nil {
161099		c.header_ = make(http.Header)
161100	}
161101	return c.header_
161102}
161103
161104func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
161105	reqHeaders := make(http.Header)
161106	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
161107	for k, v := range c.header_ {
161108		reqHeaders[k] = v
161109	}
161110	reqHeaders.Set("User-Agent", c.s.userAgent())
161111	if c.ifNoneMatch_ != "" {
161112		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161113	}
161114	var body io.Reader = nil
161115	c.urlParams_.Set("alt", alt)
161116	c.urlParams_.Set("prettyPrint", "false")
161117	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
161118	urls += "?" + c.urlParams_.Encode()
161119	req, err := http.NewRequest("GET", urls, body)
161120	if err != nil {
161121		return nil, err
161122	}
161123	req.Header = reqHeaders
161124	googleapi.Expand(req.URL, map[string]string{
161125		"project":        c.project,
161126		"targetTcpProxy": c.targetTcpProxy,
161127	})
161128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161129}
161130
161131// Do executes the "compute.targetTcpProxies.get" call.
161132// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
161133// status code is an error. Response headers are in either
161134// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
161135// at all) in error.(*googleapi.Error).Header. Use
161136// googleapi.IsNotModified to check whether the returned error was
161137// because http.StatusNotModified was returned.
161138func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
161139	gensupport.SetOptions(c.urlParams_, opts...)
161140	res, err := c.doRequest("json")
161141	if res != nil && res.StatusCode == http.StatusNotModified {
161142		if res.Body != nil {
161143			res.Body.Close()
161144		}
161145		return nil, &googleapi.Error{
161146			Code:   res.StatusCode,
161147			Header: res.Header,
161148		}
161149	}
161150	if err != nil {
161151		return nil, err
161152	}
161153	defer googleapi.CloseBody(res)
161154	if err := googleapi.CheckResponse(res); err != nil {
161155		return nil, err
161156	}
161157	ret := &TargetTcpProxy{
161158		ServerResponse: googleapi.ServerResponse{
161159			Header:         res.Header,
161160			HTTPStatusCode: res.StatusCode,
161161		},
161162	}
161163	target := &ret
161164	if err := gensupport.DecodeResponse(target, res); err != nil {
161165		return nil, err
161166	}
161167	return ret, nil
161168	// {
161169	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
161170	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161171	//   "httpMethod": "GET",
161172	//   "id": "compute.targetTcpProxies.get",
161173	//   "parameterOrder": [
161174	//     "project",
161175	//     "targetTcpProxy"
161176	//   ],
161177	//   "parameters": {
161178	//     "project": {
161179	//       "description": "Project ID for this request.",
161180	//       "location": "path",
161181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161182	//       "required": true,
161183	//       "type": "string"
161184	//     },
161185	//     "targetTcpProxy": {
161186	//       "description": "Name of the TargetTcpProxy resource to return.",
161187	//       "location": "path",
161188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161189	//       "required": true,
161190	//       "type": "string"
161191	//     }
161192	//   },
161193	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161194	//   "response": {
161195	//     "$ref": "TargetTcpProxy"
161196	//   },
161197	//   "scopes": [
161198	//     "https://www.googleapis.com/auth/cloud-platform",
161199	//     "https://www.googleapis.com/auth/compute",
161200	//     "https://www.googleapis.com/auth/compute.readonly"
161201	//   ]
161202	// }
161203
161204}
161205
161206// method id "compute.targetTcpProxies.insert":
161207
161208type TargetTcpProxiesInsertCall struct {
161209	s              *Service
161210	project        string
161211	targettcpproxy *TargetTcpProxy
161212	urlParams_     gensupport.URLParams
161213	ctx_           context.Context
161214	header_        http.Header
161215}
161216
161217// Insert: Creates a TargetTcpProxy resource in the specified project
161218// using the data included in the request.
161219//
161220// - project: Project ID for this request.
161221func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
161222	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161223	c.project = project
161224	c.targettcpproxy = targettcpproxy
161225	return c
161226}
161227
161228// RequestId sets the optional parameter "requestId": An optional
161229// request ID to identify requests. Specify a unique request ID so that
161230// if you must retry your request, the server will know to ignore the
161231// request if it has already been completed. For example, consider a
161232// situation where you make an initial request and the request times
161233// out. If you make the request again with the same request ID, the
161234// server can check if original operation with the same request ID was
161235// received, and if so, will ignore the second request. This prevents
161236// clients from accidentally creating duplicate commitments. The request
161237// ID must be a valid UUID with the exception that zero UUID is not
161238// supported ( 00000000-0000-0000-0000-000000000000).
161239func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
161240	c.urlParams_.Set("requestId", requestId)
161241	return c
161242}
161243
161244// Fields allows partial responses to be retrieved. See
161245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161246// for more information.
161247func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
161248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161249	return c
161250}
161251
161252// Context sets the context to be used in this call's Do method. Any
161253// pending HTTP request will be aborted if the provided context is
161254// canceled.
161255func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
161256	c.ctx_ = ctx
161257	return c
161258}
161259
161260// Header returns an http.Header that can be modified by the caller to
161261// add HTTP headers to the request.
161262func (c *TargetTcpProxiesInsertCall) Header() http.Header {
161263	if c.header_ == nil {
161264		c.header_ = make(http.Header)
161265	}
161266	return c.header_
161267}
161268
161269func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
161270	reqHeaders := make(http.Header)
161271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
161272	for k, v := range c.header_ {
161273		reqHeaders[k] = v
161274	}
161275	reqHeaders.Set("User-Agent", c.s.userAgent())
161276	var body io.Reader = nil
161277	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
161278	if err != nil {
161279		return nil, err
161280	}
161281	reqHeaders.Set("Content-Type", "application/json")
161282	c.urlParams_.Set("alt", alt)
161283	c.urlParams_.Set("prettyPrint", "false")
161284	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
161285	urls += "?" + c.urlParams_.Encode()
161286	req, err := http.NewRequest("POST", urls, body)
161287	if err != nil {
161288		return nil, err
161289	}
161290	req.Header = reqHeaders
161291	googleapi.Expand(req.URL, map[string]string{
161292		"project": c.project,
161293	})
161294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161295}
161296
161297// Do executes the "compute.targetTcpProxies.insert" call.
161298// Exactly one of *Operation or error will be non-nil. Any non-2xx
161299// status code is an error. Response headers are in either
161300// *Operation.ServerResponse.Header or (if a response was returned at
161301// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161302// to check whether the returned error was because
161303// http.StatusNotModified was returned.
161304func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161305	gensupport.SetOptions(c.urlParams_, opts...)
161306	res, err := c.doRequest("json")
161307	if res != nil && res.StatusCode == http.StatusNotModified {
161308		if res.Body != nil {
161309			res.Body.Close()
161310		}
161311		return nil, &googleapi.Error{
161312			Code:   res.StatusCode,
161313			Header: res.Header,
161314		}
161315	}
161316	if err != nil {
161317		return nil, err
161318	}
161319	defer googleapi.CloseBody(res)
161320	if err := googleapi.CheckResponse(res); err != nil {
161321		return nil, err
161322	}
161323	ret := &Operation{
161324		ServerResponse: googleapi.ServerResponse{
161325			Header:         res.Header,
161326			HTTPStatusCode: res.StatusCode,
161327		},
161328	}
161329	target := &ret
161330	if err := gensupport.DecodeResponse(target, res); err != nil {
161331		return nil, err
161332	}
161333	return ret, nil
161334	// {
161335	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
161336	//   "flatPath": "projects/{project}/global/targetTcpProxies",
161337	//   "httpMethod": "POST",
161338	//   "id": "compute.targetTcpProxies.insert",
161339	//   "parameterOrder": [
161340	//     "project"
161341	//   ],
161342	//   "parameters": {
161343	//     "project": {
161344	//       "description": "Project ID for this request.",
161345	//       "location": "path",
161346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161347	//       "required": true,
161348	//       "type": "string"
161349	//     },
161350	//     "requestId": {
161351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161352	//       "location": "query",
161353	//       "type": "string"
161354	//     }
161355	//   },
161356	//   "path": "projects/{project}/global/targetTcpProxies",
161357	//   "request": {
161358	//     "$ref": "TargetTcpProxy"
161359	//   },
161360	//   "response": {
161361	//     "$ref": "Operation"
161362	//   },
161363	//   "scopes": [
161364	//     "https://www.googleapis.com/auth/cloud-platform",
161365	//     "https://www.googleapis.com/auth/compute"
161366	//   ]
161367	// }
161368
161369}
161370
161371// method id "compute.targetTcpProxies.list":
161372
161373type TargetTcpProxiesListCall struct {
161374	s            *Service
161375	project      string
161376	urlParams_   gensupport.URLParams
161377	ifNoneMatch_ string
161378	ctx_         context.Context
161379	header_      http.Header
161380}
161381
161382// List: Retrieves the list of TargetTcpProxy resources available to the
161383// specified project.
161384//
161385// - project: Project ID for this request.
161386func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
161387	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161388	c.project = project
161389	return c
161390}
161391
161392// Filter sets the optional parameter "filter": A filter expression that
161393// filters resources listed in the response. The expression must specify
161394// the field name, a comparison operator, and the value that you want to
161395// use for filtering. The value must be a string, a number, or a
161396// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161397// `<`. For example, if you are filtering Compute Engine instances, you
161398// can exclude instances named `example-instance` by specifying `name !=
161399// example-instance`. You can also filter nested fields. For example,
161400// you could specify `scheduling.automaticRestart = false` to include
161401// instances only if they are not scheduled for automatic restarts. You
161402// can use filtering on nested fields to filter based on resource
161403// labels. To filter on multiple expressions, provide each separate
161404// expression within parentheses. For example: ```
161405// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
161406// ``` By default, each expression is an `AND` expression. However, you
161407// can include `AND` and `OR` expressions explicitly. For example: ```
161408// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
161409// AND (scheduling.automaticRestart = true) ```
161410func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
161411	c.urlParams_.Set("filter", filter)
161412	return c
161413}
161414
161415// MaxResults sets the optional parameter "maxResults": The maximum
161416// number of results per page that should be returned. If the number of
161417// available results is larger than `maxResults`, Compute Engine returns
161418// a `nextPageToken` that can be used to get the next page of results in
161419// subsequent list requests. Acceptable values are `0` to `500`,
161420// inclusive. (Default: `500`)
161421func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
161422	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161423	return c
161424}
161425
161426// OrderBy sets the optional parameter "orderBy": Sorts list results by
161427// a certain order. By default, results are returned in alphanumerical
161428// order based on the resource name. You can also sort results in
161429// descending order based on the creation timestamp using
161430// `orderBy="creationTimestamp desc". This sorts results based on the
161431// `creationTimestamp` field in reverse chronological order (newest
161432// result first). Use this to sort resources like operations so that the
161433// newest operation is returned first. Currently, only sorting by `name`
161434// or `creationTimestamp desc` is supported.
161435func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
161436	c.urlParams_.Set("orderBy", orderBy)
161437	return c
161438}
161439
161440// PageToken sets the optional parameter "pageToken": Specifies a page
161441// token to use. Set `pageToken` to the `nextPageToken` returned by a
161442// previous list request to get the next page of results.
161443func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
161444	c.urlParams_.Set("pageToken", pageToken)
161445	return c
161446}
161447
161448// ReturnPartialSuccess sets the optional parameter
161449// "returnPartialSuccess": Opt-in for partial success behavior which
161450// provides partial results in case of failure. The default value is
161451// false.
161452func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
161453	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161454	return c
161455}
161456
161457// Fields allows partial responses to be retrieved. See
161458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161459// for more information.
161460func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
161461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161462	return c
161463}
161464
161465// IfNoneMatch sets the optional parameter which makes the operation
161466// fail if the object's ETag matches the given value. This is useful for
161467// getting updates only after the object has changed since the last
161468// request. Use googleapi.IsNotModified to check whether the response
161469// error from Do is the result of In-None-Match.
161470func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
161471	c.ifNoneMatch_ = entityTag
161472	return c
161473}
161474
161475// Context sets the context to be used in this call's Do method. Any
161476// pending HTTP request will be aborted if the provided context is
161477// canceled.
161478func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
161479	c.ctx_ = ctx
161480	return c
161481}
161482
161483// Header returns an http.Header that can be modified by the caller to
161484// add HTTP headers to the request.
161485func (c *TargetTcpProxiesListCall) Header() http.Header {
161486	if c.header_ == nil {
161487		c.header_ = make(http.Header)
161488	}
161489	return c.header_
161490}
161491
161492func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
161493	reqHeaders := make(http.Header)
161494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
161495	for k, v := range c.header_ {
161496		reqHeaders[k] = v
161497	}
161498	reqHeaders.Set("User-Agent", c.s.userAgent())
161499	if c.ifNoneMatch_ != "" {
161500		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161501	}
161502	var body io.Reader = nil
161503	c.urlParams_.Set("alt", alt)
161504	c.urlParams_.Set("prettyPrint", "false")
161505	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
161506	urls += "?" + c.urlParams_.Encode()
161507	req, err := http.NewRequest("GET", urls, body)
161508	if err != nil {
161509		return nil, err
161510	}
161511	req.Header = reqHeaders
161512	googleapi.Expand(req.URL, map[string]string{
161513		"project": c.project,
161514	})
161515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161516}
161517
161518// Do executes the "compute.targetTcpProxies.list" call.
161519// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
161520// non-2xx status code is an error. Response headers are in either
161521// *TargetTcpProxyList.ServerResponse.Header or (if a response was
161522// returned at all) in error.(*googleapi.Error).Header. Use
161523// googleapi.IsNotModified to check whether the returned error was
161524// because http.StatusNotModified was returned.
161525func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
161526	gensupport.SetOptions(c.urlParams_, opts...)
161527	res, err := c.doRequest("json")
161528	if res != nil && res.StatusCode == http.StatusNotModified {
161529		if res.Body != nil {
161530			res.Body.Close()
161531		}
161532		return nil, &googleapi.Error{
161533			Code:   res.StatusCode,
161534			Header: res.Header,
161535		}
161536	}
161537	if err != nil {
161538		return nil, err
161539	}
161540	defer googleapi.CloseBody(res)
161541	if err := googleapi.CheckResponse(res); err != nil {
161542		return nil, err
161543	}
161544	ret := &TargetTcpProxyList{
161545		ServerResponse: googleapi.ServerResponse{
161546			Header:         res.Header,
161547			HTTPStatusCode: res.StatusCode,
161548		},
161549	}
161550	target := &ret
161551	if err := gensupport.DecodeResponse(target, res); err != nil {
161552		return nil, err
161553	}
161554	return ret, nil
161555	// {
161556	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
161557	//   "flatPath": "projects/{project}/global/targetTcpProxies",
161558	//   "httpMethod": "GET",
161559	//   "id": "compute.targetTcpProxies.list",
161560	//   "parameterOrder": [
161561	//     "project"
161562	//   ],
161563	//   "parameters": {
161564	//     "filter": {
161565	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161566	//       "location": "query",
161567	//       "type": "string"
161568	//     },
161569	//     "maxResults": {
161570	//       "default": "500",
161571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161572	//       "format": "uint32",
161573	//       "location": "query",
161574	//       "minimum": "0",
161575	//       "type": "integer"
161576	//     },
161577	//     "orderBy": {
161578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
161579	//       "location": "query",
161580	//       "type": "string"
161581	//     },
161582	//     "pageToken": {
161583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161584	//       "location": "query",
161585	//       "type": "string"
161586	//     },
161587	//     "project": {
161588	//       "description": "Project ID for this request.",
161589	//       "location": "path",
161590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161591	//       "required": true,
161592	//       "type": "string"
161593	//     },
161594	//     "returnPartialSuccess": {
161595	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161596	//       "location": "query",
161597	//       "type": "boolean"
161598	//     }
161599	//   },
161600	//   "path": "projects/{project}/global/targetTcpProxies",
161601	//   "response": {
161602	//     "$ref": "TargetTcpProxyList"
161603	//   },
161604	//   "scopes": [
161605	//     "https://www.googleapis.com/auth/cloud-platform",
161606	//     "https://www.googleapis.com/auth/compute",
161607	//     "https://www.googleapis.com/auth/compute.readonly"
161608	//   ]
161609	// }
161610
161611}
161612
161613// Pages invokes f for each page of results.
161614// A non-nil error returned from f will halt the iteration.
161615// The provided context supersedes any context provided to the Context method.
161616func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
161617	c.ctx_ = ctx
161618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161619	for {
161620		x, err := c.Do()
161621		if err != nil {
161622			return err
161623		}
161624		if err := f(x); err != nil {
161625			return err
161626		}
161627		if x.NextPageToken == "" {
161628			return nil
161629		}
161630		c.PageToken(x.NextPageToken)
161631	}
161632}
161633
161634// method id "compute.targetTcpProxies.setBackendService":
161635
161636type TargetTcpProxiesSetBackendServiceCall struct {
161637	s                                        *Service
161638	project                                  string
161639	targetTcpProxy                           string
161640	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
161641	urlParams_                               gensupport.URLParams
161642	ctx_                                     context.Context
161643	header_                                  http.Header
161644}
161645
161646// SetBackendService: Changes the BackendService for TargetTcpProxy.
161647//
161648// - project: Project ID for this request.
161649// - targetTcpProxy: Name of the TargetTcpProxy resource whose
161650//   BackendService resource is to be set.
161651func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
161652	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161653	c.project = project
161654	c.targetTcpProxy = targetTcpProxy
161655	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
161656	return c
161657}
161658
161659// RequestId sets the optional parameter "requestId": An optional
161660// request ID to identify requests. Specify a unique request ID so that
161661// if you must retry your request, the server will know to ignore the
161662// request if it has already been completed. For example, consider a
161663// situation where you make an initial request and the request times
161664// out. If you make the request again with the same request ID, the
161665// server can check if original operation with the same request ID was
161666// received, and if so, will ignore the second request. This prevents
161667// clients from accidentally creating duplicate commitments. The request
161668// ID must be a valid UUID with the exception that zero UUID is not
161669// supported ( 00000000-0000-0000-0000-000000000000).
161670func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
161671	c.urlParams_.Set("requestId", requestId)
161672	return c
161673}
161674
161675// Fields allows partial responses to be retrieved. See
161676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161677// for more information.
161678func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
161679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161680	return c
161681}
161682
161683// Context sets the context to be used in this call's Do method. Any
161684// pending HTTP request will be aborted if the provided context is
161685// canceled.
161686func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
161687	c.ctx_ = ctx
161688	return c
161689}
161690
161691// Header returns an http.Header that can be modified by the caller to
161692// add HTTP headers to the request.
161693func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
161694	if c.header_ == nil {
161695		c.header_ = make(http.Header)
161696	}
161697	return c.header_
161698}
161699
161700func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
161701	reqHeaders := make(http.Header)
161702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
161703	for k, v := range c.header_ {
161704		reqHeaders[k] = v
161705	}
161706	reqHeaders.Set("User-Agent", c.s.userAgent())
161707	var body io.Reader = nil
161708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
161709	if err != nil {
161710		return nil, err
161711	}
161712	reqHeaders.Set("Content-Type", "application/json")
161713	c.urlParams_.Set("alt", alt)
161714	c.urlParams_.Set("prettyPrint", "false")
161715	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
161716	urls += "?" + c.urlParams_.Encode()
161717	req, err := http.NewRequest("POST", urls, body)
161718	if err != nil {
161719		return nil, err
161720	}
161721	req.Header = reqHeaders
161722	googleapi.Expand(req.URL, map[string]string{
161723		"project":        c.project,
161724		"targetTcpProxy": c.targetTcpProxy,
161725	})
161726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161727}
161728
161729// Do executes the "compute.targetTcpProxies.setBackendService" call.
161730// Exactly one of *Operation or error will be non-nil. Any non-2xx
161731// status code is an error. Response headers are in either
161732// *Operation.ServerResponse.Header or (if a response was returned at
161733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161734// to check whether the returned error was because
161735// http.StatusNotModified was returned.
161736func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161737	gensupport.SetOptions(c.urlParams_, opts...)
161738	res, err := c.doRequest("json")
161739	if res != nil && res.StatusCode == http.StatusNotModified {
161740		if res.Body != nil {
161741			res.Body.Close()
161742		}
161743		return nil, &googleapi.Error{
161744			Code:   res.StatusCode,
161745			Header: res.Header,
161746		}
161747	}
161748	if err != nil {
161749		return nil, err
161750	}
161751	defer googleapi.CloseBody(res)
161752	if err := googleapi.CheckResponse(res); err != nil {
161753		return nil, err
161754	}
161755	ret := &Operation{
161756		ServerResponse: googleapi.ServerResponse{
161757			Header:         res.Header,
161758			HTTPStatusCode: res.StatusCode,
161759		},
161760	}
161761	target := &ret
161762	if err := gensupport.DecodeResponse(target, res); err != nil {
161763		return nil, err
161764	}
161765	return ret, nil
161766	// {
161767	//   "description": "Changes the BackendService for TargetTcpProxy.",
161768	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
161769	//   "httpMethod": "POST",
161770	//   "id": "compute.targetTcpProxies.setBackendService",
161771	//   "parameterOrder": [
161772	//     "project",
161773	//     "targetTcpProxy"
161774	//   ],
161775	//   "parameters": {
161776	//     "project": {
161777	//       "description": "Project ID for this request.",
161778	//       "location": "path",
161779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161780	//       "required": true,
161781	//       "type": "string"
161782	//     },
161783	//     "requestId": {
161784	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161785	//       "location": "query",
161786	//       "type": "string"
161787	//     },
161788	//     "targetTcpProxy": {
161789	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
161790	//       "location": "path",
161791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161792	//       "required": true,
161793	//       "type": "string"
161794	//     }
161795	//   },
161796	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
161797	//   "request": {
161798	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
161799	//   },
161800	//   "response": {
161801	//     "$ref": "Operation"
161802	//   },
161803	//   "scopes": [
161804	//     "https://www.googleapis.com/auth/cloud-platform",
161805	//     "https://www.googleapis.com/auth/compute"
161806	//   ]
161807	// }
161808
161809}
161810
161811// method id "compute.targetTcpProxies.setProxyHeader":
161812
161813type TargetTcpProxiesSetProxyHeaderCall struct {
161814	s                                     *Service
161815	project                               string
161816	targetTcpProxy                        string
161817	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
161818	urlParams_                            gensupport.URLParams
161819	ctx_                                  context.Context
161820	header_                               http.Header
161821}
161822
161823// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
161824//
161825// - project: Project ID for this request.
161826// - targetTcpProxy: Name of the TargetTcpProxy resource whose
161827//   ProxyHeader is to be set.
161828func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
161829	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161830	c.project = project
161831	c.targetTcpProxy = targetTcpProxy
161832	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
161833	return c
161834}
161835
161836// RequestId sets the optional parameter "requestId": An optional
161837// request ID to identify requests. Specify a unique request ID so that
161838// if you must retry your request, the server will know to ignore the
161839// request if it has already been completed. For example, consider a
161840// situation where you make an initial request and the request times
161841// out. If you make the request again with the same request ID, the
161842// server can check if original operation with the same request ID was
161843// received, and if so, will ignore the second request. This prevents
161844// clients from accidentally creating duplicate commitments. The request
161845// ID must be a valid UUID with the exception that zero UUID is not
161846// supported ( 00000000-0000-0000-0000-000000000000).
161847func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
161848	c.urlParams_.Set("requestId", requestId)
161849	return c
161850}
161851
161852// Fields allows partial responses to be retrieved. See
161853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161854// for more information.
161855func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
161856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161857	return c
161858}
161859
161860// Context sets the context to be used in this call's Do method. Any
161861// pending HTTP request will be aborted if the provided context is
161862// canceled.
161863func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
161864	c.ctx_ = ctx
161865	return c
161866}
161867
161868// Header returns an http.Header that can be modified by the caller to
161869// add HTTP headers to the request.
161870func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
161871	if c.header_ == nil {
161872		c.header_ = make(http.Header)
161873	}
161874	return c.header_
161875}
161876
161877func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
161878	reqHeaders := make(http.Header)
161879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
161880	for k, v := range c.header_ {
161881		reqHeaders[k] = v
161882	}
161883	reqHeaders.Set("User-Agent", c.s.userAgent())
161884	var body io.Reader = nil
161885	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
161886	if err != nil {
161887		return nil, err
161888	}
161889	reqHeaders.Set("Content-Type", "application/json")
161890	c.urlParams_.Set("alt", alt)
161891	c.urlParams_.Set("prettyPrint", "false")
161892	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
161893	urls += "?" + c.urlParams_.Encode()
161894	req, err := http.NewRequest("POST", urls, body)
161895	if err != nil {
161896		return nil, err
161897	}
161898	req.Header = reqHeaders
161899	googleapi.Expand(req.URL, map[string]string{
161900		"project":        c.project,
161901		"targetTcpProxy": c.targetTcpProxy,
161902	})
161903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161904}
161905
161906// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
161907// Exactly one of *Operation or error will be non-nil. Any non-2xx
161908// status code is an error. Response headers are in either
161909// *Operation.ServerResponse.Header or (if a response was returned at
161910// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161911// to check whether the returned error was because
161912// http.StatusNotModified was returned.
161913func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161914	gensupport.SetOptions(c.urlParams_, opts...)
161915	res, err := c.doRequest("json")
161916	if res != nil && res.StatusCode == http.StatusNotModified {
161917		if res.Body != nil {
161918			res.Body.Close()
161919		}
161920		return nil, &googleapi.Error{
161921			Code:   res.StatusCode,
161922			Header: res.Header,
161923		}
161924	}
161925	if err != nil {
161926		return nil, err
161927	}
161928	defer googleapi.CloseBody(res)
161929	if err := googleapi.CheckResponse(res); err != nil {
161930		return nil, err
161931	}
161932	ret := &Operation{
161933		ServerResponse: googleapi.ServerResponse{
161934			Header:         res.Header,
161935			HTTPStatusCode: res.StatusCode,
161936		},
161937	}
161938	target := &ret
161939	if err := gensupport.DecodeResponse(target, res); err != nil {
161940		return nil, err
161941	}
161942	return ret, nil
161943	// {
161944	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
161945	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
161946	//   "httpMethod": "POST",
161947	//   "id": "compute.targetTcpProxies.setProxyHeader",
161948	//   "parameterOrder": [
161949	//     "project",
161950	//     "targetTcpProxy"
161951	//   ],
161952	//   "parameters": {
161953	//     "project": {
161954	//       "description": "Project ID for this request.",
161955	//       "location": "path",
161956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161957	//       "required": true,
161958	//       "type": "string"
161959	//     },
161960	//     "requestId": {
161961	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161962	//       "location": "query",
161963	//       "type": "string"
161964	//     },
161965	//     "targetTcpProxy": {
161966	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
161967	//       "location": "path",
161968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161969	//       "required": true,
161970	//       "type": "string"
161971	//     }
161972	//   },
161973	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
161974	//   "request": {
161975	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
161976	//   },
161977	//   "response": {
161978	//     "$ref": "Operation"
161979	//   },
161980	//   "scopes": [
161981	//     "https://www.googleapis.com/auth/cloud-platform",
161982	//     "https://www.googleapis.com/auth/compute"
161983	//   ]
161984	// }
161985
161986}
161987
161988// method id "compute.targetVpnGateways.aggregatedList":
161989
161990type TargetVpnGatewaysAggregatedListCall struct {
161991	s            *Service
161992	project      string
161993	urlParams_   gensupport.URLParams
161994	ifNoneMatch_ string
161995	ctx_         context.Context
161996	header_      http.Header
161997}
161998
161999// AggregatedList: Retrieves an aggregated list of target VPN gateways.
162000//
162001// - project: Project ID for this request.
162002func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
162003	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162004	c.project = project
162005	return c
162006}
162007
162008// Filter sets the optional parameter "filter": A filter expression that
162009// filters resources listed in the response. The expression must specify
162010// the field name, a comparison operator, and the value that you want to
162011// use for filtering. The value must be a string, a number, or a
162012// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162013// `<`. For example, if you are filtering Compute Engine instances, you
162014// can exclude instances named `example-instance` by specifying `name !=
162015// example-instance`. You can also filter nested fields. For example,
162016// you could specify `scheduling.automaticRestart = false` to include
162017// instances only if they are not scheduled for automatic restarts. You
162018// can use filtering on nested fields to filter based on resource
162019// labels. To filter on multiple expressions, provide each separate
162020// expression within parentheses. For example: ```
162021// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
162022// ``` By default, each expression is an `AND` expression. However, you
162023// can include `AND` and `OR` expressions explicitly. For example: ```
162024// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
162025// AND (scheduling.automaticRestart = true) ```
162026func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
162027	c.urlParams_.Set("filter", filter)
162028	return c
162029}
162030
162031// IncludeAllScopes sets the optional parameter "includeAllScopes":
162032// Indicates whether every visible scope for each scope type (zone,
162033// region, global) should be included in the response. For new resource
162034// types added after this field, the flag has no effect as new resource
162035// types will always include every visible scope for each scope type in
162036// response. For resource types which predate this field, if this flag
162037// is omitted or false, only scopes of the scope types where the
162038// resource type is expected to be found will be included.
162039func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
162040	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
162041	return c
162042}
162043
162044// MaxResults sets the optional parameter "maxResults": The maximum
162045// number of results per page that should be returned. If the number of
162046// available results is larger than `maxResults`, Compute Engine returns
162047// a `nextPageToken` that can be used to get the next page of results in
162048// subsequent list requests. Acceptable values are `0` to `500`,
162049// inclusive. (Default: `500`)
162050func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
162051	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162052	return c
162053}
162054
162055// OrderBy sets the optional parameter "orderBy": Sorts list results by
162056// a certain order. By default, results are returned in alphanumerical
162057// order based on the resource name. You can also sort results in
162058// descending order based on the creation timestamp using
162059// `orderBy="creationTimestamp desc". This sorts results based on the
162060// `creationTimestamp` field in reverse chronological order (newest
162061// result first). Use this to sort resources like operations so that the
162062// newest operation is returned first. Currently, only sorting by `name`
162063// or `creationTimestamp desc` is supported.
162064func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
162065	c.urlParams_.Set("orderBy", orderBy)
162066	return c
162067}
162068
162069// PageToken sets the optional parameter "pageToken": Specifies a page
162070// token to use. Set `pageToken` to the `nextPageToken` returned by a
162071// previous list request to get the next page of results.
162072func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
162073	c.urlParams_.Set("pageToken", pageToken)
162074	return c
162075}
162076
162077// ReturnPartialSuccess sets the optional parameter
162078// "returnPartialSuccess": Opt-in for partial success behavior which
162079// provides partial results in case of failure. The default value is
162080// false.
162081func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
162082	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162083	return c
162084}
162085
162086// Fields allows partial responses to be retrieved. See
162087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162088// for more information.
162089func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
162090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162091	return c
162092}
162093
162094// IfNoneMatch sets the optional parameter which makes the operation
162095// fail if the object's ETag matches the given value. This is useful for
162096// getting updates only after the object has changed since the last
162097// request. Use googleapi.IsNotModified to check whether the response
162098// error from Do is the result of In-None-Match.
162099func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
162100	c.ifNoneMatch_ = entityTag
162101	return c
162102}
162103
162104// Context sets the context to be used in this call's Do method. Any
162105// pending HTTP request will be aborted if the provided context is
162106// canceled.
162107func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
162108	c.ctx_ = ctx
162109	return c
162110}
162111
162112// Header returns an http.Header that can be modified by the caller to
162113// add HTTP headers to the request.
162114func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
162115	if c.header_ == nil {
162116		c.header_ = make(http.Header)
162117	}
162118	return c.header_
162119}
162120
162121func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
162122	reqHeaders := make(http.Header)
162123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
162124	for k, v := range c.header_ {
162125		reqHeaders[k] = v
162126	}
162127	reqHeaders.Set("User-Agent", c.s.userAgent())
162128	if c.ifNoneMatch_ != "" {
162129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162130	}
162131	var body io.Reader = nil
162132	c.urlParams_.Set("alt", alt)
162133	c.urlParams_.Set("prettyPrint", "false")
162134	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways")
162135	urls += "?" + c.urlParams_.Encode()
162136	req, err := http.NewRequest("GET", urls, body)
162137	if err != nil {
162138		return nil, err
162139	}
162140	req.Header = reqHeaders
162141	googleapi.Expand(req.URL, map[string]string{
162142		"project": c.project,
162143	})
162144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162145}
162146
162147// Do executes the "compute.targetVpnGateways.aggregatedList" call.
162148// Exactly one of *TargetVpnGatewayAggregatedList or error will be
162149// non-nil. Any non-2xx status code is an error. Response headers are in
162150// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
162151// response was returned at all) in error.(*googleapi.Error).Header. Use
162152// googleapi.IsNotModified to check whether the returned error was
162153// because http.StatusNotModified was returned.
162154func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
162155	gensupport.SetOptions(c.urlParams_, opts...)
162156	res, err := c.doRequest("json")
162157	if res != nil && res.StatusCode == http.StatusNotModified {
162158		if res.Body != nil {
162159			res.Body.Close()
162160		}
162161		return nil, &googleapi.Error{
162162			Code:   res.StatusCode,
162163			Header: res.Header,
162164		}
162165	}
162166	if err != nil {
162167		return nil, err
162168	}
162169	defer googleapi.CloseBody(res)
162170	if err := googleapi.CheckResponse(res); err != nil {
162171		return nil, err
162172	}
162173	ret := &TargetVpnGatewayAggregatedList{
162174		ServerResponse: googleapi.ServerResponse{
162175			Header:         res.Header,
162176			HTTPStatusCode: res.StatusCode,
162177		},
162178	}
162179	target := &ret
162180	if err := gensupport.DecodeResponse(target, res); err != nil {
162181		return nil, err
162182	}
162183	return ret, nil
162184	// {
162185	//   "description": "Retrieves an aggregated list of target VPN gateways.",
162186	//   "flatPath": "projects/{project}/aggregated/targetVpnGateways",
162187	//   "httpMethod": "GET",
162188	//   "id": "compute.targetVpnGateways.aggregatedList",
162189	//   "parameterOrder": [
162190	//     "project"
162191	//   ],
162192	//   "parameters": {
162193	//     "filter": {
162194	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
162195	//       "location": "query",
162196	//       "type": "string"
162197	//     },
162198	//     "includeAllScopes": {
162199	//       "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.",
162200	//       "location": "query",
162201	//       "type": "boolean"
162202	//     },
162203	//     "maxResults": {
162204	//       "default": "500",
162205	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
162206	//       "format": "uint32",
162207	//       "location": "query",
162208	//       "minimum": "0",
162209	//       "type": "integer"
162210	//     },
162211	//     "orderBy": {
162212	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
162213	//       "location": "query",
162214	//       "type": "string"
162215	//     },
162216	//     "pageToken": {
162217	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
162218	//       "location": "query",
162219	//       "type": "string"
162220	//     },
162221	//     "project": {
162222	//       "description": "Project ID for this request.",
162223	//       "location": "path",
162224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162225	//       "required": true,
162226	//       "type": "string"
162227	//     },
162228	//     "returnPartialSuccess": {
162229	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
162230	//       "location": "query",
162231	//       "type": "boolean"
162232	//     }
162233	//   },
162234	//   "path": "projects/{project}/aggregated/targetVpnGateways",
162235	//   "response": {
162236	//     "$ref": "TargetVpnGatewayAggregatedList"
162237	//   },
162238	//   "scopes": [
162239	//     "https://www.googleapis.com/auth/cloud-platform",
162240	//     "https://www.googleapis.com/auth/compute",
162241	//     "https://www.googleapis.com/auth/compute.readonly"
162242	//   ]
162243	// }
162244
162245}
162246
162247// Pages invokes f for each page of results.
162248// A non-nil error returned from f will halt the iteration.
162249// The provided context supersedes any context provided to the Context method.
162250func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
162251	c.ctx_ = ctx
162252	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162253	for {
162254		x, err := c.Do()
162255		if err != nil {
162256			return err
162257		}
162258		if err := f(x); err != nil {
162259			return err
162260		}
162261		if x.NextPageToken == "" {
162262			return nil
162263		}
162264		c.PageToken(x.NextPageToken)
162265	}
162266}
162267
162268// method id "compute.targetVpnGateways.delete":
162269
162270type TargetVpnGatewaysDeleteCall struct {
162271	s                *Service
162272	project          string
162273	region           string
162274	targetVpnGateway string
162275	urlParams_       gensupport.URLParams
162276	ctx_             context.Context
162277	header_          http.Header
162278}
162279
162280// Delete: Deletes the specified target VPN gateway.
162281//
162282// - project: Project ID for this request.
162283// - region: Name of the region for this request.
162284// - targetVpnGateway: Name of the target VPN gateway to delete.
162285func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
162286	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162287	c.project = project
162288	c.region = region
162289	c.targetVpnGateway = targetVpnGateway
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. For example, consider a
162297// situation where you make an initial request and the request times
162298// out. If you make the request again with the same request ID, the
162299// server can check if original operation with the same request ID was
162300// received, and if so, will ignore the second request. This prevents
162301// clients from accidentally creating duplicate commitments. The request
162302// ID must be a valid UUID with the exception that zero UUID is not
162303// supported ( 00000000-0000-0000-0000-000000000000).
162304func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
162305	c.urlParams_.Set("requestId", requestId)
162306	return c
162307}
162308
162309// Fields allows partial responses to be retrieved. See
162310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162311// for more information.
162312func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
162313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162314	return c
162315}
162316
162317// Context sets the context to be used in this call's Do method. Any
162318// pending HTTP request will be aborted if the provided context is
162319// canceled.
162320func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
162321	c.ctx_ = ctx
162322	return c
162323}
162324
162325// Header returns an http.Header that can be modified by the caller to
162326// add HTTP headers to the request.
162327func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
162328	if c.header_ == nil {
162329		c.header_ = make(http.Header)
162330	}
162331	return c.header_
162332}
162333
162334func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
162335	reqHeaders := make(http.Header)
162336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
162337	for k, v := range c.header_ {
162338		reqHeaders[k] = v
162339	}
162340	reqHeaders.Set("User-Agent", c.s.userAgent())
162341	var body io.Reader = nil
162342	c.urlParams_.Set("alt", alt)
162343	c.urlParams_.Set("prettyPrint", "false")
162344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
162345	urls += "?" + c.urlParams_.Encode()
162346	req, err := http.NewRequest("DELETE", urls, body)
162347	if err != nil {
162348		return nil, err
162349	}
162350	req.Header = reqHeaders
162351	googleapi.Expand(req.URL, map[string]string{
162352		"project":          c.project,
162353		"region":           c.region,
162354		"targetVpnGateway": c.targetVpnGateway,
162355	})
162356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162357}
162358
162359// Do executes the "compute.targetVpnGateways.delete" call.
162360// Exactly one of *Operation or error will be non-nil. Any non-2xx
162361// status code is an error. Response headers are in either
162362// *Operation.ServerResponse.Header or (if a response was returned at
162363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162364// to check whether the returned error was because
162365// http.StatusNotModified was returned.
162366func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162367	gensupport.SetOptions(c.urlParams_, opts...)
162368	res, err := c.doRequest("json")
162369	if res != nil && res.StatusCode == http.StatusNotModified {
162370		if res.Body != nil {
162371			res.Body.Close()
162372		}
162373		return nil, &googleapi.Error{
162374			Code:   res.StatusCode,
162375			Header: res.Header,
162376		}
162377	}
162378	if err != nil {
162379		return nil, err
162380	}
162381	defer googleapi.CloseBody(res)
162382	if err := googleapi.CheckResponse(res); err != nil {
162383		return nil, err
162384	}
162385	ret := &Operation{
162386		ServerResponse: googleapi.ServerResponse{
162387			Header:         res.Header,
162388			HTTPStatusCode: res.StatusCode,
162389		},
162390	}
162391	target := &ret
162392	if err := gensupport.DecodeResponse(target, res); err != nil {
162393		return nil, err
162394	}
162395	return ret, nil
162396	// {
162397	//   "description": "Deletes the specified target VPN gateway.",
162398	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162399	//   "httpMethod": "DELETE",
162400	//   "id": "compute.targetVpnGateways.delete",
162401	//   "parameterOrder": [
162402	//     "project",
162403	//     "region",
162404	//     "targetVpnGateway"
162405	//   ],
162406	//   "parameters": {
162407	//     "project": {
162408	//       "description": "Project ID for this request.",
162409	//       "location": "path",
162410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162411	//       "required": true,
162412	//       "type": "string"
162413	//     },
162414	//     "region": {
162415	//       "description": "Name of the region for this request.",
162416	//       "location": "path",
162417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162418	//       "required": true,
162419	//       "type": "string"
162420	//     },
162421	//     "requestId": {
162422	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
162423	//       "location": "query",
162424	//       "type": "string"
162425	//     },
162426	//     "targetVpnGateway": {
162427	//       "description": "Name of the target VPN gateway to delete.",
162428	//       "location": "path",
162429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162430	//       "required": true,
162431	//       "type": "string"
162432	//     }
162433	//   },
162434	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162435	//   "response": {
162436	//     "$ref": "Operation"
162437	//   },
162438	//   "scopes": [
162439	//     "https://www.googleapis.com/auth/cloud-platform",
162440	//     "https://www.googleapis.com/auth/compute"
162441	//   ]
162442	// }
162443
162444}
162445
162446// method id "compute.targetVpnGateways.get":
162447
162448type TargetVpnGatewaysGetCall struct {
162449	s                *Service
162450	project          string
162451	region           string
162452	targetVpnGateway string
162453	urlParams_       gensupport.URLParams
162454	ifNoneMatch_     string
162455	ctx_             context.Context
162456	header_          http.Header
162457}
162458
162459// Get: Returns the specified target VPN gateway. Gets a list of
162460// available target VPN gateways by making a list() request.
162461//
162462// - project: Project ID for this request.
162463// - region: Name of the region for this request.
162464// - targetVpnGateway: Name of the target VPN gateway to return.
162465func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
162466	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162467	c.project = project
162468	c.region = region
162469	c.targetVpnGateway = targetVpnGateway
162470	return c
162471}
162472
162473// Fields allows partial responses to be retrieved. See
162474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162475// for more information.
162476func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
162477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162478	return c
162479}
162480
162481// IfNoneMatch sets the optional parameter which makes the operation
162482// fail if the object's ETag matches the given value. This is useful for
162483// getting updates only after the object has changed since the last
162484// request. Use googleapi.IsNotModified to check whether the response
162485// error from Do is the result of In-None-Match.
162486func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
162487	c.ifNoneMatch_ = entityTag
162488	return c
162489}
162490
162491// Context sets the context to be used in this call's Do method. Any
162492// pending HTTP request will be aborted if the provided context is
162493// canceled.
162494func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
162495	c.ctx_ = ctx
162496	return c
162497}
162498
162499// Header returns an http.Header that can be modified by the caller to
162500// add HTTP headers to the request.
162501func (c *TargetVpnGatewaysGetCall) Header() http.Header {
162502	if c.header_ == nil {
162503		c.header_ = make(http.Header)
162504	}
162505	return c.header_
162506}
162507
162508func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
162509	reqHeaders := make(http.Header)
162510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
162511	for k, v := range c.header_ {
162512		reqHeaders[k] = v
162513	}
162514	reqHeaders.Set("User-Agent", c.s.userAgent())
162515	if c.ifNoneMatch_ != "" {
162516		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162517	}
162518	var body io.Reader = nil
162519	c.urlParams_.Set("alt", alt)
162520	c.urlParams_.Set("prettyPrint", "false")
162521	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
162522	urls += "?" + c.urlParams_.Encode()
162523	req, err := http.NewRequest("GET", urls, body)
162524	if err != nil {
162525		return nil, err
162526	}
162527	req.Header = reqHeaders
162528	googleapi.Expand(req.URL, map[string]string{
162529		"project":          c.project,
162530		"region":           c.region,
162531		"targetVpnGateway": c.targetVpnGateway,
162532	})
162533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162534}
162535
162536// Do executes the "compute.targetVpnGateways.get" call.
162537// Exactly one of *TargetVpnGateway or error will be non-nil. Any
162538// non-2xx status code is an error. Response headers are in either
162539// *TargetVpnGateway.ServerResponse.Header or (if a response was
162540// returned at all) in error.(*googleapi.Error).Header. Use
162541// googleapi.IsNotModified to check whether the returned error was
162542// because http.StatusNotModified was returned.
162543func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
162544	gensupport.SetOptions(c.urlParams_, opts...)
162545	res, err := c.doRequest("json")
162546	if res != nil && res.StatusCode == http.StatusNotModified {
162547		if res.Body != nil {
162548			res.Body.Close()
162549		}
162550		return nil, &googleapi.Error{
162551			Code:   res.StatusCode,
162552			Header: res.Header,
162553		}
162554	}
162555	if err != nil {
162556		return nil, err
162557	}
162558	defer googleapi.CloseBody(res)
162559	if err := googleapi.CheckResponse(res); err != nil {
162560		return nil, err
162561	}
162562	ret := &TargetVpnGateway{
162563		ServerResponse: googleapi.ServerResponse{
162564			Header:         res.Header,
162565			HTTPStatusCode: res.StatusCode,
162566		},
162567	}
162568	target := &ret
162569	if err := gensupport.DecodeResponse(target, res); err != nil {
162570		return nil, err
162571	}
162572	return ret, nil
162573	// {
162574	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
162575	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162576	//   "httpMethod": "GET",
162577	//   "id": "compute.targetVpnGateways.get",
162578	//   "parameterOrder": [
162579	//     "project",
162580	//     "region",
162581	//     "targetVpnGateway"
162582	//   ],
162583	//   "parameters": {
162584	//     "project": {
162585	//       "description": "Project ID for this request.",
162586	//       "location": "path",
162587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162588	//       "required": true,
162589	//       "type": "string"
162590	//     },
162591	//     "region": {
162592	//       "description": "Name of the region for this request.",
162593	//       "location": "path",
162594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162595	//       "required": true,
162596	//       "type": "string"
162597	//     },
162598	//     "targetVpnGateway": {
162599	//       "description": "Name of the target VPN gateway to return.",
162600	//       "location": "path",
162601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162602	//       "required": true,
162603	//       "type": "string"
162604	//     }
162605	//   },
162606	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162607	//   "response": {
162608	//     "$ref": "TargetVpnGateway"
162609	//   },
162610	//   "scopes": [
162611	//     "https://www.googleapis.com/auth/cloud-platform",
162612	//     "https://www.googleapis.com/auth/compute",
162613	//     "https://www.googleapis.com/auth/compute.readonly"
162614	//   ]
162615	// }
162616
162617}
162618
162619// method id "compute.targetVpnGateways.insert":
162620
162621type TargetVpnGatewaysInsertCall struct {
162622	s                *Service
162623	project          string
162624	region           string
162625	targetvpngateway *TargetVpnGateway
162626	urlParams_       gensupport.URLParams
162627	ctx_             context.Context
162628	header_          http.Header
162629}
162630
162631// Insert: Creates a target VPN gateway in the specified project and
162632// region using the data included in the request.
162633//
162634// - project: Project ID for this request.
162635// - region: Name of the region for this request.
162636func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
162637	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162638	c.project = project
162639	c.region = region
162640	c.targetvpngateway = targetvpngateway
162641	return c
162642}
162643
162644// RequestId sets the optional parameter "requestId": An optional
162645// request ID to identify requests. Specify a unique request ID so that
162646// if you must retry your request, the server will know to ignore the
162647// request if it has already been completed. For example, consider a
162648// situation where you make an initial request and the request times
162649// out. If you make the request again with the same request ID, the
162650// server can check if original operation with the same request ID was
162651// received, and if so, will ignore the second request. This prevents
162652// clients from accidentally creating duplicate commitments. The request
162653// ID must be a valid UUID with the exception that zero UUID is not
162654// supported ( 00000000-0000-0000-0000-000000000000).
162655func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
162656	c.urlParams_.Set("requestId", requestId)
162657	return c
162658}
162659
162660// Fields allows partial responses to be retrieved. See
162661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162662// for more information.
162663func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
162664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162665	return c
162666}
162667
162668// Context sets the context to be used in this call's Do method. Any
162669// pending HTTP request will be aborted if the provided context is
162670// canceled.
162671func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
162672	c.ctx_ = ctx
162673	return c
162674}
162675
162676// Header returns an http.Header that can be modified by the caller to
162677// add HTTP headers to the request.
162678func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
162679	if c.header_ == nil {
162680		c.header_ = make(http.Header)
162681	}
162682	return c.header_
162683}
162684
162685func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
162686	reqHeaders := make(http.Header)
162687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
162688	for k, v := range c.header_ {
162689		reqHeaders[k] = v
162690	}
162691	reqHeaders.Set("User-Agent", c.s.userAgent())
162692	var body io.Reader = nil
162693	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
162694	if err != nil {
162695		return nil, err
162696	}
162697	reqHeaders.Set("Content-Type", "application/json")
162698	c.urlParams_.Set("alt", alt)
162699	c.urlParams_.Set("prettyPrint", "false")
162700	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
162701	urls += "?" + c.urlParams_.Encode()
162702	req, err := http.NewRequest("POST", urls, body)
162703	if err != nil {
162704		return nil, err
162705	}
162706	req.Header = reqHeaders
162707	googleapi.Expand(req.URL, map[string]string{
162708		"project": c.project,
162709		"region":  c.region,
162710	})
162711	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162712}
162713
162714// Do executes the "compute.targetVpnGateways.insert" call.
162715// Exactly one of *Operation or error will be non-nil. Any non-2xx
162716// status code is an error. Response headers are in either
162717// *Operation.ServerResponse.Header or (if a response was returned at
162718// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162719// to check whether the returned error was because
162720// http.StatusNotModified was returned.
162721func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162722	gensupport.SetOptions(c.urlParams_, opts...)
162723	res, err := c.doRequest("json")
162724	if res != nil && res.StatusCode == http.StatusNotModified {
162725		if res.Body != nil {
162726			res.Body.Close()
162727		}
162728		return nil, &googleapi.Error{
162729			Code:   res.StatusCode,
162730			Header: res.Header,
162731		}
162732	}
162733	if err != nil {
162734		return nil, err
162735	}
162736	defer googleapi.CloseBody(res)
162737	if err := googleapi.CheckResponse(res); err != nil {
162738		return nil, err
162739	}
162740	ret := &Operation{
162741		ServerResponse: googleapi.ServerResponse{
162742			Header:         res.Header,
162743			HTTPStatusCode: res.StatusCode,
162744		},
162745	}
162746	target := &ret
162747	if err := gensupport.DecodeResponse(target, res); err != nil {
162748		return nil, err
162749	}
162750	return ret, nil
162751	// {
162752	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
162753	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
162754	//   "httpMethod": "POST",
162755	//   "id": "compute.targetVpnGateways.insert",
162756	//   "parameterOrder": [
162757	//     "project",
162758	//     "region"
162759	//   ],
162760	//   "parameters": {
162761	//     "project": {
162762	//       "description": "Project ID for this request.",
162763	//       "location": "path",
162764	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162765	//       "required": true,
162766	//       "type": "string"
162767	//     },
162768	//     "region": {
162769	//       "description": "Name of the region for this request.",
162770	//       "location": "path",
162771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162772	//       "required": true,
162773	//       "type": "string"
162774	//     },
162775	//     "requestId": {
162776	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
162777	//       "location": "query",
162778	//       "type": "string"
162779	//     }
162780	//   },
162781	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
162782	//   "request": {
162783	//     "$ref": "TargetVpnGateway"
162784	//   },
162785	//   "response": {
162786	//     "$ref": "Operation"
162787	//   },
162788	//   "scopes": [
162789	//     "https://www.googleapis.com/auth/cloud-platform",
162790	//     "https://www.googleapis.com/auth/compute"
162791	//   ]
162792	// }
162793
162794}
162795
162796// method id "compute.targetVpnGateways.list":
162797
162798type TargetVpnGatewaysListCall struct {
162799	s            *Service
162800	project      string
162801	region       string
162802	urlParams_   gensupport.URLParams
162803	ifNoneMatch_ string
162804	ctx_         context.Context
162805	header_      http.Header
162806}
162807
162808// List: Retrieves a list of target VPN gateways available to the
162809// specified project and region.
162810//
162811// - project: Project ID for this request.
162812// - region: Name of the region for this request.
162813func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
162814	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162815	c.project = project
162816	c.region = region
162817	return c
162818}
162819
162820// Filter sets the optional parameter "filter": A filter expression that
162821// filters resources listed in the response. The expression must specify
162822// the field name, a comparison operator, and the value that you want to
162823// use for filtering. The value must be a string, a number, or a
162824// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162825// `<`. For example, if you are filtering Compute Engine instances, you
162826// can exclude instances named `example-instance` by specifying `name !=
162827// example-instance`. You can also filter nested fields. For example,
162828// you could specify `scheduling.automaticRestart = false` to include
162829// instances only if they are not scheduled for automatic restarts. You
162830// can use filtering on nested fields to filter based on resource
162831// labels. To filter on multiple expressions, provide each separate
162832// expression within parentheses. For example: ```
162833// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
162834// ``` By default, each expression is an `AND` expression. However, you
162835// can include `AND` and `OR` expressions explicitly. For example: ```
162836// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
162837// AND (scheduling.automaticRestart = true) ```
162838func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
162839	c.urlParams_.Set("filter", filter)
162840	return c
162841}
162842
162843// MaxResults sets the optional parameter "maxResults": The maximum
162844// number of results per page that should be returned. If the number of
162845// available results is larger than `maxResults`, Compute Engine returns
162846// a `nextPageToken` that can be used to get the next page of results in
162847// subsequent list requests. Acceptable values are `0` to `500`,
162848// inclusive. (Default: `500`)
162849func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
162850	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162851	return c
162852}
162853
162854// OrderBy sets the optional parameter "orderBy": Sorts list results by
162855// a certain order. By default, results are returned in alphanumerical
162856// order based on the resource name. You can also sort results in
162857// descending order based on the creation timestamp using
162858// `orderBy="creationTimestamp desc". This sorts results based on the
162859// `creationTimestamp` field in reverse chronological order (newest
162860// result first). Use this to sort resources like operations so that the
162861// newest operation is returned first. Currently, only sorting by `name`
162862// or `creationTimestamp desc` is supported.
162863func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
162864	c.urlParams_.Set("orderBy", orderBy)
162865	return c
162866}
162867
162868// PageToken sets the optional parameter "pageToken": Specifies a page
162869// token to use. Set `pageToken` to the `nextPageToken` returned by a
162870// previous list request to get the next page of results.
162871func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
162872	c.urlParams_.Set("pageToken", pageToken)
162873	return c
162874}
162875
162876// ReturnPartialSuccess sets the optional parameter
162877// "returnPartialSuccess": Opt-in for partial success behavior which
162878// provides partial results in case of failure. The default value is
162879// false.
162880func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
162881	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162882	return c
162883}
162884
162885// Fields allows partial responses to be retrieved. See
162886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162887// for more information.
162888func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
162889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162890	return c
162891}
162892
162893// IfNoneMatch sets the optional parameter which makes the operation
162894// fail if the object's ETag matches the given value. This is useful for
162895// getting updates only after the object has changed since the last
162896// request. Use googleapi.IsNotModified to check whether the response
162897// error from Do is the result of In-None-Match.
162898func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
162899	c.ifNoneMatch_ = entityTag
162900	return c
162901}
162902
162903// Context sets the context to be used in this call's Do method. Any
162904// pending HTTP request will be aborted if the provided context is
162905// canceled.
162906func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
162907	c.ctx_ = ctx
162908	return c
162909}
162910
162911// Header returns an http.Header that can be modified by the caller to
162912// add HTTP headers to the request.
162913func (c *TargetVpnGatewaysListCall) Header() http.Header {
162914	if c.header_ == nil {
162915		c.header_ = make(http.Header)
162916	}
162917	return c.header_
162918}
162919
162920func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
162921	reqHeaders := make(http.Header)
162922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
162923	for k, v := range c.header_ {
162924		reqHeaders[k] = v
162925	}
162926	reqHeaders.Set("User-Agent", c.s.userAgent())
162927	if c.ifNoneMatch_ != "" {
162928		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162929	}
162930	var body io.Reader = nil
162931	c.urlParams_.Set("alt", alt)
162932	c.urlParams_.Set("prettyPrint", "false")
162933	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
162934	urls += "?" + c.urlParams_.Encode()
162935	req, err := http.NewRequest("GET", urls, body)
162936	if err != nil {
162937		return nil, err
162938	}
162939	req.Header = reqHeaders
162940	googleapi.Expand(req.URL, map[string]string{
162941		"project": c.project,
162942		"region":  c.region,
162943	})
162944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162945}
162946
162947// Do executes the "compute.targetVpnGateways.list" call.
162948// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
162949// non-2xx status code is an error. Response headers are in either
162950// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
162951// returned at all) in error.(*googleapi.Error).Header. Use
162952// googleapi.IsNotModified to check whether the returned error was
162953// because http.StatusNotModified was returned.
162954func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
162955	gensupport.SetOptions(c.urlParams_, opts...)
162956	res, err := c.doRequest("json")
162957	if res != nil && res.StatusCode == http.StatusNotModified {
162958		if res.Body != nil {
162959			res.Body.Close()
162960		}
162961		return nil, &googleapi.Error{
162962			Code:   res.StatusCode,
162963			Header: res.Header,
162964		}
162965	}
162966	if err != nil {
162967		return nil, err
162968	}
162969	defer googleapi.CloseBody(res)
162970	if err := googleapi.CheckResponse(res); err != nil {
162971		return nil, err
162972	}
162973	ret := &TargetVpnGatewayList{
162974		ServerResponse: googleapi.ServerResponse{
162975			Header:         res.Header,
162976			HTTPStatusCode: res.StatusCode,
162977		},
162978	}
162979	target := &ret
162980	if err := gensupport.DecodeResponse(target, res); err != nil {
162981		return nil, err
162982	}
162983	return ret, nil
162984	// {
162985	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
162986	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
162987	//   "httpMethod": "GET",
162988	//   "id": "compute.targetVpnGateways.list",
162989	//   "parameterOrder": [
162990	//     "project",
162991	//     "region"
162992	//   ],
162993	//   "parameters": {
162994	//     "filter": {
162995	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
162996	//       "location": "query",
162997	//       "type": "string"
162998	//     },
162999	//     "maxResults": {
163000	//       "default": "500",
163001	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163002	//       "format": "uint32",
163003	//       "location": "query",
163004	//       "minimum": "0",
163005	//       "type": "integer"
163006	//     },
163007	//     "orderBy": {
163008	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
163009	//       "location": "query",
163010	//       "type": "string"
163011	//     },
163012	//     "pageToken": {
163013	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163014	//       "location": "query",
163015	//       "type": "string"
163016	//     },
163017	//     "project": {
163018	//       "description": "Project ID for this request.",
163019	//       "location": "path",
163020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163021	//       "required": true,
163022	//       "type": "string"
163023	//     },
163024	//     "region": {
163025	//       "description": "Name of the region for this request.",
163026	//       "location": "path",
163027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163028	//       "required": true,
163029	//       "type": "string"
163030	//     },
163031	//     "returnPartialSuccess": {
163032	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163033	//       "location": "query",
163034	//       "type": "boolean"
163035	//     }
163036	//   },
163037	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
163038	//   "response": {
163039	//     "$ref": "TargetVpnGatewayList"
163040	//   },
163041	//   "scopes": [
163042	//     "https://www.googleapis.com/auth/cloud-platform",
163043	//     "https://www.googleapis.com/auth/compute",
163044	//     "https://www.googleapis.com/auth/compute.readonly"
163045	//   ]
163046	// }
163047
163048}
163049
163050// Pages invokes f for each page of results.
163051// A non-nil error returned from f will halt the iteration.
163052// The provided context supersedes any context provided to the Context method.
163053func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
163054	c.ctx_ = ctx
163055	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163056	for {
163057		x, err := c.Do()
163058		if err != nil {
163059			return err
163060		}
163061		if err := f(x); err != nil {
163062			return err
163063		}
163064		if x.NextPageToken == "" {
163065			return nil
163066		}
163067		c.PageToken(x.NextPageToken)
163068	}
163069}
163070
163071// method id "compute.urlMaps.aggregatedList":
163072
163073type UrlMapsAggregatedListCall struct {
163074	s            *Service
163075	project      string
163076	urlParams_   gensupport.URLParams
163077	ifNoneMatch_ string
163078	ctx_         context.Context
163079	header_      http.Header
163080}
163081
163082// AggregatedList: Retrieves the list of all UrlMap resources, regional
163083// and global, available to the specified project.
163084//
163085// - project: Name of the project scoping this request.
163086func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
163087	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163088	c.project = project
163089	return c
163090}
163091
163092// Filter sets the optional parameter "filter": A filter expression that
163093// filters resources listed in the response. The expression must specify
163094// the field name, a comparison operator, and the value that you want to
163095// use for filtering. The value must be a string, a number, or a
163096// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163097// `<`. For example, if you are filtering Compute Engine instances, you
163098// can exclude instances named `example-instance` by specifying `name !=
163099// example-instance`. You can also filter nested fields. For example,
163100// you could specify `scheduling.automaticRestart = false` to include
163101// instances only if they are not scheduled for automatic restarts. You
163102// can use filtering on nested fields to filter based on resource
163103// labels. To filter on multiple expressions, provide each separate
163104// expression within parentheses. For example: ```
163105// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
163106// ``` By default, each expression is an `AND` expression. However, you
163107// can include `AND` and `OR` expressions explicitly. For example: ```
163108// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
163109// AND (scheduling.automaticRestart = true) ```
163110func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
163111	c.urlParams_.Set("filter", filter)
163112	return c
163113}
163114
163115// IncludeAllScopes sets the optional parameter "includeAllScopes":
163116// Indicates whether every visible scope for each scope type (zone,
163117// region, global) should be included in the response. For new resource
163118// types added after this field, the flag has no effect as new resource
163119// types will always include every visible scope for each scope type in
163120// response. For resource types which predate this field, if this flag
163121// is omitted or false, only scopes of the scope types where the
163122// resource type is expected to be found will be included.
163123func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
163124	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
163125	return c
163126}
163127
163128// MaxResults sets the optional parameter "maxResults": The maximum
163129// number of results per page that should be returned. If the number of
163130// available results is larger than `maxResults`, Compute Engine returns
163131// a `nextPageToken` that can be used to get the next page of results in
163132// subsequent list requests. Acceptable values are `0` to `500`,
163133// inclusive. (Default: `500`)
163134func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
163135	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163136	return c
163137}
163138
163139// OrderBy sets the optional parameter "orderBy": Sorts list results by
163140// a certain order. By default, results are returned in alphanumerical
163141// order based on the resource name. You can also sort results in
163142// descending order based on the creation timestamp using
163143// `orderBy="creationTimestamp desc". This sorts results based on the
163144// `creationTimestamp` field in reverse chronological order (newest
163145// result first). Use this to sort resources like operations so that the
163146// newest operation is returned first. Currently, only sorting by `name`
163147// or `creationTimestamp desc` is supported.
163148func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
163149	c.urlParams_.Set("orderBy", orderBy)
163150	return c
163151}
163152
163153// PageToken sets the optional parameter "pageToken": Specifies a page
163154// token to use. Set `pageToken` to the `nextPageToken` returned by a
163155// previous list request to get the next page of results.
163156func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
163157	c.urlParams_.Set("pageToken", pageToken)
163158	return c
163159}
163160
163161// ReturnPartialSuccess sets the optional parameter
163162// "returnPartialSuccess": Opt-in for partial success behavior which
163163// provides partial results in case of failure. The default value is
163164// false.
163165func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
163166	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163167	return c
163168}
163169
163170// Fields allows partial responses to be retrieved. See
163171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163172// for more information.
163173func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
163174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163175	return c
163176}
163177
163178// IfNoneMatch sets the optional parameter which makes the operation
163179// fail if the object's ETag matches the given value. This is useful for
163180// getting updates only after the object has changed since the last
163181// request. Use googleapi.IsNotModified to check whether the response
163182// error from Do is the result of In-None-Match.
163183func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
163184	c.ifNoneMatch_ = entityTag
163185	return c
163186}
163187
163188// Context sets the context to be used in this call's Do method. Any
163189// pending HTTP request will be aborted if the provided context is
163190// canceled.
163191func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
163192	c.ctx_ = ctx
163193	return c
163194}
163195
163196// Header returns an http.Header that can be modified by the caller to
163197// add HTTP headers to the request.
163198func (c *UrlMapsAggregatedListCall) Header() http.Header {
163199	if c.header_ == nil {
163200		c.header_ = make(http.Header)
163201	}
163202	return c.header_
163203}
163204
163205func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163206	reqHeaders := make(http.Header)
163207	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
163208	for k, v := range c.header_ {
163209		reqHeaders[k] = v
163210	}
163211	reqHeaders.Set("User-Agent", c.s.userAgent())
163212	if c.ifNoneMatch_ != "" {
163213		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163214	}
163215	var body io.Reader = nil
163216	c.urlParams_.Set("alt", alt)
163217	c.urlParams_.Set("prettyPrint", "false")
163218	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps")
163219	urls += "?" + c.urlParams_.Encode()
163220	req, err := http.NewRequest("GET", urls, body)
163221	if err != nil {
163222		return nil, err
163223	}
163224	req.Header = reqHeaders
163225	googleapi.Expand(req.URL, map[string]string{
163226		"project": c.project,
163227	})
163228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163229}
163230
163231// Do executes the "compute.urlMaps.aggregatedList" call.
163232// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
163233// non-2xx status code is an error. Response headers are in either
163234// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
163235// returned at all) in error.(*googleapi.Error).Header. Use
163236// googleapi.IsNotModified to check whether the returned error was
163237// because http.StatusNotModified was returned.
163238func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
163239	gensupport.SetOptions(c.urlParams_, opts...)
163240	res, err := c.doRequest("json")
163241	if res != nil && res.StatusCode == http.StatusNotModified {
163242		if res.Body != nil {
163243			res.Body.Close()
163244		}
163245		return nil, &googleapi.Error{
163246			Code:   res.StatusCode,
163247			Header: res.Header,
163248		}
163249	}
163250	if err != nil {
163251		return nil, err
163252	}
163253	defer googleapi.CloseBody(res)
163254	if err := googleapi.CheckResponse(res); err != nil {
163255		return nil, err
163256	}
163257	ret := &UrlMapsAggregatedList{
163258		ServerResponse: googleapi.ServerResponse{
163259			Header:         res.Header,
163260			HTTPStatusCode: res.StatusCode,
163261		},
163262	}
163263	target := &ret
163264	if err := gensupport.DecodeResponse(target, res); err != nil {
163265		return nil, err
163266	}
163267	return ret, nil
163268	// {
163269	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
163270	//   "flatPath": "projects/{project}/aggregated/urlMaps",
163271	//   "httpMethod": "GET",
163272	//   "id": "compute.urlMaps.aggregatedList",
163273	//   "parameterOrder": [
163274	//     "project"
163275	//   ],
163276	//   "parameters": {
163277	//     "filter": {
163278	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163279	//       "location": "query",
163280	//       "type": "string"
163281	//     },
163282	//     "includeAllScopes": {
163283	//       "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.",
163284	//       "location": "query",
163285	//       "type": "boolean"
163286	//     },
163287	//     "maxResults": {
163288	//       "default": "500",
163289	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163290	//       "format": "uint32",
163291	//       "location": "query",
163292	//       "minimum": "0",
163293	//       "type": "integer"
163294	//     },
163295	//     "orderBy": {
163296	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
163297	//       "location": "query",
163298	//       "type": "string"
163299	//     },
163300	//     "pageToken": {
163301	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163302	//       "location": "query",
163303	//       "type": "string"
163304	//     },
163305	//     "project": {
163306	//       "description": "Name of the project scoping this request.",
163307	//       "location": "path",
163308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163309	//       "required": true,
163310	//       "type": "string"
163311	//     },
163312	//     "returnPartialSuccess": {
163313	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163314	//       "location": "query",
163315	//       "type": "boolean"
163316	//     }
163317	//   },
163318	//   "path": "projects/{project}/aggregated/urlMaps",
163319	//   "response": {
163320	//     "$ref": "UrlMapsAggregatedList"
163321	//   },
163322	//   "scopes": [
163323	//     "https://www.googleapis.com/auth/cloud-platform",
163324	//     "https://www.googleapis.com/auth/compute",
163325	//     "https://www.googleapis.com/auth/compute.readonly"
163326	//   ]
163327	// }
163328
163329}
163330
163331// Pages invokes f for each page of results.
163332// A non-nil error returned from f will halt the iteration.
163333// The provided context supersedes any context provided to the Context method.
163334func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
163335	c.ctx_ = ctx
163336	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163337	for {
163338		x, err := c.Do()
163339		if err != nil {
163340			return err
163341		}
163342		if err := f(x); err != nil {
163343			return err
163344		}
163345		if x.NextPageToken == "" {
163346			return nil
163347		}
163348		c.PageToken(x.NextPageToken)
163349	}
163350}
163351
163352// method id "compute.urlMaps.delete":
163353
163354type UrlMapsDeleteCall struct {
163355	s          *Service
163356	project    string
163357	urlMap     string
163358	urlParams_ gensupport.URLParams
163359	ctx_       context.Context
163360	header_    http.Header
163361}
163362
163363// Delete: Deletes the specified UrlMap resource.
163364//
163365// - project: Project ID for this request.
163366// - urlMap: Name of the UrlMap resource to delete.
163367func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
163368	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163369	c.project = project
163370	c.urlMap = urlMap
163371	return c
163372}
163373
163374// RequestId sets the optional parameter "requestId": An optional
163375// request ID to identify requests. Specify a unique request ID so that
163376// if you must retry your request, the server will know to ignore the
163377// request if it has already been completed. For example, consider a
163378// situation where you make an initial request and the request times
163379// out. If you make the request again with the same request ID, the
163380// server can check if original operation with the same request ID was
163381// received, and if so, will ignore the second request. This prevents
163382// clients from accidentally creating duplicate commitments. The request
163383// ID must be a valid UUID with the exception that zero UUID is not
163384// supported ( 00000000-0000-0000-0000-000000000000).
163385func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
163386	c.urlParams_.Set("requestId", requestId)
163387	return c
163388}
163389
163390// Fields allows partial responses to be retrieved. See
163391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163392// for more information.
163393func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
163394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163395	return c
163396}
163397
163398// Context sets the context to be used in this call's Do method. Any
163399// pending HTTP request will be aborted if the provided context is
163400// canceled.
163401func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
163402	c.ctx_ = ctx
163403	return c
163404}
163405
163406// Header returns an http.Header that can be modified by the caller to
163407// add HTTP headers to the request.
163408func (c *UrlMapsDeleteCall) Header() http.Header {
163409	if c.header_ == nil {
163410		c.header_ = make(http.Header)
163411	}
163412	return c.header_
163413}
163414
163415func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
163416	reqHeaders := make(http.Header)
163417	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
163418	for k, v := range c.header_ {
163419		reqHeaders[k] = v
163420	}
163421	reqHeaders.Set("User-Agent", c.s.userAgent())
163422	var body io.Reader = nil
163423	c.urlParams_.Set("alt", alt)
163424	c.urlParams_.Set("prettyPrint", "false")
163425	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
163426	urls += "?" + c.urlParams_.Encode()
163427	req, err := http.NewRequest("DELETE", urls, body)
163428	if err != nil {
163429		return nil, err
163430	}
163431	req.Header = reqHeaders
163432	googleapi.Expand(req.URL, map[string]string{
163433		"project": c.project,
163434		"urlMap":  c.urlMap,
163435	})
163436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163437}
163438
163439// Do executes the "compute.urlMaps.delete" call.
163440// Exactly one of *Operation or error will be non-nil. Any non-2xx
163441// status code is an error. Response headers are in either
163442// *Operation.ServerResponse.Header or (if a response was returned at
163443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163444// to check whether the returned error was because
163445// http.StatusNotModified was returned.
163446func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163447	gensupport.SetOptions(c.urlParams_, opts...)
163448	res, err := c.doRequest("json")
163449	if res != nil && res.StatusCode == http.StatusNotModified {
163450		if res.Body != nil {
163451			res.Body.Close()
163452		}
163453		return nil, &googleapi.Error{
163454			Code:   res.StatusCode,
163455			Header: res.Header,
163456		}
163457	}
163458	if err != nil {
163459		return nil, err
163460	}
163461	defer googleapi.CloseBody(res)
163462	if err := googleapi.CheckResponse(res); err != nil {
163463		return nil, err
163464	}
163465	ret := &Operation{
163466		ServerResponse: googleapi.ServerResponse{
163467			Header:         res.Header,
163468			HTTPStatusCode: res.StatusCode,
163469		},
163470	}
163471	target := &ret
163472	if err := gensupport.DecodeResponse(target, res); err != nil {
163473		return nil, err
163474	}
163475	return ret, nil
163476	// {
163477	//   "description": "Deletes the specified UrlMap resource.",
163478	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
163479	//   "httpMethod": "DELETE",
163480	//   "id": "compute.urlMaps.delete",
163481	//   "parameterOrder": [
163482	//     "project",
163483	//     "urlMap"
163484	//   ],
163485	//   "parameters": {
163486	//     "project": {
163487	//       "description": "Project ID for this request.",
163488	//       "location": "path",
163489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163490	//       "required": true,
163491	//       "type": "string"
163492	//     },
163493	//     "requestId": {
163494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
163495	//       "location": "query",
163496	//       "type": "string"
163497	//     },
163498	//     "urlMap": {
163499	//       "description": "Name of the UrlMap resource to delete.",
163500	//       "location": "path",
163501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163502	//       "required": true,
163503	//       "type": "string"
163504	//     }
163505	//   },
163506	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
163507	//   "response": {
163508	//     "$ref": "Operation"
163509	//   },
163510	//   "scopes": [
163511	//     "https://www.googleapis.com/auth/cloud-platform",
163512	//     "https://www.googleapis.com/auth/compute"
163513	//   ]
163514	// }
163515
163516}
163517
163518// method id "compute.urlMaps.get":
163519
163520type UrlMapsGetCall struct {
163521	s            *Service
163522	project      string
163523	urlMap       string
163524	urlParams_   gensupport.URLParams
163525	ifNoneMatch_ string
163526	ctx_         context.Context
163527	header_      http.Header
163528}
163529
163530// Get: Returns the specified UrlMap resource. Gets a list of available
163531// URL maps by making a list() request.
163532//
163533// - project: Project ID for this request.
163534// - urlMap: Name of the UrlMap resource to return.
163535func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
163536	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163537	c.project = project
163538	c.urlMap = urlMap
163539	return c
163540}
163541
163542// Fields allows partial responses to be retrieved. See
163543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163544// for more information.
163545func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
163546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163547	return c
163548}
163549
163550// IfNoneMatch sets the optional parameter which makes the operation
163551// fail if the object's ETag matches the given value. This is useful for
163552// getting updates only after the object has changed since the last
163553// request. Use googleapi.IsNotModified to check whether the response
163554// error from Do is the result of In-None-Match.
163555func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
163556	c.ifNoneMatch_ = entityTag
163557	return c
163558}
163559
163560// Context sets the context to be used in this call's Do method. Any
163561// pending HTTP request will be aborted if the provided context is
163562// canceled.
163563func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
163564	c.ctx_ = ctx
163565	return c
163566}
163567
163568// Header returns an http.Header that can be modified by the caller to
163569// add HTTP headers to the request.
163570func (c *UrlMapsGetCall) Header() http.Header {
163571	if c.header_ == nil {
163572		c.header_ = make(http.Header)
163573	}
163574	return c.header_
163575}
163576
163577func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
163578	reqHeaders := make(http.Header)
163579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
163580	for k, v := range c.header_ {
163581		reqHeaders[k] = v
163582	}
163583	reqHeaders.Set("User-Agent", c.s.userAgent())
163584	if c.ifNoneMatch_ != "" {
163585		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163586	}
163587	var body io.Reader = nil
163588	c.urlParams_.Set("alt", alt)
163589	c.urlParams_.Set("prettyPrint", "false")
163590	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
163591	urls += "?" + c.urlParams_.Encode()
163592	req, err := http.NewRequest("GET", urls, body)
163593	if err != nil {
163594		return nil, err
163595	}
163596	req.Header = reqHeaders
163597	googleapi.Expand(req.URL, map[string]string{
163598		"project": c.project,
163599		"urlMap":  c.urlMap,
163600	})
163601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163602}
163603
163604// Do executes the "compute.urlMaps.get" call.
163605// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
163606// code is an error. Response headers are in either
163607// *UrlMap.ServerResponse.Header or (if a response was returned at all)
163608// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
163609// check whether the returned error was because http.StatusNotModified
163610// was returned.
163611func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
163612	gensupport.SetOptions(c.urlParams_, opts...)
163613	res, err := c.doRequest("json")
163614	if res != nil && res.StatusCode == http.StatusNotModified {
163615		if res.Body != nil {
163616			res.Body.Close()
163617		}
163618		return nil, &googleapi.Error{
163619			Code:   res.StatusCode,
163620			Header: res.Header,
163621		}
163622	}
163623	if err != nil {
163624		return nil, err
163625	}
163626	defer googleapi.CloseBody(res)
163627	if err := googleapi.CheckResponse(res); err != nil {
163628		return nil, err
163629	}
163630	ret := &UrlMap{
163631		ServerResponse: googleapi.ServerResponse{
163632			Header:         res.Header,
163633			HTTPStatusCode: res.StatusCode,
163634		},
163635	}
163636	target := &ret
163637	if err := gensupport.DecodeResponse(target, res); err != nil {
163638		return nil, err
163639	}
163640	return ret, nil
163641	// {
163642	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
163643	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
163644	//   "httpMethod": "GET",
163645	//   "id": "compute.urlMaps.get",
163646	//   "parameterOrder": [
163647	//     "project",
163648	//     "urlMap"
163649	//   ],
163650	//   "parameters": {
163651	//     "project": {
163652	//       "description": "Project ID for this request.",
163653	//       "location": "path",
163654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163655	//       "required": true,
163656	//       "type": "string"
163657	//     },
163658	//     "urlMap": {
163659	//       "description": "Name of the UrlMap resource to return.",
163660	//       "location": "path",
163661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163662	//       "required": true,
163663	//       "type": "string"
163664	//     }
163665	//   },
163666	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
163667	//   "response": {
163668	//     "$ref": "UrlMap"
163669	//   },
163670	//   "scopes": [
163671	//     "https://www.googleapis.com/auth/cloud-platform",
163672	//     "https://www.googleapis.com/auth/compute",
163673	//     "https://www.googleapis.com/auth/compute.readonly"
163674	//   ]
163675	// }
163676
163677}
163678
163679// method id "compute.urlMaps.insert":
163680
163681type UrlMapsInsertCall struct {
163682	s          *Service
163683	project    string
163684	urlmap     *UrlMap
163685	urlParams_ gensupport.URLParams
163686	ctx_       context.Context
163687	header_    http.Header
163688}
163689
163690// Insert: Creates a UrlMap resource in the specified project using the
163691// data included in the request.
163692//
163693// - project: Project ID for this request.
163694func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
163695	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163696	c.project = project
163697	c.urlmap = urlmap
163698	return c
163699}
163700
163701// RequestId sets the optional parameter "requestId": An optional
163702// request ID to identify requests. Specify a unique request ID so that
163703// if you must retry your request, the server will know to ignore the
163704// request if it has already been completed. For example, consider a
163705// situation where you make an initial request and the request times
163706// out. If you make the request again with the same request ID, the
163707// server can check if original operation with the same request ID was
163708// received, and if so, will ignore the second request. This prevents
163709// clients from accidentally creating duplicate commitments. The request
163710// ID must be a valid UUID with the exception that zero UUID is not
163711// supported ( 00000000-0000-0000-0000-000000000000).
163712func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
163713	c.urlParams_.Set("requestId", requestId)
163714	return c
163715}
163716
163717// Fields allows partial responses to be retrieved. See
163718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163719// for more information.
163720func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
163721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163722	return c
163723}
163724
163725// Context sets the context to be used in this call's Do method. Any
163726// pending HTTP request will be aborted if the provided context is
163727// canceled.
163728func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
163729	c.ctx_ = ctx
163730	return c
163731}
163732
163733// Header returns an http.Header that can be modified by the caller to
163734// add HTTP headers to the request.
163735func (c *UrlMapsInsertCall) Header() http.Header {
163736	if c.header_ == nil {
163737		c.header_ = make(http.Header)
163738	}
163739	return c.header_
163740}
163741
163742func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
163743	reqHeaders := make(http.Header)
163744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
163745	for k, v := range c.header_ {
163746		reqHeaders[k] = v
163747	}
163748	reqHeaders.Set("User-Agent", c.s.userAgent())
163749	var body io.Reader = nil
163750	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
163751	if err != nil {
163752		return nil, err
163753	}
163754	reqHeaders.Set("Content-Type", "application/json")
163755	c.urlParams_.Set("alt", alt)
163756	c.urlParams_.Set("prettyPrint", "false")
163757	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
163758	urls += "?" + c.urlParams_.Encode()
163759	req, err := http.NewRequest("POST", urls, body)
163760	if err != nil {
163761		return nil, err
163762	}
163763	req.Header = reqHeaders
163764	googleapi.Expand(req.URL, map[string]string{
163765		"project": c.project,
163766	})
163767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163768}
163769
163770// Do executes the "compute.urlMaps.insert" call.
163771// Exactly one of *Operation or error will be non-nil. Any non-2xx
163772// status code is an error. Response headers are in either
163773// *Operation.ServerResponse.Header or (if a response was returned at
163774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163775// to check whether the returned error was because
163776// http.StatusNotModified was returned.
163777func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163778	gensupport.SetOptions(c.urlParams_, opts...)
163779	res, err := c.doRequest("json")
163780	if res != nil && res.StatusCode == http.StatusNotModified {
163781		if res.Body != nil {
163782			res.Body.Close()
163783		}
163784		return nil, &googleapi.Error{
163785			Code:   res.StatusCode,
163786			Header: res.Header,
163787		}
163788	}
163789	if err != nil {
163790		return nil, err
163791	}
163792	defer googleapi.CloseBody(res)
163793	if err := googleapi.CheckResponse(res); err != nil {
163794		return nil, err
163795	}
163796	ret := &Operation{
163797		ServerResponse: googleapi.ServerResponse{
163798			Header:         res.Header,
163799			HTTPStatusCode: res.StatusCode,
163800		},
163801	}
163802	target := &ret
163803	if err := gensupport.DecodeResponse(target, res); err != nil {
163804		return nil, err
163805	}
163806	return ret, nil
163807	// {
163808	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
163809	//   "flatPath": "projects/{project}/global/urlMaps",
163810	//   "httpMethod": "POST",
163811	//   "id": "compute.urlMaps.insert",
163812	//   "parameterOrder": [
163813	//     "project"
163814	//   ],
163815	//   "parameters": {
163816	//     "project": {
163817	//       "description": "Project ID for this request.",
163818	//       "location": "path",
163819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163820	//       "required": true,
163821	//       "type": "string"
163822	//     },
163823	//     "requestId": {
163824	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
163825	//       "location": "query",
163826	//       "type": "string"
163827	//     }
163828	//   },
163829	//   "path": "projects/{project}/global/urlMaps",
163830	//   "request": {
163831	//     "$ref": "UrlMap"
163832	//   },
163833	//   "response": {
163834	//     "$ref": "Operation"
163835	//   },
163836	//   "scopes": [
163837	//     "https://www.googleapis.com/auth/cloud-platform",
163838	//     "https://www.googleapis.com/auth/compute"
163839	//   ]
163840	// }
163841
163842}
163843
163844// method id "compute.urlMaps.invalidateCache":
163845
163846type UrlMapsInvalidateCacheCall struct {
163847	s                     *Service
163848	project               string
163849	urlMap                string
163850	cacheinvalidationrule *CacheInvalidationRule
163851	urlParams_            gensupport.URLParams
163852	ctx_                  context.Context
163853	header_               http.Header
163854}
163855
163856// InvalidateCache: Initiates a cache invalidation operation,
163857// invalidating the specified path, scoped to the specified UrlMap. For
163858// more information, see Invalidating cached content
163859// (/cdn/docs/invalidating-cached-content).
163860//
163861// - project: Project ID for this request.
163862// - urlMap: Name of the UrlMap scoping this request.
163863func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
163864	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163865	c.project = project
163866	c.urlMap = urlMap
163867	c.cacheinvalidationrule = cacheinvalidationrule
163868	return c
163869}
163870
163871// RequestId sets the optional parameter "requestId": An optional
163872// request ID to identify requests. Specify a unique request ID so that
163873// if you must retry your request, the server will know to ignore the
163874// request if it has already been completed. For example, consider a
163875// situation where you make an initial request and the request times
163876// out. If you make the request again with the same request ID, the
163877// server can check if original operation with the same request ID was
163878// received, and if so, will ignore the second request. This prevents
163879// clients from accidentally creating duplicate commitments. The request
163880// ID must be a valid UUID with the exception that zero UUID is not
163881// supported ( 00000000-0000-0000-0000-000000000000).
163882func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
163883	c.urlParams_.Set("requestId", requestId)
163884	return c
163885}
163886
163887// Fields allows partial responses to be retrieved. See
163888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163889// for more information.
163890func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
163891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163892	return c
163893}
163894
163895// Context sets the context to be used in this call's Do method. Any
163896// pending HTTP request will be aborted if the provided context is
163897// canceled.
163898func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
163899	c.ctx_ = ctx
163900	return c
163901}
163902
163903// Header returns an http.Header that can be modified by the caller to
163904// add HTTP headers to the request.
163905func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
163906	if c.header_ == nil {
163907		c.header_ = make(http.Header)
163908	}
163909	return c.header_
163910}
163911
163912func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
163913	reqHeaders := make(http.Header)
163914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
163915	for k, v := range c.header_ {
163916		reqHeaders[k] = v
163917	}
163918	reqHeaders.Set("User-Agent", c.s.userAgent())
163919	var body io.Reader = nil
163920	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
163921	if err != nil {
163922		return nil, err
163923	}
163924	reqHeaders.Set("Content-Type", "application/json")
163925	c.urlParams_.Set("alt", alt)
163926	c.urlParams_.Set("prettyPrint", "false")
163927	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache")
163928	urls += "?" + c.urlParams_.Encode()
163929	req, err := http.NewRequest("POST", urls, body)
163930	if err != nil {
163931		return nil, err
163932	}
163933	req.Header = reqHeaders
163934	googleapi.Expand(req.URL, map[string]string{
163935		"project": c.project,
163936		"urlMap":  c.urlMap,
163937	})
163938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163939}
163940
163941// Do executes the "compute.urlMaps.invalidateCache" call.
163942// Exactly one of *Operation or error will be non-nil. Any non-2xx
163943// status code is an error. Response headers are in either
163944// *Operation.ServerResponse.Header or (if a response was returned at
163945// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163946// to check whether the returned error was because
163947// http.StatusNotModified was returned.
163948func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163949	gensupport.SetOptions(c.urlParams_, opts...)
163950	res, err := c.doRequest("json")
163951	if res != nil && res.StatusCode == http.StatusNotModified {
163952		if res.Body != nil {
163953			res.Body.Close()
163954		}
163955		return nil, &googleapi.Error{
163956			Code:   res.StatusCode,
163957			Header: res.Header,
163958		}
163959	}
163960	if err != nil {
163961		return nil, err
163962	}
163963	defer googleapi.CloseBody(res)
163964	if err := googleapi.CheckResponse(res); err != nil {
163965		return nil, err
163966	}
163967	ret := &Operation{
163968		ServerResponse: googleapi.ServerResponse{
163969			Header:         res.Header,
163970			HTTPStatusCode: res.StatusCode,
163971		},
163972	}
163973	target := &ret
163974	if err := gensupport.DecodeResponse(target, res); err != nil {
163975		return nil, err
163976	}
163977	return ret, nil
163978	// {
163979	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content).",
163980	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
163981	//   "httpMethod": "POST",
163982	//   "id": "compute.urlMaps.invalidateCache",
163983	//   "parameterOrder": [
163984	//     "project",
163985	//     "urlMap"
163986	//   ],
163987	//   "parameters": {
163988	//     "project": {
163989	//       "description": "Project ID for this request.",
163990	//       "location": "path",
163991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163992	//       "required": true,
163993	//       "type": "string"
163994	//     },
163995	//     "requestId": {
163996	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
163997	//       "location": "query",
163998	//       "type": "string"
163999	//     },
164000	//     "urlMap": {
164001	//       "description": "Name of the UrlMap scoping this request.",
164002	//       "location": "path",
164003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164004	//       "required": true,
164005	//       "type": "string"
164006	//     }
164007	//   },
164008	//   "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
164009	//   "request": {
164010	//     "$ref": "CacheInvalidationRule"
164011	//   },
164012	//   "response": {
164013	//     "$ref": "Operation"
164014	//   },
164015	//   "scopes": [
164016	//     "https://www.googleapis.com/auth/cloud-platform",
164017	//     "https://www.googleapis.com/auth/compute"
164018	//   ]
164019	// }
164020
164021}
164022
164023// method id "compute.urlMaps.list":
164024
164025type UrlMapsListCall struct {
164026	s            *Service
164027	project      string
164028	urlParams_   gensupport.URLParams
164029	ifNoneMatch_ string
164030	ctx_         context.Context
164031	header_      http.Header
164032}
164033
164034// List: Retrieves the list of UrlMap resources available to the
164035// specified project.
164036//
164037// - project: Project ID for this request.
164038func (r *UrlMapsService) List(project string) *UrlMapsListCall {
164039	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164040	c.project = project
164041	return c
164042}
164043
164044// Filter sets the optional parameter "filter": A filter expression that
164045// filters resources listed in the response. The expression must specify
164046// the field name, a comparison operator, and the value that you want to
164047// use for filtering. The value must be a string, a number, or a
164048// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164049// `<`. For example, if you are filtering Compute Engine instances, you
164050// can exclude instances named `example-instance` by specifying `name !=
164051// example-instance`. You can also filter nested fields. For example,
164052// you could specify `scheduling.automaticRestart = false` to include
164053// instances only if they are not scheduled for automatic restarts. You
164054// can use filtering on nested fields to filter based on resource
164055// labels. To filter on multiple expressions, provide each separate
164056// expression within parentheses. For example: ```
164057// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
164058// ``` By default, each expression is an `AND` expression. However, you
164059// can include `AND` and `OR` expressions explicitly. For example: ```
164060// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
164061// AND (scheduling.automaticRestart = true) ```
164062func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
164063	c.urlParams_.Set("filter", filter)
164064	return c
164065}
164066
164067// MaxResults sets the optional parameter "maxResults": The maximum
164068// number of results per page that should be returned. If the number of
164069// available results is larger than `maxResults`, Compute Engine returns
164070// a `nextPageToken` that can be used to get the next page of results in
164071// subsequent list requests. Acceptable values are `0` to `500`,
164072// inclusive. (Default: `500`)
164073func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
164074	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164075	return c
164076}
164077
164078// OrderBy sets the optional parameter "orderBy": Sorts list results by
164079// a certain order. By default, results are returned in alphanumerical
164080// order based on the resource name. You can also sort results in
164081// descending order based on the creation timestamp using
164082// `orderBy="creationTimestamp desc". This sorts results based on the
164083// `creationTimestamp` field in reverse chronological order (newest
164084// result first). Use this to sort resources like operations so that the
164085// newest operation is returned first. Currently, only sorting by `name`
164086// or `creationTimestamp desc` is supported.
164087func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
164088	c.urlParams_.Set("orderBy", orderBy)
164089	return c
164090}
164091
164092// PageToken sets the optional parameter "pageToken": Specifies a page
164093// token to use. Set `pageToken` to the `nextPageToken` returned by a
164094// previous list request to get the next page of results.
164095func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
164096	c.urlParams_.Set("pageToken", pageToken)
164097	return c
164098}
164099
164100// ReturnPartialSuccess sets the optional parameter
164101// "returnPartialSuccess": Opt-in for partial success behavior which
164102// provides partial results in case of failure. The default value is
164103// false.
164104func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
164105	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164106	return c
164107}
164108
164109// Fields allows partial responses to be retrieved. See
164110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164111// for more information.
164112func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
164113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164114	return c
164115}
164116
164117// IfNoneMatch sets the optional parameter which makes the operation
164118// fail if the object's ETag matches the given value. This is useful for
164119// getting updates only after the object has changed since the last
164120// request. Use googleapi.IsNotModified to check whether the response
164121// error from Do is the result of In-None-Match.
164122func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
164123	c.ifNoneMatch_ = entityTag
164124	return c
164125}
164126
164127// Context sets the context to be used in this call's Do method. Any
164128// pending HTTP request will be aborted if the provided context is
164129// canceled.
164130func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
164131	c.ctx_ = ctx
164132	return c
164133}
164134
164135// Header returns an http.Header that can be modified by the caller to
164136// add HTTP headers to the request.
164137func (c *UrlMapsListCall) Header() http.Header {
164138	if c.header_ == nil {
164139		c.header_ = make(http.Header)
164140	}
164141	return c.header_
164142}
164143
164144func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
164145	reqHeaders := make(http.Header)
164146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
164147	for k, v := range c.header_ {
164148		reqHeaders[k] = v
164149	}
164150	reqHeaders.Set("User-Agent", c.s.userAgent())
164151	if c.ifNoneMatch_ != "" {
164152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164153	}
164154	var body io.Reader = nil
164155	c.urlParams_.Set("alt", alt)
164156	c.urlParams_.Set("prettyPrint", "false")
164157	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
164158	urls += "?" + c.urlParams_.Encode()
164159	req, err := http.NewRequest("GET", urls, body)
164160	if err != nil {
164161		return nil, err
164162	}
164163	req.Header = reqHeaders
164164	googleapi.Expand(req.URL, map[string]string{
164165		"project": c.project,
164166	})
164167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164168}
164169
164170// Do executes the "compute.urlMaps.list" call.
164171// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
164172// status code is an error. Response headers are in either
164173// *UrlMapList.ServerResponse.Header or (if a response was returned at
164174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164175// to check whether the returned error was because
164176// http.StatusNotModified was returned.
164177func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
164178	gensupport.SetOptions(c.urlParams_, opts...)
164179	res, err := c.doRequest("json")
164180	if res != nil && res.StatusCode == http.StatusNotModified {
164181		if res.Body != nil {
164182			res.Body.Close()
164183		}
164184		return nil, &googleapi.Error{
164185			Code:   res.StatusCode,
164186			Header: res.Header,
164187		}
164188	}
164189	if err != nil {
164190		return nil, err
164191	}
164192	defer googleapi.CloseBody(res)
164193	if err := googleapi.CheckResponse(res); err != nil {
164194		return nil, err
164195	}
164196	ret := &UrlMapList{
164197		ServerResponse: googleapi.ServerResponse{
164198			Header:         res.Header,
164199			HTTPStatusCode: res.StatusCode,
164200		},
164201	}
164202	target := &ret
164203	if err := gensupport.DecodeResponse(target, res); err != nil {
164204		return nil, err
164205	}
164206	return ret, nil
164207	// {
164208	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
164209	//   "flatPath": "projects/{project}/global/urlMaps",
164210	//   "httpMethod": "GET",
164211	//   "id": "compute.urlMaps.list",
164212	//   "parameterOrder": [
164213	//     "project"
164214	//   ],
164215	//   "parameters": {
164216	//     "filter": {
164217	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
164218	//       "location": "query",
164219	//       "type": "string"
164220	//     },
164221	//     "maxResults": {
164222	//       "default": "500",
164223	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
164224	//       "format": "uint32",
164225	//       "location": "query",
164226	//       "minimum": "0",
164227	//       "type": "integer"
164228	//     },
164229	//     "orderBy": {
164230	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
164231	//       "location": "query",
164232	//       "type": "string"
164233	//     },
164234	//     "pageToken": {
164235	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
164236	//       "location": "query",
164237	//       "type": "string"
164238	//     },
164239	//     "project": {
164240	//       "description": "Project ID for this request.",
164241	//       "location": "path",
164242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164243	//       "required": true,
164244	//       "type": "string"
164245	//     },
164246	//     "returnPartialSuccess": {
164247	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
164248	//       "location": "query",
164249	//       "type": "boolean"
164250	//     }
164251	//   },
164252	//   "path": "projects/{project}/global/urlMaps",
164253	//   "response": {
164254	//     "$ref": "UrlMapList"
164255	//   },
164256	//   "scopes": [
164257	//     "https://www.googleapis.com/auth/cloud-platform",
164258	//     "https://www.googleapis.com/auth/compute",
164259	//     "https://www.googleapis.com/auth/compute.readonly"
164260	//   ]
164261	// }
164262
164263}
164264
164265// Pages invokes f for each page of results.
164266// A non-nil error returned from f will halt the iteration.
164267// The provided context supersedes any context provided to the Context method.
164268func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
164269	c.ctx_ = ctx
164270	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164271	for {
164272		x, err := c.Do()
164273		if err != nil {
164274			return err
164275		}
164276		if err := f(x); err != nil {
164277			return err
164278		}
164279		if x.NextPageToken == "" {
164280			return nil
164281		}
164282		c.PageToken(x.NextPageToken)
164283	}
164284}
164285
164286// method id "compute.urlMaps.patch":
164287
164288type UrlMapsPatchCall struct {
164289	s          *Service
164290	project    string
164291	urlMap     string
164292	urlmap     *UrlMap
164293	urlParams_ gensupport.URLParams
164294	ctx_       context.Context
164295	header_    http.Header
164296}
164297
164298// Patch: Patches the specified UrlMap resource with the data included
164299// in the request. This method supports PATCH semantics and uses the
164300// JSON merge patch format and processing rules.
164301//
164302// - project: Project ID for this request.
164303// - urlMap: Name of the UrlMap resource to patch.
164304func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
164305	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164306	c.project = project
164307	c.urlMap = urlMap
164308	c.urlmap = urlmap
164309	return c
164310}
164311
164312// RequestId sets the optional parameter "requestId": An optional
164313// request ID to identify requests. Specify a unique request ID so that
164314// if you must retry your request, the server will know to ignore the
164315// request if it has already been completed. For example, consider a
164316// situation where you make an initial request and the request times
164317// out. If you make the request again with the same request ID, the
164318// server can check if original operation with the same request ID was
164319// received, and if so, will ignore the second request. This prevents
164320// clients from accidentally creating duplicate commitments. The request
164321// ID must be a valid UUID with the exception that zero UUID is not
164322// supported ( 00000000-0000-0000-0000-000000000000).
164323func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
164324	c.urlParams_.Set("requestId", requestId)
164325	return c
164326}
164327
164328// Fields allows partial responses to be retrieved. See
164329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164330// for more information.
164331func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
164332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164333	return c
164334}
164335
164336// Context sets the context to be used in this call's Do method. Any
164337// pending HTTP request will be aborted if the provided context is
164338// canceled.
164339func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
164340	c.ctx_ = ctx
164341	return c
164342}
164343
164344// Header returns an http.Header that can be modified by the caller to
164345// add HTTP headers to the request.
164346func (c *UrlMapsPatchCall) Header() http.Header {
164347	if c.header_ == nil {
164348		c.header_ = make(http.Header)
164349	}
164350	return c.header_
164351}
164352
164353func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
164354	reqHeaders := make(http.Header)
164355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
164356	for k, v := range c.header_ {
164357		reqHeaders[k] = v
164358	}
164359	reqHeaders.Set("User-Agent", c.s.userAgent())
164360	var body io.Reader = nil
164361	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
164362	if err != nil {
164363		return nil, err
164364	}
164365	reqHeaders.Set("Content-Type", "application/json")
164366	c.urlParams_.Set("alt", alt)
164367	c.urlParams_.Set("prettyPrint", "false")
164368	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
164369	urls += "?" + c.urlParams_.Encode()
164370	req, err := http.NewRequest("PATCH", urls, body)
164371	if err != nil {
164372		return nil, err
164373	}
164374	req.Header = reqHeaders
164375	googleapi.Expand(req.URL, map[string]string{
164376		"project": c.project,
164377		"urlMap":  c.urlMap,
164378	})
164379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164380}
164381
164382// Do executes the "compute.urlMaps.patch" call.
164383// Exactly one of *Operation or error will be non-nil. Any non-2xx
164384// status code is an error. Response headers are in either
164385// *Operation.ServerResponse.Header or (if a response was returned at
164386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164387// to check whether the returned error was because
164388// http.StatusNotModified was returned.
164389func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164390	gensupport.SetOptions(c.urlParams_, opts...)
164391	res, err := c.doRequest("json")
164392	if res != nil && res.StatusCode == http.StatusNotModified {
164393		if res.Body != nil {
164394			res.Body.Close()
164395		}
164396		return nil, &googleapi.Error{
164397			Code:   res.StatusCode,
164398			Header: res.Header,
164399		}
164400	}
164401	if err != nil {
164402		return nil, err
164403	}
164404	defer googleapi.CloseBody(res)
164405	if err := googleapi.CheckResponse(res); err != nil {
164406		return nil, err
164407	}
164408	ret := &Operation{
164409		ServerResponse: googleapi.ServerResponse{
164410			Header:         res.Header,
164411			HTTPStatusCode: res.StatusCode,
164412		},
164413	}
164414	target := &ret
164415	if err := gensupport.DecodeResponse(target, res); err != nil {
164416		return nil, err
164417	}
164418	return ret, nil
164419	// {
164420	//   "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.",
164421	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
164422	//   "httpMethod": "PATCH",
164423	//   "id": "compute.urlMaps.patch",
164424	//   "parameterOrder": [
164425	//     "project",
164426	//     "urlMap"
164427	//   ],
164428	//   "parameters": {
164429	//     "project": {
164430	//       "description": "Project ID for this request.",
164431	//       "location": "path",
164432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164433	//       "required": true,
164434	//       "type": "string"
164435	//     },
164436	//     "requestId": {
164437	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
164438	//       "location": "query",
164439	//       "type": "string"
164440	//     },
164441	//     "urlMap": {
164442	//       "description": "Name of the UrlMap resource to patch.",
164443	//       "location": "path",
164444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164445	//       "required": true,
164446	//       "type": "string"
164447	//     }
164448	//   },
164449	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
164450	//   "request": {
164451	//     "$ref": "UrlMap"
164452	//   },
164453	//   "response": {
164454	//     "$ref": "Operation"
164455	//   },
164456	//   "scopes": [
164457	//     "https://www.googleapis.com/auth/cloud-platform",
164458	//     "https://www.googleapis.com/auth/compute"
164459	//   ]
164460	// }
164461
164462}
164463
164464// method id "compute.urlMaps.update":
164465
164466type UrlMapsUpdateCall struct {
164467	s          *Service
164468	project    string
164469	urlMap     string
164470	urlmap     *UrlMap
164471	urlParams_ gensupport.URLParams
164472	ctx_       context.Context
164473	header_    http.Header
164474}
164475
164476// Update: Updates the specified UrlMap resource with the data included
164477// in the request.
164478//
164479// - project: Project ID for this request.
164480// - urlMap: Name of the UrlMap resource to update.
164481func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
164482	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164483	c.project = project
164484	c.urlMap = urlMap
164485	c.urlmap = urlmap
164486	return c
164487}
164488
164489// RequestId sets the optional parameter "requestId": An optional
164490// request ID to identify requests. Specify a unique request ID so that
164491// if you must retry your request, the server will know to ignore the
164492// request if it has already been completed. For example, consider a
164493// situation where you make an initial request and the request times
164494// out. If you make the request again with the same request ID, the
164495// server can check if original operation with the same request ID was
164496// received, and if so, will ignore the second request. This prevents
164497// clients from accidentally creating duplicate commitments. The request
164498// ID must be a valid UUID with the exception that zero UUID is not
164499// supported ( 00000000-0000-0000-0000-000000000000).
164500func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
164501	c.urlParams_.Set("requestId", requestId)
164502	return c
164503}
164504
164505// Fields allows partial responses to be retrieved. See
164506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164507// for more information.
164508func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
164509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164510	return c
164511}
164512
164513// Context sets the context to be used in this call's Do method. Any
164514// pending HTTP request will be aborted if the provided context is
164515// canceled.
164516func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
164517	c.ctx_ = ctx
164518	return c
164519}
164520
164521// Header returns an http.Header that can be modified by the caller to
164522// add HTTP headers to the request.
164523func (c *UrlMapsUpdateCall) Header() http.Header {
164524	if c.header_ == nil {
164525		c.header_ = make(http.Header)
164526	}
164527	return c.header_
164528}
164529
164530func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
164531	reqHeaders := make(http.Header)
164532	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
164533	for k, v := range c.header_ {
164534		reqHeaders[k] = v
164535	}
164536	reqHeaders.Set("User-Agent", c.s.userAgent())
164537	var body io.Reader = nil
164538	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
164539	if err != nil {
164540		return nil, err
164541	}
164542	reqHeaders.Set("Content-Type", "application/json")
164543	c.urlParams_.Set("alt", alt)
164544	c.urlParams_.Set("prettyPrint", "false")
164545	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
164546	urls += "?" + c.urlParams_.Encode()
164547	req, err := http.NewRequest("PUT", urls, body)
164548	if err != nil {
164549		return nil, err
164550	}
164551	req.Header = reqHeaders
164552	googleapi.Expand(req.URL, map[string]string{
164553		"project": c.project,
164554		"urlMap":  c.urlMap,
164555	})
164556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164557}
164558
164559// Do executes the "compute.urlMaps.update" call.
164560// Exactly one of *Operation or error will be non-nil. Any non-2xx
164561// status code is an error. Response headers are in either
164562// *Operation.ServerResponse.Header or (if a response was returned at
164563// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164564// to check whether the returned error was because
164565// http.StatusNotModified was returned.
164566func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164567	gensupport.SetOptions(c.urlParams_, opts...)
164568	res, err := c.doRequest("json")
164569	if res != nil && res.StatusCode == http.StatusNotModified {
164570		if res.Body != nil {
164571			res.Body.Close()
164572		}
164573		return nil, &googleapi.Error{
164574			Code:   res.StatusCode,
164575			Header: res.Header,
164576		}
164577	}
164578	if err != nil {
164579		return nil, err
164580	}
164581	defer googleapi.CloseBody(res)
164582	if err := googleapi.CheckResponse(res); err != nil {
164583		return nil, err
164584	}
164585	ret := &Operation{
164586		ServerResponse: googleapi.ServerResponse{
164587			Header:         res.Header,
164588			HTTPStatusCode: res.StatusCode,
164589		},
164590	}
164591	target := &ret
164592	if err := gensupport.DecodeResponse(target, res); err != nil {
164593		return nil, err
164594	}
164595	return ret, nil
164596	// {
164597	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
164598	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
164599	//   "httpMethod": "PUT",
164600	//   "id": "compute.urlMaps.update",
164601	//   "parameterOrder": [
164602	//     "project",
164603	//     "urlMap"
164604	//   ],
164605	//   "parameters": {
164606	//     "project": {
164607	//       "description": "Project ID for this request.",
164608	//       "location": "path",
164609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164610	//       "required": true,
164611	//       "type": "string"
164612	//     },
164613	//     "requestId": {
164614	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
164615	//       "location": "query",
164616	//       "type": "string"
164617	//     },
164618	//     "urlMap": {
164619	//       "description": "Name of the UrlMap resource to update.",
164620	//       "location": "path",
164621	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164622	//       "required": true,
164623	//       "type": "string"
164624	//     }
164625	//   },
164626	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
164627	//   "request": {
164628	//     "$ref": "UrlMap"
164629	//   },
164630	//   "response": {
164631	//     "$ref": "Operation"
164632	//   },
164633	//   "scopes": [
164634	//     "https://www.googleapis.com/auth/cloud-platform",
164635	//     "https://www.googleapis.com/auth/compute"
164636	//   ]
164637	// }
164638
164639}
164640
164641// method id "compute.urlMaps.validate":
164642
164643type UrlMapsValidateCall struct {
164644	s                      *Service
164645	project                string
164646	urlMap                 string
164647	urlmapsvalidaterequest *UrlMapsValidateRequest
164648	urlParams_             gensupport.URLParams
164649	ctx_                   context.Context
164650	header_                http.Header
164651}
164652
164653// Validate: Runs static validation for the UrlMap. In particular, the
164654// tests of the provided UrlMap will be run. Calling this method does
164655// NOT create the UrlMap.
164656//
164657// - project: Project ID for this request.
164658// - urlMap: Name of the UrlMap resource to be validated as.
164659func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
164660	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164661	c.project = project
164662	c.urlMap = urlMap
164663	c.urlmapsvalidaterequest = urlmapsvalidaterequest
164664	return c
164665}
164666
164667// Fields allows partial responses to be retrieved. See
164668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164669// for more information.
164670func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
164671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164672	return c
164673}
164674
164675// Context sets the context to be used in this call's Do method. Any
164676// pending HTTP request will be aborted if the provided context is
164677// canceled.
164678func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
164679	c.ctx_ = ctx
164680	return c
164681}
164682
164683// Header returns an http.Header that can be modified by the caller to
164684// add HTTP headers to the request.
164685func (c *UrlMapsValidateCall) Header() http.Header {
164686	if c.header_ == nil {
164687		c.header_ = make(http.Header)
164688	}
164689	return c.header_
164690}
164691
164692func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
164693	reqHeaders := make(http.Header)
164694	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
164695	for k, v := range c.header_ {
164696		reqHeaders[k] = v
164697	}
164698	reqHeaders.Set("User-Agent", c.s.userAgent())
164699	var body io.Reader = nil
164700	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
164701	if err != nil {
164702		return nil, err
164703	}
164704	reqHeaders.Set("Content-Type", "application/json")
164705	c.urlParams_.Set("alt", alt)
164706	c.urlParams_.Set("prettyPrint", "false")
164707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate")
164708	urls += "?" + c.urlParams_.Encode()
164709	req, err := http.NewRequest("POST", urls, body)
164710	if err != nil {
164711		return nil, err
164712	}
164713	req.Header = reqHeaders
164714	googleapi.Expand(req.URL, map[string]string{
164715		"project": c.project,
164716		"urlMap":  c.urlMap,
164717	})
164718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164719}
164720
164721// Do executes the "compute.urlMaps.validate" call.
164722// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
164723// non-2xx status code is an error. Response headers are in either
164724// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
164725// returned at all) in error.(*googleapi.Error).Header. Use
164726// googleapi.IsNotModified to check whether the returned error was
164727// because http.StatusNotModified was returned.
164728func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
164729	gensupport.SetOptions(c.urlParams_, opts...)
164730	res, err := c.doRequest("json")
164731	if res != nil && res.StatusCode == http.StatusNotModified {
164732		if res.Body != nil {
164733			res.Body.Close()
164734		}
164735		return nil, &googleapi.Error{
164736			Code:   res.StatusCode,
164737			Header: res.Header,
164738		}
164739	}
164740	if err != nil {
164741		return nil, err
164742	}
164743	defer googleapi.CloseBody(res)
164744	if err := googleapi.CheckResponse(res); err != nil {
164745		return nil, err
164746	}
164747	ret := &UrlMapsValidateResponse{
164748		ServerResponse: googleapi.ServerResponse{
164749			Header:         res.Header,
164750			HTTPStatusCode: res.StatusCode,
164751		},
164752	}
164753	target := &ret
164754	if err := gensupport.DecodeResponse(target, res); err != nil {
164755		return nil, err
164756	}
164757	return ret, nil
164758	// {
164759	//   "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.",
164760	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate",
164761	//   "httpMethod": "POST",
164762	//   "id": "compute.urlMaps.validate",
164763	//   "parameterOrder": [
164764	//     "project",
164765	//     "urlMap"
164766	//   ],
164767	//   "parameters": {
164768	//     "project": {
164769	//       "description": "Project ID for this request.",
164770	//       "location": "path",
164771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164772	//       "required": true,
164773	//       "type": "string"
164774	//     },
164775	//     "urlMap": {
164776	//       "description": "Name of the UrlMap resource to be validated as.",
164777	//       "location": "path",
164778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164779	//       "required": true,
164780	//       "type": "string"
164781	//     }
164782	//   },
164783	//   "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
164784	//   "request": {
164785	//     "$ref": "UrlMapsValidateRequest"
164786	//   },
164787	//   "response": {
164788	//     "$ref": "UrlMapsValidateResponse"
164789	//   },
164790	//   "scopes": [
164791	//     "https://www.googleapis.com/auth/cloud-platform",
164792	//     "https://www.googleapis.com/auth/compute"
164793	//   ]
164794	// }
164795
164796}
164797
164798// method id "compute.vpnGateways.aggregatedList":
164799
164800type VpnGatewaysAggregatedListCall struct {
164801	s            *Service
164802	project      string
164803	urlParams_   gensupport.URLParams
164804	ifNoneMatch_ string
164805	ctx_         context.Context
164806	header_      http.Header
164807}
164808
164809// AggregatedList: Retrieves an aggregated list of VPN gateways.
164810//
164811// - project: Project ID for this request.
164812func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
164813	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164814	c.project = project
164815	return c
164816}
164817
164818// Filter sets the optional parameter "filter": A filter expression that
164819// filters resources listed in the response. The expression must specify
164820// the field name, a comparison operator, and the value that you want to
164821// use for filtering. The value must be a string, a number, or a
164822// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164823// `<`. For example, if you are filtering Compute Engine instances, you
164824// can exclude instances named `example-instance` by specifying `name !=
164825// example-instance`. You can also filter nested fields. For example,
164826// you could specify `scheduling.automaticRestart = false` to include
164827// instances only if they are not scheduled for automatic restarts. You
164828// can use filtering on nested fields to filter based on resource
164829// labels. To filter on multiple expressions, provide each separate
164830// expression within parentheses. For example: ```
164831// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
164832// ``` By default, each expression is an `AND` expression. However, you
164833// can include `AND` and `OR` expressions explicitly. For example: ```
164834// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
164835// AND (scheduling.automaticRestart = true) ```
164836func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
164837	c.urlParams_.Set("filter", filter)
164838	return c
164839}
164840
164841// IncludeAllScopes sets the optional parameter "includeAllScopes":
164842// Indicates whether every visible scope for each scope type (zone,
164843// region, global) should be included in the response. For new resource
164844// types added after this field, the flag has no effect as new resource
164845// types will always include every visible scope for each scope type in
164846// response. For resource types which predate this field, if this flag
164847// is omitted or false, only scopes of the scope types where the
164848// resource type is expected to be found will be included.
164849func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
164850	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
164851	return c
164852}
164853
164854// MaxResults sets the optional parameter "maxResults": The maximum
164855// number of results per page that should be returned. If the number of
164856// available results is larger than `maxResults`, Compute Engine returns
164857// a `nextPageToken` that can be used to get the next page of results in
164858// subsequent list requests. Acceptable values are `0` to `500`,
164859// inclusive. (Default: `500`)
164860func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
164861	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164862	return c
164863}
164864
164865// OrderBy sets the optional parameter "orderBy": Sorts list results by
164866// a certain order. By default, results are returned in alphanumerical
164867// order based on the resource name. You can also sort results in
164868// descending order based on the creation timestamp using
164869// `orderBy="creationTimestamp desc". This sorts results based on the
164870// `creationTimestamp` field in reverse chronological order (newest
164871// result first). Use this to sort resources like operations so that the
164872// newest operation is returned first. Currently, only sorting by `name`
164873// or `creationTimestamp desc` is supported.
164874func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
164875	c.urlParams_.Set("orderBy", orderBy)
164876	return c
164877}
164878
164879// PageToken sets the optional parameter "pageToken": Specifies a page
164880// token to use. Set `pageToken` to the `nextPageToken` returned by a
164881// previous list request to get the next page of results.
164882func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
164883	c.urlParams_.Set("pageToken", pageToken)
164884	return c
164885}
164886
164887// ReturnPartialSuccess sets the optional parameter
164888// "returnPartialSuccess": Opt-in for partial success behavior which
164889// provides partial results in case of failure. The default value is
164890// false.
164891func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
164892	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164893	return c
164894}
164895
164896// Fields allows partial responses to be retrieved. See
164897// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164898// for more information.
164899func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
164900	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164901	return c
164902}
164903
164904// IfNoneMatch sets the optional parameter which makes the operation
164905// fail if the object's ETag matches the given value. This is useful for
164906// getting updates only after the object has changed since the last
164907// request. Use googleapi.IsNotModified to check whether the response
164908// error from Do is the result of In-None-Match.
164909func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
164910	c.ifNoneMatch_ = entityTag
164911	return c
164912}
164913
164914// Context sets the context to be used in this call's Do method. Any
164915// pending HTTP request will be aborted if the provided context is
164916// canceled.
164917func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
164918	c.ctx_ = ctx
164919	return c
164920}
164921
164922// Header returns an http.Header that can be modified by the caller to
164923// add HTTP headers to the request.
164924func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
164925	if c.header_ == nil {
164926		c.header_ = make(http.Header)
164927	}
164928	return c.header_
164929}
164930
164931func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
164932	reqHeaders := make(http.Header)
164933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
164934	for k, v := range c.header_ {
164935		reqHeaders[k] = v
164936	}
164937	reqHeaders.Set("User-Agent", c.s.userAgent())
164938	if c.ifNoneMatch_ != "" {
164939		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164940	}
164941	var body io.Reader = nil
164942	c.urlParams_.Set("alt", alt)
164943	c.urlParams_.Set("prettyPrint", "false")
164944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways")
164945	urls += "?" + c.urlParams_.Encode()
164946	req, err := http.NewRequest("GET", urls, body)
164947	if err != nil {
164948		return nil, err
164949	}
164950	req.Header = reqHeaders
164951	googleapi.Expand(req.URL, map[string]string{
164952		"project": c.project,
164953	})
164954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164955}
164956
164957// Do executes the "compute.vpnGateways.aggregatedList" call.
164958// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
164959// Any non-2xx status code is an error. Response headers are in either
164960// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
164961// returned at all) in error.(*googleapi.Error).Header. Use
164962// googleapi.IsNotModified to check whether the returned error was
164963// because http.StatusNotModified was returned.
164964func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
164965	gensupport.SetOptions(c.urlParams_, opts...)
164966	res, err := c.doRequest("json")
164967	if res != nil && res.StatusCode == http.StatusNotModified {
164968		if res.Body != nil {
164969			res.Body.Close()
164970		}
164971		return nil, &googleapi.Error{
164972			Code:   res.StatusCode,
164973			Header: res.Header,
164974		}
164975	}
164976	if err != nil {
164977		return nil, err
164978	}
164979	defer googleapi.CloseBody(res)
164980	if err := googleapi.CheckResponse(res); err != nil {
164981		return nil, err
164982	}
164983	ret := &VpnGatewayAggregatedList{
164984		ServerResponse: googleapi.ServerResponse{
164985			Header:         res.Header,
164986			HTTPStatusCode: res.StatusCode,
164987		},
164988	}
164989	target := &ret
164990	if err := gensupport.DecodeResponse(target, res); err != nil {
164991		return nil, err
164992	}
164993	return ret, nil
164994	// {
164995	//   "description": "Retrieves an aggregated list of VPN gateways.",
164996	//   "flatPath": "projects/{project}/aggregated/vpnGateways",
164997	//   "httpMethod": "GET",
164998	//   "id": "compute.vpnGateways.aggregatedList",
164999	//   "parameterOrder": [
165000	//     "project"
165001	//   ],
165002	//   "parameters": {
165003	//     "filter": {
165004	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
165005	//       "location": "query",
165006	//       "type": "string"
165007	//     },
165008	//     "includeAllScopes": {
165009	//       "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.",
165010	//       "location": "query",
165011	//       "type": "boolean"
165012	//     },
165013	//     "maxResults": {
165014	//       "default": "500",
165015	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
165016	//       "format": "uint32",
165017	//       "location": "query",
165018	//       "minimum": "0",
165019	//       "type": "integer"
165020	//     },
165021	//     "orderBy": {
165022	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
165023	//       "location": "query",
165024	//       "type": "string"
165025	//     },
165026	//     "pageToken": {
165027	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
165028	//       "location": "query",
165029	//       "type": "string"
165030	//     },
165031	//     "project": {
165032	//       "description": "Project ID for this request.",
165033	//       "location": "path",
165034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165035	//       "required": true,
165036	//       "type": "string"
165037	//     },
165038	//     "returnPartialSuccess": {
165039	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
165040	//       "location": "query",
165041	//       "type": "boolean"
165042	//     }
165043	//   },
165044	//   "path": "projects/{project}/aggregated/vpnGateways",
165045	//   "response": {
165046	//     "$ref": "VpnGatewayAggregatedList"
165047	//   },
165048	//   "scopes": [
165049	//     "https://www.googleapis.com/auth/cloud-platform",
165050	//     "https://www.googleapis.com/auth/compute",
165051	//     "https://www.googleapis.com/auth/compute.readonly"
165052	//   ]
165053	// }
165054
165055}
165056
165057// Pages invokes f for each page of results.
165058// A non-nil error returned from f will halt the iteration.
165059// The provided context supersedes any context provided to the Context method.
165060func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
165061	c.ctx_ = ctx
165062	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165063	for {
165064		x, err := c.Do()
165065		if err != nil {
165066			return err
165067		}
165068		if err := f(x); err != nil {
165069			return err
165070		}
165071		if x.NextPageToken == "" {
165072			return nil
165073		}
165074		c.PageToken(x.NextPageToken)
165075	}
165076}
165077
165078// method id "compute.vpnGateways.delete":
165079
165080type VpnGatewaysDeleteCall struct {
165081	s          *Service
165082	project    string
165083	region     string
165084	vpnGateway string
165085	urlParams_ gensupport.URLParams
165086	ctx_       context.Context
165087	header_    http.Header
165088}
165089
165090// Delete: Deletes the specified VPN gateway.
165091//
165092// - project: Project ID for this request.
165093// - region: Name of the region for this request.
165094// - vpnGateway: Name of the VPN gateway to delete.
165095func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
165096	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165097	c.project = project
165098	c.region = region
165099	c.vpnGateway = vpnGateway
165100	return c
165101}
165102
165103// RequestId sets the optional parameter "requestId": An optional
165104// request ID to identify requests. Specify a unique request ID so that
165105// if you must retry your request, the server will know to ignore the
165106// request if it has already been completed. For example, consider a
165107// situation where you make an initial request and the request times
165108// out. If you make the request again with the same request ID, the
165109// server can check if original operation with the same request ID was
165110// received, and if so, will ignore the second request. This prevents
165111// clients from accidentally creating duplicate commitments. The request
165112// ID must be a valid UUID with the exception that zero UUID is not
165113// supported ( 00000000-0000-0000-0000-000000000000).
165114func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
165115	c.urlParams_.Set("requestId", requestId)
165116	return c
165117}
165118
165119// Fields allows partial responses to be retrieved. See
165120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165121// for more information.
165122func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
165123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165124	return c
165125}
165126
165127// Context sets the context to be used in this call's Do method. Any
165128// pending HTTP request will be aborted if the provided context is
165129// canceled.
165130func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
165131	c.ctx_ = ctx
165132	return c
165133}
165134
165135// Header returns an http.Header that can be modified by the caller to
165136// add HTTP headers to the request.
165137func (c *VpnGatewaysDeleteCall) Header() http.Header {
165138	if c.header_ == nil {
165139		c.header_ = make(http.Header)
165140	}
165141	return c.header_
165142}
165143
165144func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
165145	reqHeaders := make(http.Header)
165146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
165147	for k, v := range c.header_ {
165148		reqHeaders[k] = v
165149	}
165150	reqHeaders.Set("User-Agent", c.s.userAgent())
165151	var body io.Reader = nil
165152	c.urlParams_.Set("alt", alt)
165153	c.urlParams_.Set("prettyPrint", "false")
165154	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
165155	urls += "?" + c.urlParams_.Encode()
165156	req, err := http.NewRequest("DELETE", urls, body)
165157	if err != nil {
165158		return nil, err
165159	}
165160	req.Header = reqHeaders
165161	googleapi.Expand(req.URL, map[string]string{
165162		"project":    c.project,
165163		"region":     c.region,
165164		"vpnGateway": c.vpnGateway,
165165	})
165166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165167}
165168
165169// Do executes the "compute.vpnGateways.delete" call.
165170// Exactly one of *Operation or error will be non-nil. Any non-2xx
165171// status code is an error. Response headers are in either
165172// *Operation.ServerResponse.Header or (if a response was returned at
165173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165174// to check whether the returned error was because
165175// http.StatusNotModified was returned.
165176func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165177	gensupport.SetOptions(c.urlParams_, opts...)
165178	res, err := c.doRequest("json")
165179	if res != nil && res.StatusCode == http.StatusNotModified {
165180		if res.Body != nil {
165181			res.Body.Close()
165182		}
165183		return nil, &googleapi.Error{
165184			Code:   res.StatusCode,
165185			Header: res.Header,
165186		}
165187	}
165188	if err != nil {
165189		return nil, err
165190	}
165191	defer googleapi.CloseBody(res)
165192	if err := googleapi.CheckResponse(res); err != nil {
165193		return nil, err
165194	}
165195	ret := &Operation{
165196		ServerResponse: googleapi.ServerResponse{
165197			Header:         res.Header,
165198			HTTPStatusCode: res.StatusCode,
165199		},
165200	}
165201	target := &ret
165202	if err := gensupport.DecodeResponse(target, res); err != nil {
165203		return nil, err
165204	}
165205	return ret, nil
165206	// {
165207	//   "description": "Deletes the specified VPN gateway.",
165208	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165209	//   "httpMethod": "DELETE",
165210	//   "id": "compute.vpnGateways.delete",
165211	//   "parameterOrder": [
165212	//     "project",
165213	//     "region",
165214	//     "vpnGateway"
165215	//   ],
165216	//   "parameters": {
165217	//     "project": {
165218	//       "description": "Project ID for this request.",
165219	//       "location": "path",
165220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165221	//       "required": true,
165222	//       "type": "string"
165223	//     },
165224	//     "region": {
165225	//       "description": "Name of the region for this request.",
165226	//       "location": "path",
165227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165228	//       "required": true,
165229	//       "type": "string"
165230	//     },
165231	//     "requestId": {
165232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
165233	//       "location": "query",
165234	//       "type": "string"
165235	//     },
165236	//     "vpnGateway": {
165237	//       "description": "Name of the VPN gateway to delete.",
165238	//       "location": "path",
165239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165240	//       "required": true,
165241	//       "type": "string"
165242	//     }
165243	//   },
165244	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165245	//   "response": {
165246	//     "$ref": "Operation"
165247	//   },
165248	//   "scopes": [
165249	//     "https://www.googleapis.com/auth/cloud-platform",
165250	//     "https://www.googleapis.com/auth/compute"
165251	//   ]
165252	// }
165253
165254}
165255
165256// method id "compute.vpnGateways.get":
165257
165258type VpnGatewaysGetCall struct {
165259	s            *Service
165260	project      string
165261	region       string
165262	vpnGateway   string
165263	urlParams_   gensupport.URLParams
165264	ifNoneMatch_ string
165265	ctx_         context.Context
165266	header_      http.Header
165267}
165268
165269// Get: Returns the specified VPN gateway. Gets a list of available VPN
165270// gateways by making a list() request.
165271//
165272// - project: Project ID for this request.
165273// - region: Name of the region for this request.
165274// - vpnGateway: Name of the VPN gateway to return.
165275func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
165276	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165277	c.project = project
165278	c.region = region
165279	c.vpnGateway = vpnGateway
165280	return c
165281}
165282
165283// Fields allows partial responses to be retrieved. See
165284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165285// for more information.
165286func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
165287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165288	return c
165289}
165290
165291// IfNoneMatch sets the optional parameter which makes the operation
165292// fail if the object's ETag matches the given value. This is useful for
165293// getting updates only after the object has changed since the last
165294// request. Use googleapi.IsNotModified to check whether the response
165295// error from Do is the result of In-None-Match.
165296func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
165297	c.ifNoneMatch_ = entityTag
165298	return c
165299}
165300
165301// Context sets the context to be used in this call's Do method. Any
165302// pending HTTP request will be aborted if the provided context is
165303// canceled.
165304func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
165305	c.ctx_ = ctx
165306	return c
165307}
165308
165309// Header returns an http.Header that can be modified by the caller to
165310// add HTTP headers to the request.
165311func (c *VpnGatewaysGetCall) Header() http.Header {
165312	if c.header_ == nil {
165313		c.header_ = make(http.Header)
165314	}
165315	return c.header_
165316}
165317
165318func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
165319	reqHeaders := make(http.Header)
165320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
165321	for k, v := range c.header_ {
165322		reqHeaders[k] = v
165323	}
165324	reqHeaders.Set("User-Agent", c.s.userAgent())
165325	if c.ifNoneMatch_ != "" {
165326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165327	}
165328	var body io.Reader = nil
165329	c.urlParams_.Set("alt", alt)
165330	c.urlParams_.Set("prettyPrint", "false")
165331	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
165332	urls += "?" + c.urlParams_.Encode()
165333	req, err := http.NewRequest("GET", urls, body)
165334	if err != nil {
165335		return nil, err
165336	}
165337	req.Header = reqHeaders
165338	googleapi.Expand(req.URL, map[string]string{
165339		"project":    c.project,
165340		"region":     c.region,
165341		"vpnGateway": c.vpnGateway,
165342	})
165343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165344}
165345
165346// Do executes the "compute.vpnGateways.get" call.
165347// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
165348// status code is an error. Response headers are in either
165349// *VpnGateway.ServerResponse.Header or (if a response was returned at
165350// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165351// to check whether the returned error was because
165352// http.StatusNotModified was returned.
165353func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
165354	gensupport.SetOptions(c.urlParams_, opts...)
165355	res, err := c.doRequest("json")
165356	if res != nil && res.StatusCode == http.StatusNotModified {
165357		if res.Body != nil {
165358			res.Body.Close()
165359		}
165360		return nil, &googleapi.Error{
165361			Code:   res.StatusCode,
165362			Header: res.Header,
165363		}
165364	}
165365	if err != nil {
165366		return nil, err
165367	}
165368	defer googleapi.CloseBody(res)
165369	if err := googleapi.CheckResponse(res); err != nil {
165370		return nil, err
165371	}
165372	ret := &VpnGateway{
165373		ServerResponse: googleapi.ServerResponse{
165374			Header:         res.Header,
165375			HTTPStatusCode: res.StatusCode,
165376		},
165377	}
165378	target := &ret
165379	if err := gensupport.DecodeResponse(target, res); err != nil {
165380		return nil, err
165381	}
165382	return ret, nil
165383	// {
165384	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
165385	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165386	//   "httpMethod": "GET",
165387	//   "id": "compute.vpnGateways.get",
165388	//   "parameterOrder": [
165389	//     "project",
165390	//     "region",
165391	//     "vpnGateway"
165392	//   ],
165393	//   "parameters": {
165394	//     "project": {
165395	//       "description": "Project ID for this request.",
165396	//       "location": "path",
165397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165398	//       "required": true,
165399	//       "type": "string"
165400	//     },
165401	//     "region": {
165402	//       "description": "Name of the region for this request.",
165403	//       "location": "path",
165404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165405	//       "required": true,
165406	//       "type": "string"
165407	//     },
165408	//     "vpnGateway": {
165409	//       "description": "Name of the VPN gateway to return.",
165410	//       "location": "path",
165411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165412	//       "required": true,
165413	//       "type": "string"
165414	//     }
165415	//   },
165416	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165417	//   "response": {
165418	//     "$ref": "VpnGateway"
165419	//   },
165420	//   "scopes": [
165421	//     "https://www.googleapis.com/auth/cloud-platform",
165422	//     "https://www.googleapis.com/auth/compute",
165423	//     "https://www.googleapis.com/auth/compute.readonly"
165424	//   ]
165425	// }
165426
165427}
165428
165429// method id "compute.vpnGateways.getStatus":
165430
165431type VpnGatewaysGetStatusCall struct {
165432	s            *Service
165433	project      string
165434	region       string
165435	vpnGateway   string
165436	urlParams_   gensupport.URLParams
165437	ifNoneMatch_ string
165438	ctx_         context.Context
165439	header_      http.Header
165440}
165441
165442// GetStatus: Returns the status for the specified VPN gateway.
165443//
165444// - project: Project ID for this request.
165445// - region: Name of the region for this request.
165446// - vpnGateway: Name of the VPN gateway to return.
165447func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
165448	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165449	c.project = project
165450	c.region = region
165451	c.vpnGateway = vpnGateway
165452	return c
165453}
165454
165455// Fields allows partial responses to be retrieved. See
165456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165457// for more information.
165458func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
165459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165460	return c
165461}
165462
165463// IfNoneMatch sets the optional parameter which makes the operation
165464// fail if the object's ETag matches the given value. This is useful for
165465// getting updates only after the object has changed since the last
165466// request. Use googleapi.IsNotModified to check whether the response
165467// error from Do is the result of In-None-Match.
165468func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
165469	c.ifNoneMatch_ = entityTag
165470	return c
165471}
165472
165473// Context sets the context to be used in this call's Do method. Any
165474// pending HTTP request will be aborted if the provided context is
165475// canceled.
165476func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
165477	c.ctx_ = ctx
165478	return c
165479}
165480
165481// Header returns an http.Header that can be modified by the caller to
165482// add HTTP headers to the request.
165483func (c *VpnGatewaysGetStatusCall) Header() http.Header {
165484	if c.header_ == nil {
165485		c.header_ = make(http.Header)
165486	}
165487	return c.header_
165488}
165489
165490func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
165491	reqHeaders := make(http.Header)
165492	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
165493	for k, v := range c.header_ {
165494		reqHeaders[k] = v
165495	}
165496	reqHeaders.Set("User-Agent", c.s.userAgent())
165497	if c.ifNoneMatch_ != "" {
165498		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165499	}
165500	var body io.Reader = nil
165501	c.urlParams_.Set("alt", alt)
165502	c.urlParams_.Set("prettyPrint", "false")
165503	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
165504	urls += "?" + c.urlParams_.Encode()
165505	req, err := http.NewRequest("GET", urls, body)
165506	if err != nil {
165507		return nil, err
165508	}
165509	req.Header = reqHeaders
165510	googleapi.Expand(req.URL, map[string]string{
165511		"project":    c.project,
165512		"region":     c.region,
165513		"vpnGateway": c.vpnGateway,
165514	})
165515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165516}
165517
165518// Do executes the "compute.vpnGateways.getStatus" call.
165519// Exactly one of *VpnGatewaysGetStatusResponse or error will be
165520// non-nil. Any non-2xx status code is an error. Response headers are in
165521// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
165522// response was returned at all) in error.(*googleapi.Error).Header. Use
165523// googleapi.IsNotModified to check whether the returned error was
165524// because http.StatusNotModified was returned.
165525func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
165526	gensupport.SetOptions(c.urlParams_, opts...)
165527	res, err := c.doRequest("json")
165528	if res != nil && res.StatusCode == http.StatusNotModified {
165529		if res.Body != nil {
165530			res.Body.Close()
165531		}
165532		return nil, &googleapi.Error{
165533			Code:   res.StatusCode,
165534			Header: res.Header,
165535		}
165536	}
165537	if err != nil {
165538		return nil, err
165539	}
165540	defer googleapi.CloseBody(res)
165541	if err := googleapi.CheckResponse(res); err != nil {
165542		return nil, err
165543	}
165544	ret := &VpnGatewaysGetStatusResponse{
165545		ServerResponse: googleapi.ServerResponse{
165546			Header:         res.Header,
165547			HTTPStatusCode: res.StatusCode,
165548		},
165549	}
165550	target := &ret
165551	if err := gensupport.DecodeResponse(target, res); err != nil {
165552		return nil, err
165553	}
165554	return ret, nil
165555	// {
165556	//   "description": "Returns the status for the specified VPN gateway.",
165557	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
165558	//   "httpMethod": "GET",
165559	//   "id": "compute.vpnGateways.getStatus",
165560	//   "parameterOrder": [
165561	//     "project",
165562	//     "region",
165563	//     "vpnGateway"
165564	//   ],
165565	//   "parameters": {
165566	//     "project": {
165567	//       "description": "Project ID for this request.",
165568	//       "location": "path",
165569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165570	//       "required": true,
165571	//       "type": "string"
165572	//     },
165573	//     "region": {
165574	//       "description": "Name of the region for this request.",
165575	//       "location": "path",
165576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165577	//       "required": true,
165578	//       "type": "string"
165579	//     },
165580	//     "vpnGateway": {
165581	//       "description": "Name of the VPN gateway to return.",
165582	//       "location": "path",
165583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165584	//       "required": true,
165585	//       "type": "string"
165586	//     }
165587	//   },
165588	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
165589	//   "response": {
165590	//     "$ref": "VpnGatewaysGetStatusResponse"
165591	//   },
165592	//   "scopes": [
165593	//     "https://www.googleapis.com/auth/cloud-platform",
165594	//     "https://www.googleapis.com/auth/compute",
165595	//     "https://www.googleapis.com/auth/compute.readonly"
165596	//   ]
165597	// }
165598
165599}
165600
165601// method id "compute.vpnGateways.insert":
165602
165603type VpnGatewaysInsertCall struct {
165604	s          *Service
165605	project    string
165606	region     string
165607	vpngateway *VpnGateway
165608	urlParams_ gensupport.URLParams
165609	ctx_       context.Context
165610	header_    http.Header
165611}
165612
165613// Insert: Creates a VPN gateway in the specified project and region
165614// using the data included in the request.
165615//
165616// - project: Project ID for this request.
165617// - region: Name of the region for this request.
165618func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
165619	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165620	c.project = project
165621	c.region = region
165622	c.vpngateway = vpngateway
165623	return c
165624}
165625
165626// RequestId sets the optional parameter "requestId": An optional
165627// request ID to identify requests. Specify a unique request ID so that
165628// if you must retry your request, the server will know to ignore the
165629// request if it has already been completed. For example, consider a
165630// situation where you make an initial request and the request times
165631// out. If you make the request again with the same request ID, the
165632// server can check if original operation with the same request ID was
165633// received, and if so, will ignore the second request. This prevents
165634// clients from accidentally creating duplicate commitments. The request
165635// ID must be a valid UUID with the exception that zero UUID is not
165636// supported ( 00000000-0000-0000-0000-000000000000).
165637func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
165638	c.urlParams_.Set("requestId", requestId)
165639	return c
165640}
165641
165642// Fields allows partial responses to be retrieved. See
165643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165644// for more information.
165645func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
165646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165647	return c
165648}
165649
165650// Context sets the context to be used in this call's Do method. Any
165651// pending HTTP request will be aborted if the provided context is
165652// canceled.
165653func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
165654	c.ctx_ = ctx
165655	return c
165656}
165657
165658// Header returns an http.Header that can be modified by the caller to
165659// add HTTP headers to the request.
165660func (c *VpnGatewaysInsertCall) Header() http.Header {
165661	if c.header_ == nil {
165662		c.header_ = make(http.Header)
165663	}
165664	return c.header_
165665}
165666
165667func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
165668	reqHeaders := make(http.Header)
165669	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
165670	for k, v := range c.header_ {
165671		reqHeaders[k] = v
165672	}
165673	reqHeaders.Set("User-Agent", c.s.userAgent())
165674	var body io.Reader = nil
165675	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
165676	if err != nil {
165677		return nil, err
165678	}
165679	reqHeaders.Set("Content-Type", "application/json")
165680	c.urlParams_.Set("alt", alt)
165681	c.urlParams_.Set("prettyPrint", "false")
165682	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
165683	urls += "?" + c.urlParams_.Encode()
165684	req, err := http.NewRequest("POST", urls, body)
165685	if err != nil {
165686		return nil, err
165687	}
165688	req.Header = reqHeaders
165689	googleapi.Expand(req.URL, map[string]string{
165690		"project": c.project,
165691		"region":  c.region,
165692	})
165693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165694}
165695
165696// Do executes the "compute.vpnGateways.insert" call.
165697// Exactly one of *Operation or error will be non-nil. Any non-2xx
165698// status code is an error. Response headers are in either
165699// *Operation.ServerResponse.Header or (if a response was returned at
165700// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165701// to check whether the returned error was because
165702// http.StatusNotModified was returned.
165703func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165704	gensupport.SetOptions(c.urlParams_, opts...)
165705	res, err := c.doRequest("json")
165706	if res != nil && res.StatusCode == http.StatusNotModified {
165707		if res.Body != nil {
165708			res.Body.Close()
165709		}
165710		return nil, &googleapi.Error{
165711			Code:   res.StatusCode,
165712			Header: res.Header,
165713		}
165714	}
165715	if err != nil {
165716		return nil, err
165717	}
165718	defer googleapi.CloseBody(res)
165719	if err := googleapi.CheckResponse(res); err != nil {
165720		return nil, err
165721	}
165722	ret := &Operation{
165723		ServerResponse: googleapi.ServerResponse{
165724			Header:         res.Header,
165725			HTTPStatusCode: res.StatusCode,
165726		},
165727	}
165728	target := &ret
165729	if err := gensupport.DecodeResponse(target, res); err != nil {
165730		return nil, err
165731	}
165732	return ret, nil
165733	// {
165734	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
165735	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways",
165736	//   "httpMethod": "POST",
165737	//   "id": "compute.vpnGateways.insert",
165738	//   "parameterOrder": [
165739	//     "project",
165740	//     "region"
165741	//   ],
165742	//   "parameters": {
165743	//     "project": {
165744	//       "description": "Project ID for this request.",
165745	//       "location": "path",
165746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165747	//       "required": true,
165748	//       "type": "string"
165749	//     },
165750	//     "region": {
165751	//       "description": "Name of the region for this request.",
165752	//       "location": "path",
165753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165754	//       "required": true,
165755	//       "type": "string"
165756	//     },
165757	//     "requestId": {
165758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
165759	//       "location": "query",
165760	//       "type": "string"
165761	//     }
165762	//   },
165763	//   "path": "projects/{project}/regions/{region}/vpnGateways",
165764	//   "request": {
165765	//     "$ref": "VpnGateway"
165766	//   },
165767	//   "response": {
165768	//     "$ref": "Operation"
165769	//   },
165770	//   "scopes": [
165771	//     "https://www.googleapis.com/auth/cloud-platform",
165772	//     "https://www.googleapis.com/auth/compute"
165773	//   ]
165774	// }
165775
165776}
165777
165778// method id "compute.vpnGateways.list":
165779
165780type VpnGatewaysListCall struct {
165781	s            *Service
165782	project      string
165783	region       string
165784	urlParams_   gensupport.URLParams
165785	ifNoneMatch_ string
165786	ctx_         context.Context
165787	header_      http.Header
165788}
165789
165790// List: Retrieves a list of VPN gateways available to the specified
165791// project and region.
165792//
165793// - project: Project ID for this request.
165794// - region: Name of the region for this request.
165795func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
165796	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165797	c.project = project
165798	c.region = region
165799	return c
165800}
165801
165802// Filter sets the optional parameter "filter": A filter expression that
165803// filters resources listed in the response. The expression must specify
165804// the field name, a comparison operator, and the value that you want to
165805// use for filtering. The value must be a string, a number, or a
165806// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165807// `<`. For example, if you are filtering Compute Engine instances, you
165808// can exclude instances named `example-instance` by specifying `name !=
165809// example-instance`. You can also filter nested fields. For example,
165810// you could specify `scheduling.automaticRestart = false` to include
165811// instances only if they are not scheduled for automatic restarts. You
165812// can use filtering on nested fields to filter based on resource
165813// labels. To filter on multiple expressions, provide each separate
165814// expression within parentheses. For example: ```
165815// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
165816// ``` By default, each expression is an `AND` expression. However, you
165817// can include `AND` and `OR` expressions explicitly. For example: ```
165818// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
165819// AND (scheduling.automaticRestart = true) ```
165820func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
165821	c.urlParams_.Set("filter", filter)
165822	return c
165823}
165824
165825// MaxResults sets the optional parameter "maxResults": The maximum
165826// number of results per page that should be returned. If the number of
165827// available results is larger than `maxResults`, Compute Engine returns
165828// a `nextPageToken` that can be used to get the next page of results in
165829// subsequent list requests. Acceptable values are `0` to `500`,
165830// inclusive. (Default: `500`)
165831func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
165832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165833	return c
165834}
165835
165836// OrderBy sets the optional parameter "orderBy": Sorts list results by
165837// a certain order. By default, results are returned in alphanumerical
165838// order based on the resource name. You can also sort results in
165839// descending order based on the creation timestamp using
165840// `orderBy="creationTimestamp desc". This sorts results based on the
165841// `creationTimestamp` field in reverse chronological order (newest
165842// result first). Use this to sort resources like operations so that the
165843// newest operation is returned first. Currently, only sorting by `name`
165844// or `creationTimestamp desc` is supported.
165845func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
165846	c.urlParams_.Set("orderBy", orderBy)
165847	return c
165848}
165849
165850// PageToken sets the optional parameter "pageToken": Specifies a page
165851// token to use. Set `pageToken` to the `nextPageToken` returned by a
165852// previous list request to get the next page of results.
165853func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
165854	c.urlParams_.Set("pageToken", pageToken)
165855	return c
165856}
165857
165858// ReturnPartialSuccess sets the optional parameter
165859// "returnPartialSuccess": Opt-in for partial success behavior which
165860// provides partial results in case of failure. The default value is
165861// false.
165862func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
165863	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165864	return c
165865}
165866
165867// Fields allows partial responses to be retrieved. See
165868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165869// for more information.
165870func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
165871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165872	return c
165873}
165874
165875// IfNoneMatch sets the optional parameter which makes the operation
165876// fail if the object's ETag matches the given value. This is useful for
165877// getting updates only after the object has changed since the last
165878// request. Use googleapi.IsNotModified to check whether the response
165879// error from Do is the result of In-None-Match.
165880func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
165881	c.ifNoneMatch_ = entityTag
165882	return c
165883}
165884
165885// Context sets the context to be used in this call's Do method. Any
165886// pending HTTP request will be aborted if the provided context is
165887// canceled.
165888func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
165889	c.ctx_ = ctx
165890	return c
165891}
165892
165893// Header returns an http.Header that can be modified by the caller to
165894// add HTTP headers to the request.
165895func (c *VpnGatewaysListCall) Header() http.Header {
165896	if c.header_ == nil {
165897		c.header_ = make(http.Header)
165898	}
165899	return c.header_
165900}
165901
165902func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
165903	reqHeaders := make(http.Header)
165904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
165905	for k, v := range c.header_ {
165906		reqHeaders[k] = v
165907	}
165908	reqHeaders.Set("User-Agent", c.s.userAgent())
165909	if c.ifNoneMatch_ != "" {
165910		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165911	}
165912	var body io.Reader = nil
165913	c.urlParams_.Set("alt", alt)
165914	c.urlParams_.Set("prettyPrint", "false")
165915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
165916	urls += "?" + c.urlParams_.Encode()
165917	req, err := http.NewRequest("GET", urls, body)
165918	if err != nil {
165919		return nil, err
165920	}
165921	req.Header = reqHeaders
165922	googleapi.Expand(req.URL, map[string]string{
165923		"project": c.project,
165924		"region":  c.region,
165925	})
165926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165927}
165928
165929// Do executes the "compute.vpnGateways.list" call.
165930// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
165931// status code is an error. Response headers are in either
165932// *VpnGatewayList.ServerResponse.Header or (if a response was returned
165933// at all) in error.(*googleapi.Error).Header. Use
165934// googleapi.IsNotModified to check whether the returned error was
165935// because http.StatusNotModified was returned.
165936func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
165937	gensupport.SetOptions(c.urlParams_, opts...)
165938	res, err := c.doRequest("json")
165939	if res != nil && res.StatusCode == http.StatusNotModified {
165940		if res.Body != nil {
165941			res.Body.Close()
165942		}
165943		return nil, &googleapi.Error{
165944			Code:   res.StatusCode,
165945			Header: res.Header,
165946		}
165947	}
165948	if err != nil {
165949		return nil, err
165950	}
165951	defer googleapi.CloseBody(res)
165952	if err := googleapi.CheckResponse(res); err != nil {
165953		return nil, err
165954	}
165955	ret := &VpnGatewayList{
165956		ServerResponse: googleapi.ServerResponse{
165957			Header:         res.Header,
165958			HTTPStatusCode: res.StatusCode,
165959		},
165960	}
165961	target := &ret
165962	if err := gensupport.DecodeResponse(target, res); err != nil {
165963		return nil, err
165964	}
165965	return ret, nil
165966	// {
165967	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
165968	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways",
165969	//   "httpMethod": "GET",
165970	//   "id": "compute.vpnGateways.list",
165971	//   "parameterOrder": [
165972	//     "project",
165973	//     "region"
165974	//   ],
165975	//   "parameters": {
165976	//     "filter": {
165977	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
165978	//       "location": "query",
165979	//       "type": "string"
165980	//     },
165981	//     "maxResults": {
165982	//       "default": "500",
165983	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
165984	//       "format": "uint32",
165985	//       "location": "query",
165986	//       "minimum": "0",
165987	//       "type": "integer"
165988	//     },
165989	//     "orderBy": {
165990	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
165991	//       "location": "query",
165992	//       "type": "string"
165993	//     },
165994	//     "pageToken": {
165995	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
165996	//       "location": "query",
165997	//       "type": "string"
165998	//     },
165999	//     "project": {
166000	//       "description": "Project ID for this request.",
166001	//       "location": "path",
166002	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166003	//       "required": true,
166004	//       "type": "string"
166005	//     },
166006	//     "region": {
166007	//       "description": "Name of the region for this request.",
166008	//       "location": "path",
166009	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166010	//       "required": true,
166011	//       "type": "string"
166012	//     },
166013	//     "returnPartialSuccess": {
166014	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
166015	//       "location": "query",
166016	//       "type": "boolean"
166017	//     }
166018	//   },
166019	//   "path": "projects/{project}/regions/{region}/vpnGateways",
166020	//   "response": {
166021	//     "$ref": "VpnGatewayList"
166022	//   },
166023	//   "scopes": [
166024	//     "https://www.googleapis.com/auth/cloud-platform",
166025	//     "https://www.googleapis.com/auth/compute",
166026	//     "https://www.googleapis.com/auth/compute.readonly"
166027	//   ]
166028	// }
166029
166030}
166031
166032// Pages invokes f for each page of results.
166033// A non-nil error returned from f will halt the iteration.
166034// The provided context supersedes any context provided to the Context method.
166035func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
166036	c.ctx_ = ctx
166037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166038	for {
166039		x, err := c.Do()
166040		if err != nil {
166041			return err
166042		}
166043		if err := f(x); err != nil {
166044			return err
166045		}
166046		if x.NextPageToken == "" {
166047			return nil
166048		}
166049		c.PageToken(x.NextPageToken)
166050	}
166051}
166052
166053// method id "compute.vpnGateways.setLabels":
166054
166055type VpnGatewaysSetLabelsCall struct {
166056	s                      *Service
166057	project                string
166058	region                 string
166059	resource               string
166060	regionsetlabelsrequest *RegionSetLabelsRequest
166061	urlParams_             gensupport.URLParams
166062	ctx_                   context.Context
166063	header_                http.Header
166064}
166065
166066// SetLabels: Sets the labels on a VpnGateway. To learn more about
166067// labels, read the Labeling Resources documentation.
166068//
166069// - project: Project ID for this request.
166070// - region: The region for this request.
166071// - resource: Name or id of the resource for this request.
166072func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
166073	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166074	c.project = project
166075	c.region = region
166076	c.resource = resource
166077	c.regionsetlabelsrequest = regionsetlabelsrequest
166078	return c
166079}
166080
166081// RequestId sets the optional parameter "requestId": An optional
166082// request ID to identify requests. Specify a unique request ID so that
166083// if you must retry your request, the server will know to ignore the
166084// request if it has already been completed. For example, consider a
166085// situation where you make an initial request and the request times
166086// out. If you make the request again with the same request ID, the
166087// server can check if original operation with the same request ID was
166088// received, and if so, will ignore the second request. This prevents
166089// clients from accidentally creating duplicate commitments. The request
166090// ID must be a valid UUID with the exception that zero UUID is not
166091// supported ( 00000000-0000-0000-0000-000000000000).
166092func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
166093	c.urlParams_.Set("requestId", requestId)
166094	return c
166095}
166096
166097// Fields allows partial responses to be retrieved. See
166098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166099// for more information.
166100func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
166101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166102	return c
166103}
166104
166105// Context sets the context to be used in this call's Do method. Any
166106// pending HTTP request will be aborted if the provided context is
166107// canceled.
166108func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
166109	c.ctx_ = ctx
166110	return c
166111}
166112
166113// Header returns an http.Header that can be modified by the caller to
166114// add HTTP headers to the request.
166115func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
166116	if c.header_ == nil {
166117		c.header_ = make(http.Header)
166118	}
166119	return c.header_
166120}
166121
166122func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
166123	reqHeaders := make(http.Header)
166124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
166125	for k, v := range c.header_ {
166126		reqHeaders[k] = v
166127	}
166128	reqHeaders.Set("User-Agent", c.s.userAgent())
166129	var body io.Reader = nil
166130	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
166131	if err != nil {
166132		return nil, err
166133	}
166134	reqHeaders.Set("Content-Type", "application/json")
166135	c.urlParams_.Set("alt", alt)
166136	c.urlParams_.Set("prettyPrint", "false")
166137	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels")
166138	urls += "?" + c.urlParams_.Encode()
166139	req, err := http.NewRequest("POST", urls, body)
166140	if err != nil {
166141		return nil, err
166142	}
166143	req.Header = reqHeaders
166144	googleapi.Expand(req.URL, map[string]string{
166145		"project":  c.project,
166146		"region":   c.region,
166147		"resource": c.resource,
166148	})
166149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166150}
166151
166152// Do executes the "compute.vpnGateways.setLabels" call.
166153// Exactly one of *Operation or error will be non-nil. Any non-2xx
166154// status code is an error. Response headers are in either
166155// *Operation.ServerResponse.Header or (if a response was returned at
166156// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166157// to check whether the returned error was because
166158// http.StatusNotModified was returned.
166159func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166160	gensupport.SetOptions(c.urlParams_, opts...)
166161	res, err := c.doRequest("json")
166162	if res != nil && res.StatusCode == http.StatusNotModified {
166163		if res.Body != nil {
166164			res.Body.Close()
166165		}
166166		return nil, &googleapi.Error{
166167			Code:   res.StatusCode,
166168			Header: res.Header,
166169		}
166170	}
166171	if err != nil {
166172		return nil, err
166173	}
166174	defer googleapi.CloseBody(res)
166175	if err := googleapi.CheckResponse(res); err != nil {
166176		return nil, err
166177	}
166178	ret := &Operation{
166179		ServerResponse: googleapi.ServerResponse{
166180			Header:         res.Header,
166181			HTTPStatusCode: res.StatusCode,
166182		},
166183	}
166184	target := &ret
166185	if err := gensupport.DecodeResponse(target, res); err != nil {
166186		return nil, err
166187	}
166188	return ret, nil
166189	// {
166190	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
166191	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
166192	//   "httpMethod": "POST",
166193	//   "id": "compute.vpnGateways.setLabels",
166194	//   "parameterOrder": [
166195	//     "project",
166196	//     "region",
166197	//     "resource"
166198	//   ],
166199	//   "parameters": {
166200	//     "project": {
166201	//       "description": "Project ID for this request.",
166202	//       "location": "path",
166203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166204	//       "required": true,
166205	//       "type": "string"
166206	//     },
166207	//     "region": {
166208	//       "description": "The region for this request.",
166209	//       "location": "path",
166210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166211	//       "required": true,
166212	//       "type": "string"
166213	//     },
166214	//     "requestId": {
166215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
166216	//       "location": "query",
166217	//       "type": "string"
166218	//     },
166219	//     "resource": {
166220	//       "description": "Name or id of the resource for this request.",
166221	//       "location": "path",
166222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166223	//       "required": true,
166224	//       "type": "string"
166225	//     }
166226	//   },
166227	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
166228	//   "request": {
166229	//     "$ref": "RegionSetLabelsRequest"
166230	//   },
166231	//   "response": {
166232	//     "$ref": "Operation"
166233	//   },
166234	//   "scopes": [
166235	//     "https://www.googleapis.com/auth/cloud-platform",
166236	//     "https://www.googleapis.com/auth/compute"
166237	//   ]
166238	// }
166239
166240}
166241
166242// method id "compute.vpnGateways.testIamPermissions":
166243
166244type VpnGatewaysTestIamPermissionsCall struct {
166245	s                      *Service
166246	project                string
166247	region                 string
166248	resource               string
166249	testpermissionsrequest *TestPermissionsRequest
166250	urlParams_             gensupport.URLParams
166251	ctx_                   context.Context
166252	header_                http.Header
166253}
166254
166255// TestIamPermissions: Returns permissions that a caller has on the
166256// specified resource.
166257//
166258// - project: Project ID for this request.
166259// - region: The name of the region for this request.
166260// - resource: Name or id of the resource for this request.
166261func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
166262	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166263	c.project = project
166264	c.region = region
166265	c.resource = resource
166266	c.testpermissionsrequest = testpermissionsrequest
166267	return c
166268}
166269
166270// Fields allows partial responses to be retrieved. See
166271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166272// for more information.
166273func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
166274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166275	return c
166276}
166277
166278// Context sets the context to be used in this call's Do method. Any
166279// pending HTTP request will be aborted if the provided context is
166280// canceled.
166281func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
166282	c.ctx_ = ctx
166283	return c
166284}
166285
166286// Header returns an http.Header that can be modified by the caller to
166287// add HTTP headers to the request.
166288func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
166289	if c.header_ == nil {
166290		c.header_ = make(http.Header)
166291	}
166292	return c.header_
166293}
166294
166295func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166296	reqHeaders := make(http.Header)
166297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
166298	for k, v := range c.header_ {
166299		reqHeaders[k] = v
166300	}
166301	reqHeaders.Set("User-Agent", c.s.userAgent())
166302	var body io.Reader = nil
166303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166304	if err != nil {
166305		return nil, err
166306	}
166307	reqHeaders.Set("Content-Type", "application/json")
166308	c.urlParams_.Set("alt", alt)
166309	c.urlParams_.Set("prettyPrint", "false")
166310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
166311	urls += "?" + c.urlParams_.Encode()
166312	req, err := http.NewRequest("POST", urls, body)
166313	if err != nil {
166314		return nil, err
166315	}
166316	req.Header = reqHeaders
166317	googleapi.Expand(req.URL, map[string]string{
166318		"project":  c.project,
166319		"region":   c.region,
166320		"resource": c.resource,
166321	})
166322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166323}
166324
166325// Do executes the "compute.vpnGateways.testIamPermissions" call.
166326// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166327// non-2xx status code is an error. Response headers are in either
166328// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166329// returned at all) in error.(*googleapi.Error).Header. Use
166330// googleapi.IsNotModified to check whether the returned error was
166331// because http.StatusNotModified was returned.
166332func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166333	gensupport.SetOptions(c.urlParams_, opts...)
166334	res, err := c.doRequest("json")
166335	if res != nil && res.StatusCode == http.StatusNotModified {
166336		if res.Body != nil {
166337			res.Body.Close()
166338		}
166339		return nil, &googleapi.Error{
166340			Code:   res.StatusCode,
166341			Header: res.Header,
166342		}
166343	}
166344	if err != nil {
166345		return nil, err
166346	}
166347	defer googleapi.CloseBody(res)
166348	if err := googleapi.CheckResponse(res); err != nil {
166349		return nil, err
166350	}
166351	ret := &TestPermissionsResponse{
166352		ServerResponse: googleapi.ServerResponse{
166353			Header:         res.Header,
166354			HTTPStatusCode: res.StatusCode,
166355		},
166356	}
166357	target := &ret
166358	if err := gensupport.DecodeResponse(target, res); err != nil {
166359		return nil, err
166360	}
166361	return ret, nil
166362	// {
166363	//   "description": "Returns permissions that a caller has on the specified resource.",
166364	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
166365	//   "httpMethod": "POST",
166366	//   "id": "compute.vpnGateways.testIamPermissions",
166367	//   "parameterOrder": [
166368	//     "project",
166369	//     "region",
166370	//     "resource"
166371	//   ],
166372	//   "parameters": {
166373	//     "project": {
166374	//       "description": "Project ID for this request.",
166375	//       "location": "path",
166376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166377	//       "required": true,
166378	//       "type": "string"
166379	//     },
166380	//     "region": {
166381	//       "description": "The name of the region for this request.",
166382	//       "location": "path",
166383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166384	//       "required": true,
166385	//       "type": "string"
166386	//     },
166387	//     "resource": {
166388	//       "description": "Name or id of the resource for this request.",
166389	//       "location": "path",
166390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166391	//       "required": true,
166392	//       "type": "string"
166393	//     }
166394	//   },
166395	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
166396	//   "request": {
166397	//     "$ref": "TestPermissionsRequest"
166398	//   },
166399	//   "response": {
166400	//     "$ref": "TestPermissionsResponse"
166401	//   },
166402	//   "scopes": [
166403	//     "https://www.googleapis.com/auth/cloud-platform",
166404	//     "https://www.googleapis.com/auth/compute",
166405	//     "https://www.googleapis.com/auth/compute.readonly"
166406	//   ]
166407	// }
166408
166409}
166410
166411// method id "compute.vpnTunnels.aggregatedList":
166412
166413type VpnTunnelsAggregatedListCall struct {
166414	s            *Service
166415	project      string
166416	urlParams_   gensupport.URLParams
166417	ifNoneMatch_ string
166418	ctx_         context.Context
166419	header_      http.Header
166420}
166421
166422// AggregatedList: Retrieves an aggregated list of VPN tunnels.
166423//
166424// - project: Project ID for this request.
166425func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
166426	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166427	c.project = project
166428	return c
166429}
166430
166431// Filter sets the optional parameter "filter": A filter expression that
166432// filters resources listed in the response. The expression must specify
166433// the field name, a comparison operator, and the value that you want to
166434// use for filtering. The value must be a string, a number, or a
166435// boolean. The comparison operator must be either `=`, `!=`, `>`, or
166436// `<`. For example, if you are filtering Compute Engine instances, you
166437// can exclude instances named `example-instance` by specifying `name !=
166438// example-instance`. You can also filter nested fields. For example,
166439// you could specify `scheduling.automaticRestart = false` to include
166440// instances only if they are not scheduled for automatic restarts. You
166441// can use filtering on nested fields to filter based on resource
166442// labels. To filter on multiple expressions, provide each separate
166443// expression within parentheses. For example: ```
166444// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
166445// ``` By default, each expression is an `AND` expression. However, you
166446// can include `AND` and `OR` expressions explicitly. For example: ```
166447// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
166448// AND (scheduling.automaticRestart = true) ```
166449func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
166450	c.urlParams_.Set("filter", filter)
166451	return c
166452}
166453
166454// IncludeAllScopes sets the optional parameter "includeAllScopes":
166455// Indicates whether every visible scope for each scope type (zone,
166456// region, global) should be included in the response. For new resource
166457// types added after this field, the flag has no effect as new resource
166458// types will always include every visible scope for each scope type in
166459// response. For resource types which predate this field, if this flag
166460// is omitted or false, only scopes of the scope types where the
166461// resource type is expected to be found will be included.
166462func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
166463	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
166464	return c
166465}
166466
166467// MaxResults sets the optional parameter "maxResults": The maximum
166468// number of results per page that should be returned. If the number of
166469// available results is larger than `maxResults`, Compute Engine returns
166470// a `nextPageToken` that can be used to get the next page of results in
166471// subsequent list requests. Acceptable values are `0` to `500`,
166472// inclusive. (Default: `500`)
166473func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
166474	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166475	return c
166476}
166477
166478// OrderBy sets the optional parameter "orderBy": Sorts list results by
166479// a certain order. By default, results are returned in alphanumerical
166480// order based on the resource name. You can also sort results in
166481// descending order based on the creation timestamp using
166482// `orderBy="creationTimestamp desc". This sorts results based on the
166483// `creationTimestamp` field in reverse chronological order (newest
166484// result first). Use this to sort resources like operations so that the
166485// newest operation is returned first. Currently, only sorting by `name`
166486// or `creationTimestamp desc` is supported.
166487func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
166488	c.urlParams_.Set("orderBy", orderBy)
166489	return c
166490}
166491
166492// PageToken sets the optional parameter "pageToken": Specifies a page
166493// token to use. Set `pageToken` to the `nextPageToken` returned by a
166494// previous list request to get the next page of results.
166495func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
166496	c.urlParams_.Set("pageToken", pageToken)
166497	return c
166498}
166499
166500// ReturnPartialSuccess sets the optional parameter
166501// "returnPartialSuccess": Opt-in for partial success behavior which
166502// provides partial results in case of failure. The default value is
166503// false.
166504func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
166505	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
166506	return c
166507}
166508
166509// Fields allows partial responses to be retrieved. See
166510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166511// for more information.
166512func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
166513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166514	return c
166515}
166516
166517// IfNoneMatch sets the optional parameter which makes the operation
166518// fail if the object's ETag matches the given value. This is useful for
166519// getting updates only after the object has changed since the last
166520// request. Use googleapi.IsNotModified to check whether the response
166521// error from Do is the result of In-None-Match.
166522func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
166523	c.ifNoneMatch_ = entityTag
166524	return c
166525}
166526
166527// Context sets the context to be used in this call's Do method. Any
166528// pending HTTP request will be aborted if the provided context is
166529// canceled.
166530func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
166531	c.ctx_ = ctx
166532	return c
166533}
166534
166535// Header returns an http.Header that can be modified by the caller to
166536// add HTTP headers to the request.
166537func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
166538	if c.header_ == nil {
166539		c.header_ = make(http.Header)
166540	}
166541	return c.header_
166542}
166543
166544func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
166545	reqHeaders := make(http.Header)
166546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
166547	for k, v := range c.header_ {
166548		reqHeaders[k] = v
166549	}
166550	reqHeaders.Set("User-Agent", c.s.userAgent())
166551	if c.ifNoneMatch_ != "" {
166552		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166553	}
166554	var body io.Reader = nil
166555	c.urlParams_.Set("alt", alt)
166556	c.urlParams_.Set("prettyPrint", "false")
166557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels")
166558	urls += "?" + c.urlParams_.Encode()
166559	req, err := http.NewRequest("GET", urls, body)
166560	if err != nil {
166561		return nil, err
166562	}
166563	req.Header = reqHeaders
166564	googleapi.Expand(req.URL, map[string]string{
166565		"project": c.project,
166566	})
166567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166568}
166569
166570// Do executes the "compute.vpnTunnels.aggregatedList" call.
166571// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
166572// non-2xx status code is an error. Response headers are in either
166573// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
166574// returned at all) in error.(*googleapi.Error).Header. Use
166575// googleapi.IsNotModified to check whether the returned error was
166576// because http.StatusNotModified was returned.
166577func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
166578	gensupport.SetOptions(c.urlParams_, opts...)
166579	res, err := c.doRequest("json")
166580	if res != nil && res.StatusCode == http.StatusNotModified {
166581		if res.Body != nil {
166582			res.Body.Close()
166583		}
166584		return nil, &googleapi.Error{
166585			Code:   res.StatusCode,
166586			Header: res.Header,
166587		}
166588	}
166589	if err != nil {
166590		return nil, err
166591	}
166592	defer googleapi.CloseBody(res)
166593	if err := googleapi.CheckResponse(res); err != nil {
166594		return nil, err
166595	}
166596	ret := &VpnTunnelAggregatedList{
166597		ServerResponse: googleapi.ServerResponse{
166598			Header:         res.Header,
166599			HTTPStatusCode: res.StatusCode,
166600		},
166601	}
166602	target := &ret
166603	if err := gensupport.DecodeResponse(target, res); err != nil {
166604		return nil, err
166605	}
166606	return ret, nil
166607	// {
166608	//   "description": "Retrieves an aggregated list of VPN tunnels.",
166609	//   "flatPath": "projects/{project}/aggregated/vpnTunnels",
166610	//   "httpMethod": "GET",
166611	//   "id": "compute.vpnTunnels.aggregatedList",
166612	//   "parameterOrder": [
166613	//     "project"
166614	//   ],
166615	//   "parameters": {
166616	//     "filter": {
166617	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
166618	//       "location": "query",
166619	//       "type": "string"
166620	//     },
166621	//     "includeAllScopes": {
166622	//       "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.",
166623	//       "location": "query",
166624	//       "type": "boolean"
166625	//     },
166626	//     "maxResults": {
166627	//       "default": "500",
166628	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
166629	//       "format": "uint32",
166630	//       "location": "query",
166631	//       "minimum": "0",
166632	//       "type": "integer"
166633	//     },
166634	//     "orderBy": {
166635	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
166636	//       "location": "query",
166637	//       "type": "string"
166638	//     },
166639	//     "pageToken": {
166640	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
166641	//       "location": "query",
166642	//       "type": "string"
166643	//     },
166644	//     "project": {
166645	//       "description": "Project ID for this request.",
166646	//       "location": "path",
166647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166648	//       "required": true,
166649	//       "type": "string"
166650	//     },
166651	//     "returnPartialSuccess": {
166652	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
166653	//       "location": "query",
166654	//       "type": "boolean"
166655	//     }
166656	//   },
166657	//   "path": "projects/{project}/aggregated/vpnTunnels",
166658	//   "response": {
166659	//     "$ref": "VpnTunnelAggregatedList"
166660	//   },
166661	//   "scopes": [
166662	//     "https://www.googleapis.com/auth/cloud-platform",
166663	//     "https://www.googleapis.com/auth/compute",
166664	//     "https://www.googleapis.com/auth/compute.readonly"
166665	//   ]
166666	// }
166667
166668}
166669
166670// Pages invokes f for each page of results.
166671// A non-nil error returned from f will halt the iteration.
166672// The provided context supersedes any context provided to the Context method.
166673func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
166674	c.ctx_ = ctx
166675	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166676	for {
166677		x, err := c.Do()
166678		if err != nil {
166679			return err
166680		}
166681		if err := f(x); err != nil {
166682			return err
166683		}
166684		if x.NextPageToken == "" {
166685			return nil
166686		}
166687		c.PageToken(x.NextPageToken)
166688	}
166689}
166690
166691// method id "compute.vpnTunnels.delete":
166692
166693type VpnTunnelsDeleteCall struct {
166694	s          *Service
166695	project    string
166696	region     string
166697	vpnTunnel  string
166698	urlParams_ gensupport.URLParams
166699	ctx_       context.Context
166700	header_    http.Header
166701}
166702
166703// Delete: Deletes the specified VpnTunnel resource.
166704//
166705// - project: Project ID for this request.
166706// - region: Name of the region for this request.
166707// - vpnTunnel: Name of the VpnTunnel resource to delete.
166708func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
166709	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166710	c.project = project
166711	c.region = region
166712	c.vpnTunnel = vpnTunnel
166713	return c
166714}
166715
166716// RequestId sets the optional parameter "requestId": An optional
166717// request ID to identify requests. Specify a unique request ID so that
166718// if you must retry your request, the server will know to ignore the
166719// request if it has already been completed. For example, consider a
166720// situation where you make an initial request and the request times
166721// out. If you make the request again with the same request ID, the
166722// server can check if original operation with the same request ID was
166723// received, and if so, will ignore the second request. This prevents
166724// clients from accidentally creating duplicate commitments. The request
166725// ID must be a valid UUID with the exception that zero UUID is not
166726// supported ( 00000000-0000-0000-0000-000000000000).
166727func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
166728	c.urlParams_.Set("requestId", requestId)
166729	return c
166730}
166731
166732// Fields allows partial responses to be retrieved. See
166733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166734// for more information.
166735func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
166736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166737	return c
166738}
166739
166740// Context sets the context to be used in this call's Do method. Any
166741// pending HTTP request will be aborted if the provided context is
166742// canceled.
166743func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
166744	c.ctx_ = ctx
166745	return c
166746}
166747
166748// Header returns an http.Header that can be modified by the caller to
166749// add HTTP headers to the request.
166750func (c *VpnTunnelsDeleteCall) Header() http.Header {
166751	if c.header_ == nil {
166752		c.header_ = make(http.Header)
166753	}
166754	return c.header_
166755}
166756
166757func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
166758	reqHeaders := make(http.Header)
166759	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
166760	for k, v := range c.header_ {
166761		reqHeaders[k] = v
166762	}
166763	reqHeaders.Set("User-Agent", c.s.userAgent())
166764	var body io.Reader = nil
166765	c.urlParams_.Set("alt", alt)
166766	c.urlParams_.Set("prettyPrint", "false")
166767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
166768	urls += "?" + c.urlParams_.Encode()
166769	req, err := http.NewRequest("DELETE", urls, body)
166770	if err != nil {
166771		return nil, err
166772	}
166773	req.Header = reqHeaders
166774	googleapi.Expand(req.URL, map[string]string{
166775		"project":   c.project,
166776		"region":    c.region,
166777		"vpnTunnel": c.vpnTunnel,
166778	})
166779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166780}
166781
166782// Do executes the "compute.vpnTunnels.delete" call.
166783// Exactly one of *Operation or error will be non-nil. Any non-2xx
166784// status code is an error. Response headers are in either
166785// *Operation.ServerResponse.Header or (if a response was returned at
166786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166787// to check whether the returned error was because
166788// http.StatusNotModified was returned.
166789func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166790	gensupport.SetOptions(c.urlParams_, opts...)
166791	res, err := c.doRequest("json")
166792	if res != nil && res.StatusCode == http.StatusNotModified {
166793		if res.Body != nil {
166794			res.Body.Close()
166795		}
166796		return nil, &googleapi.Error{
166797			Code:   res.StatusCode,
166798			Header: res.Header,
166799		}
166800	}
166801	if err != nil {
166802		return nil, err
166803	}
166804	defer googleapi.CloseBody(res)
166805	if err := googleapi.CheckResponse(res); err != nil {
166806		return nil, err
166807	}
166808	ret := &Operation{
166809		ServerResponse: googleapi.ServerResponse{
166810			Header:         res.Header,
166811			HTTPStatusCode: res.StatusCode,
166812		},
166813	}
166814	target := &ret
166815	if err := gensupport.DecodeResponse(target, res); err != nil {
166816		return nil, err
166817	}
166818	return ret, nil
166819	// {
166820	//   "description": "Deletes the specified VpnTunnel resource.",
166821	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
166822	//   "httpMethod": "DELETE",
166823	//   "id": "compute.vpnTunnels.delete",
166824	//   "parameterOrder": [
166825	//     "project",
166826	//     "region",
166827	//     "vpnTunnel"
166828	//   ],
166829	//   "parameters": {
166830	//     "project": {
166831	//       "description": "Project ID for this request.",
166832	//       "location": "path",
166833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166834	//       "required": true,
166835	//       "type": "string"
166836	//     },
166837	//     "region": {
166838	//       "description": "Name of the region for this request.",
166839	//       "location": "path",
166840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166841	//       "required": true,
166842	//       "type": "string"
166843	//     },
166844	//     "requestId": {
166845	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
166846	//       "location": "query",
166847	//       "type": "string"
166848	//     },
166849	//     "vpnTunnel": {
166850	//       "description": "Name of the VpnTunnel resource to delete.",
166851	//       "location": "path",
166852	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166853	//       "required": true,
166854	//       "type": "string"
166855	//     }
166856	//   },
166857	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
166858	//   "response": {
166859	//     "$ref": "Operation"
166860	//   },
166861	//   "scopes": [
166862	//     "https://www.googleapis.com/auth/cloud-platform",
166863	//     "https://www.googleapis.com/auth/compute"
166864	//   ]
166865	// }
166866
166867}
166868
166869// method id "compute.vpnTunnels.get":
166870
166871type VpnTunnelsGetCall struct {
166872	s            *Service
166873	project      string
166874	region       string
166875	vpnTunnel    string
166876	urlParams_   gensupport.URLParams
166877	ifNoneMatch_ string
166878	ctx_         context.Context
166879	header_      http.Header
166880}
166881
166882// Get: Returns the specified VpnTunnel resource. Gets a list of
166883// available VPN tunnels by making a list() request.
166884//
166885// - project: Project ID for this request.
166886// - region: Name of the region for this request.
166887// - vpnTunnel: Name of the VpnTunnel resource to return.
166888func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
166889	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166890	c.project = project
166891	c.region = region
166892	c.vpnTunnel = vpnTunnel
166893	return c
166894}
166895
166896// Fields allows partial responses to be retrieved. See
166897// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166898// for more information.
166899func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
166900	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166901	return c
166902}
166903
166904// IfNoneMatch sets the optional parameter which makes the operation
166905// fail if the object's ETag matches the given value. This is useful for
166906// getting updates only after the object has changed since the last
166907// request. Use googleapi.IsNotModified to check whether the response
166908// error from Do is the result of In-None-Match.
166909func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
166910	c.ifNoneMatch_ = entityTag
166911	return c
166912}
166913
166914// Context sets the context to be used in this call's Do method. Any
166915// pending HTTP request will be aborted if the provided context is
166916// canceled.
166917func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
166918	c.ctx_ = ctx
166919	return c
166920}
166921
166922// Header returns an http.Header that can be modified by the caller to
166923// add HTTP headers to the request.
166924func (c *VpnTunnelsGetCall) Header() http.Header {
166925	if c.header_ == nil {
166926		c.header_ = make(http.Header)
166927	}
166928	return c.header_
166929}
166930
166931func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
166932	reqHeaders := make(http.Header)
166933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
166934	for k, v := range c.header_ {
166935		reqHeaders[k] = v
166936	}
166937	reqHeaders.Set("User-Agent", c.s.userAgent())
166938	if c.ifNoneMatch_ != "" {
166939		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166940	}
166941	var body io.Reader = nil
166942	c.urlParams_.Set("alt", alt)
166943	c.urlParams_.Set("prettyPrint", "false")
166944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
166945	urls += "?" + c.urlParams_.Encode()
166946	req, err := http.NewRequest("GET", urls, body)
166947	if err != nil {
166948		return nil, err
166949	}
166950	req.Header = reqHeaders
166951	googleapi.Expand(req.URL, map[string]string{
166952		"project":   c.project,
166953		"region":    c.region,
166954		"vpnTunnel": c.vpnTunnel,
166955	})
166956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166957}
166958
166959// Do executes the "compute.vpnTunnels.get" call.
166960// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
166961// status code is an error. Response headers are in either
166962// *VpnTunnel.ServerResponse.Header or (if a response was returned at
166963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166964// to check whether the returned error was because
166965// http.StatusNotModified was returned.
166966func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
166967	gensupport.SetOptions(c.urlParams_, opts...)
166968	res, err := c.doRequest("json")
166969	if res != nil && res.StatusCode == http.StatusNotModified {
166970		if res.Body != nil {
166971			res.Body.Close()
166972		}
166973		return nil, &googleapi.Error{
166974			Code:   res.StatusCode,
166975			Header: res.Header,
166976		}
166977	}
166978	if err != nil {
166979		return nil, err
166980	}
166981	defer googleapi.CloseBody(res)
166982	if err := googleapi.CheckResponse(res); err != nil {
166983		return nil, err
166984	}
166985	ret := &VpnTunnel{
166986		ServerResponse: googleapi.ServerResponse{
166987			Header:         res.Header,
166988			HTTPStatusCode: res.StatusCode,
166989		},
166990	}
166991	target := &ret
166992	if err := gensupport.DecodeResponse(target, res); err != nil {
166993		return nil, err
166994	}
166995	return ret, nil
166996	// {
166997	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
166998	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
166999	//   "httpMethod": "GET",
167000	//   "id": "compute.vpnTunnels.get",
167001	//   "parameterOrder": [
167002	//     "project",
167003	//     "region",
167004	//     "vpnTunnel"
167005	//   ],
167006	//   "parameters": {
167007	//     "project": {
167008	//       "description": "Project ID for this request.",
167009	//       "location": "path",
167010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167011	//       "required": true,
167012	//       "type": "string"
167013	//     },
167014	//     "region": {
167015	//       "description": "Name of the region for this request.",
167016	//       "location": "path",
167017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167018	//       "required": true,
167019	//       "type": "string"
167020	//     },
167021	//     "vpnTunnel": {
167022	//       "description": "Name of the VpnTunnel resource to return.",
167023	//       "location": "path",
167024	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167025	//       "required": true,
167026	//       "type": "string"
167027	//     }
167028	//   },
167029	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
167030	//   "response": {
167031	//     "$ref": "VpnTunnel"
167032	//   },
167033	//   "scopes": [
167034	//     "https://www.googleapis.com/auth/cloud-platform",
167035	//     "https://www.googleapis.com/auth/compute",
167036	//     "https://www.googleapis.com/auth/compute.readonly"
167037	//   ]
167038	// }
167039
167040}
167041
167042// method id "compute.vpnTunnels.insert":
167043
167044type VpnTunnelsInsertCall struct {
167045	s          *Service
167046	project    string
167047	region     string
167048	vpntunnel  *VpnTunnel
167049	urlParams_ gensupport.URLParams
167050	ctx_       context.Context
167051	header_    http.Header
167052}
167053
167054// Insert: Creates a VpnTunnel resource in the specified project and
167055// region using the data included in the request.
167056//
167057// - project: Project ID for this request.
167058// - region: Name of the region for this request.
167059func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
167060	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167061	c.project = project
167062	c.region = region
167063	c.vpntunnel = vpntunnel
167064	return c
167065}
167066
167067// RequestId sets the optional parameter "requestId": An optional
167068// request ID to identify requests. Specify a unique request ID so that
167069// if you must retry your request, the server will know to ignore the
167070// request if it has already been completed. For example, consider a
167071// situation where you make an initial request and the request times
167072// out. If you make the request again with the same request ID, the
167073// server can check if original operation with the same request ID was
167074// received, and if so, will ignore the second request. This prevents
167075// clients from accidentally creating duplicate commitments. The request
167076// ID must be a valid UUID with the exception that zero UUID is not
167077// supported ( 00000000-0000-0000-0000-000000000000).
167078func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
167079	c.urlParams_.Set("requestId", requestId)
167080	return c
167081}
167082
167083// Fields allows partial responses to be retrieved. See
167084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167085// for more information.
167086func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
167087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167088	return c
167089}
167090
167091// Context sets the context to be used in this call's Do method. Any
167092// pending HTTP request will be aborted if the provided context is
167093// canceled.
167094func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
167095	c.ctx_ = ctx
167096	return c
167097}
167098
167099// Header returns an http.Header that can be modified by the caller to
167100// add HTTP headers to the request.
167101func (c *VpnTunnelsInsertCall) Header() http.Header {
167102	if c.header_ == nil {
167103		c.header_ = make(http.Header)
167104	}
167105	return c.header_
167106}
167107
167108func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
167109	reqHeaders := make(http.Header)
167110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
167111	for k, v := range c.header_ {
167112		reqHeaders[k] = v
167113	}
167114	reqHeaders.Set("User-Agent", c.s.userAgent())
167115	var body io.Reader = nil
167116	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
167117	if err != nil {
167118		return nil, err
167119	}
167120	reqHeaders.Set("Content-Type", "application/json")
167121	c.urlParams_.Set("alt", alt)
167122	c.urlParams_.Set("prettyPrint", "false")
167123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
167124	urls += "?" + c.urlParams_.Encode()
167125	req, err := http.NewRequest("POST", urls, body)
167126	if err != nil {
167127		return nil, err
167128	}
167129	req.Header = reqHeaders
167130	googleapi.Expand(req.URL, map[string]string{
167131		"project": c.project,
167132		"region":  c.region,
167133	})
167134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167135}
167136
167137// Do executes the "compute.vpnTunnels.insert" call.
167138// Exactly one of *Operation or error will be non-nil. Any non-2xx
167139// status code is an error. Response headers are in either
167140// *Operation.ServerResponse.Header or (if a response was returned at
167141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167142// to check whether the returned error was because
167143// http.StatusNotModified was returned.
167144func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167145	gensupport.SetOptions(c.urlParams_, opts...)
167146	res, err := c.doRequest("json")
167147	if res != nil && res.StatusCode == http.StatusNotModified {
167148		if res.Body != nil {
167149			res.Body.Close()
167150		}
167151		return nil, &googleapi.Error{
167152			Code:   res.StatusCode,
167153			Header: res.Header,
167154		}
167155	}
167156	if err != nil {
167157		return nil, err
167158	}
167159	defer googleapi.CloseBody(res)
167160	if err := googleapi.CheckResponse(res); err != nil {
167161		return nil, err
167162	}
167163	ret := &Operation{
167164		ServerResponse: googleapi.ServerResponse{
167165			Header:         res.Header,
167166			HTTPStatusCode: res.StatusCode,
167167		},
167168	}
167169	target := &ret
167170	if err := gensupport.DecodeResponse(target, res); err != nil {
167171		return nil, err
167172	}
167173	return ret, nil
167174	// {
167175	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
167176	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
167177	//   "httpMethod": "POST",
167178	//   "id": "compute.vpnTunnels.insert",
167179	//   "parameterOrder": [
167180	//     "project",
167181	//     "region"
167182	//   ],
167183	//   "parameters": {
167184	//     "project": {
167185	//       "description": "Project ID for this request.",
167186	//       "location": "path",
167187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167188	//       "required": true,
167189	//       "type": "string"
167190	//     },
167191	//     "region": {
167192	//       "description": "Name of the region for this request.",
167193	//       "location": "path",
167194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167195	//       "required": true,
167196	//       "type": "string"
167197	//     },
167198	//     "requestId": {
167199	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
167200	//       "location": "query",
167201	//       "type": "string"
167202	//     }
167203	//   },
167204	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
167205	//   "request": {
167206	//     "$ref": "VpnTunnel"
167207	//   },
167208	//   "response": {
167209	//     "$ref": "Operation"
167210	//   },
167211	//   "scopes": [
167212	//     "https://www.googleapis.com/auth/cloud-platform",
167213	//     "https://www.googleapis.com/auth/compute"
167214	//   ]
167215	// }
167216
167217}
167218
167219// method id "compute.vpnTunnels.list":
167220
167221type VpnTunnelsListCall struct {
167222	s            *Service
167223	project      string
167224	region       string
167225	urlParams_   gensupport.URLParams
167226	ifNoneMatch_ string
167227	ctx_         context.Context
167228	header_      http.Header
167229}
167230
167231// List: Retrieves a list of VpnTunnel resources contained in the
167232// specified project and region.
167233//
167234// - project: Project ID for this request.
167235// - region: Name of the region for this request.
167236func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
167237	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167238	c.project = project
167239	c.region = region
167240	return c
167241}
167242
167243// Filter sets the optional parameter "filter": A filter expression that
167244// filters resources listed in the response. The expression must specify
167245// the field name, a comparison operator, and the value that you want to
167246// use for filtering. The value must be a string, a number, or a
167247// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167248// `<`. For example, if you are filtering Compute Engine instances, you
167249// can exclude instances named `example-instance` by specifying `name !=
167250// example-instance`. You can also filter nested fields. For example,
167251// you could specify `scheduling.automaticRestart = false` to include
167252// instances only if they are not scheduled for automatic restarts. You
167253// can use filtering on nested fields to filter based on resource
167254// labels. To filter on multiple expressions, provide each separate
167255// expression within parentheses. For example: ```
167256// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
167257// ``` By default, each expression is an `AND` expression. However, you
167258// can include `AND` and `OR` expressions explicitly. For example: ```
167259// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
167260// AND (scheduling.automaticRestart = true) ```
167261func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
167262	c.urlParams_.Set("filter", filter)
167263	return c
167264}
167265
167266// MaxResults sets the optional parameter "maxResults": The maximum
167267// number of results per page that should be returned. If the number of
167268// available results is larger than `maxResults`, Compute Engine returns
167269// a `nextPageToken` that can be used to get the next page of results in
167270// subsequent list requests. Acceptable values are `0` to `500`,
167271// inclusive. (Default: `500`)
167272func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
167273	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167274	return c
167275}
167276
167277// OrderBy sets the optional parameter "orderBy": Sorts list results by
167278// a certain order. By default, results are returned in alphanumerical
167279// order based on the resource name. You can also sort results in
167280// descending order based on the creation timestamp using
167281// `orderBy="creationTimestamp desc". This sorts results based on the
167282// `creationTimestamp` field in reverse chronological order (newest
167283// result first). Use this to sort resources like operations so that the
167284// newest operation is returned first. Currently, only sorting by `name`
167285// or `creationTimestamp desc` is supported.
167286func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
167287	c.urlParams_.Set("orderBy", orderBy)
167288	return c
167289}
167290
167291// PageToken sets the optional parameter "pageToken": Specifies a page
167292// token to use. Set `pageToken` to the `nextPageToken` returned by a
167293// previous list request to get the next page of results.
167294func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
167295	c.urlParams_.Set("pageToken", pageToken)
167296	return c
167297}
167298
167299// ReturnPartialSuccess sets the optional parameter
167300// "returnPartialSuccess": Opt-in for partial success behavior which
167301// provides partial results in case of failure. The default value is
167302// false.
167303func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
167304	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167305	return c
167306}
167307
167308// Fields allows partial responses to be retrieved. See
167309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167310// for more information.
167311func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
167312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167313	return c
167314}
167315
167316// IfNoneMatch sets the optional parameter which makes the operation
167317// fail if the object's ETag matches the given value. This is useful for
167318// getting updates only after the object has changed since the last
167319// request. Use googleapi.IsNotModified to check whether the response
167320// error from Do is the result of In-None-Match.
167321func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
167322	c.ifNoneMatch_ = entityTag
167323	return c
167324}
167325
167326// Context sets the context to be used in this call's Do method. Any
167327// pending HTTP request will be aborted if the provided context is
167328// canceled.
167329func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
167330	c.ctx_ = ctx
167331	return c
167332}
167333
167334// Header returns an http.Header that can be modified by the caller to
167335// add HTTP headers to the request.
167336func (c *VpnTunnelsListCall) Header() http.Header {
167337	if c.header_ == nil {
167338		c.header_ = make(http.Header)
167339	}
167340	return c.header_
167341}
167342
167343func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
167344	reqHeaders := make(http.Header)
167345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
167346	for k, v := range c.header_ {
167347		reqHeaders[k] = v
167348	}
167349	reqHeaders.Set("User-Agent", c.s.userAgent())
167350	if c.ifNoneMatch_ != "" {
167351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167352	}
167353	var body io.Reader = nil
167354	c.urlParams_.Set("alt", alt)
167355	c.urlParams_.Set("prettyPrint", "false")
167356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
167357	urls += "?" + c.urlParams_.Encode()
167358	req, err := http.NewRequest("GET", urls, body)
167359	if err != nil {
167360		return nil, err
167361	}
167362	req.Header = reqHeaders
167363	googleapi.Expand(req.URL, map[string]string{
167364		"project": c.project,
167365		"region":  c.region,
167366	})
167367	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167368}
167369
167370// Do executes the "compute.vpnTunnels.list" call.
167371// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
167372// status code is an error. Response headers are in either
167373// *VpnTunnelList.ServerResponse.Header or (if a response was returned
167374// at all) in error.(*googleapi.Error).Header. Use
167375// googleapi.IsNotModified to check whether the returned error was
167376// because http.StatusNotModified was returned.
167377func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
167378	gensupport.SetOptions(c.urlParams_, opts...)
167379	res, err := c.doRequest("json")
167380	if res != nil && res.StatusCode == http.StatusNotModified {
167381		if res.Body != nil {
167382			res.Body.Close()
167383		}
167384		return nil, &googleapi.Error{
167385			Code:   res.StatusCode,
167386			Header: res.Header,
167387		}
167388	}
167389	if err != nil {
167390		return nil, err
167391	}
167392	defer googleapi.CloseBody(res)
167393	if err := googleapi.CheckResponse(res); err != nil {
167394		return nil, err
167395	}
167396	ret := &VpnTunnelList{
167397		ServerResponse: googleapi.ServerResponse{
167398			Header:         res.Header,
167399			HTTPStatusCode: res.StatusCode,
167400		},
167401	}
167402	target := &ret
167403	if err := gensupport.DecodeResponse(target, res); err != nil {
167404		return nil, err
167405	}
167406	return ret, nil
167407	// {
167408	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
167409	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
167410	//   "httpMethod": "GET",
167411	//   "id": "compute.vpnTunnels.list",
167412	//   "parameterOrder": [
167413	//     "project",
167414	//     "region"
167415	//   ],
167416	//   "parameters": {
167417	//     "filter": {
167418	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
167419	//       "location": "query",
167420	//       "type": "string"
167421	//     },
167422	//     "maxResults": {
167423	//       "default": "500",
167424	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
167425	//       "format": "uint32",
167426	//       "location": "query",
167427	//       "minimum": "0",
167428	//       "type": "integer"
167429	//     },
167430	//     "orderBy": {
167431	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
167432	//       "location": "query",
167433	//       "type": "string"
167434	//     },
167435	//     "pageToken": {
167436	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
167437	//       "location": "query",
167438	//       "type": "string"
167439	//     },
167440	//     "project": {
167441	//       "description": "Project ID for this request.",
167442	//       "location": "path",
167443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167444	//       "required": true,
167445	//       "type": "string"
167446	//     },
167447	//     "region": {
167448	//       "description": "Name of the region for this request.",
167449	//       "location": "path",
167450	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167451	//       "required": true,
167452	//       "type": "string"
167453	//     },
167454	//     "returnPartialSuccess": {
167455	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167456	//       "location": "query",
167457	//       "type": "boolean"
167458	//     }
167459	//   },
167460	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
167461	//   "response": {
167462	//     "$ref": "VpnTunnelList"
167463	//   },
167464	//   "scopes": [
167465	//     "https://www.googleapis.com/auth/cloud-platform",
167466	//     "https://www.googleapis.com/auth/compute",
167467	//     "https://www.googleapis.com/auth/compute.readonly"
167468	//   ]
167469	// }
167470
167471}
167472
167473// Pages invokes f for each page of results.
167474// A non-nil error returned from f will halt the iteration.
167475// The provided context supersedes any context provided to the Context method.
167476func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
167477	c.ctx_ = ctx
167478	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167479	for {
167480		x, err := c.Do()
167481		if err != nil {
167482			return err
167483		}
167484		if err := f(x); err != nil {
167485			return err
167486		}
167487		if x.NextPageToken == "" {
167488			return nil
167489		}
167490		c.PageToken(x.NextPageToken)
167491	}
167492}
167493
167494// method id "compute.zoneOperations.delete":
167495
167496type ZoneOperationsDeleteCall struct {
167497	s          *Service
167498	project    string
167499	zone       string
167500	operation  string
167501	urlParams_ gensupport.URLParams
167502	ctx_       context.Context
167503	header_    http.Header
167504}
167505
167506// Delete: Deletes the specified zone-specific Operations resource.
167507//
167508// - operation: Name of the Operations resource to delete.
167509// - project: Project ID for this request.
167510// - zone: Name of the zone for this request.
167511func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
167512	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167513	c.project = project
167514	c.zone = zone
167515	c.operation = operation
167516	return c
167517}
167518
167519// Fields allows partial responses to be retrieved. See
167520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167521// for more information.
167522func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
167523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167524	return c
167525}
167526
167527// Context sets the context to be used in this call's Do method. Any
167528// pending HTTP request will be aborted if the provided context is
167529// canceled.
167530func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
167531	c.ctx_ = ctx
167532	return c
167533}
167534
167535// Header returns an http.Header that can be modified by the caller to
167536// add HTTP headers to the request.
167537func (c *ZoneOperationsDeleteCall) Header() http.Header {
167538	if c.header_ == nil {
167539		c.header_ = make(http.Header)
167540	}
167541	return c.header_
167542}
167543
167544func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
167545	reqHeaders := make(http.Header)
167546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
167547	for k, v := range c.header_ {
167548		reqHeaders[k] = v
167549	}
167550	reqHeaders.Set("User-Agent", c.s.userAgent())
167551	var body io.Reader = nil
167552	c.urlParams_.Set("alt", alt)
167553	c.urlParams_.Set("prettyPrint", "false")
167554	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
167555	urls += "?" + c.urlParams_.Encode()
167556	req, err := http.NewRequest("DELETE", urls, body)
167557	if err != nil {
167558		return nil, err
167559	}
167560	req.Header = reqHeaders
167561	googleapi.Expand(req.URL, map[string]string{
167562		"project":   c.project,
167563		"zone":      c.zone,
167564		"operation": c.operation,
167565	})
167566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167567}
167568
167569// Do executes the "compute.zoneOperations.delete" call.
167570func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
167571	gensupport.SetOptions(c.urlParams_, opts...)
167572	res, err := c.doRequest("json")
167573	if err != nil {
167574		return err
167575	}
167576	defer googleapi.CloseBody(res)
167577	if err := googleapi.CheckResponse(res); err != nil {
167578		return err
167579	}
167580	return nil
167581	// {
167582	//   "description": "Deletes the specified zone-specific Operations resource.",
167583	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
167584	//   "httpMethod": "DELETE",
167585	//   "id": "compute.zoneOperations.delete",
167586	//   "parameterOrder": [
167587	//     "project",
167588	//     "zone",
167589	//     "operation"
167590	//   ],
167591	//   "parameters": {
167592	//     "operation": {
167593	//       "description": "Name of the Operations resource to delete.",
167594	//       "location": "path",
167595	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167596	//       "required": true,
167597	//       "type": "string"
167598	//     },
167599	//     "project": {
167600	//       "description": "Project ID for this request.",
167601	//       "location": "path",
167602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167603	//       "required": true,
167604	//       "type": "string"
167605	//     },
167606	//     "zone": {
167607	//       "description": "Name of the zone for this request.",
167608	//       "location": "path",
167609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167610	//       "required": true,
167611	//       "type": "string"
167612	//     }
167613	//   },
167614	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
167615	//   "scopes": [
167616	//     "https://www.googleapis.com/auth/cloud-platform",
167617	//     "https://www.googleapis.com/auth/compute"
167618	//   ]
167619	// }
167620
167621}
167622
167623// method id "compute.zoneOperations.get":
167624
167625type ZoneOperationsGetCall struct {
167626	s            *Service
167627	project      string
167628	zone         string
167629	operation    string
167630	urlParams_   gensupport.URLParams
167631	ifNoneMatch_ string
167632	ctx_         context.Context
167633	header_      http.Header
167634}
167635
167636// Get: Retrieves the specified zone-specific Operations resource.
167637//
167638// - operation: Name of the Operations resource to return.
167639// - project: Project ID for this request.
167640// - zone: Name of the zone for this request.
167641func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
167642	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167643	c.project = project
167644	c.zone = zone
167645	c.operation = operation
167646	return c
167647}
167648
167649// Fields allows partial responses to be retrieved. See
167650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167651// for more information.
167652func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
167653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167654	return c
167655}
167656
167657// IfNoneMatch sets the optional parameter which makes the operation
167658// fail if the object's ETag matches the given value. This is useful for
167659// getting updates only after the object has changed since the last
167660// request. Use googleapi.IsNotModified to check whether the response
167661// error from Do is the result of In-None-Match.
167662func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
167663	c.ifNoneMatch_ = entityTag
167664	return c
167665}
167666
167667// Context sets the context to be used in this call's Do method. Any
167668// pending HTTP request will be aborted if the provided context is
167669// canceled.
167670func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
167671	c.ctx_ = ctx
167672	return c
167673}
167674
167675// Header returns an http.Header that can be modified by the caller to
167676// add HTTP headers to the request.
167677func (c *ZoneOperationsGetCall) Header() http.Header {
167678	if c.header_ == nil {
167679		c.header_ = make(http.Header)
167680	}
167681	return c.header_
167682}
167683
167684func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
167685	reqHeaders := make(http.Header)
167686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
167687	for k, v := range c.header_ {
167688		reqHeaders[k] = v
167689	}
167690	reqHeaders.Set("User-Agent", c.s.userAgent())
167691	if c.ifNoneMatch_ != "" {
167692		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167693	}
167694	var body io.Reader = nil
167695	c.urlParams_.Set("alt", alt)
167696	c.urlParams_.Set("prettyPrint", "false")
167697	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
167698	urls += "?" + c.urlParams_.Encode()
167699	req, err := http.NewRequest("GET", urls, body)
167700	if err != nil {
167701		return nil, err
167702	}
167703	req.Header = reqHeaders
167704	googleapi.Expand(req.URL, map[string]string{
167705		"project":   c.project,
167706		"zone":      c.zone,
167707		"operation": c.operation,
167708	})
167709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167710}
167711
167712// Do executes the "compute.zoneOperations.get" call.
167713// Exactly one of *Operation or error will be non-nil. Any non-2xx
167714// status code is an error. Response headers are in either
167715// *Operation.ServerResponse.Header or (if a response was returned at
167716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167717// to check whether the returned error was because
167718// http.StatusNotModified was returned.
167719func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167720	gensupport.SetOptions(c.urlParams_, opts...)
167721	res, err := c.doRequest("json")
167722	if res != nil && res.StatusCode == http.StatusNotModified {
167723		if res.Body != nil {
167724			res.Body.Close()
167725		}
167726		return nil, &googleapi.Error{
167727			Code:   res.StatusCode,
167728			Header: res.Header,
167729		}
167730	}
167731	if err != nil {
167732		return nil, err
167733	}
167734	defer googleapi.CloseBody(res)
167735	if err := googleapi.CheckResponse(res); err != nil {
167736		return nil, err
167737	}
167738	ret := &Operation{
167739		ServerResponse: googleapi.ServerResponse{
167740			Header:         res.Header,
167741			HTTPStatusCode: res.StatusCode,
167742		},
167743	}
167744	target := &ret
167745	if err := gensupport.DecodeResponse(target, res); err != nil {
167746		return nil, err
167747	}
167748	return ret, nil
167749	// {
167750	//   "description": "Retrieves the specified zone-specific Operations resource.",
167751	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
167752	//   "httpMethod": "GET",
167753	//   "id": "compute.zoneOperations.get",
167754	//   "parameterOrder": [
167755	//     "project",
167756	//     "zone",
167757	//     "operation"
167758	//   ],
167759	//   "parameters": {
167760	//     "operation": {
167761	//       "description": "Name of the Operations resource to return.",
167762	//       "location": "path",
167763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167764	//       "required": true,
167765	//       "type": "string"
167766	//     },
167767	//     "project": {
167768	//       "description": "Project ID for this request.",
167769	//       "location": "path",
167770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167771	//       "required": true,
167772	//       "type": "string"
167773	//     },
167774	//     "zone": {
167775	//       "description": "Name of the zone for this request.",
167776	//       "location": "path",
167777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167778	//       "required": true,
167779	//       "type": "string"
167780	//     }
167781	//   },
167782	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
167783	//   "response": {
167784	//     "$ref": "Operation"
167785	//   },
167786	//   "scopes": [
167787	//     "https://www.googleapis.com/auth/cloud-platform",
167788	//     "https://www.googleapis.com/auth/compute",
167789	//     "https://www.googleapis.com/auth/compute.readonly"
167790	//   ]
167791	// }
167792
167793}
167794
167795// method id "compute.zoneOperations.list":
167796
167797type ZoneOperationsListCall struct {
167798	s            *Service
167799	project      string
167800	zone         string
167801	urlParams_   gensupport.URLParams
167802	ifNoneMatch_ string
167803	ctx_         context.Context
167804	header_      http.Header
167805}
167806
167807// List: Retrieves a list of Operation resources contained within the
167808// specified zone.
167809//
167810// - project: Project ID for this request.
167811// - zone: Name of the zone for request.
167812func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
167813	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167814	c.project = project
167815	c.zone = zone
167816	return c
167817}
167818
167819// Filter sets the optional parameter "filter": A filter expression that
167820// filters resources listed in the response. The expression must specify
167821// the field name, a comparison operator, and the value that you want to
167822// use for filtering. The value must be a string, a number, or a
167823// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167824// `<`. For example, if you are filtering Compute Engine instances, you
167825// can exclude instances named `example-instance` by specifying `name !=
167826// example-instance`. You can also filter nested fields. For example,
167827// you could specify `scheduling.automaticRestart = false` to include
167828// instances only if they are not scheduled for automatic restarts. You
167829// can use filtering on nested fields to filter based on resource
167830// labels. To filter on multiple expressions, provide each separate
167831// expression within parentheses. For example: ```
167832// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
167833// ``` By default, each expression is an `AND` expression. However, you
167834// can include `AND` and `OR` expressions explicitly. For example: ```
167835// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
167836// AND (scheduling.automaticRestart = true) ```
167837func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
167838	c.urlParams_.Set("filter", filter)
167839	return c
167840}
167841
167842// MaxResults sets the optional parameter "maxResults": The maximum
167843// number of results per page that should be returned. If the number of
167844// available results is larger than `maxResults`, Compute Engine returns
167845// a `nextPageToken` that can be used to get the next page of results in
167846// subsequent list requests. Acceptable values are `0` to `500`,
167847// inclusive. (Default: `500`)
167848func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
167849	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167850	return c
167851}
167852
167853// OrderBy sets the optional parameter "orderBy": Sorts list results by
167854// a certain order. By default, results are returned in alphanumerical
167855// order based on the resource name. You can also sort results in
167856// descending order based on the creation timestamp using
167857// `orderBy="creationTimestamp desc". This sorts results based on the
167858// `creationTimestamp` field in reverse chronological order (newest
167859// result first). Use this to sort resources like operations so that the
167860// newest operation is returned first. Currently, only sorting by `name`
167861// or `creationTimestamp desc` is supported.
167862func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
167863	c.urlParams_.Set("orderBy", orderBy)
167864	return c
167865}
167866
167867// PageToken sets the optional parameter "pageToken": Specifies a page
167868// token to use. Set `pageToken` to the `nextPageToken` returned by a
167869// previous list request to get the next page of results.
167870func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
167871	c.urlParams_.Set("pageToken", pageToken)
167872	return c
167873}
167874
167875// ReturnPartialSuccess sets the optional parameter
167876// "returnPartialSuccess": Opt-in for partial success behavior which
167877// provides partial results in case of failure. The default value is
167878// false.
167879func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
167880	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167881	return c
167882}
167883
167884// Fields allows partial responses to be retrieved. See
167885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167886// for more information.
167887func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
167888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167889	return c
167890}
167891
167892// IfNoneMatch sets the optional parameter which makes the operation
167893// fail if the object's ETag matches the given value. This is useful for
167894// getting updates only after the object has changed since the last
167895// request. Use googleapi.IsNotModified to check whether the response
167896// error from Do is the result of In-None-Match.
167897func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
167898	c.ifNoneMatch_ = entityTag
167899	return c
167900}
167901
167902// Context sets the context to be used in this call's Do method. Any
167903// pending HTTP request will be aborted if the provided context is
167904// canceled.
167905func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
167906	c.ctx_ = ctx
167907	return c
167908}
167909
167910// Header returns an http.Header that can be modified by the caller to
167911// add HTTP headers to the request.
167912func (c *ZoneOperationsListCall) Header() http.Header {
167913	if c.header_ == nil {
167914		c.header_ = make(http.Header)
167915	}
167916	return c.header_
167917}
167918
167919func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
167920	reqHeaders := make(http.Header)
167921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
167922	for k, v := range c.header_ {
167923		reqHeaders[k] = v
167924	}
167925	reqHeaders.Set("User-Agent", c.s.userAgent())
167926	if c.ifNoneMatch_ != "" {
167927		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167928	}
167929	var body io.Reader = nil
167930	c.urlParams_.Set("alt", alt)
167931	c.urlParams_.Set("prettyPrint", "false")
167932	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations")
167933	urls += "?" + c.urlParams_.Encode()
167934	req, err := http.NewRequest("GET", urls, body)
167935	if err != nil {
167936		return nil, err
167937	}
167938	req.Header = reqHeaders
167939	googleapi.Expand(req.URL, map[string]string{
167940		"project": c.project,
167941		"zone":    c.zone,
167942	})
167943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167944}
167945
167946// Do executes the "compute.zoneOperations.list" call.
167947// Exactly one of *OperationList or error will be non-nil. Any non-2xx
167948// status code is an error. Response headers are in either
167949// *OperationList.ServerResponse.Header or (if a response was returned
167950// at all) in error.(*googleapi.Error).Header. Use
167951// googleapi.IsNotModified to check whether the returned error was
167952// because http.StatusNotModified was returned.
167953func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
167954	gensupport.SetOptions(c.urlParams_, opts...)
167955	res, err := c.doRequest("json")
167956	if res != nil && res.StatusCode == http.StatusNotModified {
167957		if res.Body != nil {
167958			res.Body.Close()
167959		}
167960		return nil, &googleapi.Error{
167961			Code:   res.StatusCode,
167962			Header: res.Header,
167963		}
167964	}
167965	if err != nil {
167966		return nil, err
167967	}
167968	defer googleapi.CloseBody(res)
167969	if err := googleapi.CheckResponse(res); err != nil {
167970		return nil, err
167971	}
167972	ret := &OperationList{
167973		ServerResponse: googleapi.ServerResponse{
167974			Header:         res.Header,
167975			HTTPStatusCode: res.StatusCode,
167976		},
167977	}
167978	target := &ret
167979	if err := gensupport.DecodeResponse(target, res); err != nil {
167980		return nil, err
167981	}
167982	return ret, nil
167983	// {
167984	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
167985	//   "flatPath": "projects/{project}/zones/{zone}/operations",
167986	//   "httpMethod": "GET",
167987	//   "id": "compute.zoneOperations.list",
167988	//   "parameterOrder": [
167989	//     "project",
167990	//     "zone"
167991	//   ],
167992	//   "parameters": {
167993	//     "filter": {
167994	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
167995	//       "location": "query",
167996	//       "type": "string"
167997	//     },
167998	//     "maxResults": {
167999	//       "default": "500",
168000	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168001	//       "format": "uint32",
168002	//       "location": "query",
168003	//       "minimum": "0",
168004	//       "type": "integer"
168005	//     },
168006	//     "orderBy": {
168007	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
168008	//       "location": "query",
168009	//       "type": "string"
168010	//     },
168011	//     "pageToken": {
168012	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
168013	//       "location": "query",
168014	//       "type": "string"
168015	//     },
168016	//     "project": {
168017	//       "description": "Project ID for this request.",
168018	//       "location": "path",
168019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168020	//       "required": true,
168021	//       "type": "string"
168022	//     },
168023	//     "returnPartialSuccess": {
168024	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
168025	//       "location": "query",
168026	//       "type": "boolean"
168027	//     },
168028	//     "zone": {
168029	//       "description": "Name of the zone for request.",
168030	//       "location": "path",
168031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168032	//       "required": true,
168033	//       "type": "string"
168034	//     }
168035	//   },
168036	//   "path": "projects/{project}/zones/{zone}/operations",
168037	//   "response": {
168038	//     "$ref": "OperationList"
168039	//   },
168040	//   "scopes": [
168041	//     "https://www.googleapis.com/auth/cloud-platform",
168042	//     "https://www.googleapis.com/auth/compute",
168043	//     "https://www.googleapis.com/auth/compute.readonly"
168044	//   ]
168045	// }
168046
168047}
168048
168049// Pages invokes f for each page of results.
168050// A non-nil error returned from f will halt the iteration.
168051// The provided context supersedes any context provided to the Context method.
168052func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
168053	c.ctx_ = ctx
168054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168055	for {
168056		x, err := c.Do()
168057		if err != nil {
168058			return err
168059		}
168060		if err := f(x); err != nil {
168061			return err
168062		}
168063		if x.NextPageToken == "" {
168064			return nil
168065		}
168066		c.PageToken(x.NextPageToken)
168067	}
168068}
168069
168070// method id "compute.zoneOperations.wait":
168071
168072type ZoneOperationsWaitCall struct {
168073	s          *Service
168074	project    string
168075	zone       string
168076	operation  string
168077	urlParams_ gensupport.URLParams
168078	ctx_       context.Context
168079	header_    http.Header
168080}
168081
168082// Wait: Waits for the specified Operation resource to return as `DONE`
168083// or for the request to approach the 2 minute deadline, and retrieves
168084// the specified Operation resource. This method differs from the `GET`
168085// method in that it waits for no more than the default deadline (2
168086// minutes) and then returns the current state of the operation, which
168087// might be `DONE` or still in progress. This method is called on a
168088// best-effort basis. Specifically: - In uncommon cases, when the server
168089// is overloaded, the request might return before the default deadline
168090// is reached, or might return after zero seconds. - If the default
168091// deadline is reached, there is no guarantee that the operation is
168092// actually done when the method returns. Be prepared to retry if the
168093// operation is not `DONE`.
168094//
168095// - operation: Name of the Operations resource to return.
168096// - project: Project ID for this request.
168097// - zone: Name of the zone for this request.
168098func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
168099	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168100	c.project = project
168101	c.zone = zone
168102	c.operation = operation
168103	return c
168104}
168105
168106// Fields allows partial responses to be retrieved. See
168107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168108// for more information.
168109func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
168110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168111	return c
168112}
168113
168114// Context sets the context to be used in this call's Do method. Any
168115// pending HTTP request will be aborted if the provided context is
168116// canceled.
168117func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
168118	c.ctx_ = ctx
168119	return c
168120}
168121
168122// Header returns an http.Header that can be modified by the caller to
168123// add HTTP headers to the request.
168124func (c *ZoneOperationsWaitCall) Header() http.Header {
168125	if c.header_ == nil {
168126		c.header_ = make(http.Header)
168127	}
168128	return c.header_
168129}
168130
168131func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
168132	reqHeaders := make(http.Header)
168133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
168134	for k, v := range c.header_ {
168135		reqHeaders[k] = v
168136	}
168137	reqHeaders.Set("User-Agent", c.s.userAgent())
168138	var body io.Reader = nil
168139	c.urlParams_.Set("alt", alt)
168140	c.urlParams_.Set("prettyPrint", "false")
168141	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait")
168142	urls += "?" + c.urlParams_.Encode()
168143	req, err := http.NewRequest("POST", urls, body)
168144	if err != nil {
168145		return nil, err
168146	}
168147	req.Header = reqHeaders
168148	googleapi.Expand(req.URL, map[string]string{
168149		"project":   c.project,
168150		"zone":      c.zone,
168151		"operation": c.operation,
168152	})
168153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168154}
168155
168156// Do executes the "compute.zoneOperations.wait" call.
168157// Exactly one of *Operation or error will be non-nil. Any non-2xx
168158// status code is an error. Response headers are in either
168159// *Operation.ServerResponse.Header or (if a response was returned at
168160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168161// to check whether the returned error was because
168162// http.StatusNotModified was returned.
168163func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168164	gensupport.SetOptions(c.urlParams_, opts...)
168165	res, err := c.doRequest("json")
168166	if res != nil && res.StatusCode == http.StatusNotModified {
168167		if res.Body != nil {
168168			res.Body.Close()
168169		}
168170		return nil, &googleapi.Error{
168171			Code:   res.StatusCode,
168172			Header: res.Header,
168173		}
168174	}
168175	if err != nil {
168176		return nil, err
168177	}
168178	defer googleapi.CloseBody(res)
168179	if err := googleapi.CheckResponse(res); err != nil {
168180		return nil, err
168181	}
168182	ret := &Operation{
168183		ServerResponse: googleapi.ServerResponse{
168184			Header:         res.Header,
168185			HTTPStatusCode: res.StatusCode,
168186		},
168187	}
168188	target := &ret
168189	if err := gensupport.DecodeResponse(target, res); err != nil {
168190		return nil, err
168191	}
168192	return ret, nil
168193	// {
168194	//   "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. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - 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`. ",
168195	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait",
168196	//   "httpMethod": "POST",
168197	//   "id": "compute.zoneOperations.wait",
168198	//   "parameterOrder": [
168199	//     "project",
168200	//     "zone",
168201	//     "operation"
168202	//   ],
168203	//   "parameters": {
168204	//     "operation": {
168205	//       "description": "Name of the Operations resource to return.",
168206	//       "location": "path",
168207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168208	//       "required": true,
168209	//       "type": "string"
168210	//     },
168211	//     "project": {
168212	//       "description": "Project ID for this request.",
168213	//       "location": "path",
168214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168215	//       "required": true,
168216	//       "type": "string"
168217	//     },
168218	//     "zone": {
168219	//       "description": "Name of the zone for this request.",
168220	//       "location": "path",
168221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168222	//       "required": true,
168223	//       "type": "string"
168224	//     }
168225	//   },
168226	//   "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
168227	//   "response": {
168228	//     "$ref": "Operation"
168229	//   },
168230	//   "scopes": [
168231	//     "https://www.googleapis.com/auth/cloud-platform",
168232	//     "https://www.googleapis.com/auth/compute",
168233	//     "https://www.googleapis.com/auth/compute.readonly"
168234	//   ]
168235	// }
168236
168237}
168238
168239// method id "compute.zones.get":
168240
168241type ZonesGetCall struct {
168242	s            *Service
168243	project      string
168244	zone         string
168245	urlParams_   gensupport.URLParams
168246	ifNoneMatch_ string
168247	ctx_         context.Context
168248	header_      http.Header
168249}
168250
168251// Get: Returns the specified Zone resource. Gets a list of available
168252// zones by making a list() request.
168253//
168254// - project: Project ID for this request.
168255// - zone: Name of the zone resource to return.
168256func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
168257	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168258	c.project = project
168259	c.zone = zone
168260	return c
168261}
168262
168263// Fields allows partial responses to be retrieved. See
168264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168265// for more information.
168266func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
168267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168268	return c
168269}
168270
168271// IfNoneMatch sets the optional parameter which makes the operation
168272// fail if the object's ETag matches the given value. This is useful for
168273// getting updates only after the object has changed since the last
168274// request. Use googleapi.IsNotModified to check whether the response
168275// error from Do is the result of In-None-Match.
168276func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
168277	c.ifNoneMatch_ = entityTag
168278	return c
168279}
168280
168281// Context sets the context to be used in this call's Do method. Any
168282// pending HTTP request will be aborted if the provided context is
168283// canceled.
168284func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
168285	c.ctx_ = ctx
168286	return c
168287}
168288
168289// Header returns an http.Header that can be modified by the caller to
168290// add HTTP headers to the request.
168291func (c *ZonesGetCall) Header() http.Header {
168292	if c.header_ == nil {
168293		c.header_ = make(http.Header)
168294	}
168295	return c.header_
168296}
168297
168298func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
168299	reqHeaders := make(http.Header)
168300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
168301	for k, v := range c.header_ {
168302		reqHeaders[k] = v
168303	}
168304	reqHeaders.Set("User-Agent", c.s.userAgent())
168305	if c.ifNoneMatch_ != "" {
168306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168307	}
168308	var body io.Reader = nil
168309	c.urlParams_.Set("alt", alt)
168310	c.urlParams_.Set("prettyPrint", "false")
168311	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}")
168312	urls += "?" + c.urlParams_.Encode()
168313	req, err := http.NewRequest("GET", urls, body)
168314	if err != nil {
168315		return nil, err
168316	}
168317	req.Header = reqHeaders
168318	googleapi.Expand(req.URL, map[string]string{
168319		"project": c.project,
168320		"zone":    c.zone,
168321	})
168322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168323}
168324
168325// Do executes the "compute.zones.get" call.
168326// Exactly one of *Zone or error will be non-nil. Any non-2xx status
168327// code is an error. Response headers are in either
168328// *Zone.ServerResponse.Header or (if a response was returned at all) in
168329// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
168330// whether the returned error was because http.StatusNotModified was
168331// returned.
168332func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
168333	gensupport.SetOptions(c.urlParams_, opts...)
168334	res, err := c.doRequest("json")
168335	if res != nil && res.StatusCode == http.StatusNotModified {
168336		if res.Body != nil {
168337			res.Body.Close()
168338		}
168339		return nil, &googleapi.Error{
168340			Code:   res.StatusCode,
168341			Header: res.Header,
168342		}
168343	}
168344	if err != nil {
168345		return nil, err
168346	}
168347	defer googleapi.CloseBody(res)
168348	if err := googleapi.CheckResponse(res); err != nil {
168349		return nil, err
168350	}
168351	ret := &Zone{
168352		ServerResponse: googleapi.ServerResponse{
168353			Header:         res.Header,
168354			HTTPStatusCode: res.StatusCode,
168355		},
168356	}
168357	target := &ret
168358	if err := gensupport.DecodeResponse(target, res); err != nil {
168359		return nil, err
168360	}
168361	return ret, nil
168362	// {
168363	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
168364	//   "flatPath": "projects/{project}/zones/{zone}",
168365	//   "httpMethod": "GET",
168366	//   "id": "compute.zones.get",
168367	//   "parameterOrder": [
168368	//     "project",
168369	//     "zone"
168370	//   ],
168371	//   "parameters": {
168372	//     "project": {
168373	//       "description": "Project ID for this request.",
168374	//       "location": "path",
168375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168376	//       "required": true,
168377	//       "type": "string"
168378	//     },
168379	//     "zone": {
168380	//       "description": "Name of the zone resource to return.",
168381	//       "location": "path",
168382	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168383	//       "required": true,
168384	//       "type": "string"
168385	//     }
168386	//   },
168387	//   "path": "projects/{project}/zones/{zone}",
168388	//   "response": {
168389	//     "$ref": "Zone"
168390	//   },
168391	//   "scopes": [
168392	//     "https://www.googleapis.com/auth/cloud-platform",
168393	//     "https://www.googleapis.com/auth/compute",
168394	//     "https://www.googleapis.com/auth/compute.readonly"
168395	//   ]
168396	// }
168397
168398}
168399
168400// method id "compute.zones.list":
168401
168402type ZonesListCall struct {
168403	s            *Service
168404	project      string
168405	urlParams_   gensupport.URLParams
168406	ifNoneMatch_ string
168407	ctx_         context.Context
168408	header_      http.Header
168409}
168410
168411// List: Retrieves the list of Zone resources available to the specified
168412// project.
168413//
168414// - project: Project ID for this request.
168415func (r *ZonesService) List(project string) *ZonesListCall {
168416	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168417	c.project = project
168418	return c
168419}
168420
168421// Filter sets the optional parameter "filter": A filter expression that
168422// filters resources listed in the response. The expression must specify
168423// the field name, a comparison operator, and the value that you want to
168424// use for filtering. The value must be a string, a number, or a
168425// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168426// `<`. For example, if you are filtering Compute Engine instances, you
168427// can exclude instances named `example-instance` by specifying `name !=
168428// example-instance`. You can also filter nested fields. For example,
168429// you could specify `scheduling.automaticRestart = false` to include
168430// instances only if they are not scheduled for automatic restarts. You
168431// can use filtering on nested fields to filter based on resource
168432// labels. To filter on multiple expressions, provide each separate
168433// expression within parentheses. For example: ```
168434// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
168435// ``` By default, each expression is an `AND` expression. However, you
168436// can include `AND` and `OR` expressions explicitly. For example: ```
168437// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
168438// AND (scheduling.automaticRestart = true) ```
168439func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
168440	c.urlParams_.Set("filter", filter)
168441	return c
168442}
168443
168444// MaxResults sets the optional parameter "maxResults": The maximum
168445// number of results per page that should be returned. If the number of
168446// available results is larger than `maxResults`, Compute Engine returns
168447// a `nextPageToken` that can be used to get the next page of results in
168448// subsequent list requests. Acceptable values are `0` to `500`,
168449// inclusive. (Default: `500`)
168450func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
168451	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168452	return c
168453}
168454
168455// OrderBy sets the optional parameter "orderBy": Sorts list results by
168456// a certain order. By default, results are returned in alphanumerical
168457// order based on the resource name. You can also sort results in
168458// descending order based on the creation timestamp using
168459// `orderBy="creationTimestamp desc". This sorts results based on the
168460// `creationTimestamp` field in reverse chronological order (newest
168461// result first). Use this to sort resources like operations so that the
168462// newest operation is returned first. Currently, only sorting by `name`
168463// or `creationTimestamp desc` is supported.
168464func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
168465	c.urlParams_.Set("orderBy", orderBy)
168466	return c
168467}
168468
168469// PageToken sets the optional parameter "pageToken": Specifies a page
168470// token to use. Set `pageToken` to the `nextPageToken` returned by a
168471// previous list request to get the next page of results.
168472func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
168473	c.urlParams_.Set("pageToken", pageToken)
168474	return c
168475}
168476
168477// ReturnPartialSuccess sets the optional parameter
168478// "returnPartialSuccess": Opt-in for partial success behavior which
168479// provides partial results in case of failure. The default value is
168480// false.
168481func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
168482	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168483	return c
168484}
168485
168486// Fields allows partial responses to be retrieved. See
168487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168488// for more information.
168489func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
168490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168491	return c
168492}
168493
168494// IfNoneMatch sets the optional parameter which makes the operation
168495// fail if the object's ETag matches the given value. This is useful for
168496// getting updates only after the object has changed since the last
168497// request. Use googleapi.IsNotModified to check whether the response
168498// error from Do is the result of In-None-Match.
168499func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
168500	c.ifNoneMatch_ = entityTag
168501	return c
168502}
168503
168504// Context sets the context to be used in this call's Do method. Any
168505// pending HTTP request will be aborted if the provided context is
168506// canceled.
168507func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
168508	c.ctx_ = ctx
168509	return c
168510}
168511
168512// Header returns an http.Header that can be modified by the caller to
168513// add HTTP headers to the request.
168514func (c *ZonesListCall) Header() http.Header {
168515	if c.header_ == nil {
168516		c.header_ = make(http.Header)
168517	}
168518	return c.header_
168519}
168520
168521func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
168522	reqHeaders := make(http.Header)
168523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
168524	for k, v := range c.header_ {
168525		reqHeaders[k] = v
168526	}
168527	reqHeaders.Set("User-Agent", c.s.userAgent())
168528	if c.ifNoneMatch_ != "" {
168529		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168530	}
168531	var body io.Reader = nil
168532	c.urlParams_.Set("alt", alt)
168533	c.urlParams_.Set("prettyPrint", "false")
168534	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones")
168535	urls += "?" + c.urlParams_.Encode()
168536	req, err := http.NewRequest("GET", urls, body)
168537	if err != nil {
168538		return nil, err
168539	}
168540	req.Header = reqHeaders
168541	googleapi.Expand(req.URL, map[string]string{
168542		"project": c.project,
168543	})
168544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168545}
168546
168547// Do executes the "compute.zones.list" call.
168548// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
168549// code is an error. Response headers are in either
168550// *ZoneList.ServerResponse.Header or (if a response was returned at
168551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168552// to check whether the returned error was because
168553// http.StatusNotModified was returned.
168554func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
168555	gensupport.SetOptions(c.urlParams_, opts...)
168556	res, err := c.doRequest("json")
168557	if res != nil && res.StatusCode == http.StatusNotModified {
168558		if res.Body != nil {
168559			res.Body.Close()
168560		}
168561		return nil, &googleapi.Error{
168562			Code:   res.StatusCode,
168563			Header: res.Header,
168564		}
168565	}
168566	if err != nil {
168567		return nil, err
168568	}
168569	defer googleapi.CloseBody(res)
168570	if err := googleapi.CheckResponse(res); err != nil {
168571		return nil, err
168572	}
168573	ret := &ZoneList{
168574		ServerResponse: googleapi.ServerResponse{
168575			Header:         res.Header,
168576			HTTPStatusCode: res.StatusCode,
168577		},
168578	}
168579	target := &ret
168580	if err := gensupport.DecodeResponse(target, res); err != nil {
168581		return nil, err
168582	}
168583	return ret, nil
168584	// {
168585	//   "description": "Retrieves the list of Zone resources available to the specified project.",
168586	//   "flatPath": "projects/{project}/zones",
168587	//   "httpMethod": "GET",
168588	//   "id": "compute.zones.list",
168589	//   "parameterOrder": [
168590	//     "project"
168591	//   ],
168592	//   "parameters": {
168593	//     "filter": {
168594	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
168595	//       "location": "query",
168596	//       "type": "string"
168597	//     },
168598	//     "maxResults": {
168599	//       "default": "500",
168600	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168601	//       "format": "uint32",
168602	//       "location": "query",
168603	//       "minimum": "0",
168604	//       "type": "integer"
168605	//     },
168606	//     "orderBy": {
168607	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
168608	//       "location": "query",
168609	//       "type": "string"
168610	//     },
168611	//     "pageToken": {
168612	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
168613	//       "location": "query",
168614	//       "type": "string"
168615	//     },
168616	//     "project": {
168617	//       "description": "Project ID for this request.",
168618	//       "location": "path",
168619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168620	//       "required": true,
168621	//       "type": "string"
168622	//     },
168623	//     "returnPartialSuccess": {
168624	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
168625	//       "location": "query",
168626	//       "type": "boolean"
168627	//     }
168628	//   },
168629	//   "path": "projects/{project}/zones",
168630	//   "response": {
168631	//     "$ref": "ZoneList"
168632	//   },
168633	//   "scopes": [
168634	//     "https://www.googleapis.com/auth/cloud-platform",
168635	//     "https://www.googleapis.com/auth/compute",
168636	//     "https://www.googleapis.com/auth/compute.readonly"
168637	//   ]
168638	// }
168639
168640}
168641
168642// Pages invokes f for each page of results.
168643// A non-nil error returned from f will halt the iteration.
168644// The provided context supersedes any context provided to the Context method.
168645func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
168646	c.ctx_ = ctx
168647	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168648	for {
168649		x, err := c.Do()
168650		if err != nil {
168651			return err
168652		}
168653		if err := f(x); err != nil {
168654			return err
168655		}
168656		if x.NextPageToken == "" {
168657			return nil
168658		}
168659		c.PageToken(x.NextPageToken)
168660	}
168661}
168662